使用OpenCV的dnn模块写基于深度学习的图片人脸检测。
需要用到两个文件:deploy.prototxt 和res10_300x300_ssd_iter_140000.caffemodel。deploy.prototxt在opencv的安装目录opencv-3.4.1\samples\dnn\face_detector下。res10_300x300_ssd_iter_140000.caffemodel自行下载。
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
using namespace std;
using namespace cv;
using namespace cv::dnn;
// Set the size of image and meanval
const size_t inWidth = 300;
const size_t inHeight = 300;
const double inScaleFactor = 1.0;
const Scalar meanVal(104.0, 177.0, 123.0);
int main(int argc, char** argv)
{
// Load image
Mat img;
// Use commandline
#if 0
if (argc < 2)
{
cerr << "please input " << endl;
cerr << "[Format]face_detector_img.exe image.jpg" << endl;
return -1;
}
img = imread(argv[1]);
#else
// Not use commandline
img = imread("E:\\faceRec\\facePictures\\