FDDB-FAQ
翻译:赵明明
人脸检测数据集基准
常见问题
Q1. How do you compute the detection score that is to be included in the face detection output file?
The score included in the output file of a face detection system should be obtained by the system itself. The evaluation code included in the benchmark varies the threshold on this score to obtain different points on the desired ROC curve.
问题1. 人脸检测输出文件中的检测得分是怎样计算的?
这个得分应该是你的检测系统自己给出来.我们的评价代码根据这些得分来设置阈值从而得到ROC曲线.
Q2. What range should the detection score be?
The range of scores can lie anywhere on the real line (-infinity to infinity)[-inf,inf], In other words, the scores are used to order the detections, and their absolute values do not matter.
问题2. 检测得分的取值范围是多少?
得分的取值范围不受限制,也就是说得分范围在[-inf,inf]。得分主要是用来排序用的,所以它们的取值不重要.
Q3. If only one detected region (output of face detector) is intersected with many labeled regions in the ground truth. What is the detection score in this case?
For a given image, we first find the best one-one matching between the detections and annotations (Section 6.1). For each of the resulting matching pairs, we compute two different scores based on the overlap ratio (Equation 2).The details of our evaluation is included in Section 6 of the FDDB technical report.
问题3. 如果我只检测一个区域,这个区域对应了多个标注的区域,这中情况的得分该怎样计算?
我们首先选择最好的一一配对的检测和标注(Section 6.1). 对于每对结果,计算两种分数(Equation 2). 具体信息在第6节的 FDDB technical report.
Q4. I see a few images in which not all faces are annotated (even if they are very well visible).
Some of the faces present in the images in this collection are not included in the benchmark for a variety of reasons. For instance, all of the face regions with height or width less than 20 pixels are NOT included in the benchmark. The details of the criteria used for accepting face annotations are included in Section 5 of the FDDB technical report.
问题4.我看到一些图片中的有些人脸没有倍标记出来,有些甚至是比较明显,而且很好认的.
图片中的有些人脸没有被标记出来,原因各种各样.比如,宽度或者高度少于20像素的人脸就不会被标记出来。关于标注方面的更多细节描述在第5节中的 FDDB technical report.
Q5. How do I report a single ROC from the ROCs of 10 folds?
Running the evaluation code for each fold will produce 10 ROC curves, one for each fold. However, the standard way for generating ROCs adopted by users on FDDB is to generate the ROC curve over all the images in the 10 folds at once.
[Thanks to Adrian Barbu and Frank Wu for helping to clarify this.]
问题5.我怎么从10个文件夹的ROC中找出一个发布出来?
为每个文件夹运行评价代码,将产生10个ROC曲线,每个文件夹一个. 然而,标准方法是一次性的将所有10个文件夹的ROC求出来.
[谢谢 Adrian Barbu 和 Frank Wu 在这个问题上的帮助.]
Q6. Where can I get the ROC (text) files for plotting the performance curves shown on the results page?
The ROC files (both for the discrete and continuous scores) are available on the results page in the "Methods" section on the Results page.
问题6. 在结果页面中显示的原始数据文件,我该从那里获取到?
在结果页面中,ROC文件(包含离散和连续分数)可以在 "Methods" 节下载到.
Q7. How do you compute the detection score for OpenCV Viola-Jones detector?
In the OpenCV implementation, stage_sum is computed and compared against the i stage_threshold for each stage to accept/reject a candidate window. We define the detection score for a candidate window as
K*stage_when_rejected + stage_sum_for_stage_when_rejected.
If a window is accepted by the cascade, we just
K*last_stage + stage_sum_for_last_stage.
Choosing K as a large value e.g., 1000, we ensure that windows rejected at stage i have higher score than those rejected at stage i-1.
问题7. 你怎么计算某些检测器的分数?比如像opencv 的那种Viola-Jones 的检测器?
In the OpenCV implementation在opencv的实现中, stage_sum 如果高于 此阶段的阈值,当前窗口就会被接受为一个候选窗. 所以我们定义候选窗的分数为:
K*stage_when_rejected + stage_sum_for_stage_when_rejected.
如果窗口被接受了,则分数为:
K*last_stage + stage_sum_for_last_stage.
设置K为一个比较大的值,比如这里设置为 1000, 可以保证在后一阶段被拒绝的窗口得分比前一阶段高.
Q8. I use 0/1 confidence scores for the face detections. The evaluation code only gave me two points on the ROC curve. Did I do something wrong?
The ROC curve is computed by varying the threshold over the confidence score. When you have {0,1} confidence score, there are only two points on the ROC curve. If you want a more detailed ROC curve, you would have to provide this confidence score as a real valued score.
问题8. 我用0,1作为人脸检测的置信度分数。评价代码只给了我两个ROC点。我错了么?我该怎么办?
TheROC的计算需要这个分手有很多的取值。当你只有0,1时,ROC上就只有两个点了,如果你像有更多的点,你的分数取值就要更加真实,取值要多样化。
Q9. The 'evaluation.tgz' program doesn't work with my version of OpenCV. How to generate ROC curves from my detections?
The later versions of OpenCV might be causing some linking errors, especially if pkgconfig is not properly configured on your system. The following modification to the Makefile has been reported to work:
Manually provide the inputs to include files and libraries.
INCS = -I/usr/local/include/opencv
LIBS = -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui
-lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d
-lopencv_objdetect -lopencv_contrib -lopencv_legacy
Change the order in the evaluate.
evaluate: $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
[Thanks to Lourdes Ramírez Cerna for pointing this out.]
问题9. 你们提供的代码 'evaluation.tgz' 跟我的OPENCV在一起不能用. 怎么给我的检测工作建立ROC呢?
最新版本的opencv可能会产生一些链接错误, 尤其当pkgconfig在你的系统上没有被配置的时候. 依照下面来修改Makefile就会解决问题了:
手工提供输入来包含相关文件和库文件.
INCS = -I/usr/local/include/opencv
LIBS = -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui
-lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d
-lopencv_objdetect -lopencv_contrib -lopencv_legacy
在evaluate中改变顺序.
evaluate: $(OBJS)
$(CC) $(OBJS) -o $@ $(LIBS)
[感谢 Lourdes Ramírez Cerna 帮忙解决此问题.]
Q10. Building the evaluation package for OpenCV 3.2 causes errors.
Removing lopencv_contrib and lopencv_legacy from the Makefile LIBS variable, and adding lopencv_imgcodecs causes this to be resolved.
[Thanks to Yoel Shapiro for pointing this out.]
问题10. 在OpenCV 3.2上编译evaluation包时,产生了错误.
从Makefile 的LIBS变量中移除 lopencv_contrib and lopencv_legacy,然后添加lopencv_imgcodecs 就会解决问题.
[感谢 Yoel Shapiro 帮忙解决此问题.]
网友评论