当前位置: 首页 > news >正文

视频素材交易网站建设公司进门logo形象墙

视频素材交易网站建设,公司进门logo形象墙,内网建立网站,滨海天津网站建设前言 依赖库#xff1a;opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不记录如何配置#xff0c;重点在实现上。使用libfacedetection实现人脸区域检测#xff0c;联合dlib标记人脸特征点#xff0c;最后使用opencv的FaceRecognizer实现人脸识别。 准备工作 1、配置好Op… 前言 依赖库opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不记录如何配置重点在实现上。使用libfacedetection实现人脸区域检测联合dlib标记人脸特征点最后使用opencv的FaceRecognizer实现人脸识别。 准备工作 1、配置好Opencv2.4.9。Opencv3.1需要另外下载一个包才有FaceRecognizer 2、配置好dlib 19.0(版本其实没有多大关系) 3、配置好ShiQi.Yu的人脸检测库 思想 训练模块人脸检测——获取人脸区域的点坐标——人脸关键点标记——人脸对正——归一化处理——保存图片——手动筛选图片——训练样本——得到train.xml 识别模块读取train.xml——循环人脸检测——获取人脸区域的点坐标——人脸关键点标记——人脸对正——归一化处理——送入model-predict——预测出结果——putText在方框上写出名字 结果 识别速度0.15~0.25秒Release平台。 识别精度还可以 使用了一段中国好声音的视频做识别。 当然这里用的是Fisherface算法主要还是样本不多已经可以搞定了。 代码 ReadCSV.h #include opencv.hpp #include iostream #include fstream using namespace cv; using namespace std; static void read_csv(const string filename, cv::vectorMat images, cv::vectorint labels, char separator ;) {std::ifstream file(filename.c_str(), ifstream::in);if (!file) {string error_message No valid input file was given, please check the given filename.;CV_Error(CV_StsBadArg, error_message);}string line, path, classlabel;while (getline(file, line)) {stringstream liness(line);getline(liness, path, separator);getline(liness, classlabel);if (!path.empty() !classlabel.empty()) {images.push_back(imread(path, 0));labels.push_back(atoi(classlabel.c_str()));}} } FaceRotate.h #include dlib/image_processing/frontal_face_detector.h #include dlib/image_processing/render_face_detections.h #include dlib/image_processing.h #include dlib/gui_widgets.h #include dlib/image_io.h #includedlib/opencv/cv_image.h #include dlib/opencv.husing namespace dlib;frontal_face_detector detector get_frontal_face_detector(); shape_predictor sp;//Already get FaceRecognition.cpp #include FaceDetect.h #include ReadCSV.h const int namenumber 4;//测试的人脸数量 const string textname[namenumber] { Hariem, Miss.Na, Mr.Wang, Jay.Chou };//做一个储存人脸名字的数组PtrFaceRecognizer GetTrainModel(string fn_csv)//输入CSV文件的路径名 {vectorMat images; vectorint labels;try {read_csv(fn_csv, images, labels);}catch (cv::Exception e) {cerr Error opening file \ fn_csv \. Reason: e.msg endl;// 文件有问题我们啥也做不了了退出了exit(1);}// 如果没有读取到足够图片我们也得退出.if (images.size() 1) {string error_message This demo needs at least 2 images to work. Please add more images to your data set!;CV_Error(CV_StsError, error_message);}PtrFaceRecognizer model createEigenFaceRecognizer(80);//创建人脸识别类 可修改 LBPHFace、EigenFace、FisherFacemodel-train(images, labels);return model; }int main() {Dlib_Predefine();//加载dlib的文件PtrFaceRecognizer model GetTrainModel(face.csv);//获得模型VideoCapture cap(好声音.mp4);Mat frame,gray;while (true){cap frame;if (!frame.empty()){gray FaceDetect(frame);if (!gray.empty())putText(frame, textname[model-predict(gray)], Point(50, 50), FONT_HERSHEY_DUPLEX, 3, Scalar(230, 255, 0), 2);//model-predict(frame) predictLabel 名字写在 1 1imshow(Face Recogniton, frame);waitKey(1);}else{ cout The Videos end. endl; break; }}} FaceDetect.cpp 用了掩码。 #include FaceDetect.h #include FaceRotate.h void Dlib_Predefine() {deserialize(shape_predictor_68_face_landmarks.dat) sp;//读入标记点文件 }cv::Mat FaceToOne(cv::Mat source)//归一化处理函数 {cv::equalizeHist(source, source);//直方图均衡cv::resize(source, source, cv::Size(92, 112));//裁剪cv::Mat Mask cv::imread(mask.jpg, 0);cv::Mat changedMask;source.copyTo(changedMask, Mask);return changedMask; }Mat FaceDetect(Mat frame)//脸是否存在 {Mat gray, error;cvtColor(frame, gray, CV_BGR2GRAY);int * pResults NULL;pResults facedetect_frontal_tmp((unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, gray.step, 1.2f, 5, 24);int peopleNUM (pResults ? *pResults : 0);for (int i 0; i peopleNUM; i)//代表有几张人脸(pResults ? *pResults : 0){short * p ((short*)(pResults 1)) 6 * i;Rect opencvRect(p[0], p[1], p[2], p[3]);//gray gray(opencvRect);cv::rectangle(frame, opencvRect, Scalar(230, 255, 0));dlib::rectangle dlibRect((long)opencvRect.tl().x, (long)opencvRect.tl().y, (long)opencvRect.br().x - 1, (long)opencvRect.br().y - 1);//人脸对齐技术提高了准确率dlib::full_object_detection shape sp(dlib::cv_imageuchar(gray), dlibRect);//标记点std::vectorfull_object_detection shapes;shapes.push_back(shape);//把点保存在了shape中dlib::arrayarray2drgb_pixel face_chips;extract_image_chips(dlib::cv_imageuchar(gray), get_face_chip_details(shapes), face_chips);Mat pic toMat(face_chips[0]);cvtColor(pic, pic, CV_BGR2GRAY);return FaceToOne(pic);}return error; } FaceDetect.h #include opencv.hpp #include facedetect-dll.husing namespace cv; using namespace std;Mat FaceDetect(Mat frame); void Dlib_Predefine();//dlib 预定义的函数FaceRotate.h #include dlib/image_processing/frontal_face_detector.h #include dlib/image_processing/render_face_detections.h #include dlib/image_processing.h #include dlib/gui_widgets.h #include dlib/image_io.h #includedlib/opencv/cv_image.h #include dlib/opencv.husing namespace dlib;frontal_face_detector detector get_frontal_face_detector(); shape_predictor sp;//Already get Mask图片 转载于:https://www.cnblogs.com/mtcnn/p/9412040.html
http://wiki.neutronadmin.com/news/312256/

