[qt+opencv] Realice el sistema de tarjeta perforada de reconocimiento facial 2.0

1. Introducción

Reconocimiento facial Versión 1.0:

[QT] Sistema de tarjetas perforadas basado en reconocimiento facial (QT+Opencv + SQLite)-- proceso de diseño https://blog.csdn.net/qq_40602000/article/details/99674066?spm=1001.2014.3001.5502

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

Supongo que te gusta

Origin blog.csdn.net/qq_40602000/article/details/124416892
Recomendado
Clasificación