最近小编在后台收到一名同学的留言,她问“在前向推理过程中,mtcnn中的偏移量是如何用到的,我想对于初学者而言,也仅能跑跑代码,看一下效果,但对于一些原理性的东西,理解的不是很透彻,今天,小编就带大家来看一下,mtcnn中的偏移量是如何使用的。
首先看一下mtcnn中的偏移量。还要从训练数据的准备开始,这里我截取了github上start比较多的项目来看的(项目地址:https://github.com/Seanlinx/mtcnn,欢迎star)。
这里x1,y1,x2,y2(人脸左上角和右下角的坐标)为 图像中人脸的真实位置,nx1,nx2,nx3,nx4为根据 x1,y1,x2,y2生成的随机坐标(目的为扩大数据集),nx1,nx2,nx3,nx4与x1,x2,x3,x4的对应关系为:
offset_x1 = (x1 - nx1) / (x2 - x1) offset_y1 = (y1 - ny1) / (y2 - y1) offset_x2 = (x2 - nx2) / (x2 - x1) offset_y2 = (y2 - ny2) / (y2 - y1)
那么我们可以得出
x1 = offset_x1 * (nx2 - nx1) + nx1 y1 = offset_y1 * (ny2 - ny1) + ny1 x2 = offset_x2 * (nx2 - nx1) + nx2 y2 = offset_y2 * (ny2 - ny1) + ny2
其中 这里的 nx1,nx2,ny1,ny2为推理过程中 获取的坐标。
本文暂时没有评论,来添加一个吧(●'◡'●)