赞
踩
一、前言
本篇主要记录由mtcnn检测得的关键点作人头姿态估计,思路较为简单,mtcnn是一种可以检测输出5个关键点的人脸检测算法,分别是左眼,右眼,鼻尖,嘴的左角和嘴的右角。当获得图像中人脸的5个2D关键点,再由Opencv中POSIT的姿态估计算法将5个世界坐标系的模板3D关键点通过旋转、平移等变换投射至这5个2D关键点,进而估计得变换参数,最后求得2D平面中的人头的姿态参数,分别为Yaw:摇头 左正右负、Pitch:点头 上负下正、Roll:摆头(歪头)左负 右正
二、Mtcnn-light
对于mtcnn,网上具有较多开源版本,这里使用light版本,优点是速度较快,缺点为模型准确性略有下降,为输出5个关键点,对原来src/mtcnn.cpp中增加重载函数 void findFace(Mat &image , vector<struct Bbox> &resBox );
三、mtcnn人头姿态估计
人头姿态估计代码参考自https://blog.csdn.net/zzyy0929/article/details/78323363
- #include "network.h"
- #include "mtcnn.h"
- #include <time.h>
-
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <map>
- #include "opencv2/opencv.hpp"
-
- void rot2Euler(cv::Mat faceImg,const cv::Mat& rotatio
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。