Jump to content
Compvision.ru

Recommended Posts

Добрый день!

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

 

Share this post


Link to post
Share on other sites

А что вообще есть на входе? Обычно трекинг понимается в 2-х ипостасях:

1. Visual objects tracking (VOT). Всё это направление подразумевает, что на первом кадре объект как-то нашёлся (детектором, классификатором или был выделен оператором), а дальше на каждом кадре его ищет исключительно сам трекер. Тут можно посмотреть на модуль tracking из opencv_contrib, в частности на CSRT оттуда. Другой классический метод - это STAPLE, но лидеры на сегодняшний день - сиамские нейронные сети (там и датасет, и результаты, и победители).

2. Tracking by detection. Тут принцип другой: непрерывно на видео работает детектор, объект(ы) находится достаточно регулярно. Если объект не находится, то его траектория интерполируется (фильтр Кальмана), он доискивается с помощью VOT и т.д. Когда объект снова находится, то срабатывает какой-то re-id, чтобы узнать, что найден именно тот самый объект (re-id - это сравнение размеров, гистограмм, нейросети и т.д.). Если используется трекинг сразу нескольких объектов, то необходим алгоритм межкадрового связывания: для двух кадров Венгерский алгоритм или аналоги, но популярнее сейчас поиск максимального потока в графе, например.

  • Like 1

Share this post


Link to post
Share on other sites

Потолок этого помещения состоит из множества разноцветных люстр и прожекторов. Когда человек перемещается необходимо управлять освещением и подсвечивать человека. Трудность состоит в том, что для детектора движения невозможно создать background из-за постоянно изменяющегося освещения. Для любого объекта, который перемещается в кадре, нужно вычислять координаты и управлять освещением. Людей может быть много, они могут уходить и приходить.

Share this post


Link to post
Share on other sites

То есть никакого детектора нет? Есть возможность снимать камерой с датчиком глубины? Или камерой в ИК диапазоне?

Share this post


Link to post
Share on other sites
1 час назад, Nuzhny сказал:

То есть никакого детектора нет? Есть возможность снимать камерой с датчиком глубины? Или камерой в ИК диапазоне?

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

Я сам пришел к выводу, что нужна камера в ИК-диапазоне, но нужно несколько дней доставка/установка/запись видео. Но остается теоретический вопрос, можно ли построить детектор движения с обычной камерой в таких условиях?

Share this post


Link to post
Share on other sites

я бы поступил банальным образом.

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

Пример как это у меня работает (на arm)

 

  • Like 1

Share this post


Link to post
Share on other sites

На первый взгляд кажется, что можно - мы же глазами видим движение по изображению с этой камеры.

Очевидно, что классическое вычитание фона тут не справится, потому что оно смотрит на изменение интенсивности пикселей. Первая мысль - избавиться от цвета, то есть перейти в цветовое пространство типа HSV или Lab, а далее работать исключительно с каналом интенсивности (V или L). Далее использовать dense optical flow, например Farneback, получить поле векторов. Далее это поле уже сегментировать (kmeans или что-то сложнее). Результатом сегментации должны стать уже блобы и фон.

Это так, взгляд со стороны.

Share this post


Link to post
Share on other sites
12 минуты назад, LexaP сказал:

я бы поступил банальным образом.

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

Пример как это у меня работает (на arm)

А можно ли вашу программу запустить на этом видео? Если работает - могу дать Вам контакты заказчика.

Share this post


Link to post
Share on other sites
6 минут назад, 2expres сказал:

А можно ли вашу программу запустить на этом видео? Если работает - могу дать Вам контакты заказчика.

К сожалению скачать ролик с ютуба не могу, пишет запрещен доступ.

Share this post


Link to post
Share on other sites
8 минут назад, Nuzhny сказал:

Очевидно, что классическое вычитание фона тут не справится, потому что оно смотрит на изменение интенсивности пикселей. Первая мысль - избавиться от цвета, то есть перейти в цветовое пространство типа HSV или Lab, а далее работать исключительно с каналом интенсивности (V или L). Далее использовать dense optical flow, например Farneback, получить поле векторов. Далее это поле уже сегментировать (kmeans или что-то сложнее). Результатом сегментации должны стать уже блобы и фон.

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

kmeans - тормознутый алгоритм, а нужен реал-тайм.

5 минут назад, LexaP сказал:

К сожалению скачать ролик с ютуба не могу, пишет запрещен доступ.

Могу сбросить на почту. Напишите в личку.

Share this post


Link to post
Share on other sites
10 minutes ago, 2expres said:

kmeans - тормознутый алгоритм, а нужен реал-тайм.

Вариантов много.
Ну и реал-тайм - это не требования. Правильное требование: процессор + память + видеокарта, разрешение видео и сколько времени на обработку одного кадра. А то может оказаться, что детекцию нейросетями надо будет делать на слабом CPU и 25 кадров/сек на видео 6МП. Хотя тут тоже можно натренировать tiny YOLO или MobileNet SSD.

Share this post


Link to post
Share on other sites
1 час назад, LexaP сказал:

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

Это видео облегченные условия. Здесь прекрасно работает мой детектор движения. Но значительно быстрее, обрабатывает 25 кадров с загрузкой 15%. Но с резким изменением освещенности он не работает.

 

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×