图像处理实时瞌睡驾驶员检测matlab
我正试图检测困倦的司机图像处理实时瞌睡驾驶员检测matlab,matlab,image-processing,Matlab,Image Processing,我正试图检测困倦的司机 faceDetector = vision.CascadeObjectDetector(); acik = 0; kapali = 0; framesayisi = 0; frame = getsnapshot(obj); framesayisi = framesayisi + 1; bbox = step(faceDetector,frame); videoOut = insertObjectAnnotation(frame,'rectangle',bb
faceDetector = vision.CascadeObjectDetector();
acik = 0;
kapali = 0;
framesayisi = 0;
frame = getsnapshot(obj);
framesayisi = framesayisi + 1;
bbox = step(faceDetector,frame);
videoOut = insertObjectAnnotation(frame,'rectangle',bbox,'');
[hueChannel,~,~] = rgb2hsv(frame);
noseDetector = vision.CascadeObjectDetector('Nose', 'UseROI', true);
noseBBox = step(noseDetector, frame, bbox);
tracker = vision.HistogramBasedTracker;
initializeObject(tracker, hueChannel, noseBBox);
bboxeye = bbox;
while (1)
frame = getsnapshot(obj);
[hueChannel,~,~] = rgb2hsv(frame);
bbox = step(tracker, hueChannel);
videoOut = insertObjectAnnotation(frame,'rectangle',bbox,'SÜRÜCÜ');
subplot(2,1,1);imshow(videoOut); title('Live');
%% Göz işlemleri
yuzcr = imcrop(videoOut,bbox);
yuzcr = rgb2gray(yuzcr);
EyeDetect = vision.CascadeObjectDetector('EyePairBig');
bboxeye=step(EyeDetect,yuzcr);
gozcr = imcrop(yuzcr,bboxeye);
se = strel('disk', 4);
er = imerode(yuzcr,se);
dl = imdilate(er,se);
eg = yuzcr - dl;
level = graythresh(eg);
eg = imcrop(eg,bboxeye);
eg2 = imbinarize(eg,level);
subplot(2,1,2),imshow(eg); title('Live Eyes');
if mean(mean(eg2)) == 0
kapali = kapali + 1;
else
acik = acik + 1;
end
if mod(framesayisi,5) == 0
perclos = (framesayisi - acik)*100/framesayisi;
kapali = 0;
acik = 0;
if perclos >= 70
warning('UYKULU SÜRÜCÜ TESPİT EDİLDİ');
end
end
end
这是密码。首先,我必须检测并跟踪司机的面部表情。首先我使用Matlab级联人脸检测器,然后我使用鼻子检测器跟踪人脸。然后我检测眼睛并应用一些形态学过程,决定让昏昏欲睡的司机。问题是,如果人脸检测仪找不到眼睛(有时人脸检测仪不包含眼睛),程序就会失败。如果这个问题很容易解决,可以在stackoverflow中解决,那么世界上所有的汽车都会有这项技术。。。没那么容易