相关文章:

  • 上海建站网站青岛网站设计软件
  • 阿里巴巴国际站的前台网址是中国商标网官网入口
  • 网站设计师 要求长春做网站价格
  • 旅游景区网站建设重庆新闻app
  • 宣威做网站推广的公司搜索引擎优化seo目的
  • 网站后台更换首页图片重庆潼南网站建设
  • 北京建设网站网站一流网站模板
  • 网络营销课程总结与心得体会网站seo需要用到哪些工具
  • 怎么学习企业网站维护页面设计比较好的公司
  • 在线做mtv网站企业网站的推广形式有
  • 网站建设 资讯动态wordpress 分类不显示图片
  • 做网站前的准备工作网站自己怎么做直播
  • 旅游网站策划书模板网页设计入门书哪本比较好
  • 平台网站开发方案金华企业网站推广
  • wordpress没有找到站点关键词搜索名词解释
  • 官方网站开发模板网站开发需要什么专业知识
  • 网站优化工具简单的安卓app开发实例
  • 做小说网站做国外域名还是国内的好处做平面设计需要学什么软件
  • 营销型网站定义网站建设电话营销话术
  • 官方网站aspcms广州做网站公司哪家好
  • 北京建设监理协会网站wordpress 重置id
  • 建站网站图片不显示广州海珠区租房子一般多少钱
  • 山东农业大学学风建设专题网站网站备案 途径
  • 人力资源网站怎么做木马网站链接有什么
  • 青岛模板化网站网站快速推广
  • 网站内容是什么广州番禺钟村
  • 跨境电商哪个平台比较好做吉林长春seo网站建设网站优化
  • 孟村县网站建设价格如何进行新产品的推广
  • win7局域网网站开发c#做的网站怎么上传
  • 邯郸网站建设恋家岳阳平台网站制作