RuZ 0 Жалоба Опубликовано October 10, 2010 Пытаюсь делать все по инструкции http://www.compvision.ru/index.php/Обучение_каскадов_Хаара очень не хватает живого пошагового примера. Цель - нахождение в кадре ладони. 1. Генерирую положительные образы из картинки (hand1.jpg), файлы фона - файлы пустой стены. f:\programming\OpenCV2.1\bin\opencv_createsamples.exe -vec f:\programming\opencv\handimg\myhand -img f:\programming\opencv\handimg\hand1.jpg -bg f:\programming\opencv\handimg\bg.txt -num 1000 -bgcolor 255 -maxxangle 1 -m axyangle 1 -maxzangle 1 -show -w 120 -h 120 2. Пытаюсь скормить это программе тренировки, F:\programming\OpenCV2.1\bin\opencv_haartraining.exe -data f:\programming\opencv\handimg\classif\ -vec f:\programming\opencv\handimg\myhand -bg f:\programming\opencv\handimg\bg.txt -npos 1000 -nneg 300 -nstages 3 -mem 900 -nonsym 1 -w 120 -h 120 -weighttrimming 0.9 -maxfalsealarm 400 minhitrate 300 Вот что на это говорит программа и через некоторое время вылетает с ошибкой Data dir name: f:\programming\opencv\handimg\classif\ Vec file name: f:\programming\opencv\handimg\myhand BG file name: f:\programming\opencv\handimg\bg.txt, is a vecfile: no Num pos: 1000 Num neg: 300 Num stages: 3 Num splits: 1 (stump as weak classifier) Mem: 900 MB Symmetric: FALSE Min hit rate: 0.995000 Max false alarm rate: 400.000000 Weight trimming: 0.900000 Equal weights: FALSE Mode: BASIC Width: 120 Height: 120 Applied boosting algorithm: GAB Error (valid only for Discrete and Real AdaBoost): misclass Max number of splits in tree cascade: 0 Min number of positive samples per cluster: 500 Required leaf false alarm rate: 6.4e+007 Tree Classifier Stage +---+ | 0| +---+ OpenCV Error: Insufficient memory (Failed to allocate 65408 bytes) in unknown fu nction, file ..\..\..\..\ocv\opencv\src\cxcore\cxalloc.cpp, line 52 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Что я делаю не так? Пробовал с opencv_haartraining из 2.0 и из 2.1, ошибка одинаковая. В принципе какие должны быть размеры картинок для обоих утилит (параметры -w -h) и сколько должно быть положительных примеров? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 11, 2010 Вроде всё правильно. Отлаживать надо. Если есть желание, конечно. Положительных и отрицательных примеров в выборке должно быть по несколько тысяч. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
anry 0 Жалоба Опубликовано October 11, 2010 -mem 900 Может быть памяти слишком много выделено? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RuZ 0 Жалоба Опубликовано October 11, 2010 какие должны быть значения параметров -minhitrate и -maxfalsealarm? С -mem много экспериментировал, результат все тот же, даже с значением по умолчанию (200), физически свободно 1.5 гб оперативки + столько же виртуальной памяти. Пробовал уменьшать количество положительных образов (вместо тысячи - 200), размер уменьшился с 28 до 5 мб, все равно вылетает с той же ошибкой. Отрицательные образы - просто несколько тысяч случайных картинок, на которых нет ладони? Какие должны быть размеры у картинок (генерируемых (-h -w) и исходных)? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
anry 0 Жалоба Опубликовано October 11, 2010 Я делал по этому примеру: http://note.sonots.com/SciSoftware/haartraining.html Все работало. Значения minhitrate было 0.999, maxfalsealarm 0.5. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RuZ 0 Жалоба Опубликовано October 14, 2010 спасибо, разобрался +к тому мануалу есть вот этот http://www.bernardotti.it/portal/showthread.php?t=6843 А сколько времени занимало генерирование? Просто у меня при 7000 позитивных и 3000 негативных и -mode ALL я так и не дождался когда это закончиться (~5 часов) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew smirnov 0 Жалоба Опубликовано October 14, 2010 спасибо, разобрался +к тому мануалу есть вот этот http://www.bernardotti.it/portal/showthread.php?t=6843 А сколько времени занимало генерирование? Просто у меня при 7000 позитивных и 3000 негативных и -mode ALL я так и не дождался когда это закончиться (~5 часов) обучение может идти несколько дней и даже недель . там, кстати, есть возможность прервать процесс с последующим возобновлением обучения с прерванной стадии. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew smirnov 0 Жалоба Опубликовано October 14, 2010 обучение может идти несколько дней и даже недель . там, кстати, есть возможность прервать процесс с последующим возобновлением обучения с прерванной стадии. кстати, как генерировали позитивные образцы? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RuZ 0 Жалоба Опубликовано October 14, 2010 f:\programming\OpenCV2.1\bin\opencv_createsamples.exe -vec f:\programming\opencv\handimg\myhand -img f:\programming\opencv\handimg\hand1.jpg -bg f:\programming\opencv\handimg\bg.txt -num 7000 -bgcolor 255 -maxxangle 1 -m axyangle 1 -maxzangle 1 -show -w 20 -h 20 Картинка-основа в 1 посте. Кстати вопрос, 20 на 20 это нормально? Я пробовал распознавать, дождавшись обучения только при 1000 поз. и 300 нег., распознает кучу мусора, но периодически и правильный объект (хотя может это и случайность) А как возобновить процесс? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew smirnov 0 Жалоба Опубликовано October 14, 2010 Картинка-основа в 1 посте. Кстати вопрос, 20 на 20 это нормально? Я пробовал распознавать, дождавшись обучения только при 1000 поз. и 300 нег., распознает кучу мусора, но периодически и правильный объект (хотя может это и случайность) А как возобновить процесс? если не ошибаюсь, просто запускаешь еще раз с теми параметрами, промежуточные файлы обучения должны остаться на своих местах - обучалка сама подцепит последний результат (стадию) и продолжит с этого места. вроде так, хотя давно это было. по-поводу размера - каскады, которые лежат в открытом доступе, кажется, имеют минимальный размер изображения 24х24. по поводу чувствительности - можно попробовать поиграть с параметрами, которые передаются в процедуру детектирования - возможно, это поможет отсеять мусор. Позитивный образец - просто копировал 1000 раз или видоизменял? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew smirnov 0 Жалоба Опубликовано October 14, 2010 если не ошибаюсь, просто запускаешь еще раз с теми параметрами, промежуточные файлы обучения должны остаться на своих местах - обучалка сама подцепит последний результат (стадию) и продолжит с этого места. вроде так, хотя давно это было. по-поводу размера - каскады, которые лежат в открытом доступе, кажется, имеют минимальный размер изображения 24х24. по поводу чувствительности - можно попробовать поиграть с параметрами, которые передаются в процедуру детектирования - возможно, это поможет отсеять мусор. Позитивный образец - просто копировал 1000 раз или видоизменял? да, там еще на каждой стадии ошибки первого и второго рода выводятся - вот они тебе и скажут, насколько хорошо обучена модель Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RuZ 0 Жалоба Опубликовано October 14, 2010 opencv_createsamples.exe как раз и занимается видоизменением (поворот, искажение, изменение цветов) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LoGin 0 Жалоба Опубликовано October 17, 2010 В чем была проблема? Вылетает с такой же ошибкой. Значения minhitrate и -maxfalsealarm оставил по умолчанию C:\Users\Login>D:\OpenCV2.1\bin\opencv_haartraining.exe -data D:\img\ -vec D:\im g\sat.vec -bg D:\bg.txt -npos 500 -nneg 5 -nstages 20 -nsplits 2 -mem 500 -nonsym -w 60 -h 60 Data dir name: D:\img\ Vec file name: D:\img\sat.vec BG file name: D:\bg.txt, is a vecfile: no Num pos: 100 Num neg: 5 Num stages: 20 Num splits: 2 (tree as weak classifier) Mem: 1500 MB Symmetric: FALSE Min hit rate: 0.995000 Max false alarm rate: 0.500000 Weight trimming: 0.950000 Equal weights: FALSE Mode: BASIC Width: 60 Height: 60 Applied boosting algorithm: GAB Error (valid only for Discrete and Real AdaBoost): misclass Max number of splits in tree cascade: 0 Min number of positive samples per cluster: 500 Required leaf false alarm rate: 9.53674e-007 Tree Classifier Stage +---+ | 0| +---+ OpenCV Error: Insufficient memory (Failed to allocate 926983220 bytes) in unknow n function, file ..\..\..\..\ocv\opencv\src\cxcore\cxalloc.cpp, line 52 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Добавлено: Ошибка была в bg.txt хотя createsamples и не ругался Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vint 0 Жалоба Опубликовано November 9, 2010 у меня такое было когда были завышены параметры -width и -height . Посмотри в диспетчере задач сколько отжирает памяти процесс. А вообще у меня вопрос по параметрам haartraining -npos -nneg. Что они означают? Кол-во положительных/отрицательных образцов которые уже сгенерировали createsamples ? А вслучае с -nneg кол-во записей в background_file_name. Так почему тогда программа проглатывает заведомо завышенные значения? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ht1515 0 Жалоба Опубликовано November 20, 2010 Что такое Каскад Хаара и для чего он нужен? Пытался найти информации , но ни гугл ни википедия(там про вивлет какой то написано . Это оно?) толком не знают. Зато нашел статью как его обучить. Но мне пока просто понять что это такое и как с ним работать. речь про этого Хоара? http://ru.wikipedia.org/wiki/%D0%A5%D0%BE%...%B0%D1%80%D0%B4 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано November 20, 2010 Нет, имеется ввиду Альфред Хаар. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано November 20, 2010 Нет, имеется ввиду Альфред Хаар. вот материальчик в тему: Rapid_Object_Detection_Using_a_Boosted_Cascade_of_Simple_Features.pdf slides12_viola_jones_face_detection.ppt Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
dreamcode 0 Жалоба Опубликовано December 26, 2010 Подскажите как создать XML(каскад) и как его обучить роспознавать лица ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 26, 2010 Подскажите как создать XML(каскад) и как его обучить роспознавать лица ? Вам сюда: http://www.compvision.ru/forum/index.php?showtopic=344 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Andrey 1 Жалоба Опубликовано January 13, 2011 Вот обновленная инструкция к утилите haartraining.exe:Инструкция к haartraining.rar 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIIAJIOT 0 Жалоба Опубликовано February 24, 2011 У меня проблемы с генерированием каскада: использую такие настройки: opencv_createsamples.exe -img overview.jpg -num 75 -bg negatives.dat -vec samples.vec -maxxangle 0 -maxyangle 0 -maxzangle 0 -maxidev 20 -bgcolor 0 -bgthresh 10 -w 1024 -h 768 -show overview.jpg - 66х17 пикселей negatives.dat - содержит названия 75 картинок размерами 1280х1024 и 1024х768. В результате позитивное изображение (66х16 пикселей) растянуто по изображению фона(негативному) размером (1024х768)(overview.jpg получается примерно 1024х240 и помещено поверх картинок фона, и изменяется только интенсивность пикселей от картинки к картинке, а не положение). Как я понимаю, позитивное изображение не должно растягиваться на весь размер фона,как получаеться у меня, а должно быть просто размещено в разных координатах на фоне, а не по центру. Я пробовал применять углы поворота -мах(хуz)... они работают. Получается повернутое рястанутое позитивное изображение по центру фона. Помогите пожалуйста разобраться. П.С. вообще, мне нужно находить эталонное изображение 66х17 пикселей на изображении 1280х1024 - 1024х768, может быть есть еще какие-нибудь способы? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано February 25, 2011 cvMatchTemplate тебе нужен. Каскады Хаара для такой задачи - это даже не пуша, а ядерная бомба по воробьям. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KAIIIAJIOT 0 Жалоба Опубликовано February 25, 2011 cvMatchTemplate тебе нужен. Каскады Хаара для такой задачи - это даже не пуша, а ядерная бомба по воробьям. Спасибо за ответ! Буквально через час после поста, я это понял, но хотел посмотреть что здесь напишут, значит я не ошибся =) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Storm 0 Жалоба Опубликовано February 26, 2011 Господа, никто не поделится ссылкой на материал, где можно было бы поподробнее ознакомится с алгоритмом самого обучения каскада? Хочу понять что делает haartrainig с картинками, которые мы ей даем. То, что до сих пор встречалось описывает больше как подготовить изображения, какие указать параметры командной строки, а хотелось бы узнать как само обучение происходит. Как я понимаю, это похоже на обучение нейронной сети? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано February 26, 2011 Там используется "метод усиления слабых классификаторов" или boosting. Вектор признаков формируется из значений вейвлетов Хаара. Читать надо начинать именно про boosting. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах