Jump to content
Compvision.ru

2expres

Пользователи
  • Content count

    96
  • Joined

  • Last visited

  • Days Won

    3

2expres last won the day on December 12 2017

2expres had the most liked content!

Community Reputation

7 Новичек

About 2expres

  • Rank
    Эксперт
  • Birthday 06/19/1983

Contact Methods

  • Website URL
    http://esm.ho.ua

Profile Information

  • Пол
    Мужской
  • Расположение
    Днепр Украина
  • Интересы
    Ищу интересную работу в области компьютерного зрения удаленно или постоянную. Бинаризация, сегментация изображений, контурный анализ в RealTime.

Recent Profile Visitors

699 profile views
  1. Многое стало понятно, введу максимальную скорость перемещения объекта, что позволит отсекать глюки. Возникли новые технические трудности: информация с потоков может поступать не по-порядку. Вначале информация о настоящем кадре, а затем о предыдущем. Необходимо еще реализовать буфер для выравнивания последовательности поступающих кадров.
  2. Рад Вас видеть! Хорошая идея зная какие ветки люстры включены подставлять нужный фон, заранее сформированный. Проблема в том что мы выполняем часть работы: даем команду какую ветку включать в соответствии с перемещаемыми людьми. Другие ребята делают еще какие то эффекты (меняют цвета, освещенность) и у меня нет информации о фоне. Спасибо Nuzhny за Ваши ответы! Можно для меня разжевать? Мне действительно не понятно. Венгерский алгоритм - это задача о оптимизации. После обработки кадра из 3 МБайт(Full HD) информации я получаю массив не более 256 байт (1 объект 16 байт), поэтому могу позволить сделать не оптимально. Хочу понять суть. Получается я должен сравнить 2 соседних кадра. Предположим на 1-кадре 4 сегмента, а на 2 кадре тоже 4 сегмента. Я должен назначить назначить привязку сегментов к объектам. На первом кадре назначаю номер сегмента равным номеру объекта. На втором кадре допустим для простоты (выбор метрики сейчас не важен можно площадь пересечения или как предлагают по ссылке искать коэффициенты https://cyberleninka.ru/article/v/algoritm-trekinga-obektov-v-realnom-vremeni-s-obrabotkoy-oshibok) ищу минимальное расстояние между центрами сегментов и объектов. Далее присваиваю сегменту номер ближайшего объекта. С этим понятно. Понятно, если появился или исчез объект на краях кадра. А что делать, если появился или исчез сегмент в центре кадра? Как определить это глюк, или 2 человека рядом дошли до середины сцены и разделились? Или наоборот зашли с разных концов сцены и объединились?
  3. Выполнил включение освещение сцены чисто по детектору движения, без трекинга. Камера работает в ИК-диапазоне. Для управления освещением использовал midi-протокол (библиотека rtmidi), виртуальный драйвер midi, который управляет освещением сцены (стандартная программа QLC+). На видео Вы можете видеть квадрат на полу, который имитирует размеры люстры. Вот что получилось: Обрабатываются все 25 кадров в секунду. Хотелось бы реализовать трекинг. Но приведенная ссылка является научной статьей, у которой еще 50 ссылок на другие статьи. Мне необходимо усреднять 5 соседних кадров для устранения дерганий и пропадания объекта. Как правильно это сделать?
  4. Это видео облегченные условия. Здесь прекрасно работает мой детектор движения. Но значительно быстрее, обрабатывает 25 кадров с загрузкой 15%. Но с резким изменением освещенности он не работает.
  5. Интенсивность, к сожалению будет тоже разной (интенсивность подсветки разная). На мой взгляд нужно сравнивать 2 соседних кадра и каким то образом не сравнивать кадры с большими изменениями. Но как будет работать при большом количестве людей? kmeans - тормознутый алгоритм, а нужен реал-тайм. Могу сбросить на почту. Напишите в личку.
  6. А можно ли вашу программу запустить на этом видео? Если работает - могу дать Вам контакты заказчика.
  7. Я не знаю, как построить детектор движения с обычной камерой в условиях резкого изменения освещения. Я сам пришел к выводу, что нужна камера в ИК-диапазоне, но нужно несколько дней доставка/установка/запись видео. Но остается теоретический вопрос, можно ли построить детектор движения с обычной камерой в таких условиях?
  8. Потолок этого помещения состоит из множества разноцветных люстр и прожекторов. Когда человек перемещается необходимо управлять освещением и подсвечивать человека. Трудность состоит в том, что для детектора движения невозможно создать background из-за постоянно изменяющегося освещения. Для любого объекта, который перемещается в кадре, нужно вычислять координаты и управлять освещением. Людей может быть много, они могут уходить и приходить.
  9. Добрый день! Необходимо отслеживать перемещения людей (идеально головы человека), при постоянно изменяющемся освещении. Цвет может быть красным, зеленым, синим, дневное освещение и может постоянно меняться. Можно ли стандартными методами и какими решить данную задачу?
  10. 1. Это студенческая задача? 2. Это одно изображение или есть множество таких изображений? 3. Если есть множество таких изображений, то эту задачу решается применением нейронных сетей, т.к. быстродействие здесь не требуется.
  11. Я согласен интересный метод, для провода или ветки без листьев. Качание ветки с листьями дает большую плотность и таким методом не возможно отличить от движущегося объекта, в котором тоже не все отличается от фона (например, стекла автомобилей могут не отличатся от асфальта, который был получен на фоне). Я выбрал максимальный битрейд 15 000 кбит/сек и 25 кадров в секунду для FULL HD, так как хочу получить максимальное качество. Реально в диспетчере задач вижу загрузку ~1000 кбит/сек. Я использую DXVA2. Еще могу d3d11. Разницы между ними не увидел. Чем они отличаются? Так как я работаю на ассемблере, то декодер выполнил в виде загружаемой *.dll. Декодер меняться не будет, он на все случаи жизни. Я запускаю 6 потоков: декодер, управляющий поток и 4 потока обработки кадров, т.к. в Intel Atom Z8350 имеет 4 ядра. Декодер заполняет одну из 4 областей памяти и передает сообщение (setenent) управляющему потоку. Управляющий поток дает разрешение на обработку в один из 4 обработчиков. По окончании обработки обработчик передает сообщение в управляющий поток.
  12. Вы оказались правы получается много векторов и смысла их использовать для детектора движения нет, потому что это получается не быстро. Следуя заветам Смородова резко сократил объем информации, проредив кадр в 4 раза по высоте и 4 раза по ширине. Причем, прореживаю по ширине методом суммирования пикселей, чтобы иметь максимальную информацию о кадре (на быстродействии это не сказывается). Из последовательности сокращенных в 16 раз кадров формирую фон. Фон формируется за ~ 25 сек (600 кадров). Каждый кадр сравнивается с фоном, производится корректировка фона и получаю изображение разницы с фоном. Разница сегментируется. Если в сегменте меньше 1000 пикселей (исходное 16 000 пикселей), то такой сегмент отбрасывается. Для больших сегментов получаем прямоугольники, которые рисую на картинке. В этих прямоугольниках в дальнейшем буду искать автомобильные номера, что резко сократит объем обрабатываемой информации. Так как у меня примитивный детектор движения, получаю ложные срабатывания когда ветер качает ветки деревьев. Можно ли простыми методами от этого избавится? Изображение с FFmpeg я получаю (почему то?) в формате NV12. Преобразовывать в RGB это все время. Поэтому я использую для детектора движения интенсивность (оттенки серого) и таблицу цветов, для быстрого вывода на экран использую только интенсивность. Для определения номеров цветность не нужна. Итого: Intel Atom Z8350 загрузка процессора около 15%! Камера Full HD иногда дает глюки, на видео видно (1 мин 16 сек). Я думал что это из-за моих преобразований на FFmpeg. Подключив VLC этих глюков там как бы не больше. С чем это может быть связано?
  13. Основная проблема у Вас - неравномерное освещение. Вам нужно использовать бестеневую лампу, чтобы на изображении не было бликов. Далее нужно бинаризировать изображение с помощью адаптивного порога (я использовал 17х17 -8). После удаления мелких сегментов можно по вертикальным линиям определить масштаб (сколько пикселей в одном мм) изображения. Зная масштаб можно определить размеры измеряемой детали. Результат после бинаризации.:
  14. Nuzhny спасибо!!! Для получения motion vectors нужно использовать av_frame_get_side_data. Работает ли фильтр, если кадры декодированы аппаратно с dxva2? Я подключил dxva2 для декодирования h.264 (Загрузка процессора близка к 0). Но копирование из памяти dxva2 в память процессора av_hwframe_transfer_data занимает много процессорного времени (до 70% INTEL ATOM Z8350 на Full HD). Занимает ли этот фильтр много времени? Для меня основной смысл в применения motion vectors - это высокое быстродействие детектора движения. Я хочу применить его для обнаружения движущегося автомобиля в кадре. P.S. Можно из dxva2 переписывать не весь кадр, а часть кадра?
×