diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/device/iris/IrisRecogProcess.cpp b/device/iris/IrisRecogProcess.cpp index a25eb87..d843c51 100644 --- a/device/iris/IrisRecogProcess.cpp +++ b/device/iris/IrisRecogProcess.cpp @@ -42,7 +42,7 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -55,12 +55,12 @@ // this->msleep(200); // 200ms后再判断 // continue; // } - LOG(DEBUG) << QString("[IrisRecogProcess]准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); // 取出虹膜图像栈中的一条数据 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[IrisRecogProcess]取出虹膜图像").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 取出虹膜图像").toStdString(); // 调用找眼分类器算法 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); @@ -70,14 +70,14 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); this->msleep(200); // 200ms后再判断 continue; } - LOG(DEBUG) << QString("[IrisRecogProcess]找到眼睛调用远程算法进行识别").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 找到眼睛调用远程算法进行识别").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -107,15 +107,15 @@ // 状态修改为特征提取 CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_FEATURE_EXTRACT; - QTimer toTimer; + //QTimer toTimer; QEventLoop loop; - toTimer.singleShot(3000, &loop, &QEventLoop::quit); + //toTimer.singleShot(3000, &loop, &QEventLoop::quit); connect(clientUtil, &SocketClientUtil::responseReaded, &loop, &QEventLoop::quit); loop.exec(); QByteArray matchResponse = clientUtil->getResponse(); - LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); // 算法调用返回成功 if (matchResponse.size() > 0) @@ -128,10 +128,10 @@ QString personId = messList.at(1); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_SEARCH_SUCC; - LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); +// LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; emit findMatchedIris(personId, 2); @@ -139,14 +139,14 @@ } else if (code.toInt() == -200) { // 匹配失败 - LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); // 匹配失败则尝试次数+1 addOneTryCount(); } else if (code.toInt() == -100) { // 编码失败 - LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); // 编码失败则尝试次数+1 addOneTryCount(); @@ -169,7 +169,7 @@ void IrisRecogProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/device/iris/IrisRecogProcess.cpp b/device/iris/IrisRecogProcess.cpp index a25eb87..d843c51 100644 --- a/device/iris/IrisRecogProcess.cpp +++ b/device/iris/IrisRecogProcess.cpp @@ -42,7 +42,7 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -55,12 +55,12 @@ // this->msleep(200); // 200ms后再判断 // continue; // } - LOG(DEBUG) << QString("[IrisRecogProcess]准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); // 取出虹膜图像栈中的一条数据 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[IrisRecogProcess]取出虹膜图像").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 取出虹膜图像").toStdString(); // 调用找眼分类器算法 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); @@ -70,14 +70,14 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); this->msleep(200); // 200ms后再判断 continue; } - LOG(DEBUG) << QString("[IrisRecogProcess]找到眼睛调用远程算法进行识别").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 找到眼睛调用远程算法进行识别").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -107,15 +107,15 @@ // 状态修改为特征提取 CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_FEATURE_EXTRACT; - QTimer toTimer; + //QTimer toTimer; QEventLoop loop; - toTimer.singleShot(3000, &loop, &QEventLoop::quit); + //toTimer.singleShot(3000, &loop, &QEventLoop::quit); connect(clientUtil, &SocketClientUtil::responseReaded, &loop, &QEventLoop::quit); loop.exec(); QByteArray matchResponse = clientUtil->getResponse(); - LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); // 算法调用返回成功 if (matchResponse.size() > 0) @@ -128,10 +128,10 @@ QString personId = messList.at(1); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_SEARCH_SUCC; - LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); +// LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; emit findMatchedIris(personId, 2); @@ -139,14 +139,14 @@ } else if (code.toInt() == -200) { // 匹配失败 - LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); // 匹配失败则尝试次数+1 addOneTryCount(); } else if (code.toInt() == -100) { // 编码失败 - LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); // 编码失败则尝试次数+1 addOneTryCount(); @@ -169,7 +169,7 @@ void IrisRecogProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) diff --git a/device/iris/IrisRegistProcess.cpp b/device/iris/IrisRegistProcess.cpp index 7696cf3..d04ced9 100644 --- a/device/iris/IrisRegistProcess.cpp +++ b/device/iris/IrisRegistProcess.cpp @@ -30,7 +30,7 @@ void IrisRegistProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) { @@ -65,26 +65,26 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } // 取出一幅图像 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_LEFT_FIND_EYE && irisInfo.leftOrRight == "left") { // 左眼已经编码成功则不再判断左眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } else if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_RIGHT_FIND_EYE && irisInfo.leftOrRight == "right"){ // 右眼已经编码成功则不再判断右眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -96,7 +96,7 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); // 双眼都要注册, 没找到眼不重置状态 @@ -106,7 +106,7 @@ // 找到眼睛则暂停线程工作 ProMemory::getInstance().irisRegistPro->setWorking(false); - LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); +// LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -146,10 +146,10 @@ // 编码成功 if (encodeResponse.size() == 1024) { - LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().irisInfo->irisCode = encodeResponse; diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/device/iris/IrisRecogProcess.cpp b/device/iris/IrisRecogProcess.cpp index a25eb87..d843c51 100644 --- a/device/iris/IrisRecogProcess.cpp +++ b/device/iris/IrisRecogProcess.cpp @@ -42,7 +42,7 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -55,12 +55,12 @@ // this->msleep(200); // 200ms后再判断 // continue; // } - LOG(DEBUG) << QString("[IrisRecogProcess]准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); // 取出虹膜图像栈中的一条数据 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[IrisRecogProcess]取出虹膜图像").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 取出虹膜图像").toStdString(); // 调用找眼分类器算法 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); @@ -70,14 +70,14 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); this->msleep(200); // 200ms后再判断 continue; } - LOG(DEBUG) << QString("[IrisRecogProcess]找到眼睛调用远程算法进行识别").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 找到眼睛调用远程算法进行识别").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -107,15 +107,15 @@ // 状态修改为特征提取 CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_FEATURE_EXTRACT; - QTimer toTimer; + //QTimer toTimer; QEventLoop loop; - toTimer.singleShot(3000, &loop, &QEventLoop::quit); + //toTimer.singleShot(3000, &loop, &QEventLoop::quit); connect(clientUtil, &SocketClientUtil::responseReaded, &loop, &QEventLoop::quit); loop.exec(); QByteArray matchResponse = clientUtil->getResponse(); - LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); // 算法调用返回成功 if (matchResponse.size() > 0) @@ -128,10 +128,10 @@ QString personId = messList.at(1); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_SEARCH_SUCC; - LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); +// LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; emit findMatchedIris(personId, 2); @@ -139,14 +139,14 @@ } else if (code.toInt() == -200) { // 匹配失败 - LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); // 匹配失败则尝试次数+1 addOneTryCount(); } else if (code.toInt() == -100) { // 编码失败 - LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); // 编码失败则尝试次数+1 addOneTryCount(); @@ -169,7 +169,7 @@ void IrisRecogProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) diff --git a/device/iris/IrisRegistProcess.cpp b/device/iris/IrisRegistProcess.cpp index 7696cf3..d04ced9 100644 --- a/device/iris/IrisRegistProcess.cpp +++ b/device/iris/IrisRegistProcess.cpp @@ -30,7 +30,7 @@ void IrisRegistProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) { @@ -65,26 +65,26 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } // 取出一幅图像 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_LEFT_FIND_EYE && irisInfo.leftOrRight == "left") { // 左眼已经编码成功则不再判断左眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } else if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_RIGHT_FIND_EYE && irisInfo.leftOrRight == "right"){ // 右眼已经编码成功则不再判断右眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -96,7 +96,7 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); // 双眼都要注册, 没找到眼不重置状态 @@ -106,7 +106,7 @@ // 找到眼睛则暂停线程工作 ProMemory::getInstance().irisRegistPro->setWorking(false); - LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); +// LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -146,10 +146,10 @@ // 编码成功 if (encodeResponse.size() == 1024) { - LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().irisInfo->irisCode = encodeResponse; diff --git a/main.cpp b/main.cpp index 0f56ec7..f48b918 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,31 @@ #include "CasicBioRecWin.h" #include +#include //闪退调试 +#include //闪退调试 -INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 +//INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 + + +//程式异常捕获 +LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException) +{ + //创建 Dump 文件 + HANDLE hDumpFile = CreateFile(L"d://crash.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (hDumpFile != INVALID_HANDLE_VALUE) + { + //Dump信息 + MINIDUMP_EXCEPTION_INFORMATION dumpInfo; + dumpInfo.ExceptionPointers = pException; + dumpInfo.ThreadId = GetCurrentThreadId(); + dumpInfo.ClientPointers = TRUE; + + //写入Dump文件内容 + MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL); + } + + return EXCEPTION_EXECUTE_HANDLER; +} int main(int argc, char *argv[]) { @@ -10,15 +33,18 @@ QApplication a(argc, argv); + //设置异常拦截 + SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注冊异常捕获函数 + // Load conf setting - el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); - el::Loggers::reconfigureAllLoggers(conf); + //el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); + //el::Loggers::reconfigureAllLoggers(conf); // Fatal level do not stop program - el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); + //el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // Init Verbose level - el::Loggers::setVerboseLevel(9); + //el::Loggers::setVerboseLevel(9); CasicBioRecWin w; w.show(); diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/device/iris/IrisRecogProcess.cpp b/device/iris/IrisRecogProcess.cpp index a25eb87..d843c51 100644 --- a/device/iris/IrisRecogProcess.cpp +++ b/device/iris/IrisRecogProcess.cpp @@ -42,7 +42,7 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -55,12 +55,12 @@ // this->msleep(200); // 200ms后再判断 // continue; // } - LOG(DEBUG) << QString("[IrisRecogProcess]准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); // 取出虹膜图像栈中的一条数据 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[IrisRecogProcess]取出虹膜图像").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 取出虹膜图像").toStdString(); // 调用找眼分类器算法 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); @@ -70,14 +70,14 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); this->msleep(200); // 200ms后再判断 continue; } - LOG(DEBUG) << QString("[IrisRecogProcess]找到眼睛调用远程算法进行识别").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 找到眼睛调用远程算法进行识别").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -107,15 +107,15 @@ // 状态修改为特征提取 CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_FEATURE_EXTRACT; - QTimer toTimer; + //QTimer toTimer; QEventLoop loop; - toTimer.singleShot(3000, &loop, &QEventLoop::quit); + //toTimer.singleShot(3000, &loop, &QEventLoop::quit); connect(clientUtil, &SocketClientUtil::responseReaded, &loop, &QEventLoop::quit); loop.exec(); QByteArray matchResponse = clientUtil->getResponse(); - LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); // 算法调用返回成功 if (matchResponse.size() > 0) @@ -128,10 +128,10 @@ QString personId = messList.at(1); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_SEARCH_SUCC; - LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); +// LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; emit findMatchedIris(personId, 2); @@ -139,14 +139,14 @@ } else if (code.toInt() == -200) { // 匹配失败 - LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); // 匹配失败则尝试次数+1 addOneTryCount(); } else if (code.toInt() == -100) { // 编码失败 - LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); // 编码失败则尝试次数+1 addOneTryCount(); @@ -169,7 +169,7 @@ void IrisRecogProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) diff --git a/device/iris/IrisRegistProcess.cpp b/device/iris/IrisRegistProcess.cpp index 7696cf3..d04ced9 100644 --- a/device/iris/IrisRegistProcess.cpp +++ b/device/iris/IrisRegistProcess.cpp @@ -30,7 +30,7 @@ void IrisRegistProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) { @@ -65,26 +65,26 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } // 取出一幅图像 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_LEFT_FIND_EYE && irisInfo.leftOrRight == "left") { // 左眼已经编码成功则不再判断左眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } else if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_RIGHT_FIND_EYE && irisInfo.leftOrRight == "right"){ // 右眼已经编码成功则不再判断右眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -96,7 +96,7 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); // 双眼都要注册, 没找到眼不重置状态 @@ -106,7 +106,7 @@ // 找到眼睛则暂停线程工作 ProMemory::getInstance().irisRegistPro->setWorking(false); - LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); +// LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -146,10 +146,10 @@ // 编码成功 if (encodeResponse.size() == 1024) { - LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().irisInfo->irisCode = encodeResponse; diff --git a/main.cpp b/main.cpp index 0f56ec7..f48b918 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,31 @@ #include "CasicBioRecWin.h" #include +#include //闪退调试 +#include //闪退调试 -INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 +//INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 + + +//程式异常捕获 +LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException) +{ + //创建 Dump 文件 + HANDLE hDumpFile = CreateFile(L"d://crash.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (hDumpFile != INVALID_HANDLE_VALUE) + { + //Dump信息 + MINIDUMP_EXCEPTION_INFORMATION dumpInfo; + dumpInfo.ExceptionPointers = pException; + dumpInfo.ThreadId = GetCurrentThreadId(); + dumpInfo.ClientPointers = TRUE; + + //写入Dump文件内容 + MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL); + } + + return EXCEPTION_EXECUTE_HANDLER; +} int main(int argc, char *argv[]) { @@ -10,15 +33,18 @@ QApplication a(argc, argv); + //设置异常拦截 + SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注冊异常捕获函数 + // Load conf setting - el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); - el::Loggers::reconfigureAllLoggers(conf); + //el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); + //el::Loggers::reconfigureAllLoggers(conf); // Fatal level do not stop program - el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); + //el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // Init Verbose level - el::Loggers::setVerboseLevel(9); + //el::Loggers::setVerboseLevel(9); CasicBioRecWin w; w.show(); diff --git a/utils/UtilInclude.h b/utils/UtilInclude.h index 6019de0..70bb714 100644 --- a/utils/UtilInclude.h +++ b/utils/UtilInclude.h @@ -1,7 +1,10 @@ #ifndef UTILINCLUDE_H #define UTILINCLUDE_H -#include "easyloggingpp/easylogging++.h" +//#define ELPP_THREAD_SAFE +//#define ELPP_QT_LOGGING + +//#include "easyloggingpp/easylogging++.h" #include "ByteUtil.h" #include "ImageUtil.h" #include "SelectDeptUtil.h" diff --git a/AddPersonForm.cpp b/AddPersonForm.cpp index 97b10d6..97d812c 100644 --- a/AddPersonForm.cpp +++ b/AddPersonForm.cpp @@ -165,7 +165,7 @@ { if (this->faceLabel->isVisible() == true) { - LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); + //LOG(TRACE) << "DRAW IMAGE ON FORM " << imageDisp.width() << "*" << imageDisp.height(); faceLabel->setPixmap(QPixmap::fromImage(imageDisp)); } @@ -210,7 +210,7 @@ // 重置识别状态码 CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; - LOG(DEBUG) << "人脸采集成功"; + //LOG(DEBUG) << "人脸采集成功"; if (personIdByFace == "") { // 人脸库中没有 @@ -239,7 +239,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸重复注册,请重试")); - LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已经注册" << ui->inputName->text().toStdString(); } else { if (this->personId == personIdByFace) @@ -263,7 +263,7 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("人脸已注册其他人,请重试")); - LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "人脸已注册其他人" << ui->inputName->text().toStdString(); } } } @@ -301,17 +301,17 @@ // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已经注册,请重试")); - LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); + //LOG(DEBUG) << "虹膜已经注册" << ui->inputName->text().toStdString(); } else { // 语音提示 SpeakerUtil::getInstance().speak(QString("虹膜已注册其他人,请重试")); - LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); + //LOG(DEBUG) << "虹膜已注册其他人" << personIdByIris.toStdString(); } } void AddPersonForm::onSuccessCaptureIrisWithoutMatch(CasicIrisInfo * irisInfo) { - LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); + //LOG(INFO) << QString("[AddPersonForm]虹膜编码成功[%1][%2]").arg(irisInfo->leftOrRight).arg(CasicIrisRecState::getInstance().state).toStdString(); updateIrisImage(irisInfo); if (irisInfo->leftOrRight == "left") @@ -480,7 +480,7 @@ tipsDlg.setTipsText(QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); int ret = tipsDlg.exec(); - LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员注册%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); if (ret == 1) { @@ -620,7 +620,7 @@ tipsDlg.setTipsText(QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败")); tipsDlg.exec(); - LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); + //LOG(INFO) << QString("%1 人员信息编辑%2").arg(ui->inputName->text()).arg(succ == true ? "成功" : "失败").toStdString(); } void AddPersonForm::updateIrisImage(CasicIrisInfo * irisInfo) @@ -691,12 +691,12 @@ ProMemory::getInstance().faceRegistPro->setWorking(true); CasicFaceRecState::getInstance().state = CasicFaceRecState::REC_NOT_START; - LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; + //LOG(TRACE) << "FACE IMAGE DOUBLE CLICKED"; } void AddPersonForm::onPhotoIrisDoubleClicked() { - LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); + //LOG(TRACE) << "DOUBLE CLICKED IRIS " << personId.toStdString(); // 编辑时先发指令重新加载虹膜库 去掉自己 ProMemory::getInstance().initIrisFeatures(personId); diff --git a/CasicBioRecNew.pro b/CasicBioRecNew.pro index 6633b0d..d4db4e2 100644 --- a/CasicBioRecNew.pro +++ b/CasicBioRecNew.pro @@ -73,7 +73,9 @@ INCLUDEPATH += $$PWD/../../opencv420/build/include DEPENDPATH += $$PWD/../../opencv420/build/include -win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx +win32: LIBS += -L$$PWD/daheng/lib/ -lGxIAPICPPEx -lDbgHelp INCLUDEPATH += $$PWD/daheng/include DEPENDPATH += $$PWD/daheng/include + +QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /DEBUG diff --git a/CasicBioRecWin.cpp b/CasicBioRecWin.cpp index bc8018b..5635659 100644 --- a/CasicBioRecWin.cpp +++ b/CasicBioRecWin.cpp @@ -6,8 +6,8 @@ , ui(new Ui::CasicBioRecWin) { // 打开外部可执行程序 -// outExe = new QProcess(this); -// outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); + outExe = new QProcess(this); + outExe->start(SettingConfig::getInstance().OUT_EXE_FILE); ui->setupUi(this); @@ -57,7 +57,7 @@ ProMemory::getInstance().moto, &MotoController::autoPosition); // 打印日志 - LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); + //LOG(INFO) << QString("应用程序启动成功[Application Startup Success]").toStdString(); ProMemory::getInstance().widgeFrame = CasicBioRecConst::WidgeFrameName::MAIN_PAGE; } @@ -84,8 +84,8 @@ ProMemory::getInstance().camPosCtrl->wait(); // 关闭自动启动的外部程序 -// outExe->close(); -// delete outExe; + outExe->close(); + delete outExe; delete ui; delete ProMemory::getInstance().faceRegistPro; @@ -99,7 +99,7 @@ { switch (event->key()) { case Qt::Key_Escape: - LOG(INFO) << "" << std::endl; + //LOG(INFO) << "" << std::endl; QTimer::singleShot(100, qApp, SLOT(quit())); default: diff --git a/RecognizeResultForm.cpp b/RecognizeResultForm.cpp index cb61cc8..9fefa12 100644 --- a/RecognizeResultForm.cpp +++ b/RecognizeResultForm.cpp @@ -134,7 +134,9 @@ QImage image; image.loadFromData(QByteArray::fromBase64(imageData.toLatin1())); image = image.scaledToHeight(280, Qt::SmoothTransformation); - ui->labPhotot->setPixmap(QPixmap::fromImage(image)); + ui->labPhoto->setPixmap(QPixmap::fromImage(image)); + } else { + ui->labPhoto->setPixmap(QPixmap(":/images/photoFace.png")); } ui->widgetSucc->raise(); @@ -158,7 +160,7 @@ ProMemory::getInstance().faceCam->stopTakingPhoto(); ProMemory::getInstance().clearFaceQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 人脸识别成功 [%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -180,7 +182,7 @@ ProMemory::getInstance().camPosCtrl->setWorking(false); ProMemory::getInstance().clearIrisQueue(); - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜识别成功 [%1]").arg(CasicIrisRecState::getInstance().toString()).toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -214,7 +216,7 @@ { logStr.arg("虹膜").arg(CasicIrisRecState::getInstance().toString()); } - LOG(DEBUG) << logStr.toStdString(); + //LOG(DEBUG) << logStr.toStdString(); // 识别记录存入数据库 RecognitionRecordDao recDao; @@ -257,12 +259,12 @@ } else if (personIdByFace != personIdByIris) { // 人脸和虹膜识别的不是同一人 识别失败 - LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm] 虹膜与人脸识别结果不一致,识别失败 [face: %1][iris: %2]").arg(personIdByFace).arg(personIdByIris).toStdString(); SpeakerUtil::getInstance().speak("虹膜与人脸识别结果不一致,识别失败,请重试"); showRecogFailure(); } else { - LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); + //LOG(DEBUG) << QString("[RecognizeResultForm]人脸虹膜识别成功").toStdString(); showRecognizeResult(personId); // 识别记录存入数据库 diff --git a/RecognizeResultForm.ui b/RecognizeResultForm.ui index 53e8bdf..9c5a0b5 100644 --- a/RecognizeResultForm.ui +++ b/RecognizeResultForm.ui @@ -76,7 +76,7 @@ 600 - + 20 diff --git a/StartupForm.cpp b/StartupForm.cpp index cf20de1..947a7a4 100644 --- a/StartupForm.cpp +++ b/StartupForm.cpp @@ -35,8 +35,10 @@ // 每秒执行一次 connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, this, &StartupForm::updateDateAndTime); -// connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, -// this, &StartupForm::takeOneFrameForCheckStatus); + + // 每秒取一张图片判断是否进入识别程序 + connect(TimeCounterUtil::getInstance().clockCounter, &QTimer::timeout, + this, &StartupForm::takeOneFrameForCheckStatus); TimeCounterUtil::getInstance().clockCounter->start(1000); } @@ -91,7 +93,7 @@ if (hasFace == true) { - LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); + //LOG(INFO) << QString("检测到人脸,START RECOGNIZE 线程").toStdString(); ProMemory::getInstance().appState = CasicBioRecConst::ApplicationState::STATE_WORKING; // 启动识别线程 diff --git a/casic/face/CasicFaceInterface.cpp b/casic/face/CasicFaceInterface.cpp index 33423ee..1e1005a 100644 --- a/casic/face/CasicFaceInterface.cpp +++ b/casic/face/CasicFaceInterface.cpp @@ -1,7 +1,7 @@ #include #include #include "CasicFaceInterface.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" casic::face::CasicFaceInterface::CasicFaceInterface() { @@ -121,10 +121,10 @@ if (faces.size != 0) { - LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") - .arg(timer.elapsed()).arg(faces.size) - .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) - .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); +// LOG(DEBUG) << QString("人脸检测算法[tm: %1 ms][count: %2][rect: (%3,%4), (%5,%6)][size: (%7,%8)]") +// .arg(timer.elapsed()).arg(faces.size) +// .arg(faces.data[0].pos.x).arg(faces.data[0].pos.y).arg(faces.data[0].pos.x + faces.data[0].pos.width).arg(faces.data[0].pos.y + faces.data[0].pos.height) +// .arg(faces.data[0].pos.width).arg(faces.data[0].pos.height).toStdString(); } CasicFaceInfo faceInfo; @@ -166,7 +166,7 @@ seeta::QualityOfBrightness qBright; seeta::QualityResult brightResult = qBright.check(image, face, points, 5); - LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); +// LOG(DEBUG) << QString("亮度评估[tm: %1 ms][bright: %2][score: %3]").arg(timer.elapsed()).arg(brightResult.level).arg(brightResult.score).toStdString(); if (brightResult.level != seeta::QualityLevel::HIGH) { @@ -181,7 +181,7 @@ seeta::QualityOfClarity qClarity; seeta::QualityResult clarityResult = qClarity.check(image, face, points, 5); - LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); +// LOG(DEBUG) << QString("清晰度评估[tm: %1 ms][clarity: %2]").arg(timer.elapsed()).arg(clarityResult.level).toStdString(); if (clarityResult.level != seeta::QualityLevel::HIGH) { @@ -211,7 +211,7 @@ // 分辨率评估 seeta::QualityOfResolution qReso; seeta::QualityResult resoResult = qReso.check(image, face, points, 5); - LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); +// LOG(DEBUG) << QString("分辨率评估[tm: %1 ms][reso: %2]").arg(timer.elapsed()).arg(resoResult.level).toStdString(); if (resoResult.level != seeta::QualityLevel::HIGH) { // 分辨率不够, 直接返回 @@ -243,7 +243,7 @@ seeta::QualityResult poseResult = poseEx->check(image, face, points, 5); - LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); +// LOG(DEBUG) << QString("姿势评估[tm: %1ms][pose: %2][score: %3]").arg(timer.elapsed()).arg(poseResult.score).arg(poseResult.level).toStdString(); if (poseResult.level != seeta::QualityLevel::HIGH) { @@ -289,7 +289,7 @@ processor->GetPreFrameScore(&faceInfo.antiClarity, &faceInfo.antiReality); - LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); +// LOG(DEBUG) << QString("活体检测[tm: %1 ms][anti: %2][clarity: %3, reality: %4]").arg(timer.elapsed()).arg(status).arg(faceInfo.antiClarity).arg(faceInfo.antiReality).toStdString(); } return faceInfo; @@ -361,11 +361,11 @@ if (rect.size() == 0) { - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(TRACE) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -393,7 +393,7 @@ return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("人脸分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -418,11 +418,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } @@ -448,11 +448,11 @@ if (rect.size() == 0) { - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][0]").arg(timer.elapsed()).toStdString(); return cv::Rect(0, 0, 0, 0); } - LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛分类检测算法[戴眼镜][tm: %1 ms][%2, %3]").arg(timer.elapsed()).arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); return rect.at(0); } diff --git a/casic/iris/CasicIrisInterface.cpp b/casic/iris/CasicIrisInterface.cpp index 0b861ec..6ecfdd9 100644 --- a/casic/iris/CasicIrisInterface.cpp +++ b/casic/iris/CasicIrisInterface.cpp @@ -50,15 +50,15 @@ return irisInfo; } - LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") - .arg(timer.elapsed()).arg(rect.size()) - .arg(rect.at(0).x).arg(rect.at(0).y) - .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); +// LOG(DEBUG) << QString("眼睛检测算法[tm: %1 ms][count: %2][rect: (%3, %4) %5 * %6]") +// .arg(timer.elapsed()).arg(rect.size()) +// .arg(rect.at(0).x).arg(rect.at(0).y) +// .arg(rect.at(0).width).arg(rect.at(0).height).toStdString(); // 找到眼睛之后, 将眼部裁剪下来, 图像拉伸到640 * 480 cv::Point center; - center.x = cvRound(rect.at(0).x + rect.at(0).width*0.5); - center.y = cvRound(rect.at(0).y + rect.at(0).height*0.5); + center.x = cvFloor(rect.at(0).x + rect.at(0).width*0.5); + center.y = cvFloor(rect.at(0).y + rect.at(0).height*0.5); // 限制中心点的范围 if (center.x < SettingConfig::getInstance().IRIS_WIDTH * cutRatio * 0.5) diff --git a/casic/iris/CasicIrisInterface.h b/casic/iris/CasicIrisInterface.h index 50801e8..f5c806e 100644 --- a/casic/iris/CasicIrisInterface.h +++ b/casic/iris/CasicIrisInterface.h @@ -33,7 +33,7 @@ std::string cascadeName = "./model/haarcascade_eye.xml"; int minEyeSize = 320; int maxEyeSize = 480; - float cutRatio = 0.75; + float cutRatio = 0.8; cv::CascadeClassifier * cascade; }; diff --git a/dao/BaseDao.h b/dao/BaseDao.h index 1ea0c93..45fed6e 100644 --- a/dao/BaseDao.h +++ b/dao/BaseDao.h @@ -7,7 +7,7 @@ #include #include "dao/util/ConnectionManager.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" class BaseDao : public QObject { diff --git a/dao/FaceDataDao.cpp b/dao/FaceDataDao.cpp index 582056d..6ae000d 100644 --- a/dao/FaceDataDao.cpp +++ b/dao/FaceDataDao.cpp @@ -30,7 +30,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -57,7 +57,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_code", query.value("face_code").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -144,7 +144,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -202,7 +202,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/FaceDataImgDao.cpp b/dao/FaceDataImgDao.cpp index ab92be8..afbb7dc 100644 --- a/dao/FaceDataImgDao.cpp +++ b/dao/FaceDataImgDao.cpp @@ -29,7 +29,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询FACE_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -56,7 +56,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -82,7 +82,7 @@ result.insert("face_image", query.value("face_image").toString()); } - LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询FACE_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -117,7 +117,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询FACE_DATA_IMAGE表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -146,7 +146,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 返回结果 if (success == true) @@ -179,7 +179,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -203,7 +203,7 @@ // 执行更新 bool success = query.exec(sql); - LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人脸图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataDao.cpp b/dao/IrisDataDao.cpp index 58e2591..fdcc845 100644 --- a/dao/IrisDataDao.cpp +++ b/dao/IrisDataDao.cpp @@ -36,7 +36,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询IRIS_DATA表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -68,7 +68,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -99,7 +99,7 @@ result.insert("right_iris_code3", query.value("right_iris_code3")); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -136,7 +136,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -172,7 +172,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜特征值[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/IrisDataImgDao.cpp b/dao/IrisDataImgDao.cpp index 262a9e4..34da728 100644 --- a/dao/IrisDataImgDao.cpp +++ b/dao/IrisDataImgDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); +// LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString(); return result; } @@ -65,7 +65,7 @@ } - LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -91,7 +91,7 @@ result.insert("right_image1", query.value("right_image1").toString()); } - LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString(); return result; } @@ -130,7 +130,7 @@ result.append(item); } - LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -156,7 +156,7 @@ // 执行插入 bool success = query.exec(); - LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); @@ -194,7 +194,7 @@ // 执行更新 bool success = query.exec(); - LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); diff --git a/dao/RecognitionRecordDao.cpp b/dao/RecognitionRecordDao.cpp index d7103f9..d2d0a74 100644 --- a/dao/RecognitionRecordDao.cpp +++ b/dao/RecognitionRecordDao.cpp @@ -28,7 +28,7 @@ result.append(item); } - LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); +// LOG(DEBUG) << QString("查询RECOGNITION_RECORDS表的所有记录[%1]").arg(result.size()).toLocal8Bit().data(); return result; } @@ -70,8 +70,8 @@ result.append(item); } - LOG(DEBUG) << sql.toStdString(); - LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); +// LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << QString("根据属性值查询RECOGNITION_RECORDS表的记录[%1]").arg(count).toLocal8Bit().data(); return result; } @@ -95,7 +95,7 @@ .arg(object.value("debug_info").toString()); query.prepare(sql); - LOG(DEBUG) << sql.toStdString(); +// LOG(DEBUG) << sql.toStdString(); // 插入识别的log日志 QString logStr = QString("INSERT INTO RECOGNITION_LOGS (ID, LOG_INFO) VALUES ('%1', '%2')") diff --git a/dao/SysDeptDao.cpp b/dao/SysDeptDao.cpp index 4184069..1b02b58 100644 --- a/dao/SysDeptDao.cpp +++ b/dao/SysDeptDao.cpp @@ -29,7 +29,7 @@ item.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); +// LOG(TRACE) << QString("查询表[SYS_DEPT]的所有记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } @@ -66,7 +66,7 @@ result.insert("fullname", query.value("fullname").toString()); } - LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_DEPT表的记录[ID=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -104,7 +104,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_DEPT表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } diff --git a/dao/SysPersonDao.cpp b/dao/SysPersonDao.cpp index 8ec4c99..7db87d3 100644 --- a/dao/SysPersonDao.cpp +++ b/dao/SysPersonDao.cpp @@ -44,7 +44,7 @@ result.append(item); } - LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); +// LOG(TRACE) << QString("查询SYS_PERSON表的所有记录[%1]").arg(count).toStdString(); return result; } @@ -87,7 +87,7 @@ result.insert("hasIris", query.value("iris_valid").toString()); } - LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据id查询SYS_PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } @@ -119,7 +119,7 @@ result = query.value("RECCT").toInt(); } - LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门查询SYS_PERSON记录总数[%1][%2]").arg(result).arg(sql).toStdString(); return result; } @@ -175,7 +175,7 @@ result.append(item); } - LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据姓名和部门分页查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -226,7 +226,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -272,7 +272,7 @@ result.append(item); } - LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); +// LOG(TRACE) << QString("根据属性值查询SYS_PERSON表的记录[%1][%2]").arg(count).arg(sql).toStdString(); return result; } @@ -311,7 +311,7 @@ // 返回结果 if (success == true) { - LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("保存SYS_PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else @@ -365,7 +365,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; @@ -402,7 +402,7 @@ // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); - LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); +// LOG(DEBUG) << QString("删除人员SYS_PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; diff --git a/dao/util/ConnectionManager.cpp b/dao/util/ConnectionManager.cpp index 4701781..4365556 100644 --- a/dao/util/ConnectionManager.cpp +++ b/dao/util/ConnectionManager.cpp @@ -18,10 +18,10 @@ bool succ = conn.open(); if (succ == true) { - LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); +// LOG(INFO) << QString("打开数据库操作正常[Open Database Success]").toStdString(); } else { - LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); +// LOG(ERROR) << QString("打开数据库操作失败[Open Database Failed]").toStdString(); } } } diff --git a/dao/util/ConnectionManager.h b/dao/util/ConnectionManager.h index 6b2bfa0..7a707be 100644 --- a/dao/util/ConnectionManager.h +++ b/dao/util/ConnectionManager.h @@ -4,7 +4,7 @@ #include #include #include "utils/id/IdWorker.h" -#include "utils/easyloggingpp/easylogging++.h" +//#include "utils/easyloggingpp/easylogging++.h" using namespace Jiawa::Core; diff --git a/device/CameraPositionController.cpp b/device/CameraPositionController.cpp index 1b15c13..879f19a 100644 --- a/device/CameraPositionController.cpp +++ b/device/CameraPositionController.cpp @@ -58,13 +58,14 @@ emit updateTips(QString("正在识别,请看向镜头")); emit updateTipsBackgroundColor("#248A53"); + // 计算并调整镜头的上下位置 int eyeTop = faceRect.y + faceRect.height * 0.35; int eyeBottom = faceRect.y + faceRect.height * 0.45; if (eyeTop < 250 || eyeBottom > 350) { - emit motoControl(faceRect.y + faceRect.height * 0.4); +// emit motoControl(faceRect.y + faceRect.height * 0.4); } - // 位置合适 拍两张虹膜图像进行识别 + // 位置合适 拍一张虹膜图像进行识别(左右眼不定) ProMemory::getInstance().irisCam->getOneFaceFrm(); } } diff --git a/device/FaceCameraController.cpp b/device/FaceCameraController.cpp index 2a4d7cb..4816527 100644 --- a/device/FaceCameraController.cpp +++ b/device/FaceCameraController.cpp @@ -7,10 +7,10 @@ faceCap->set(cv::CAP_PROP_FRAME_WIDTH, SettingConfig::getInstance().FACE_FRAME_WIDTH); faceCap->set(cv::CAP_PROP_FRAME_HEIGHT, SettingConfig::getInstance().FACE_FRAME_HEIGHT); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") - .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) - .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) - .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]初始化相机[%1][%2 * %3]") +// .arg(SettingConfig::getInstance().FACE_CAMERA_INDEX) +// .arg(SettingConfig::getInstance().FACE_FRAME_WIDTH) +// .arg(SettingConfig::getInstance().FACE_FRAME_HEIGHT).toStdString(); } FaceCameraController::~FaceCameraController() @@ -29,7 +29,7 @@ // 启动定时器 TimeCounterUtil::getInstance().faceCapCounter->start(mInterval); - LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); +// LOG(DEBUG) << QString("[FaceCameraController][openFaceCamera]相机开始拍图[%1ms]").arg(mInterval).toStdString(); } void FaceCameraController::stopTakingPhoto() @@ -52,7 +52,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << "TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; @@ -87,7 +87,7 @@ // 拍图 faceCap->read(faceMat); - LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; +// LOG(TRACE) << QThread::currentThreadId() << " TAKE ONE FACE FRAME " << faceMat.cols << " * " << faceMat.rows; // 左右翻转 cv::Mat imageMatMiir; diff --git a/device/IrisCameraCapEventHandler.cpp b/device/IrisCameraCapEventHandler.cpp index d33ade9..0502dda 100644 --- a/device/IrisCameraCapEventHandler.cpp +++ b/device/IrisCameraCapEventHandler.cpp @@ -45,7 +45,7 @@ ProMemory::getInstance().pushCasicIris(irisInfo); - cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); +// cv::imwrite(QString("D:\\irisLogs\\iristest-%1.bmp").arg(irisInfo.leftOrRight).toStdString(), irisMat); } else if (ProMemory::getInstance().widgeFrame == CasicBioRecConst::ADD_PERSON_CAPTURE_IRIS) { // 相机拍摄下的图像1280*960, 直接用于算法判断 diff --git a/device/IrisCameraController.cpp b/device/IrisCameraController.cpp index 0b81012..2b8538e 100644 --- a/device/IrisCameraController.cpp +++ b/device/IrisCameraController.cpp @@ -55,14 +55,14 @@ // 获取定时器, 绑定定时函数 connect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][startCapture]虹膜相机拍图").toStdString(); } void IrisCameraController::stopCapture() { // 获取定时器, 绑定定时函数 disconnect(TimeCounterUtil::getInstance().irisCapCounter, &QTimer::timeout, this, &IrisCameraController::getOneFaceFrm); - LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); +// LOG(DEBUG) << QString("[IrisCameraController][stopCapture]虹膜相机停止拍图").toStdString(); } void IrisCameraController::getOneFaceFrm() diff --git a/device/MotoController.cpp b/device/MotoController.cpp index ca61c02..af053d3 100644 --- a/device/MotoController.cpp +++ b/device/MotoController.cpp @@ -26,15 +26,14 @@ bool succ = serial.open(QIODevice::ReadWrite); //连接信号和槽 - - LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); +// LOG(DEBUG) << QString("[MotoController][initSerialMCU]打开电机串口[%1][%2][%3]").arg(portName).arg(baudRate).arg(succ).toStdString(); return succ; } void MotoController::sendDataAutoEnding(QByteArray data) { - LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); +// LOG(INFO) << QString("向串口发送数据[send] %1").arg(data.data()).toStdString(); // 加上0x0D 0x0A换行结束 data.append(0x0D).append(0x0A); diff --git a/device/face/CasicFaceRecState.cpp b/device/face/CasicFaceRecState.cpp index 7415a86..8fd822f 100644 --- a/device/face/CasicFaceRecState.cpp +++ b/device/face/CasicFaceRecState.cpp @@ -16,7 +16,7 @@ this->tryCount = 0; this->noFaceCount = 0; - LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecState][initRecognize] 人脸识别状态初始化").toStdString(); // 开始识别 this->state = FaceRecStateName::REC_DETECT; diff --git a/device/face/FaceRecogProcess.cpp b/device/face/FaceRecogProcess.cpp index d83cdeb..962d251 100644 --- a/device/face/FaceRecogProcess.cpp +++ b/device/face/FaceRecogProcess.cpp @@ -27,7 +27,7 @@ void FaceRecogProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -70,7 +70,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRecognize][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -79,7 +79,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -95,7 +95,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -117,7 +117,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -134,7 +134,7 @@ CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_FEATURE_EXTRACT; CasicFaceRecState::getInstance().faceInfo = &faceInfo; - LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRecognize] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 compareFaceInCollection(); @@ -160,7 +160,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/face/FaceRegistProcess.cpp b/device/face/FaceRegistProcess.cpp index 235b855..77e91f3 100644 --- a/device/face/FaceRegistProcess.cpp +++ b/device/face/FaceRegistProcess.cpp @@ -22,7 +22,7 @@ void FaceRegistProcess::addOneTryCount() { - LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[addOneTryCount]已尝试次数[%1]").arg(CasicFaceRecState::getInstance().tryCount).toStdString(); if (CasicFaceRecState::getInstance().tryCount < SettingConfig::getInstance().MAX_FACE_TRY_COUNT) { CasicFaceRecState::getInstance().state = CasicFaceRecState::FaceRecStateName::REC_NOT_START; @@ -63,7 +63,7 @@ if (ProMemory::getInstance().isFaceQueueEmpty() == true) { addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(TRACE) << QString("[CasicFaceRegistThread][%1] 人脸图像栈空, 暂停200ms").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; @@ -72,7 +72,7 @@ // 识别状态不等于未开始, 表示已经进入识别程序了, 后续不再执行, 等待本次识别过程结束 if (CasicFaceRecState::getInstance().state != CasicFaceRecState::FaceRecStateName::REC_NOT_START) { - LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 已在一次识别过程中, 暂停200ms。当前状态为: %1").arg(CasicFaceRecState::getInstance().state).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -88,7 +88,7 @@ { // 表示本次识别结束, 可以开始下一次识别过程 addOneNoFaceCount(); // 连续没找到脸的次数+1;注册过程有多调用opencv的分类器, 没有符合要求脸的图像不入栈 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 没有找到人脸, 暂停200ms。重置识别状态为REC_NOT_START[%1]").arg(CasicFaceRecState::getInstance().noFaceCount).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -110,7 +110,7 @@ if (faceInfo.antiStatus != seeta::FaceAntiSpoofing::Status::REAL) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸活体检测未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -127,7 +127,7 @@ if (faceInfo.quality.level != seeta::QualityLevel::HIGH) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 人脸质量评估未通过, 暂停200ms。[%1]").arg("CasicFaceRecState::getInstance().toString()").toStdString(); addOneTryCount(); // 判断是否超过次数, 重置识别状态 this->msleep(200); // 200ms后再判断 @@ -154,7 +154,7 @@ tempImg.save(&buf, "bmp"); CasicFaceRecState::getInstance().imgBase64 = ba.toBase64(); - LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); +// LOG(DEBUG) << QString("[CasicFaceRegistThread] 特征提取成功[%1]").arg(CasicFaceRecState::getInstance().toString()).toStdString(); this->setWorking(false); // 特征值提取成功的人脸 与人脸库中的人脸进行比较 @@ -187,7 +187,7 @@ float sim = casic::face::CasicFaceInterface::getInstance().faceSimCalculate(CasicFaceRecState::getInstance().faceInfo->feature, ffArr); - LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); +// LOG(DEBUG) << QString("[compareFaceInCollection] 特征值比对结果[%1]").arg(sim).toStdString(); if (sim > 0.62) { CasicFaceRecState::getInstance().faceInfo->sim = sim; diff --git a/device/iris/CasicIrisRecState.cpp b/device/iris/CasicIrisRecState.cpp index d6d01e1..4edfdb1 100644 --- a/device/iris/CasicIrisRecState.cpp +++ b/device/iris/CasicIrisRecState.cpp @@ -24,7 +24,7 @@ this->tryCount = 0; this->noEyeCount = 0; - LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecState][initRecognize] 虹膜识别状态初始化").toStdString(); } QString CasicIrisRecState::toString() diff --git a/device/iris/IrisRecogProcess.cpp b/device/iris/IrisRecogProcess.cpp index a25eb87..d843c51 100644 --- a/device/iris/IrisRecogProcess.cpp +++ b/device/iris/IrisRecogProcess.cpp @@ -42,7 +42,7 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 虹膜图像栈空, 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -55,12 +55,12 @@ // this->msleep(200); // 200ms后再判断 // continue; // } - LOG(DEBUG) << QString("[IrisRecogProcess]准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); +// LOG(TRACE) << QString("[IrisRecogProcess] 准备取出虹膜图像[%1]").arg(ProMemory::getInstance().isIrisQueueEmpty()).toStdString(); // 取出虹膜图像栈中的一条数据 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[IrisRecogProcess]取出虹膜图像").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 取出虹膜图像").toStdString(); // 调用找眼分类器算法 casic::iris::CasicIrisInterface::getInstance().setMinEyeSize(360); @@ -70,14 +70,14 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); this->msleep(200); // 200ms后再判断 continue; } - LOG(DEBUG) << QString("[IrisRecogProcess]找到眼睛调用远程算法进行识别").toStdString(); +// LOG(DEBUG) << QString("[IrisRecogProcess] 找到眼睛调用远程算法进行识别").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -107,15 +107,15 @@ // 状态修改为特征提取 CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_FEATURE_EXTRACT; - QTimer toTimer; + //QTimer toTimer; QEventLoop loop; - toTimer.singleShot(3000, &loop, &QEventLoop::quit); + //toTimer.singleShot(3000, &loop, &QEventLoop::quit); connect(clientUtil, &SocketClientUtil::responseReaded, &loop, &QEventLoop::quit); loop.exec(); QByteArray matchResponse = clientUtil->getResponse(); - LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("算法匹配结果").toStdString() << matchResponse.toStdString(); // 算法调用返回成功 if (matchResponse.size() > 0) @@ -128,10 +128,10 @@ QString personId = messList.at(1); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_SEARCH_SUCC; - LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); +// LOG(INFO) << QString("匹配成功[tm: %1 ms][id: %2]").arg(timer.elapsed()).arg(personId).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; emit findMatchedIris(personId, 2); @@ -139,14 +139,14 @@ } else if (code.toInt() == -200) { // 匹配失败 - LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("匹配失败: ").toStdString() << matchResponse.toStdString(); // 匹配失败则尝试次数+1 addOneTryCount(); } else if (code.toInt() == -100) { // 编码失败 - LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); +// LOG(INFO) << QString("编码失败: ").toStdString() << matchResponse.toStdString(); // 编码失败则尝试次数+1 addOneTryCount(); @@ -169,7 +169,7 @@ void IrisRecogProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRecogProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); CasicIrisRecState::getInstance().state = CasicIrisRecState::IrisRecStateName::REC_NOT_START; if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) diff --git a/device/iris/IrisRegistProcess.cpp b/device/iris/IrisRegistProcess.cpp index 7696cf3..d04ced9 100644 --- a/device/iris/IrisRegistProcess.cpp +++ b/device/iris/IrisRegistProcess.cpp @@ -30,7 +30,7 @@ void IrisRegistProcess::addOneTryCount() { CasicIrisRecState::getInstance().tryCount++; - LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistProcess]已尝试次数[%1]").arg(CasicIrisRecState::getInstance().tryCount).toStdString(); if (CasicIrisRecState::getInstance().tryCount >= SettingConfig::getInstance().MAX_IRIS_TRY_COUNT) { @@ -65,26 +65,26 @@ // 图像栈中没有图像则直接返回 if (ProMemory::getInstance().isIrisQueueEmpty() == true) { - LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]虹膜图像栈空 暂停200ms").toStdString(); this->msleep(200); // 200ms后再判断 continue; } // 取出一幅图像 CasicIrisInfo irisInfo = ProMemory::getInstance().popCasicIris(); - LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]取出一幅虹膜图").toStdString(); if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_LEFT_FIND_EYE && irisInfo.leftOrRight == "left") { // 左眼已经编码成功则不再判断左眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]左眼已经编码成功则不再判断左眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } else if (CasicIrisRecState::getInstance().state == CasicIrisRecState::IrisRecStateName::REC_RIGHT_FIND_EYE && irisInfo.leftOrRight == "right"){ // 右眼已经编码成功则不再判断右眼 - LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]右眼已经编码成功则不再判断右眼[%1][%2]").arg(CasicIrisRecState::getInstance().state).arg(irisInfo.leftOrRight).toStdString(); this->msleep(200); // 200ms后再判断 continue; } @@ -96,7 +96,7 @@ if (irisInfo.hasEye == false) { // 表示本次识别结束, 可以开始下一次识别过程 - LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); +// LOG(DEBUG) << QString("[CasicIrisRegistThread]分类器没有找到眼睛,暂停200ms[%1]").arg(CasicIrisRecState::getInstance().noEyeCount).toStdString(); addOneNoEyeCount(); // 双眼都要注册, 没找到眼不重置状态 @@ -106,7 +106,7 @@ // 找到眼睛则暂停线程工作 ProMemory::getInstance().irisRegistPro->setWorking(false); - LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); +// LOG(DEBUG) << QString("找到眼睛暂停线程工作").toStdString(); // 找到眼睛则开始质量评估和编码 // 调用远程算法进行编码 @@ -146,10 +146,10 @@ // 编码成功 if (encodeResponse.size() == 1024) { - LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); +// LOG(DEBUG) << QString("虹膜特征值提取[耗时%1ms][%2]").arg(timer.elapsed()).arg(irisInfo.leftOrRight).toStdString(); // 保存图像文件 - cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); +// cv::imwrite(QString("D:\\irisLogs\\%1-%2.bmp").arg(QDateTime::currentDateTime().toString("HHmmsszzz")).arg(irisInfo.leftOrRight).toStdString(), irisInfo.matData); CasicIrisRecState::getInstance().irisInfo->irisCode = encodeResponse; diff --git a/main.cpp b/main.cpp index 0f56ec7..f48b918 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,31 @@ #include "CasicBioRecWin.h" #include +#include //闪退调试 +#include //闪退调试 -INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 +//INITIALIZE_EASYLOGGINGPP // 初始化easylogging++组件库 + + +//程式异常捕获 +LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException) +{ + //创建 Dump 文件 + HANDLE hDumpFile = CreateFile(L"d://crash.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + if (hDumpFile != INVALID_HANDLE_VALUE) + { + //Dump信息 + MINIDUMP_EXCEPTION_INFORMATION dumpInfo; + dumpInfo.ExceptionPointers = pException; + dumpInfo.ThreadId = GetCurrentThreadId(); + dumpInfo.ClientPointers = TRUE; + + //写入Dump文件内容 + MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL); + } + + return EXCEPTION_EXECUTE_HANDLER; +} int main(int argc, char *argv[]) { @@ -10,15 +33,18 @@ QApplication a(argc, argv); + //设置异常拦截 + SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);//注冊异常捕获函数 + // Load conf setting - el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); - el::Loggers::reconfigureAllLoggers(conf); + //el::Configurations conf(QApplication::applicationDirPath().toStdString() + "/conf/log.conf"); + //el::Loggers::reconfigureAllLoggers(conf); // Fatal level do not stop program - el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); + //el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // Init Verbose level - el::Loggers::setVerboseLevel(9); + //el::Loggers::setVerboseLevel(9); CasicBioRecWin w; w.show(); diff --git a/utils/UtilInclude.h b/utils/UtilInclude.h index 6019de0..70bb714 100644 --- a/utils/UtilInclude.h +++ b/utils/UtilInclude.h @@ -1,7 +1,10 @@ #ifndef UTILINCLUDE_H #define UTILINCLUDE_H -#include "easyloggingpp/easylogging++.h" +//#define ELPP_THREAD_SAFE +//#define ELPP_QT_LOGGING + +//#include "easyloggingpp/easylogging++.h" #include "ByteUtil.h" #include "ImageUtil.h" #include "SelectDeptUtil.h" diff --git a/utils/utils.pri b/utils/utils.pri index 0e76395..94152c7 100644 --- a/utils/utils.pri +++ b/utils/utils.pri @@ -6,8 +6,8 @@ HEADERS += $$PWD/id/Singleton.h HEADERS += $$PWD/id/Timer.h -HEADERS += $$PWD/easyloggingpp/easylogging++.h -SOURCES += $$PWD/easyloggingpp/easylogging++.cc +#HEADERS += $$PWD/easyloggingpp/easylogging++.h +#SOURCES += $$PWD/easyloggingpp/easylogging++.cc HEADERS += $$PWD/SettingConfig.h SOURCES += $$PWD/SettingConfig.cpp