[caffe]MTCNN实践

实现参考:https://github.com/foreverYoungGitHub/MTCNN

MTCNN作者提供了matlab版的测试代码,但是实验室的生产环境是caffe,这篇文章记录下使用C++改写MTCNN的一些注意点。

类似于caffe提供的examples里的cpp_classification,创建MTCNN类用于其他函数调用。

1、MTCNN构造函数中使用模型文件和训练文件初始化网络

2、预处理:与matlab按列存储数据不同,caffe按行存储数据,因此,如果想要使用作者提供的caffemodel和prototxt文件,需要在预处理阶段将图像进行转置处理

3、P-Net:多尺度缩放图像,全卷积输出得到边界框校正回归向量和类别向量,根据边界框校正回归向量(归一化值)生成在输入图像上的边界框表示(左上点坐标、宽度、高度),这里需要注意的是记住P-Net中池化下采样的倍数,然后才能根据每幅图的输出大小乘以相应的下采样倍数还原到输入图像大小。得到每幅图像的一系列候选框后,进行NMS处理。

4、R-Net:在原图上裁剪P-Net输出的矩形区域进行归一化作为输入,送入网络输出边界框偏移量,在P-Net边界框的基础上进行校正计算,然后进行NMS处理。

5、O-Net:操作类似于R-Net。

 

训练:

(1)使用caffe进行训练时由于输入是多标签数据,可以考虑定义自己的层类型、Python数据输入层或者HDF5文件。

(2)因为是多任务训练,所以损失函数需要多个损失组合。

 

转载于:https://www.cnblogs.com/listia/articles/8620050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值