一、简介
人脸识别1.0版本:
【QT】基于人脸识别的打卡系统(QT+Opencv + SQLite)--设计过程_Jason~shen的博客-CSDN博客_qt人脸识别目录使用平台设计目标功能描述设计方案数据库设计使用说明使用平台https://blog.csdn.net/qq_40602000/article/details/99674066?spm=1001.2014.3001.5502
人脸识别2.0版本:
在粉丝们的建议下在1.0的基础上做了一定的修改
1、减少了opencv繁琐的配置,打开工程即可编译运行(解决路径配置不当编译不通过问题);
# opencv
OPENCVPATH=$$PWD/../../3rdparty/opencv64
OPENCV_LIB=$$OPENCVPATH/x64/mingw/lib
OPENCV_INC=$$OPENCVPATH/include
INCLUDEPATH +=$$OPENCV_INC
INCLUDEPATH +=$$OPENCV_INC/opencv
INCLUDEPATH +=$$OPENCV_INC/opencv2
LIBS += $$OPENCV_LIB/libopencv*
BINPATH=$$PWD/../../bin
LIBSPATH = $$PWD/../Libs
2、去除了使用python脚本生成训练使用的at.txt文件,改为c++编写(解决没有python环境的问题);
QStringList Util::getFileFolders(const QString &dirPath)
{
QStringList folderList;
QDir dir(dirPath);
dir.setFilter(QDir::Dirs);
foreach(QFileInfo fullDir, dir.entryInfoList())
{
if(fullDir.fileName() == "." || fullDir.fileName() == "..") continue;
folderList.append(fullDir.fileName());
}
return folderList;
}
void Util::createAtLabel(const QString &facePath, const QString &atPath)
{
qDebug() <<facePath;
qDebug()<<atPath;
deleteFileOrFolder(atPath);
QFile file(atPath);
file.open(QIODevice::ReadWrite | QIODevice::Text);
QStringList idList = getFileFolders(facePath);
qDebug()<<idList;
foreach (QString id, idList) {
QString oneFacePath = facePath + "\\" + id;
QStringList imageList = getImageFileNames(oneFacePath);
foreach (QString name, imageList) {
QString labelInfo = oneFacePath + "\\" + name + ";"+id;
file.write(labelInfo.toUtf8() + "\n");
}
}
file.close();
}
3、使用了qdarkstyle暗黑风格样式(解决界面不美观问题);
4、功能包括人脸检测、人脸识别、人脸录入、打卡记录、发布通知等(功能上没有太大变化,解决了一些bug)。
二、演示效果
qt+opencv人脸识别演示
1、打卡界面:相机读取、人脸检测与识别、打卡、时间显示、通告栏、统计信息、识别结果
2、人脸录入界面:基本信息的录入、人脸的录入、模型的训练
3、打卡记录界面:按条件查询、清空记录、导出记录
4、设置界面:打卡时间段设置、通告栏设置
版权归原作者 Jason~shen 所有, 如有侵权,请联系我们删除。