2015-05-06 2 views
0

Я стараюсь обучать автомобиль номерного знака и мотоцикл номерного знака с OpenCv версии 2.4.10.Как обучить два объекта разного размера в openCv

У меня есть 235 изображений положительных и 300 негативных изображений.

Для положительных изображений автомобиль номерного знака реального размера составляет 40 см х 13 см, а мотоцикл номерного знака - настоящий размер 20 см x 17 см. При попытке обучения векторов отдельно программное обеспечение работает нормально, но когда я пытался тренироваться с использованием двух пластин, программное обеспечение не работает.

Вот код тренировки.

Этот код работает с номерным знаком автомобилем, но не работает с номерным знаком мотоциклом

createsamples -info c:\harrkit\HAARKITV10\povitivos\info.txt -vec vetor\veiculos_64x24.vec -num 235 -w 64 -h 24 
trainCascade -data cascade -vec c:\harrkit\HAARKITV10\vetor\veiculos_64x24.vec -bg c:\harrkit\HAARKITV10\negativos\negativos.txt -numPos 235 -numNeg 200 -numStages 12 -featureTyp HAAR -minHitRate 0.999 -maxFalseAlarmRate 0.5 -w 64 -h 24 

// detectMultiScale код

if (mAbsolutePlateSize == 0) { 
       int height = mGray.rows(); 
       if (Math.round(height * mRelativePlateSize) > 0) { 
        mAbsolutePlateSize = Math.round(height * mRelativePlateSize); 
       } 
       mNativeDetector.setMinFaceSize(mAbsolutePlateSize); 
      } 

      MatOfRect mMatPlacas = new MatOfRect(); 

      if (mDetectorType == JAVA_DETECTOR) { 
       if (mJavaDetector != null) 
        mJavaDetector.detectMultiScale(mGray, mMatPlacas, 1.1, 2, 2, new Size(mAbsolutePlateSize, mAbsolutePlateSize), new Size()); 
      } else if (mDetectorType == NATIVE_DETECTOR) { 
       if (mNativeDetector != null) 
        mNativeDetector.detect(mGray, mMatPlacas); 
      } else { 
       Log.e(TAG, "Detection method is not selected!"); 
      } 

ответ

1

Поскольку эти два типа пластин имеют разные пропорции, вы можете попытаться обучить различный классификатор для каждого типа. На бумаге это более точно.

0

Вашей проблема может исходить от отсутствующего знака минус перед тем h в createsamples

Попробуйте следующее:

createsamples -info c:\harrkit\HAARKITV10\povitivos\info.txt -vec vetor\veiculos_64x24.vec -num 235 -w 64 -h 24 

Он должен работать, потому что createsamples набор положительных элементов с фиксированной шириной и высотой (64x64).

+0

есть ошибка ввода в моем вопросе, я исправлю это – Fabricio

+0

Не работает? Что такое сообщение об ошибке? – Kornel

+0

это работает, проблема в том, что я использую этот каскад в программном обеспечении ... объект с размером 40 см х 13 см признан с успехом, но объект размером 20 см х 17 см нет. – Fabricio

0

Вы должны изменить свои параметры «h» и «w» для обучения второго типа объектов, эти параметры могут вызвать проблемы, особенно если они не соответствуют размеру вашего объекта. Также, можете ли вы положить консоль, мы должны взглянуть на ваши ошибки, чтобы выяснить происхождение вашей проблемы!

Смежные вопросы