基于深度学习的人脸识别系统


基于QT实现的人脸识别系统,基于caffe框架C++实现,人脸检测部分使用MTCNN算法实现,识别部分用Seetaface里的Identification,Qt实现界面开发,使用MySQL数据库。
资源截图
代码片段和文件信息
#include “FaceRecognition.h“

FaceRecognition::FaceRecognition(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
timer = new QTimer(this);
//connect(ui.pushButton_registerSIGNAL(clicked()) this SLOT(on_pushButton_register_clicked()));
//connect(ui.pushButton_search SIGNAL(clicked()) this SLOT(on_pushButton_search_clicked()));
connect(timer SIGNAL(timeout()) this SLOT(showImage()));
ui.lineEdit_id->hide();
ui.lineEdit_result->hide();
ui.lineEdit_similarity->hide();
timer->start(33);
cap.open(0);
}

cv::Mat FaceRecognition::QImage2cvMat(QImage image) {
cv::Mat mat;
qDebug() << image.format();
switch (image.format())
{
case QImage::Format_ARGB32:
case QImage::Format_RGB32:
case QImage::Format_ARGB32_Premultiplied:
mat = cv::Mat(image.height() image.width() CV_8UC4 (void*)image.constBits() image.bytesPerLine());
break;
case QImage::Format_RGB888:
mat = cv::Mat(image.height() image.width() CV_8UC3 (void*)image.constBits() image.bytesPerLine());
cv::cvtColor(mat mat CV_BGR2RGB);
break;
case QImage::Format_Indexed8:
mat = cv::Mat(image.height() image.width() CV_8UC1 (void*)image.constBits() image.bytesPerLine());
break;
}
return mat;



}

QImage FaceRecognition::cvMatToQImage(const cv::Mat& mat) {
// 8-bits unsigned NO. OF CHANNELS = 1
if (mat.type() == CV_8UC1)
{
QImage image(mat.cols mat.rows QImage::Format_Indexed8);
// Set the color table (used to translate colour indexes to qRgb values)
image.setColorCount(256);
for (int i = 0; i < 256; i++)
{
image.setColor(i qRgb(i i i));
}
// Copy input Mat
uchar *pSrc = mat.data;
for (int row = 0; row < mat.rows; row++)
{
uchar *pDest = image.scanLine(row);
memcpy(pDest pSrc mat.cols);
pSrc += mat.step;
}
return image;
}
// 8-bits unsigned NO. OF CHANNELS = 3
else if (mat.type() == CV_8UC3)
{
// Copy input Mat
const uchar *pSrc = (const uchar*)mat.data;
// Create QImage with same dimensions as input Mat
QImage image(pSrc mat.cols mat.rows mat.step QImage::Format_RGB888);
return image.rgbSwapped();
}
else if (mat.type() == CV_8UC4)
{
qDebug() << “CV_8UC4“;
// Copy input Mat
const uchar *pSrc = (const uchar*)mat.data;
// Create QImage with same dimensions as input Mat
QImage image(pSrc mat.cols mat.rows mat.step QImage::Format_ARGB32);
return image.copy();
}
else
{
qDebug() << “ERROR: Mat could not be converted to QImage.“;
return QImage();
}


}


void FaceRecognition::showImage() {
cap >> frame;
image = this->cvMatToQImage(frame);
ui.label_camera->clear();
ui.label_camera->setPixmap(QPixmap::fromImage(image));
//ui.label_camera->resize(ui.label_camera->pixmap()->size());
ui.label_camera->show();

}

cv::Mat FaceRecognition::getFace(cv::Mat img) {
std::vector faces;
std::vector faceRects;
MTCNN mtcnn(“C:\projects\Qt\FaceR

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-07-09 10:24  FaceRecognition
     目录           0  2018-07-07 10:49  FaceRecognition.vs
     目录           0  2018-07-07 10:49  FaceRecognition.vsFaceRecognition
     目录           0  2018-07-07 10:49  FaceRecognition.vsFaceRecognitionv14
     文件       41472  2018-07-09 10:24  FaceRecognition.vsFaceRecognitionv14.suo
     目录           0  2018-07-09 10:21  FaceRecognitionFaceRecognition
     文件        7251  2018-07-09 10:21  FaceRecognitionFaceRecognitionFaceRecognition.cpp
     文件         960  2018-07-09 10:06  FaceRecognitionFaceRecognitionFaceRecognition.h
     文件          75  2018-07-07 10:49  FaceRecognitionFaceRecognitionFaceRecognition.qrc
     文件        4394  2018-07-07 17:17  FaceRecognitionFaceRecognitionFaceRecognition.ui
     文件       11731  2018-07-08 13:01  FaceRecognitionFaceRecognitionFaceRecognition.vcxproj
     文件        2425  2018-07-08 13:01  FaceRecognitionFaceRecognitionFaceRecognition.vcxproj.filters
     文件         633  2018-07-09 10:24  FaceRecognitionFaceRecognitionFaceRecognition.vcxproj.user
     目录           0  2018-07-08 13:32  FaceRecognitionFaceRecognitionGeneratedFiles
     目录           0  2018-07-08 13:32  FaceRecognitionFaceRecognitionGeneratedFilesRelease
     文件        4004  2018-07-09 10:06  FaceRecognitionFaceRecognitionGeneratedFilesReleasemoc_FaceRecognition.cpp
     文件        1444  2018-07-08 13:32  FaceRecognitionFaceRecognitionGeneratedFilesqrc_FaceRecognition.cpp
     文件        5940  2018-07-08 13:32  FaceRecognitionFaceRecognitionGeneratedFilesui_FaceRecognition.h
     文件       22120  2018-07-07 09:49  FaceRecognitionFaceRecognitionMTCNN.cpp
     文件        2901  2018-07-05 20:18  FaceRecognitionFaceRecognitionMTCNN.h
     目录           0  2018-07-09 10:25  FaceRecognitionFaceRecognitionResources
     文件        2694  2018-07-07 11:06  FaceRecognitionFaceRecognitionSeetaIdentification.cpp
     文件         879  2018-07-07 11:06  FaceRecognitionFaceRecognitionSeetaIdentification.h
     文件         652  2018-07-05 20:29  FaceRecognitionFaceRecognitionhead.h
     文件         189  2018-07-08 10:15  FaceRecognitionFaceRecognitionmain.cpp
     目录           0  2018-07-07 11:00  FaceRecognitionFaceRecognitionx64
     目录           0  2018-07-07 10:50  FaceRecognitionFaceRecognitionx64Debug
     文件          36  2018-07-07 10:50  FaceRecognitionFaceRecognitionx64DebugFaceRecognition.log
     目录           0  2018-07-07 10:50  FaceRecognitionFaceRecognitionx64DebugFaceRecognition.tlog
     文件         212  2018-07-07 10:50  FaceRecognitionFaceRecognitionx64DebugFaceRecognition.tlogFaceRecognition.write.1u.tlog
     文件         131  2018-07-07 10:50  FaceRecognitionFaceRecognitionx64Debugqt.log
............此处省略60个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)