https://sites.google.com/qq.com/chalearnfacespoofingattackdete/contest-details

数据集官方获取网站

网友总结

https://blog.csdn.net/baidu_40840693/article/details/89060374

网友的FeatherNets论文笔记

https://blog.csdn.net/u014640980/article/details/89473862

创新点
提出轻量级网络Feather:
thin CNN stem——计算代价小;
提出流模块——比GAP(Global Average Pooling)精确度更高;
设计了一种新的融合分类器体系结构,将从多模态数据(depth 和 IR 数据)中学习到的多模型进行组合和级联;
成就
仅用depth image进行训练,0.00168 ACER, 0.35M parameters and 83M FLOPS;
in the Face Anti-spoofing Attack Detection Challenge@CVPR2019 and
got the result of 0.0013(ACER), 0.999(TPR@FPR=10e-2),
0.998(TPR@FPR=10e-3) and 0.9814(TPR@FPR=10e-4).
数据集 MMFD
原理
真实人脸的depth image是不均匀的,攻击人脸的depth image是平面的

由于网上找到的数据集资源并没有val文件夹,通过对比发现val数据集中的图片是从test数据集中选取的图片,于是自己制作了val数据集。如下所示:

 # coding: utf-8
from pathlib import Path #从pathlib中导入Path
import os
import fileinput import shutil
rgb = open('./rgb_train.txt','a')
pwd = os.getcwd() +'/'# the val data path 训练集的路径
test_pwd = '/home/tay/Videos/Anti_spoofing/Face_anti_spoofing/datasets/CASIA-SURF/Testing/'
dst_pwd = '/home/tay/Videos/Anti_spoofing/Face_anti_spoofing/Val/'
for line in fileinput.input("val_public_list.txt"):
list = line.split(' ')
print('list[0]', list[0])
# print('list[0] is', list[0].split('.jpg')[0].split('/')[-1])
print('list[1] is', list[1])
print('list[2] is', list[2])
# print('rgb is', pwd + list[0].split('.jpg')[0]+ '_tr' + '.jpg')
# rgb.write(pwd +list[0]+'\n')
# depth.write(pwd +list[1]+'\n')
# ir.write(pwd +list[2]+'\n')
#src = test_pwd +'/'+ list[0].split('Val/')[-1]+'\n'
#dst = list[0].split('/')[-2]
if os.path.exists(os.path.join(dst_pwd, list[0].split('/')[-2])):
shutil.copy(test_pwd + list[0].split('Val/')[-1], os.path.join(dst_pwd, list[0].split('/')[-2]))
else:
os.makedirs(os.path.join(dst_pwd, list[0].split('/')[-2]))
shutil.copy(test_pwd + list[0].split('Val/')[-1], os.path.join(dst_pwd, list[0].split('/')[-2])) if os.path.exists(os.path.join(dst_pwd, list[1].split('/')[-2])):
shutil.copy(test_pwd + list[1].split('Val/')[-1], os.path.join(dst_pwd, list[1].split('/')[-2]))
else:
os.makedirs(os.path.join(dst_pwd, list[1].split('/')[-2]))
shutil.copy(test_pwd + list[1].split('Val/')[-1], os.path.join(dst_pwd, list[1].split('/')[-2])) if os.path.exists(os.path.join(dst_pwd, list[2].split('/')[-2])):
shutil.copy(test_pwd + list[2].split('Val/')[-1], os.path.join(dst_pwd, list[2].split('/')[-2]))
else:
os.makedirs(os.path.join(dst_pwd, list[2].split('/')[-2]))
shutil.copy(test_pwd + list[2].split('Val/')[-1], os.path.join(dst_pwd, list[2].split('/')[-2]))
# rgb.write(test_pwd + list[0].split('Val/')[-1]+'\n')
# rgb.write(test_pwd + list[1].split('Val/')[-1]+'\n')
# rgb.write(test_pwd + list[2].split('Val/')[-1]+'\n')
# shutil.copy(local_img_name+'/'+new_obj_name, path+'/'+new_obj_name) #shutil.copy(src, dst) src是要复制的图像的文件路径,dst是将要复制到的路径 # rgb.close()

