Перейти к содержимому
Compvision.ru

andrew smirnov

Пользователи
  • Количество публикаций

    46
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем andrew smirnov


  1. Всем привет!

    Есть желание (и необходимость, наверное) по использованию новой версии библиотеки OpenCV 2.2.

    Реализация ряда функций библиотеки с использованием классов не позволяет использовать ее в Делфи. Как вариант, можно переписать реализацию методов классов в виде экспортируемых функций.

    Есть желающие поучаствовать?

    И как насчет предыдущего варианта заголовочных файлов - 70 раз скачали, а комментариев немного... Да и примеры можно было бы в ветке выложить - у кого что получается интересного.


  2. Всем привет!

    Есть желание (и необходимость, наверное) по использованию новой версии библиотеки OpenCV 2.2.

    Реализация ряда функций библиотеки с использованием классов не позволяет использовать ее в Делфи. Как вариант, можно переписать реализацию методов классов в виде экспортируемых функций.

    Есть желающие поучаствовать?


  3. если не ошибаюсь, просто запускаешь еще раз с теми параметрами, промежуточные файлы обучения должны остаться на своих местах - обучалка сама подцепит последний результат (стадию) и продолжит с этого места. вроде так, хотя давно это было. по-поводу размера - каскады, которые лежат в открытом доступе, кажется, имеют минимальный размер изображения 24х24. по поводу чувствительности - можно попробовать поиграть с параметрами, которые передаются в процедуру детектирования - возможно, это поможет отсеять мусор.

    Позитивный образец - просто копировал 1000 раз или видоизменял?

    да, там еще на каждой стадии ошибки первого и второго рода выводятся - вот они тебе и скажут, насколько хорошо обучена модель


  4. Картинка-основа в 1 посте.

    Кстати вопрос, 20 на 20 это нормально? Я пробовал распознавать, дождавшись обучения только при 1000 поз. и 300 нег., распознает кучу мусора, но периодически и правильный объект (хотя может это и случайность)

    А как возобновить процесс?

    если не ошибаюсь, просто запускаешь еще раз с теми параметрами, промежуточные файлы обучения должны остаться на своих местах - обучалка сама подцепит последний результат (стадию) и продолжит с этого места. вроде так, хотя давно это было. по-поводу размера - каскады, которые лежат в открытом доступе, кажется, имеют минимальный размер изображения 24х24. по поводу чувствительности - можно попробовать поиграть с параметрами, которые передаются в процедуру детектирования - возможно, это поможет отсеять мусор.

    Позитивный образец - просто копировал 1000 раз или видоизменял?


  5. спасибо, разобрался +к тому мануалу есть вот этот http://www.bernardotti.it/portal/showthread.php?t=6843

    А сколько времени занимало генерирование? Просто у меня при 7000 позитивных и 3000 негативных и -mode ALL я так и не дождался когда это закончиться (~5 часов)

    обучение может идти несколько дней и даже недель :( . там, кстати, есть возможность прервать процесс с последующим возобновлением обучения с прерванной стадии.


  6. Думаю, так просто, как Вы думаете, не получится. Более того, OpenCV, ИМХО, не обладает таким потенциалом в области OCR, как специализированные разработки. Сталкивался с tesseract - вполне себе понравилось, и лицензия хорошая.

    tesseract неплох, это правда. еще понравились реализации подобных проблем с использованием нейронных сетей. обучается, правда, долго, но результат - как раз под описание проблемы


  7. Набрел в сети на проект оболочки под Делфи:

    http://opencv-delphi.svn.sourceforge.net/v.../opencv-delphi/

    видели. он сильно не полный. хотя и вроде под версию 2.0 адаптирован. я автору того проекта где-то полгода назад давал ссылку на эту тему - видимо проект заброшен... :)


  8. Тема закрыта. Проблема была в том что в цикле не подгружалось одно из многих изображений ...

    Если кому нужно есть порт распознавания лиц методом главных компонентов на Delphi.

    Если не жалко, то посмотрел бы...


  9. Замечательная библиотека! Но если я правильно понял, то работа с камерой здесь не реализована? Поскольку данная запись вызывает ошибку ([Error] Unit1.pas(20): Undeclared identifier: 'CvCapture'):

    var

    capture : CvCapture;

    Не реализована. Если есть желание - можете дополнить и обновить заголовочные файлы. Самому пока некогда.


  10. Млин... опять не получилось... обводит кружочками фон(

    Как же правильно делать :)

    Какой фон предпочтительнее?

    Фон - чем больше вариантов, тем лучше для обучения - меньше ложных детектов будет. Главное, чтобы негативные изображения точно не содержали искомый объект. А что ищещь, если не секрет? Плюс еще можно поиграться с параметрами процедуры поиска объектов: алгоритм поиска, порог принятия решения.

    Я процент ложных срабатываний убирал так: cvHaarDetectObjects( PCvArr(SrcImage), Cascade, Storage, 1.1, 4, CV_HAAR_DO_CANNY_PRUNING , ImSize );

    1.1 - параметр, который определяет шаг приращения масштаба при поиске объектов (10%, как я понял);

    4 - порог срабатывания - чем ниже, тем больше детектов, но выше процент ложных срабатываний; я для поиска лиц у себя использовал это значение;

    CV_HAAR_DO_CANNY_PRUNING - алгоритм, который используется в процессе выделения признаков - почему выбрал не помню, но вроде с ним получились наилучшие результаты.


  11. Я пытаюсь тренировать каскад на четырёх положительных и 5 негативных образцах. Но при этом объект не находится даже на фотографии с положительным образцом?

    aartraining -data handcascade -vec hand10.vec -bg PH\bg.dat -nstages 10 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 4 -nneg 5 -w 10 -h 10 -nonsym -mem 128 -mode ALL

    маловато будет, наверное. на хабре (www.habrahabr.ru - тема про поиск НЛО :) - http://habrahabr.ru/blogs/artificial_intelligence/67937/) есть пример, где тренируют на одном положительном сэмпле, а вот негативных должно быть все равно много. негативные при этом выступают, если я не ошибаюсь, в качестве фона, куда помещаются положительные сэмплы.


  12. мля это полный ппц... даже если 2 сек на 1 картинку.. то 7000 объектов это 4 часа....

    Вот-вот! И я про то же! Я где-то сотни три для положительных сэмплов использовал - что-то похожее получается. А негативные сэмплы - просто чтобы не содержали искомый образец. Так потом эта программулина, которая обучает каскад, еще очень долго работает, чтобы достичь нужного порога распознавания. Причем не всегда получается. Короче, долго и нудно. Лучше всего это делают китайцы :)...

    З.Ы. Кроме того, как показывает опыт использования, каскад плохо отрабатывает поворот изображения - мне пришлось делать это вручную: детект - нет результата - поворот - детект - и т.д.


  13. Вылезла проблема, не загружаются классификаторы:

    procedure TForm1.Button1Click(Sender: TObject);

    var img : PIplImage;

    file1 : PChar;

    file2 : PChar;

    begin

    file1 := 'haarcascade_frontalface_alt.xml';

    file2 := 'haarcascade_eye.xml';

    cascade_f := cvLoad(file1,0,0,0);

    cascade_e := cvLoad(file2,0,0,0);

    ...

    cascade_f и cascade_е остаются nil

    а если так:

    file1 := PChar('haarcascade_frontalface_alt.xml');

    cascade_f := cvLoad(file1,0,0,0);


  14. Я думаю, что можно попробовать натренировать классификатор на номер - должно получиться очень неплохо.

    Пробовал натренировать для распознавания произвольных строк текста (навроде надписей на рекламных щитах) - что-то получается, а сам подход где-то в англоязычных источниках откопал. А вот с номерами не пробовал - задачи такой не было пока. Если у кого получится, отпишите.


  15. Здравствуйте,

    Где можно достать готовые написанные библиотеки скрытых марковских моделей ... Необходимо для решения задач распознавания голоса.

    Заранее спасибо. :)

    HTK - Hidden Markov Model Toolkit - Speech Recognition toolkit. Сам пока не пробовал - руки не доходят.

    http://htk.eng.cam.ac.uk/


  16. открываются ворота машина въезжает или выезжает. хочу отловить факт проезда или выезда. соответсвтвенно расположение либо машина сзади либа машина с переди.мысль использовать каскад Хаара.

    была мысль еще через детектор движения делать.

    можешь предложить более правильный способ с очень малым процентом ошибочных срабатываний или не срабатываний? я так понял у тебя был опыт работы с определением автомобиля в кадре?

    можно попробовать через детектирование номера (можно и Хааром, вроде - в сети где-то встречалось что-то похожее). здесь ранее рассматривался этот вопрос. но вот как быть с изменением сцены? картинка-то динамическая будет. здесь, на мой взгляд, сначала детектор движения - изменения в определенной области кадра уже будет сигнализировать о въезде-выезде. дальше можно попробовать найти номер (прямоугольник). что-то в этом роде, наверное.


  17. я пробовал - результат тоже не очень. проблема ясна: не смотря на большое разнообразие человеческих особей, на любом лице можно выделить характерные признаки (глаза, брови, нос, рот, контур лица). взаимное расположение этих признаковых элементов при этом не сильно меняется. с машинами сложнее... а какая конкретно задача?

    уточняю - машина на фотогорафии как расположена? если просто факт присутствия, независимо от пространственного расположения - то это, наверное, уже ближе к нейронным сетям. даже хорошо обученный классификатор для лица не во всех случаях находит на фотографии лицо (только примерно 70-80%).


  18. а кто-нибудь знает еще ресурсы кроме приведенного в первом посте где есть уже готовые классификаторы?

    нужно для распознования присутствия машины на фотографии. натренировал свой но он распознает максимум 20 машин из 100. эксперементы продолжаются, но может кто нибудь видел уже готовый?

    я пробовал - результат тоже не очень. проблема ясна: не смотря на большое разнообразие человеческих особей, на любом лице можно выделить характерные признаки (глаза, брови, нос, рот, контур лица). взаимное расположение этих признаковых элементов при этом не сильно меняется. с машинами сложнее... а какая конкретно задача?

×