如何使用doppia进行人脸检测

如题所述

doppia一共提供三种人脸检测方法,分别是DPM,HeadHunter和HeadHunter_baseline,后俩者在使用上没有什么差别,只不过是选择的模型不同,而DPM则可以视为与整个doppia相对立的一部分内容,它使用matlab编译运行,本节主要阐述HeadHunter的使用方法。
人脸检测模块在src/applications/objects_detection/中,假如你编译成功可以看到可执行文件objects_detection,该程序支持多种目标检测,具体要检测什么,主要看你的配置文件,人脸检测采用的配置文件是eccv2014_face_detection_pascal.config.ini,我们可以以此为模版,根据情况修改。 先说一下几个修改的地方,
save_detections = true 设置为true用于保存结果
process_folder = /opt/wangchao/new-fddb/ 这个就是你图片保存的目录,注意这里只支持单层目录,假如图片存储在这个目录下的其他目录,那么是读取不了的。
method = gpu_channels 这里可以设置选择cpu或gpu等,我们选择gpu
model = ../../../data/trained_models/face_detection/headhunter.proto.bin 之前提到过HeadHunter和HeadHunter_baseline方法,其不同就在于此处所择的模型不同,我们选择的是HeadHunter,用另一种的话就把路径指向那个就行了。
score_threshold = 0.5 这是一个阈值,调低的话,可以增加召回率,相应的也会降低准确率,关于不同阈值对结果的影响建议参考论文。
还有一些其他的选项,我们暂时可以不用修,改保持默认即可。
另外,运行 ./objects_detection --help 可以看到更多的其他配置选项,接下来运行如下命令可以启动程序:
./objects_detection -c eccv2014_face_detection_pascal.config.ini --gui.disable true --gpu.device_id 1
在这里我们可以看到有俩个额外的选项–gui.disable 和 --gpu.device_id,程序规定,外部选项的优先级高于配置文件,也就是说我们可以用相同的配置文件,而在外部修改其某个选项,来方便测试,这里俩个选项也是我们常用的选项,–gui.disable用来选择是否开启gui,由于我们运行在云主机上,所以选择true,禁用gui;–gpu.device_id用来选择gpu设备,我们的机器有俩张卡,我们选择第二张卡,所以设为1,默认为0.
程序启动后会打印出很多命令,细心的可能会发现如下一条报错信息:
Error parsing text-format doppia_protobuf.DetectorModel: 2:2: Message type "doppia_protobuf.DetectorModel" has no field named "E".
无需介意这条错误信息,它并不会影响程序运行,开发者说此处报错是因为protobuf在选择表达方式,失败后会选择另一种可用的(大概就是这个意思吧),就是说你的程序是在正确运行。
程序运行结束后会在当前目录产生一个类似于2015_09_18_79659_recordings的文件夹,文件夹内有detections.data_sequence,这就是我们所要的结果,但是显然还需要进一步的处理。

在doppia根目录下 tools/objects_detection/detections_to_caltech.py 脚本用于帮助我们将.data_sequence转换为我们可以理解的方式,该脚本有俩个选项-i和-o,分别指定.data_sequence和输出目录。
运行后会在输出目录产生txt文件,文件名是图片名,文件内存储着截取的人脸坐标和置信概率,至此,我们通过doppia完成了人脸检测程序,获得了我们想要的结果。
这里提供俩个脚本,分别是修改过的detections_to_caltech.py和一个人脸截取脚本,修改过后的detections_to_caltech.py可以将所有照片按指定格式存储于一个txt内,人脸截取脚本通过读入该txt从相应照片上扣取人脸。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-23
doppia一共提供三种人脸检测方法,分别是DPM,HeadHunter和HeadHunter_baseline,后俩者在使用上没有什么差别,只不过是选择的模型不同,而DPM则可以视为与整个doppia相对立的一部分内容,它使用matlab编译运行,本节主要阐述HeadHunter的使用方法。
人脸检测模块在src/applications/objects_detection/中,假如你编译成功可以看到可执行文件objects_detection,该程序支持多种目标检测,具体要检测什么,主要看你的配置文件,人脸检测采用的配置文件是eccv2014_face_detection_pascal.config.ini,我们可以以此为模版,根据情况修改。 先说一下几个修改的地方,
save_detections = true 设置为true用于保存结果
process_folder = /opt/wangchao/new-fddb/ 这个就是你图片保存的目录,注意这里只支持单层目录,假如图片存储在这个目录下的其他目录,那么是读取不了的。
method = gpu_channels 这里可以设置选择cpu或gpu等,我们选择gpu
model = ../../../data/trained_models/face_detection/headhunter.proto.bin 之前提到过HeadHunter和HeadHunter_baseline方法,其不同就在于此处所择的模型不同,我们选择的是HeadHunter,用另一种的话就把路径指向那个就行了。
score_threshold = 0.5 这是一个阈值,调低的话,可以增加召回率,相应的也会降低准确率,关于不同阈值对结果的影响建议参考论文。
还有一些其他的选项,我们暂时可以不用修,改保持默认即可。
另外,运行 ./objects_detection --help 可以看到更多的其他配置选项,接下来运行如下命令可以启动程序:
./objects_detection -c eccv2014_face_detection_pascal.config.ini --gui.disable true --gpu.device_id 1
在这里我们可以看到有俩个额外的选项–gui.disable 和 --gpu.device_id,程序规定,外部选项的优先级高于配置文件,也就是说我们可以用相同的配置文件,而在外部修改其某个选项,来方便测试,这里俩个选项也是我们常用的选项,–gui.disable用来选择是否开启gui,由于我们运行在云主机上,所以选择true,禁用gui;–gpu.device_id用来选择gpu设备,我们的机器有俩张卡,我们选择第二张卡,所以设为1,默认为0.
程序启动后会打印出很多命令,细心的可能会发现如下一条报错信息:
Error parsing text-format doppia_protobuf.DetectorModel: 2:2: Message type "doppia_protobuf.DetectorModel" has no field named "E".
无需介意这条错误信息,它并不会影响程序运行,开发者说此处报错是因为protobuf在选择表达方式,失败后会选择另一种可用的(大概就是这个意思吧),就是说你的程序是在正确运行。
程序运行结束后会在当前目录产生一个类似于2015_09_18_79659_recordings的文件夹,文件夹内有detections.data_sequence,这就是我们所要的结果,但是显然还需要进一步的处理。

在doppia根目录下 tools/objects_detection/detections_to_caltech.py 脚本用于帮助我们将.data_sequence转换为我们可以理解的方式,该脚本有俩个选项-i和-o,分别指定.data_sequence和输出目录。
运行后会在输出目录产生txt文件,文件名是图片名,文件内存储着截取的人脸坐标和置信概率,至此,我们通过doppia完成了人脸检测程序,获得了我们想要的结果。
这里提供俩个脚本,分别是修改过的detections_to_caltech.py和一个人脸截取脚本,修改过后的detections_to_caltech.py可以将所有照片按指定格式存储于一个txt内,人脸截取脚本通过读入该txt从相应照片上扣取人脸
相似回答