番外篇1.3 导入CASIA_FaceV5,作为负样本,优化性能

继续上面的来。
更换了一波新电脑,现在可以跑gpu了!
首先给出CASIA_FaceV5的下载地址:
技术链接:https://pan.baidu.com/s/1xgQE-rAiwKpVuWzDcqXtng 密码:muk0
一共是500个人的2500张照片(灯光效果太怪,可以拍鬼片了。。)
然后准备修改我们的程序~
首先是把同学的照片去掉,负样本换成这个FaceV5的数据集,这样正负样本比例为约1:2.5,这个比例也比之前的1:1科学。
然后借用inceptionv3的思路,把后面的3*3卷积层分解为1*3卷积层加一个3*1卷积层,既增加了非线性,又增加了深度,还减少了计算量。
本来想防止过拟合加入BN,结果想了想,数据太少,也没这个机会给我过拟合,也就算了。
样本数一共3400左右,分训练集约2380个,验证集约1000个,测试集约1700个。
一次minibatch是10个,step就是238,跑10个epoch,一共训练了23800+次。
每一个epoch大概是5s左右,使用的是基础的1050ti显卡。
每个epoch采用数据增强的技术,会对图像产生随机转动。虽然这个识别方式会对旋转鲁棒,不过底层的opencv自带的分类器并不对旋转鲁棒,所以如果要在这个方面提升,还是要使用R-CNN或one step(YOLO, SSD)等技术。
优化后的程序明显对光照鲁棒(因为负样本的光照条件不一),而且对于表情等,只要分类器可以识别,就可以很轻松的识别出是否为我。
不过由于负样本的光照(需要大多为冷光)与正样本的光照(为白光/暖光)不同,所以对光照色度鲁棒性可能较差。
想想还有什么需要补充的呢。。
优化这方面,局限准确度等参数(由于目前要求较小)的是本身的这个基底用的是opencv的识别器,识别精度、抗遮挡能力、鲁棒性都有所限制;还有样本数太少,识别的能力也会有限制。素以我准备用最近比较火热的yolo3来实现一次,直接跳过opencv的识别器。
这个放下一章说,如果有时间完成的话。。很久没更博了,最近还要准备笔试,半路出家的还是很担心自己的笔面试的。。
希望有了解的大佬可以指导我一下拉~

你可能感兴趣的:(心得体会)