老师你好,问一下facenet的几个问题

来源:9-18 facenet web接口封装(2)

慕仙9314769

2019-10-08

老师你好,有几个问题想问一下,
1.facenet模型评价的时候需要用到pairs.txt文件,如果我需要评价这个模型在其他的数据集的表现这个文件怎么生成,;
2.我发现即使按照老师的建议三个数据集一起训练,训练出来的模型对于同个人脸在不同的光照下提取到的特征差别很大,欧氏距离差别很大,请问实际工业应用场景中是这样做的吗,或者说这个课程跟实际工业应用比还差什么东西;
3.PR曲线具体怎么画,阈值具体怎么确定,直接看图的吗

写回答

1回答

会写代码的好厨师

2019-10-09

问题问的很好。

  1. pairs.txt,里面存放的是样本对,包括相同人的样本对和不同人的样本对。其中,10-300是循环10次,每次正负样本对个300个。后面则是所谓的样本对:正样本对:Abel_Pacheco 1 4  第一个字段表示一个人的iD,对应在数据上就是文件夹的名字,后面的1和4分别对应到文件夹内部的图片ID。   负样本对:Abdel_Madi_Shabneh 1 Dean_Barker 1 对应两个ID和ID下的两张图。对照这个博客看:https://blog.csdn.net/zhongzhongzhen/article/details/78293789

  2. 不同关照的人脸是人脸识别或者说识别问题中的一个很大的问题,单纯的把这几个数据集合并在一起,并没有针对性的解决这个问题。实际工业场景,我们需要做相关的优化,比较常见的方法是加入光照变化的数据增强,,可以加入到train_tripletloss.py的这个位置

//img1.sycdn.imooc.com/szimg/5d9d51ed0932d6b708870321.jpg

 #随机设置图片的亮度

    random_brightness = tf.image.random_brightness(img,max_delta=30)

    #随机设置图片的对比度

    random_contrast = tf.image.random_contrast(img,lower=0.5,upper=1.5)

    #随机设置图片的色度

    random_hue = tf.image.random_hue(img,max_delta=0.5)

    #随机设置图片的饱和度

    random_satu = tf.image.random_saturation(img,lower=0.5,upper=1.5)


另外,就是补充一些强光和暗光场景的图片。

实际工业场景,需要对模型做进一步的压缩,裁剪和量化。数据层面主要是补充更多的样本,清洗样本。实际上,在工作中很多的时间是放在数据处理上。


3. PR曲线,可以这样理解。首先要明白在人脸匹配上怎么去定义True和False这两个变量。就需要定义阈值,大于阈值则为不同人,小于阈值则为同一个人。正样本为同一个人构成的样本对,负样本为不同人构成的样本对,这样就能够统计正负样本正确和错误的数量。然后就可以计算出当前阈值下的precision-recall。遍历不同的阈值,就能够拿到多组pr值,就能够绘制出PR曲线。根据PR曲线,就可以选取合适的阈值。如果需要p值比较高的话,就选择p较高的情况下的阈值,如果要求r比较高的话,就选择r值比较高的时候的阈值。

1
1
慕仙9314769
非常感谢!
2019-10-09
共1条回复

Python3+TensorFlow打造人脸识别智能小程序

理论与实战项目双管齐下,让AI技术真正落地应用,适合毕设展示。

1086 学习 · 538 问题

查看课程