• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Dlib初入门:实现人脸特征点检测(附CMake安装教程)

人工智能 aic1999 1697次浏览 0个评论

我的系统:Win10 64位(其实所有系统都差不多的流程) 软件工具:Visual Studio 2017  

目录

 

一、安装CMake

二、使用CMake编译生成Dlib库文件(Release版)

三、在Visual Studio中配置Dlib

四、配置openCv

五、实现人脸特征点检测

 


一、安装CMake

  其实好简单,就两步:   1、cmake官网下载cmake(选择后缀为msi的文件,这个文件里面才有cmake.exe)  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   下载完后我的目录:  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   2、将cmake.exe所在的bin目录添加到环境变量中   在第一步双击msi文件,安装cmake的时候,就有选项询问你是否配置环境变量的,如果那时候没有选择配,就只能手动配置啦。   例如我的就是:D:\2018three\class\js\HW\tool\cmakeexe\bin(选择有cmake.exe在的那个路径)   3、检查是否成功安装   打开“cmake.exe”闪退不要紧,cmake-gui.exe能打开就行。或者直接在cmd输入”cmake”,看看安装是否成功。如下:  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)  

二、使用CMake编译生成Dlib库文件(Release版)

  1、官网上下载文件(可以看看官网的编译教程)   例如解压后我的dlib文件夹名是 “ dlib-19.16 ”。   2、使用CMake编译dlib(参考链接:使用cmake命令行模式编译dlib)   在dlib文件夹下打开cmd (主要是为了让cmd的路径在dlib文件夹下)   然后执行如下代码,mkdir build的意思是在dlib文件夹下再新建一个“build”文件夹。cd build 是进入build文件夹路径。我是已经在dilb文件夹下新建好了build文件夹,并且路径已经定位到build文件夹下。所以我没有执行这两条语句。  

mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" ..
cmake --build . --config Release

  一般而言,执行完”cmake –build . –config Release”就编译完成了,但是我报错“Error:could not load cache”了。 在这个回答的提醒下,我再执行了一次”cmake ..”,才成功生成库文件。  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   这时候我们会看到dlib的build目录下生成了一堆文件。  

三、在Visual Studio中配置Dlib

  1、首先在VS中创建一个空项目(例如我的项目名是DlibTest2) 2、打开项目属性页,注意切换到“Release”版本下,而不是“Debug”。 3、打开VC++目录->包含目录->添加上dlib文件夹的路径  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   4、打开链接器->输入->附加依赖项->添加上刚刚编译生成好的dlib.lib的路径  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   ok,配置完成了。  

四、配置openCv

  dlib的example实例代码有不少是需要结合openCv库的。所以最好配置opencv。 大部分弄dlib的都早已配置好了opencv了吧?我就不再详述了。opencv安装配置教程  

五、实现人脸特征点检测

  1、将dlib-19.16\dlib\all目录下的source.cpp加入到源文件中(必须要!) 2、下载人脸库,解压后将dat文件放置在 “项目名/项目名”目录下,例如我的:  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   3、新建cpp文件:facepoint.cpp(代码出自:Dlib提取人脸特征点算法)  

#include <dlib/opencv.h>
#include <opencv2/opencv.hpp>
#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>
 
using namespace dlib;
using namespace std;
 
int main()
{
	try
	{
		cv::VideoCapture cap(0);
		if (!cap.isOpened())
		{
			cerr << "Unable to connect to camera" << endl;
			return 1;
		}
 
		//image_window win;
 
		// Load face detection and pose estimation models.
		frontal_face_detector detector = get_frontal_face_detector();
		shape_predictor pose_model;
		deserialize("shape_predictor_68_face_landmarks.dat") >> pose_model;
 
		// Grab and process frames until the main window is closed by the user.
		while (cv::waitKey(30) != 27)
		{
			// Grab a frame
			cv::Mat temp;
			cap >> temp;
 
			cv_image<bgr_pixel> cimg(temp);
			// Detect faces 
			std::vector<rectangle> faces = detector(cimg);
			// Find the pose of each face.
			std::vector<full_object_detection> shapes;
			for (unsigned long i = 0; i < faces.size(); ++i)
				shapes.push_back(pose_model(cimg, faces[i]));
	
			if (!shapes.empty()) {
				for (int i = 0; i < 68; i++) {
					circle(temp, cvPoint(shapes[0].part(i).x(), shapes[0].part(i).y()), 3, cv::Scalar(0, 0, 255), -1);
					//	shapes[0].part(i).x();//68个
				}
			}
			//Display it all on the screen
			imshow("Dlib特征点", temp);
 
		}
	}
	catch (serialization_error& e)
	{
		cout << "You need dlib's default face landmarking model file to run this example." << endl;
		cout << "You can get it from the following URL: " << endl;
		cout << "   http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2" << endl;
		cout << endl << e.what() << endl;
	}
	catch (exception& e)
	{
		cout << e.what() << endl;
	}
}

  最后的运行结果:  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   该项目的结构列表为:  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)   其中”webcam_face_pose_ex.cpp”来自 “dlib / examples” 目录,这是dlib自带的示例代码,可以运行尝试下功能。注意一个项目中只能有一个主函数main,不然会报错。   对了,记得也要把vs调到realease,不然可能出现错误。  
Dlib初入门:实现人脸特征点检测(附CMake安装教程)


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Dlib初入门:实现人脸特征点检测(附CMake安装教程)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……