Face-anti-spoofing实验记录(通过val_public_list.txt制作val数据集)的更多相关文章

  1. case7 淋巴瘤子类分类实验记录

    case7 淋巴瘤子类分类实验记录 简介 分类问题:3分类 (identifying three sub-types of lymphoma: Chronic Lymphocytic Leukemia ...

  2. 实验记录:Oracle redo logfile的resize过程

    实验记录:Oracle redo logfile的resize过程. 实验环境:RHEL 6.4 + Oracle 11.2.0.3 单实例 文件系统 实验目的:本实验是修改redo logfile的 ...

  3. [20190130]删除tab$记录的恢复.txt

    [20190130]删除tab$记录的恢复.txt --//网上提到许多删除tab$的案例,主要原因在于没有从官方正规渠道下载oracle版本,还有一些来自工具里面带有一些脚本删除tab$记录. -- ...

  4. [20180612]删除bootstrap$记录无法启动.txt

    [20180612]删除bootstrap$记录无法启动.txt --//前几天看链接http://www.xifenfei.com/2018/05/willfully-delete-bootstra ...

  5. 使用Scapy向Mininet交换机注入流量 实验记录

    使用Scapy向Mininet交换机注入流量 实验记录 用Python脚本及Scapy库写了一个简单的流量生成脚本,并打算使用该脚本往Mininet中的OpenvSwitch交换机注入流量.拓扑图如下 ...

  6. 树莓派4B智能小车机器套件——入手组装实验记录

    树莓派4B智能小车机器套件--入手组装实验记录 4WD智能小车(4WD SMART ROBOT KIT),支持Arduino.51.STM32.Raspberry Pi等4个版本.本套件采用的是树莓派 ...

  7. CSAPP:datalab实验记录

    CSAPP:datalab实验记录 bitXor /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Lega ...

  8. RHCE实验记录总结-2-RHCE

    RHCSA实验总结-点击跳转 RHCE实验 RHCE这边我简单分了下类: ## 网络与安全 1. IPv6 设置(推荐使用GUI程序 nm-connection-editor来完成) 2. team ...

  9. RHCE实验记录总结-1-RHCSA

    不管是运维还是开发系统的了解下Linux或者系统的温习整理一下Linux知识点无疑是较好的,这篇文章是对RHCSA&RHCE实验进行一个汇总,是我为了做实验方便(并分享给朋友)的一篇文章. 前 ...

随机推荐

  1. 力扣208——实现 Trie (前缀树)

    这道题主要是构造前缀树节点的数据结构,帮助解答问题. 原题 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = ...

  2. Don’t Repeat Yourself,Repeat Yourself

    Don't Repeat Yourself,Repeat Yourself Don't repeat yourself (DRY, or sometimes do not repeat yoursel ...

  3. OpenJ_Bailian 4103 踩方格(搜索 动态规划 )

    题目传送门OpenJ_Bailian 4103 描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a.    每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b.    走过的格子立 ...

  4. 基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇

    基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换 ...

  5. 人群密度检测MCNN+CSRnet

    MCNN(简单理解): 三列卷积神经网络,分别为大中小三种不同尺度的卷积核,表示为L列(使用大尺度卷积核: 9*9, 7*7, 7*7,7*7), M(使用中等尺度卷积核: 7*7, 5*5, 5*5 ...

  6. mongodb学习(三)——函数使用的小技巧

    $group 下 $sum 函数 Returns a sum of numerical values. Ignores non-numeric values 只能对数字求和,非数字没有作用 查询一段时 ...

  7. Python 任务自动化工具:nox 的配置与 API

    英文 | Configuration & API 出处 | nox 官方文档 译者 | 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehua ...

  8. [工具] 利用setuptools打包python程序

    一.准备工程文件 1.创建工程leeoo 2.在工程根目录下创建setup.py文件 3.在工程根目录下创建同名package 二.编辑setup.py 1.编辑setup.py文件 from set ...

  9. 你还不会Git?那就不要写代码了(二)

    Git 命令练习 git的删除,添加,修改与日志 which vi 查看命令的目录 ⌃ a 光标去开头 ⌃ E 光标去结尾 ehco 'hellow world asd' > test.txt ...

  10. dfs - 走过的标记取消

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...