目录
- 1 编译opencv库
- 1.1 下载源代码
- 1.2 qt编译opencv
- 1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat
- 2 编译SeetaFace2代码
- 2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
- 2.2遇到报错Model missing
- 3 测试两个环境能否使用
- 3.1 配置环境变量
- 4客户端设计
更多内容可以点击这里查看个人博客: 个人博客
1 编译opencv库
1.1 下载源代码
源代码下载地址:https://github.com/opencv/opencv
第三方库下载地址:https://github.com/opencv/opencv_contrib
cmake下载地址:https://cmake.org/download/
都下载4.5.2版本的,把两个zip都解压,windows的第一个库是直接exe解压的
1.2 qt编译opencv
使用qt打开项目,源代码opencv/sources/CMakeLIsts.txt
使用MinGW64构建项目,稍等一会,等qt吧资源都加载完
点击项目,搜索ms取消这两个安装项目,将第三方库的人脸识别模块加入,注意debug为release版本,所有操作都是在release版本上执行的,图片还没更改
修改安装路径
修改下边构建步骤里边 为all,全部安装,最后执行Cmake
1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat
发现一直卡着,这个face_landmark_model.dat下载不下来
采取手动下载的方式
https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
放到opencv的路径下,并且把没下载完的文件的前缀也加上,替换,再次执行Cmake成功
完毕后回到编辑点击启动,更改构建模式为release,运行
2 编译SeetaFace2代码
2.1 遇到报错By not providing “FindOpenCV.cmake” in CMAKE_MODULE_PATH this project has
下载代码:https://github.com/seetafaceengine/SeetaFace2
依旧是打开CmakeList文件,release模式,遇到报错
打开CmakeList文件添加上这一句,加上你刚刚安装的opcv的路径,注意斜杠的位置
`set(OpenCV_DIR E:/Environment/opencv452)`
修改安装路径,opencv路径等等,更上边类似,执行cmake,执行
2.2遇到报错Model missing
执行后遇到报错模型丢失
下载模型,把四个模型都下载了,放入生成release的文件夹
https://github.com/seetafaceengine/SeetaFace2?tab=readme-ov-file
再次报错,没有图片,找张人脸图片放入
3 测试两个环境能否使用
3.1 配置环境变量
找到系统环境变量PATH,添加两个库的bin文件夹
新建一个qt项目,在配置文件pro里添加上两个库的路径,并且添加上lib。这样在引入头文件就不会报错
#添加头文件
INCLUDEPATH += E:\Environment\opencv452\include
INCLUDEPATH += E:\Environment\opencv452\include\opencv2
INCLUDEPATH += E:\Environment\SeetaFace2\include
INCLUDEPATH += E:\Environment\SeetaFace2\include\seeta
#添加库
LIBS += E:\Environment\opencv452\x64\mingw\lib\libopencv*
LIBS += E:\Environment\SeetaFace2\lib\libSeeta*
#include "mainwindow.h"
#include <QApplication>
#include <opencv.hpp>
#include <FaceDetector.h>
using namespace cv;
using namespace seeta::v2;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
cv::namedWindow("fram");
Mat mt = imread("E:/CPP_Study/QT/QTCode/opencvSeetaface/1.jpg");
imshow("fram",mt);
cv::waitKey(10);
seeta::ModelSetting::Device device = seeta::ModelSetting::CPU ;
int id = 0;
seeta::ModelSetting FD_model("E:/Environment/SeetaFace2/bin/model/fd_2_00.dat",device ,id);
seeta::FaceDetector FD(FD_model);
return a.exec();
}
4客户端设计
接下来的文章参考我的个人博客纯真丁一郎