目录
目标定位特征点检测目标检测(跳过)交并比Iou非极大值抑制anchorYOLOproposal人脸识别one shotsimilarity函数:Triplet loss 个人学习记录,侵删目标定位
此例中, bx的理想值是0.5,因为它表示汽车位于图片水平方向的中间位置;by大约是0.7,表示汽车位于距离图片底部 3 \10的位置; bh 约为0.3,因为红色方框的高度是图片高度的0.3倍; bw约为0.4,红色方框的宽度是图片宽度的0.4倍。
Pc为0,1,判断是否有对象。为1时有C1,C2,C3来说明类别。
Pc为0,1的loss也不同。为0时 ( y − y 1 ) 2 (y-y_1)^2 (y−y1)2,只需要关注神经网络输出 pc的准确度。
特征点检测
通过输出图片上特征点的 (x,y) 坐标来实现对目标特征的识别。
假设脸部有64个特征点,有些点甚至可以帮助你定义脸部轮廓或下颌轮廓。选定特征点个数,并生成包含这些特征点的标签训练集,然后利用神经网络输出脸部关键特征点的位置。将人脸图片输入卷积网络,输出1或0,1表示有人脸,0表示没有人脸,然后输出 ( l 1 x , l 1 y ) . . . ( l 64 x , l 64 y ) (l_{1x},l_{1y})...(l_{64x},l_{64y}) (l1x,l1y)...(l64x,l64y)用 l l l代表一个特征,这里有129个输出单元,其中1表示图片中有人脸,因为有64个特征,64×2=128,所以最终输出128+1=129个单元,由此实现对图片的人脸检测和定位.
目标检测(跳过)
/weixin_44176643/article/details/19113
交并比Iou
计算预测框和groundtruth框的交集和并集之比,大于0.5就算检测正确,可以自己设置阈值
非极大值抑制
保证对象被检测到一次。
当同一个物体有多个框检测到它,选择概率最高的那个,然后逐一审视剩下的框,所有和这个最大的边框有很高交并比(大于0.5),高度重叠的其他边界框,那么这些输出就会被抑制。
anchor
/weixin_44176643/article/details/19113#t18
YOLO
输出后依次对每个类别进行NMS。
proposal
/weixin_44176643/article/details/19113#t6
人脸识别
人脸验证,只需要弄明白这个人是否和他声称的身份相符
人脸识别 在库中找到是哪个人。
one shot
一次学习。
similarity函数:
输入两个人脸给d函数,输出二者的差异度。如果这两张图片的差异值小于某个阈值 ,它是一个超参数,那么这时就能预测这两张图片是同一个人,如果差异值大于阈值,就能预测这是不同的两个人,这就是解决人脸验证问题的一个可行办法。在人脸识别中,那一个人的照片依次和库里的其他照片进行对比。实现上面的功能,需要构建Siamese网络:
将图片输入网络后,给出一个128维的向量。将d函数定义为,两个向量的之差的范数。d函数小的说明图片相似。
Triplet loss
要想通过学习神经网络的参数来得到优质的人脸图片编码,方法之一就是定义三元组损失函数然后应用梯度下降。
三个照片,anchor(原图),positive(正确的其他图),negative(错误的)。
α是超参数,它拉大了Anchor和Positive 图片对和Anchor与Negative 图片对之间的差距。目标是使绿色部分小于等于0。
如何选择A,P,N:
首先保证每个人都有多张,只有一张无法组成成对的训练集。如果随机选择,右边很容易大于左边,没有意义,因为网络总是很简单得到正确结果。so,尽可能让d(A,P)和d(A,N)接近,梯度下降才能发挥作用。
把人脸验证当作一个监督学习,创建一个只有成对图片的训练集,不是三个一组,而是成对的图片,目标标签是1表示一对图片是一个人,目标标签是0表示图片中是不同的人。利用不同的成对图片,使用反向传播算法去训练神经网络,训练Siamese神经网络。