Smorodov 579 Жалоба Опубликовано February 26, 2011 Думаю это должно помочь: http://courses.graphicon.ru/main/vision/2010/lectures Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Storm 0 Жалоба Опубликовано February 26, 2011 Спасибо. Еще такой вопрос: возможна ли такая ситуация, что обучение каскада утилитой haartraining "зайдет в тупик" (например, заданы недостижимые вероятности для данного набора изображений или что-то вроде этого )? И, если такое возможно, сообщит ли программа об этом? Просто обучение вот с такими параметрами opencv_haartraining \ -data classifier2\ -vec vecfile\ -bg negatives.txt\ -npos 2032\ -nneg 7650\ -nstages 12\ -nsplits 2\ -mem 4096\ -nonsym\ -minhitrate 0.999900\ -maxfalsealarm 0.300000\ -weighttrimming 0.950000\ -mode ALL\ -w 12\ -h 24 выполняется уже порядка недели на достаточно мощной машине, а этап обучения не меняется. Подозреваю, что 0,3 - слишком мало. При этом процессор загружен на 100%, т.е. программа видимо что-то делает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано March 11, 2011 Пытаюсь обучить каскад хаара с помощью данной утилиты. В качестве исходных данных используется набор картинок с выделенными пешеходами (вручную). По полученным данных создаю info.dat для генерации положительных примеров. Вот его содержимое (кусочек): e:\PedestriansPics\frame00001.bmp 2 248 60 15 30 241 40 9 19 e:\PedestriansPics\frame00002.bmp 2 249 60 14 28 241 41 9 19 e:\PedestriansPics\frame00003.bmp 2 247 61 13 27 240 39 12 25 e:\PedestriansPics\frame00004.bmp 2 249 61 14 28 240 39 13 26 e:\PedestriansPics\frame00005.bmp 2 250 62 14 28 238 40 9 18 с помощью утилиты createsamples.exe создаю файл positives.vec - пока все успешно. В исходных картинках закрашиваю пешеходов черными прямоугольниками и делаю их список - файл с отрицательными примерами. Запускаю обучение каскада Хаара: haartraining.exe -vec positives.vec -bg bg.txt -npos 7000 -nneg 3000 он начинает обучаться, но потом выдает ошибку: haartraining.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства. Из-за чего такая может возникать? как исправить? Заранее благодрана Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 11, 2011 Может быть из-за прав доступа к файлам? Запущено от имени админа? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано March 11, 2011 Да, пользователь под которым запускается утилита имеет права администратора. И падение происходит не сразу как к файлам обращается, а уже в процессе обучения. Вот что выдает программа в окне: Data dir name: (NULL) Vec file name: positives.vec BG file name: bg.txt Num pos: 7000 Num neg: 3000 Num stages: 14 Num splits: 1 (stump as weak classifier) Mem: 200 MB Symmetric: TRUE Min hit rate: 0.995000 Max false alarm rate: 0.500000 Weight trimming: 0.950000 Equal weights: FALSE Mode: BASIC Width: 24 Height: 24 Max num of precalculated features: 3495 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.10352e-005 Stage 0 loaded Stage 1 loaded Stage 2 loaded Stage 3 loaded Stage 4 loaded Stage 5 loaded Stage 6 loaded Stage 7 loaded Stage 8 loaded Tree Classifier Stage +---+---+---+---+---+---+---+---+---+ | 0| 1| 2| 3| 4| 5| 6| 7| 8| +---+---+---+---+---+---+---+---+---+ 0---1---2---3---4---5---6---7---8 Number of features used : 85848 Parent node: 8 *** 1 cluster *** POS: 964 1000 0.964000 NEG: 413 0.0128624 BACKGROUND PROCESSING TIME: 0.09 .................................. Precalculation time: 0.19 +----+----+-+---------+---------+---------+---------+ | N |%SMP|F| ST.THR | HR | FA | EXP. ERR| +----+----+-+---------+---------+---------+---------+ | 1|100%|-|-0.205523| 1.000000| 1.000000| 0.458243| +----+----+-+---------+---------+---------+---------+ | 2|100%|+|-0.283935| 1.000000| 1.000000| 0.342774| +----+----+-+---------+---------+---------+---------+ | 3| 88%|-|-0.625260| 1.000000| 1.000000| 0.245461| +----+----+-+---------+---------+---------+---------+ | 4| 90%|+|-0.805312| 1.000000| 1.000000| 0.245461| +----+----+-+---------+---------+---------+---------+ | 5| 82%|-|-0.946783| 1.000000| 1.000000| 0.228758| +----+----+-+---------+---------+---------+---------+ | 6| 81%|+|-0.892359| 1.000000| 0.973366| 0.228758| +----+----+-+---------+---------+---------+---------+ | 7| 80%|-|-1.087639| 1.000000| 0.973366| 0.214234| +----+----+-+---------+---------+---------+---------+ | 8| 78%|+|-1.152422| 0.996888| 0.963680| 0.203341| +----+----+-+---------+---------+---------+---------+ | 9| 78%|-|-1.293953| 0.995851| 0.869249| 0.196805| +----+----+-+---------+---------+---------+---------+ | 10| 77%|+|-1.325108| 0.995851| 0.866828| 0.195352| +----+----+-+---------+---------+---------+---------+ | 11| 77%|-|-1.181903| 0.997925| 0.656174| 0.186638| +----+----+-+---------+---------+---------+---------+ | 12| 77%|+|-1.386390| 0.995851| 0.702179| 0.148874| +----+----+-+---------+---------+---------+---------+ | 13| 75%|-|-1.439945| 0.995851| 0.687651| 0.145243| +----+----+-+---------+---------+---------+---------+ | 14| 76%|+|-1.304697| 0.995851| 0.636804| 0.124909| +----+----+-+---------+---------+---------+---------+ | 15| 76%|-|-1.408380| 0.995851| 0.658596| 0.102397| +----+----+-+---------+---------+---------+---------+ | 16| 74%|+|-1.347601| 0.995851| 0.605327| 0.111111| +----+----+-+---------+---------+---------+---------+ | 17| 74%|-|-1.324087| 0.995851| 0.552058| 0.099492| +----+----+-+---------+---------+---------+---------+ | 18| 73%|+|-1.258324| 0.995851| 0.508475| 0.095134| +----+----+-+---------+---------+---------+---------+ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 11, 2011 Сложно сказать, что ему не нравится. Попробуйте все по шагам как здесь написано сделать: http://note.sonots.com/SciSoftware/haartraining.html Вроде у всех получалось по этому руководству. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Headmast 0 Жалоба Опубликовано March 14, 2011 Min hit rate: 0.995000 Max false alarm rate: 0.5000 чует моё сердце проблема в этих строчках. Можешь забить на падение и сделать каскад из 8 стадий. Думаю результат и так будет приемлемым. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано March 15, 2011 Благодарю за советы. Разобралась в чем была проблема. Я по наивности посчитала, что при создании примеров и обучении если не задать размер, то будет задан какой-то по умолчанию, но в этом была проблема. Когда явно написала размер каскад обучился. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LoGin 0 Жалоба Опубликовано March 23, 2011 Есть рабочий каскад. Пытаюсь оценить его работоспособность в процентном соотношении. Не могу разобраться с синтаксисом утилиты performance. C:\Users\Login>D:\OpenCV2.1\bin\opencv_performance.exe -data D:\img\den2000.xml -info D:\img\den2000.vec -ni +================================+======+======+======+ | File Name | Hits |Missed| False| +================================+======+======+======+ | Total| 0| 0| 0| +================================+======+======+======+ Number of stages: 12 Number of weak classifiers: 61 Total time: 0.000000 12 0 0 -1.#IND00 -1.#IND00 0 0 -1.#IND00 -1.#IND00 0 0 -1.#IND00 -1.#IND00 0 0 -1.#IND00 -1.#IND00 ....................................................... 0 0 -1.#IND00 -1.#IND00 префиксом -info D:\img\den2000.vec я даю адрес выходного файла, который был получен createsamples. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dreiko 1 Жалоба Опубликовано March 31, 2011 Здравствуйте.Заранее извиняюсь,если вопрос уже звучал,я вроде порылся в темах,но аналогичного не нашел. Хотелось бы уточнить,что является результатом запуска программы haartraining.Если верить данному сайту ,то результатом является xml файл The haartraing generates a xml file when the process is completely finished (from OpenCV beta5). У меня же результатом работы является папка с txt файлами под каждый уровень классификатора. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 31, 2011 Я подозреваю что версия OpenCv у Вас старая (OpenCV beta5 (0.9.7)). Последняя версия 2.2 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dreiko 1 Жалоба Опубликовано April 3, 2011 Не уверен что проблема именно в этом.Я поставил последнюю версию но эффект тот же.На некоторый момент обучение застопорилось и xml файл не сгенерировалсяюНе подскажете,в чем на ваш взгляд у меня проблема и в каком направлении копать для ее решения? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 3, 2011 Не уверен что проблема именно в этом.Я поставил последнюю версию но эффект тот же.На некоторый момент обучение застопорилось и xml файл не сгенерировалсяюНе подскажете,в чем на ваш взгляд у меня проблема и в каком направлении копать для ее решения? На сайте: http://note.sonots.com/SciSoftware/haartraining.html#n43ec47f есть пункт: Generate a XML File Там написано: По окончании обучения должен сформироваться XML файл. Чтобы получить XML из промежуточных файлов нужно скомпилировать OpenCV/samples/c/convert_cascade.c и при помощи этой программы сформировать XML файл. convert_cascade --size="<sample_width>x<sampe_height>" <haartraining_ouput_dir> <ouput_file> пример: convert_cascade --size="20x20" haarcascade haarcascade.xml [/code] Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано April 7, 2011 Если обучение не закончено, а застопорилось, то xml файл не будет создан. Можно, конечно, его создать, но я не уверена корректно ли будет счить его обученным. Вообще обучение достаточно долгое и, может, стоит еще подождать или поискать ошибку в данных... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано April 7, 2011 Тоже возникла интересная проблема - пытаюсь обучить каскад на лица с поворотами головы. При этом для лиц с левыми поворотами получаются средние результаты, но все же что-то распознается. А вот для лиц с правыми поворотами почти ничего не распознается. В обоих случаях положительных примеров мало, но для лиц с правыми поворотами - больше. Из-за чего такое может происходить? Как бороться? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 7, 2011 Тоже возникла интересная проблема - пытаюсь обучить каскад на лица с поворотами головы. При этом для лиц с левыми поворотами получаются средние результаты, но все же что-то распознается. А вот для лиц с правыми поворотами почти ничего не распознается. В обоих случаях положительных примеров мало, но для лиц с правыми поворотами - больше. Из-за чего такое может происходить? Как бороться? Может из за ключиков симметрии? - sym (default), - nonsym [/code] Определяет, обладает ли целевой объект вертикальной осевой симметрией (по умолчанию - да), наличие симметрии ускоряет процесс обучения. Например, фронтальные изображения лиц обладают осевой симметрией. Или набора используемых элементов [code]- mode <BASIC (default) | CORE | ALL> Определяет набор элементов хаара которые будут использоваться при обучении. BASIC - это только верхне-правые, ALL - полные набор верхне правых и повернутых на 45 градусов элементов. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dreiko 1 Жалоба Опубликовано April 7, 2011 В том то и проблема,что этим у меня заканчиваются все попытки обучения (которых уже было довольно много)...причем на разных версиях и с разными обучающими выборками...я просто думал что это нормально и проверял результаты с помощью performance,а вот когда начал писать свою программу-задумался.Просто всегда когда она вот так зависает,в предыдущем классификаторе HR и FA удовлетворяют требованиям,заданным при обучении,и я думал что программа таким образом сама останавливает обучение(в каком-то мануале читал про такую возможность).Собственно тогда хотелось бы уточнить,как у вас выглядит завершение обучения(те программа так же как у меня застопоривается или же закрывается и генерирует xml файл) и завершается ли оно у вас само раньше,чем достигнет заданного количества уровней классификатора. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано April 8, 2011 В обучении я ставила ключик -nonsym и использовала ALL... Кстати попробовала отразить картинки и поискать левым классификатором - все равно ничего не находит, наверно надо что-то делать с самими картинками лиц Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Headmast 0 Жалоба Опубликовано April 8, 2011 Лично у меня обучение завершается само, если с ошибкой, тогда пишет с какой. При большом количестве файлов, обучение может работать ооочень долго и возникает подозрение, что оно виснет. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Wildcat 2 Жалоба Опубликовано April 8, 2011 Нашла проблему - попробовала изменять параметры -nstages -nsplits, Раньше было 20 и 2, при 3 и 3 находятся лица с правым поворотом, только работает в таком варианте распознаватель гораздо медленнее. Наверно можно еще поиследовать эти параметры и выбрать наилучший вариант... А есть какие-нибудь правила по выбору этих параметров в зависимости от сложности данных и объема выборки, ну и с учетом желаемой скорости работы? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dreiko 1 Жалоба Опубликовано April 13, 2011 Долго-понятие растяжимое...проблема в том,что обучение похоже зависает на подгрузке позитивных(или возможно негативных) изображений и дальше обучение не идет...В порядке эксперимента продержал обучение в таком состоянии(как изображено на картинке) больше суток-ничего не изменилось.И это при том,что до этого уровня обучение заняло от 4 до 6 часов.В обучении я использовал 9000 позитивных и 5000 негативных примеров.Сталкивался ли кто с аналогичной проблемой? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 14, 2011 Тут говорят нормальное время обучения до 3-7 суток так что 1 день - это очень мало. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано April 20, 2011 В архиве файл утилита с пояснениями и командным файлом для тренировки каскадов. В архиве есть исходники. Нужно только немного поправить и перекомпилировать для использования последней версии opencv. Там присутствуют exe-шнки, но они хотят cv.dll, это очень ранняя версия, я не нашел. Может быть позже сделаю перевод документации к ней и допишу пояснения. Взято с: http://inflomatik.com/ PDF - ка к программе: http://inflomatik.com/opencv/2003_05_OpenCV_ObjectDetection_HowTo.pdfOpenCV_ObjectDetection_Demo.rar Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Storm 0 Жалоба Опубликовано May 2, 2011 Тут говорят нормальное время обучения до 3-7 суток так что 1 день - это очень мало. Это мало для полного обучения каскада, но для хотя бы одной итерации обучения одной секции, суток более чем достаточно, как мне кажется. У меня обучение также стопорилось без каких-либо дополнительных сообщений (и висело так около недели на 3GHz). Я не понял в чём конкретно проблема, обходил увеличением базы изображений, изменением количества секций обучаемого каскада, изменением -minhitrate и -maxfalsealarm. Да, это накладно по времени Сейчас вот подумал, что может помочь уменьшение -weighttrimming. Потому что загрузка процессора в таких случаях если падает, то незначительно - программа продолжает что-то считать. Возможно, изменяя веса слишком сильно, программа перескакивает искомый минимум функции то в одном, то в другом направлении и получается если не бесконечный, то очень продолжительный цикл. А может кто-нибудь подскажет, что означает EXP. ERR в выводе haartraining? Вот в этом документе даётся такое пояснение: +----+----+-+---------+---------+---------+---------+ | N |%SMP|F| ST.THR | HR | FA | EXP. ERR| +----+----+-+---------+---------+---------+---------+ | 1|100%|-|-0.857040| 1.000000| 1.000000| 0.082075| +----+----+-+---------+---------+---------+---------+ | 2|100%|+|-1.702127| 1.000000| 1.000000| 0.102168| +----+----+-+---------+---------+---------+---------+ N The iteration number of feature selection training. %SMP The percentage of original samples left. F + indicates the feature is flipped. Related to -sym (default) option. ST.THR Stage threshold HR Hit rate FA False alarm rate. FYI: (HR, FA) = (1.0, 1.0) means the detector simply alarms every time for everything. EXP.ERR Expected (misclassification) error. Если имеется в виду частота ошибок второго рода, то почему это число не совпадает с (1 - HR)? Если это какие-то другие ошибки, то какие? Поискал там и тут, не получается найти еще какие-нибудь пояснения. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Sht1rlitz 0 Жалоба Опубликовано August 26, 2011 Приветствую всех! Хочу попросить небольшой совет! Требуется находить такое изображение: 1) В качестве "негативных" изображений использую фото волн, песка в градациях белого с более-менее постоянной яркостью. На мой взгляд, это правильно ввиду того, что эталонное изображение часто встречается в рукотворном мире. 2) Позитивные генерятся из единственного эталона с параметрами -w 77 -h 25 -maxxangle 0 -maxyangle 0 -maxzangle 0.175. 3) Обучение использует параметры: -nstages 14 -mode ALL -w 77 -h 25 -nonsym -minhitrate 0.9 -maxfalsealarm 0.5 -mem 1024 Соотношение pos:neg = 1:2 Good enough proportion is positive:negative = 1:2. Загвоздка в том, что даже при количестве 25 к 50 процесс стопорится не дойдя до 8 этапа. Ошибок не выдаёт. Комп Core2Duo 2.4 + 4 Гб. Скажите, очень прошу, в чём изъян моего подхода? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах