Face-anti-spoofing实验记录(通过val_public_list.txt制作val数据集)
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数据集)的更多相关文章
- case7 淋巴瘤子类分类实验记录
case7 淋巴瘤子类分类实验记录 简介 分类问题:3分类 (identifying three sub-types of lymphoma: Chronic Lymphocytic Leukemia ...
- 实验记录:Oracle redo logfile的resize过程
实验记录:Oracle redo logfile的resize过程. 实验环境:RHEL 6.4 + Oracle 11.2.0.3 单实例 文件系统 实验目的:本实验是修改redo logfile的 ...
- [20190130]删除tab$记录的恢复.txt
[20190130]删除tab$记录的恢复.txt --//网上提到许多删除tab$的案例,主要原因在于没有从官方正规渠道下载oracle版本,还有一些来自工具里面带有一些脚本删除tab$记录. -- ...
- [20180612]删除bootstrap$记录无法启动.txt
[20180612]删除bootstrap$记录无法启动.txt --//前几天看链接http://www.xifenfei.com/2018/05/willfully-delete-bootstra ...
- 使用Scapy向Mininet交换机注入流量 实验记录
使用Scapy向Mininet交换机注入流量 实验记录 用Python脚本及Scapy库写了一个简单的流量生成脚本,并打算使用该脚本往Mininet中的OpenvSwitch交换机注入流量.拓扑图如下 ...
- 树莓派4B智能小车机器套件——入手组装实验记录
树莓派4B智能小车机器套件--入手组装实验记录 4WD智能小车(4WD SMART ROBOT KIT),支持Arduino.51.STM32.Raspberry Pi等4个版本.本套件采用的是树莓派 ...
- CSAPP:datalab实验记录
CSAPP:datalab实验记录 bitXor /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Lega ...
- RHCE实验记录总结-2-RHCE
RHCSA实验总结-点击跳转 RHCE实验 RHCE这边我简单分了下类: ## 网络与安全 1. IPv6 设置(推荐使用GUI程序 nm-connection-editor来完成) 2. team ...
- RHCE实验记录总结-1-RHCSA
不管是运维还是开发系统的了解下Linux或者系统的温习整理一下Linux知识点无疑是较好的,这篇文章是对RHCSA&RHCE实验进行一个汇总,是我为了做实验方便(并分享给朋友)的一篇文章. 前 ...
随机推荐
- 在.NET Core中批量注入Grpc服务
GRPC 是谷歌发布的一个开源.高性能.通用RPC服务,尽管大部分 RPC 框架都使用 TCP 协议,但其实 UDP 也可以,而 gRPC 干脆就用了 HTTP2.还有就是它具有跨平台.跨语言 等特性 ...
- Dockerfile + Nginx.conf文件记录(用于前端项目部署)
Dockerfile + Nginx.conf文件记录(用于前端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理),默认服 ...
- AQS原理及应用
To use this class as the basis of a synchronizer, redefine the * following methods, as applicable, b ...
- C# 阿里云查询、删除文件
class Program { static string regionId = "cn-shanghai"; static string accessKeyId = " ...
- 【阿里云IoT+YF3300】11.物联网多设备快速通信级联
我们见到的很多物联网设备,大都是“一跳”上网,所谓的“一跳”就是设备直接上网,内嵌物联网模块或者通过DTU直接上网.其实稍微复杂的物联网现场,往往网关下面连接若干物联网设备(如下图),并且这些物联网设 ...
- 什么样的项目适合docker部署,docker应用场景
docker官网上说明了docker的典型场景: 使应用的打包与部署自动化 创建轻量.私密的PAAS环境 实现自动化测试和持续的集成/部署 根据这些特性,我们可以想象一下,如果你的项目有如下痛点或者需 ...
- cogs 619. [金陵中学2007] 传话 Tarjan强连通分量
619. [金陵中学2007] 传话 ★★ 输入文件:messagez.in 输出文件:messagez.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 兴趣小 ...
- Educational Codeforces Round 80 (Rated for Div. 2)
A. Deadline 题目链接:https://codeforces.com/contest/1288/problem/A 题意: 给你一个 N 和 D,问是否存在一个 X , 使得 $x+\lce ...
- 逆元(inv)
推荐博客 : http://blog.csdn.net/baidu_35643793/article/details/75268911 通常我们在计算除法取模时,并不能直接的取模后再去相除,答案会有问 ...
- dubbo配置文件解读(1)
详细的Dubbo配置也可以参考:https://blog.csdn.net/abcde474524573/article/details/53026110 (1)<dubbo:service/& ...