How does the vision.CascadeObjectDetector detect left and right eyes separately? It is constantly detecting left and right as the same eye.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am using the vision.CascadeObjectDetector to find eyes in facial images.
I am reading in the image, converting to gray scale and performing the detection similar to the face detection tutorial here: http://www.mathworks.com.au/help/vision/ref/vision.cascadeobjectdetector-class.html
and using 'LeftEyeCART' and 'RightEyeCART' as classification models.
The for some images in my database the detector is finding the left and right eyes to be the same eyes, with no notable variation in image causing the false detection. See the images below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/145428/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/145429/image.jpeg)
How does it work? Does it scan the image from the right hand side to find eyes and simply missed the left eye? Therefore will I have to do some pre - processing on the images to aid the detection? Will I have to train a Cascade Object Detector like this example: http://www.mathworks.com.au/help/vision/ug/train-a-cascade-object-detector.html
for my dataset?
0 Kommentare
Antworten (3)
Dima Lisin
am 17 Sep. 2014
If both eyes are visible, you would be better off trying to detect the pair of eyes using 'EyePairBig' and 'EyePairSmall' models. Single eye detectors are more useful in cases when only one eye is visible.
2 Kommentare
Ushna Asif
am 21 Nov. 2015
I want to detect left and right separately and I also having the same problem kindly help.
Dima Lisin
am 26 Jan. 2016
Why not detect both eyes, and then split the resulting bounding box in half?
ibrahim thamary
am 26 Dez. 2017
try this:
I= imread('img.jpg');
EyeDetect = vision.CascadeObjectDetector('EyePairBig');
BB=step(EyeDetect,I);
x=length(BB(:,4));
%To detect Eyes
I2 = imcrop(I,BB(x,:));
figure,imshow(I2);
rectangle('Position',BB,'LineWidth',4,'LineStyle','-','EdgeColor','b');
%To detect the left
na1 = I2(:, 1 : floor(end/2.3));
figure,imshow(na1);
%To detect the right
na2 = I2(:, floor(end/(2.24))+1 : end );
figure,imshow(na2);
1 Kommentar
Luis Orlando Mendoza Guerrero
am 10 Nov. 2020
hi,
when i copy, line 8 has error... 'Value must be a 4 element vector'
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!