2012-09-25 28 views
10

MATLAB'de CascadeObjectDetector hakkında bir sorum var. MATLAB'da CascadeObjectDetector kaynak kodunda görüyorum: MATLAB, OpenCv CascadeClassifier'ı kullanıyor mu?

pCascadeClassifier; % OpenCV pCascadeClassifier 

Sonra bakın:

%------------------------------------------------------------------ 
% Constructor 
%------------------------------------------------------------------ 
function obj = CascadeObjectDetector(varargin)    
    obj.pCascadeClassifier = vision.internal.CascadeClassifier; 
    ... 
end 

Ve stepImpl yılında:

bbox = double(obj.pCascadeClassifier.detectMultiScale(I, ... 
      double(obj.ScaleFactor), ... 
      uint32(obj.MergeThreshold), ...    
      uint32(obj.MinSize), ... 
      uint32(obj.MaxSize))); 

biliyor musunuz, vision.internal.CascadeClassifier nedir? Bu sadece OpenCV CascadeClassifier mu? Ve kaynak kodu detectMultiScale nerede çalışır?

+0

En son OpenCV'nin detectMultiscale'i [burada] (http://code.opencv.org/projects/opencv/repository/revisions/master/entry/modules/objdetect/src/cascadedetect.cpp # L1089) –

cevap

0

şey matlab aşağıdaki nesne dedektörleri

sağlamasıdır
  1. burada
  2. damla analizi
  3. viyola-jones algoritması diğer bilgiler eşleşen şablonu: Şimdi http://www.mathworks.ch/products/computer-vision/description4.html

bahsetmek opencv. Yüz algılama için kullanılan cv.HaarDetectObjects() işlevinin (ve genel olarak nesne tespiti için kullanılan) opencv işlevi, çevirme işleminin harr benzeri özellikleri kullanan viola jones algoritmasını kullanır. Kişisel görüşüm, uygulamaların biraz farklı olabileceğidir ancak aslında aynı algoritmaya sahip olduklarıdır.

Eğer hala ikna değilseniz ve matlab'dan opencv işlevini kullanmak istiyorsanız MEX'i kullanabilirsiniz. Böylece bu şekilde matlab'dan cv.HaarDetectObjects() kullanabilirsiniz. Daha fazla ayrıntı için: http://www.mathworks.ch/discovery/matlab-opencv.html

+0

Temel sorun, MATLAB versiyonunun OpenCV'den çok daha iyi çalıştığıdır. Örneğin, MATLAB FaceCascadeDetector tarafından sıklıkla güneş gözlüklerinde yüzleri bulur, ancak OpenCV güneş gözlüklerine çok nadir rastlar. Bunun MATLAB'ın üç algoritma kullandığını ve OpenCV'nin sadece bir algoritma kullandığını sanıyorsunuz değil mi? – EgorD

+0

Hayır, inancımın nedeni değil. İnanıyorum ki, ne tür şablonlar (eğitim verileri) kullanılıyor? – mkuse

+0

MATLAB ve OpenCV aynı kaskatı kullanır. Yani sorun eğitim verilerinde değil, kodda. – EgorD

İlgili konular