人脸检测,检测人睁闭眼睛,可以判断是否疲劳驾驶。


人脸检测,检测人睁闭眼睛,可以判断是否疲劳驾驶,代码是vc+opencv工程,里面自带有opencv的dll库。
资源截图
代码片段和文件信息
// FatigueDetecting.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include 
#include 
#include 
#include “FaceDetect.h“
#include “Function.h“
#include “SVMTrain.h“
#include “Feature.h“
using namespace DpFat;
using namespace std;

const int DESIRED_CAMERA_WIDTH = 640;
const int DESIRED_CAMERA_HEIGHT = 480;
const char *windowName = “CameraFaceRec“;   // Name shown in the GUI window.
#if !defined VK_ESCAPE
#define VK_ESCAPE 0x1B      // Escape character (27)
#endif


void ImgTest();
void VideoTest();
void CameraTest();
const string option[] =
{
“1. 图片测试;“
“2. 视频测试;“
“3. 摄像头测试;“
“4. SVM训练(没分类);“
“5. SVM训练(已分类);“
“6. SVM测试;“
“7. 退出;“
};

const int optionCount = 7;

int _tmain(int argc _TCHAR* argv[])
{
bool isExit = false;

while (isExit != true)
{
stringstream selectOption(stringstream::in | stringstream::out);
selectOption << “Fatigue Detecting Option:“<< endl;
for(int i = 0; i < optionCount; i++)
{
selectOption << option[i] << endl;
}

cout << “////////////////////////////////////“<< endl;
cout << selectOption.str();
cout << “////////////////////////////////////“<< endl;
cout << “请选择一项操作:“;

int select = -1;
bool isRepeat = true;
while (isRepeat)
{
cin >> select;
isRepeat = false;
switch (select)
{
case 1:
ImgTest();
break;
case 2:
VideoTest();
break;
case 3:
CameraTest();
break;
case 4:
SVMTrain(false);
break;
case 5:
SVMTrain(true);
break;
case 6:
SVMTest();
break;
case 7:
isExit = true;
break;
case -1:
isExit = true;
break;
default:
cout << “输入错误,请重新输入:“;
isRepeat = true;
select=5;
break;
}
}
}
return 0;
}

void ImgTest()
{
static const char* const path = “../data/144909636.webp“;
cv::Mat_ img(cv::imread(path CV_LOAD_IMAGE_GRAYSCALE));

if (!img.data)
{
printf(“Cannot load %s
“ path);
return;
}
FaceDetect detect;
if(!detect.LoadCascades(“../data/“))
{
cout<<“Load detect cascade error!“< }

try
{
CvSVM svm;
string path = “svmfat.xml“;
svm.load(path.c_str() “svm“);

cout << “Begin to predict“ << endl;

Face aFace=detect.DetectFace(img);
cv::Rect rcFace=aFace.GetFace();
if (rcFace.width>0)
{
rectangle(imgrcFaceScalar(000)2);
cv::Rect rcLEye=aFace.GetLEye();
cv::Rect rcREye=aFace.GetREye();
int iLfet=1iRight=1;
if (rcREye.width>0)
{
//rectangle(imgrcREyeScalar(000)2);
Mat eye=img(rcREye).clone();
resize(eyeeyecv::Size(F_WIDTHF_HEIGHT));
equalizeHist(eyeeye);
Mat features;
GetHistogram(eye features);

features = features.reshape(1 1);
features.convertTo(features CV_32FC1);

iRight = (int)svm.predict(features);
if (iRight)
{
cout<<“open right eye!“< }
else

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-03-02 16:29  FatigueDetecting
     目录           0  2017-12-27 16:55  FatigueDetectingDebug
     文件        8162  2016-03-28 16:22  FatigueDetectingDebugBuildLog.htm
     目录           0  2016-03-02 16:29  FatigueDetectingDpPerclos
     文件         520  2015-06-01 08:45  FatigueDetectingDpPerclosFace.cpp
     文件         715  2015-06-01 09:07  FatigueDetectingDpPerclosFace.h
     文件        6605  2015-06-08 17:14  FatigueDetectingDpPerclosFaceDetect.cpp
     文件        1457  2015-06-01 09:07  FatigueDetectingDpPerclosFaceDetect.h
     文件        2705  2015-06-09 09:15  FatigueDetectingDpPerclosFeature.cpp
     文件         890  2015-06-10 15:25  FatigueDetectingDpPerclosFeature.h
     文件        9328  2015-06-05 09:13  FatigueDetectingDpPerclosFunction.cpp
     文件        2275  2015-06-05 09:13  FatigueDetectingDpPerclosFunction.h
     文件        4479  2015-06-08 08:58  FatigueDetectingDpPerclosHistogram.h
     文件       12020  2015-06-09 10:22  FatigueDetectingDpPerclosSVMTrain.cpp
     文件         813  2015-06-09 13:54  FatigueDetectingDpPerclosSVMTrain.h
     文件       15127  2015-06-11 16:55  FatigueDetectingFatigueDetecting.cpp
     文件        6618  2015-06-05 09:32  FatigueDetectingFatigueDetecting.vcproj
     文件        1423  2017-12-27 17:00  FatigueDetectingFatigueDetecting.vcproj.DEPPON.141176.user
     文件        1423  2015-06-16 18:13  FatigueDetectingFatigueDetecting.vcproj.zr-PC.zr.user
     文件        1237  2015-05-29 16:58  FatigueDetectingReadMe.txt
     目录           0  2017-12-27 16:58  FatigueDetectingRelease
     文件       12168  2015-06-11 17:25  FatigueDetectingReleaseBuildLog.htm
     文件     1031542  2015-06-01 14:17  FatigueDetectingReleaseFace.obj
     文件     1073052  2015-06-08 17:14  FatigueDetectingReleaseFaceDetect.obj
     文件         616  2015-06-11 17:25  FatigueDetectingReleaseFatigueDetecting.exe.intermediate.manifest
     文件     1132734  2015-06-11 17:25  FatigueDetectingReleaseFatigueDetecting.obj
     文件     1062786  2015-06-10 15:25  FatigueDetectingReleaseFeature.obj
     文件     1182296  2015-06-05 09:13  FatigueDetectingReleaseFunction.obj
     文件     1193043  2015-06-10 15:25  FatigueDetectingReleaseSVMTrain.obj
     文件          65  2015-06-11 17:25  FatigueDetectingReleasemt.dep
     文件       35102  2015-06-01 14:17  FatigueDetectingReleasestdafx.obj
............此处省略512个文件信息

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

发表评论

评论列表(条)