OpenCV: Traincascade завершается неудачно "Утверждение не удалось _img.cols == winSize.width"
У кого-нибудь есть идея, что означает ошибка OpenCV: сбой утверждения _img.cols == winSize.width? Я не знаком с новой реализацией обучения haar (=traincascade) и не могу найти какую-либо документацию в вики. Спасибо джозеф
3 ответа
Может быть, это поможет: http://lab.cntl.kyutech.ac.jp/~kobalab/nishida/opencv/OpenCV_ObjectDetection_HowTo.pdf
Наличие слишком большой базы данных не проблема, это не имеет смысла. Это было моей проблемой в течение нескольких дней. Я предполагаю, что вы использовали поток в своей программе, и ваши потоки доходят до SVM (или чего-то еще, что вы используете для поезда), прежде чем добраться до детектора (для обнаружения ключевых точек). Если вы посмотрите на путь, который приводит вас к ошибке утверждения, вы поймете, что эти вещи актуальны. Я советую вам использовать мьютекс (или семафоры) для правильного управления вашими потоками, или, если вы не используете потоки, убедитесь, что они обнаруживают перед тренировкой.
удачи
Я думаю, что нашел несколько ответов:
- Это может быть из-за слишком большой базы данных (слишком много положительных и отрицательных изображений).
- Это может быть из-за того, что образцы позитивов слишком сильно различаются, поэтому нельзя выделить некоторые особенности для определения объекта;
- Это также может быть связано с тем, что наборы негативов, которые могут содержать сцены (большие изображения, из которых OpenCV генерирует много негативных выборок), содержат образцы, очень похожие на положительные.
Но я бы выбрал первый, потому что, если я уменьшу количество сэмплов, он больше не застревает.