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

Nuzhny

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

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

  • Посещение

  • Days Won

    176

Все публикации пользователя Nuzhny

  1. Многопоточность и OpenCV

    C cvCanny проблем не будет. Проблемы при многопоточности возникают, если в функции используются static переменные (не помню, есть ли аналог в Делфи), всевозможные глобальные состояния. В cvCanny же всё чисто. Если говорить об архитектуре, то она у тебя не многопоточная именно из-за единой функции Process. Как правило, единая функция/объект-менеджер занимается только созданием/удалением объектов. Алгоритм примерно таков: 1. Поток запрашивает о необходимости создания объекта/функции. 2. Запрашиваемый объект/функция создаётся в менеджере, указатель или интерфейс передаётся потоку. Менеджер также хранит у себя данный указатель и идентификатор потока. Этот этап необходимо синхронизировать критическими секциями/мьютексами. 3. Далее поток, минуя менеджер, работает с указателем/интерфейсом. Тут синхронизация не нужна. 4. Когда поток своё отработал, то указатель обнуляется/интерфейс освобождается и менеджер удаляет его сам и убирает из своей таблицы. Данный этап также синхронизируется. На разных языках сделать такое можно с разными трудозатратами. Зачастую помогает автоматическая сборка мусора, всякие умные указатели в С++ или всё делать вручную. Портить ситуацию могут глобальные переменные и состояния, несинхронизированный доступ к общим ресурсам. Про вылеты в cxcore трудно сказать. Я бы скомпилировал её с отладочной информацией и посмотрел в дебаггере место вылета и стек вызовов.
  2. MS Visual C++ и OpenCV

    Необходимо в свойствах твоего проекта в Release конфигурации C++ -> Code Generation -> Runtime library выставить "Multi threaded". Эти же действия проделать со всеми dll из OpenCV. Перекомпилировать их. Перекомпилировать свой проект. Поставлять свой exe и используемые dll из OpenCV.
  3. Многопоточность и OpenCV

    Проблем с многопоточностью не будет. Да и исходники открыты-то, можно самому убедиться: потоки лишние не создаются, локальный стек потока для внутренних целей также не используется (в отличие от той же Intel jpeg library, будь она неладна). Однако покотобезопасной, в классическом смысле этого слова, библиотека не является: обращения к одному объекту из разных потоков надо синхронизировать. Но это нормально, скрытые методы синхронизации не есть гут.
  4. MatLab+OpenCV

    Автор документа наверняка смог. О чём и написал.
  5. Как прикрутить OpenCV к билдеру?

    У Билдера есть сетевой отладчик? Если есть, то попробуй его.
  6. Шаблоны движения (motion templates)

    Можно попробовать уменьшить количество циклических буферов до 2 (в примере обозначается как N).
  7. Контор много. Если живёшь в одной из столиц, то можно сходить на крупную выставку по безопасности (например, MIPS, Интерполитех и т.п.) и увидеть акул этого бизнеса вживую. Можно на сайтах выставок взять названия контор и целенаправленно пытаться к ним устроиться. В регионах разработчиков намного меньше, но они существуют. Это ты только про детектор движения говоришь. Сама система видеонаблюдения включает ещё множество функций. Плюс отдельную трудность составляет необходимость поддержки самого разнообразного оборудования, которое ещё и достать непросто. Например, какой-нибудь тепловизор за пол миллиона или поворотную камеру за миллион. Если же ориентироваться на мелких клиентов (аптеки, магазинчики), не требующих ничего, кроме 2-3 камер и архива, то тут рынок завален недорогими DVR-системами. Фиг пробьёшься. Да и китайцы, вроде, поставляют своё оборудование с бесплатным нехитрым ПО. Рынок уже вырос из детского возраста, пробиться непросто.
  8. Требования к детектору движения примерно такие: 1. есть/нет движения в кадре; 2. на кадре пользователем добавляются зоны детекции, появляются события детектирования движения в зонах; 3. отсев помех (дождь, снег, теревья, трава, блики); 4. устойчивость к дрожанию камеры; 5. выделение объектов движения, отслеживание их перемещения (переход из зоны в зону, пересечение траекторией движения объектов пользовательских линий); 6. детектирование оставленных, унесённых, перекидываемых через забор предметов; 7. "сквозное" детектирование одного объекта на нескольких камерах; 8. детекция движения на поворотной камере, на панорамном изображении с поворотной камеры; 9. классификация объектов: человек, группа людей, автомобиль; 10. анализ поведения: человек идёт, бежит, бродит туда-сюда, отклонился от допустимой траектории и т.п.; 11. определение закрытия объектива, поворота и засветки камеры; 12. интеграция с поворотными камерами: сопровождение объекта поворотной камерой, когда объект детектируется с видеоканала стационарной камеры, а также сопровождение только одной поворотной камерой - сама и детектирует, и ведёт. Плюс ко всему выдвигаются нехилые требования по быстродействию: любят некоторые люди на одном компе просматривать и анализировать одновременно, скажем, 12 видеоканалов с ip-камер с разрешением 768х576 + 25 fps. А их перед анализом ещё и разжать надо (а это h.263 или MJPEG какой-нибудь). Если говорить вообще о видеоаналитике, то, кроме детектора движения, необходима: автояркость, автоконтраст, деинтерлейсинг, распознавание лиц, распознавание авто и ж/д номеров. Зачастую требуется что-то специфическое: подсчёт въезжающих на территорию автомобилей или проезжающих вагонов, тревога при появлении подозрительных лиц на парковке. Систем, которые полностью удовлетворяют этим требованиям, я пока не видел.
  9. Да, закрыта. Хороших открытых детекторов днём с огнём не сыщешь. Например, на выставке Интерполитех (одна из крупнейших в России) в 2005-2006 гг. было тестирование детекторов систем видеонаблюдения, так многие просто слили. Написать хороший очень тяжело. Если хочешь, могу привести примерный список требований к видеоаналитике, который предъявляется к профессиональным системам. Да, их довольно много. Но сложность выхода на рынок определяется не только их количеством. В этой области для клиентов очень важна репутация производителя. Впрочем, полнофункциональную систему видеонаблюдения в одиночку написать просто нереально. Если же специализироваться только на детекторе движения, то шанс небольшой есть. Продавать его как библиотеку, как продаются библиотеки для распознавания лиц, авто и ж/д номеров и т.п. Но тут веб-камерой никак не обойтись. В любом случае, при желании устроиться на работу по данной специальности твой опыт будет большим плюсом.
  10. Раз уж ориентир на встраиваемые системы, то посмотри на продукцию одного из лидеров области BOSH (тут на русском).
  11. Шаблоны движения (motion templates)

    Возможно, что это делается с помощью CamShift'a. В последнем OpenCV есть интересный пример camshiftdemo.exe. Как раз на эту тему.
  12. MS Visual C++ и OpenCV

    А что не получается? Поменять в свойствах проекта тип с dll на lib?
×