1. Introducción
Reconocimiento facial Versión 1.0:
Reconocimiento facial Versión 2.0:
Según las sugerencias de los fanáticos, se han realizado algunas modificaciones sobre la base de 1.0
1. Reduzca la engorrosa configuración de opencv, abra el proyecto para compilarlo y ejecutarlo (resuelva el problema de la configuración incorrecta de la ruta y la falla de compilación);
# 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. Se eliminó el archivo at.txt que se usaba para generar entrenamiento usando el script de python y se escribió en C++ (para resolver el problema de no tener un entorno de 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. Se utiliza el estilo oscuro qdarkstyle (para resolver el problema de la interfaz antiestética);
4. Las funciones incluyen detección de rostros, reconocimiento de rostros, entrada de rostros, registro de inserción, notificación de liberación, etc.
2. Efecto de demostración
Demostración de reconocimiento facial Qt+opencv
1. Interfaz de tarjeta perforada: lectura de cámara, detección y reconocimiento de rostros, tarjeta perforada, visualización de tiempo, barra de notificaciones, información estadística, resultados de reconocimiento
2. Interfaz de entrada de cara: entrada de información básica, entrada de cara, entrenamiento modelo
3. Interfaz de registros perforados: consulta por condiciones, borrar registros, exportar registros
4. Interfaz de configuración: configuración del período de tiempo de perforación, configuración de la barra de notificación