Числа мають значення: підрахунок рухомих об’єктів за допомогою обробки відео

Часто виникає необхідність знати кількість об’єктів, які проходять через пляму або точку. Скажімо, статистика про людей, які в’їжджають у будівлю, кількість автомобілів, які перетинають певне місце, ряд товарів, що залишають виробничу лінію тощо.

Експерти ABTO Software у галузі математичного моделювання виступили з ідеєю алгоритмічного підходу до обчислення об’єктів на основі щілинних зображень. Інноваційна концепція з операційною назвою “Лічильник об’єктів” дозволяє швидко і безпечно рахувати всі типові об’єкти та обіцяє значні наслідки в реальному світі.

Однією з наших основних цілей була розробка автоматизованого алгоритму системи підрахунку, який допомагав би відстежувати, відокремлювати та підраховувати об’єкти, а також вимагав мінімальних ресурсів або додаткових витрат.

Після ретельної оцінки деяких широко використовуваних підходів до обробки зображень ми побачили недостатню ефективність більшості сучасних систем.

У своєму дослідженні ми пропонуємо новий метод підрахунку зображень з дуже точними результатами, що використовує морфологічні операції для підрахунку об’єктів у відеопотоці. Справжньою основою нашого інструменту є його доступність та зручність використання. Для цього не потрібно ні спеціальних пристосувань, ні дорогої техніки, оскільки навіть відео з низькою роздільною здатністю може бути успішно оброблене і дати чудові результати.

Це легко описати на прикладі рухомих автомобілів на вулиці.

Ми націлені на обчислення всіх транспортних засобів, які перетинають огляд камери, маючи відеофайл або прямий відеопотік вулиці.

Спосіб включає два основних етапи:

Генерація щілинного зображення

Підрахунок об’єктів

1 генерація щілинного зображення

Що таке щілинне зображення? На дорозі у відеопотоці проводиться уявна лінія. З кожного кадру відео беруться лише пікселі, що збігаються з цим рядком. Пікселі кадру розташовані в одній горизонтальній лінії. Те саме робиться з кожним кадром, отже, на кожен кадр припадає один рядок. Отже, з 1000 кадрів у відео є зображення, що складається з 1000 рядків пікселів. Це зображення відоме як щілинне зображення.

Кожен рухомий об’єкт, що перетинає лінію, повинен відображатися на щілинному зображенні, щоб бути зарахованим.

Приклад нижче – 1-хвилинний відеофайл вуличного руху, знятий за допомогою звичайної бюджетної веб-камери.

Ось перший кадр у відеопослідовності. Існує так звана “область інтересів”, яка визначена і намальована на ній:

Рис.1 Одиночний відеокадр із визначеною областю інтересу

Починаючи з цього, береться кожен кадр і витягуються пікселі, позначені областю, що цікавить. Наступні N кадрів дадуть нам одне щілинне зображення з висотою N рядків.

Вхідний відеокліп демонструє, як формується розрізне зображення (область, що цікавить, позначена червоним):

Ось отримане зображення щілини:

Рис.2 Отримане щілинне зображення

Отже, одне щілинне зображення замінює всю відеопослідовність, а це означає, що відео більше не потрібно.

Якщо відеофайл занадто довгий або використовується потоковий відеопотік, джерело плюється на рівні частини, а одна частина дає одне розрізне зображення. Ці зображення послідовно обробляються, а результати постійно накопичуються. Коли йдеться про пряму трансляцію, накопичення 1-5 хвилинного відео у щілинному зображенні виявилося найбільш ефективним. Безшовне розрізання отримується, коли зображення з прорізами обробляються в окремому потоці.

2 кількість об’єктів

Фон розрізаного зображення досить однорідний, і всі транспортні засоби чіткі та видимі. Наступним кроком є розділення автомобілів та фону. Фон кожного стовпця складається з одного і того ж пікселя, взятого з різних кадрів. Їх відмінність у рядках визначається 2 додатковими і незначними у порівнянні з факторами пікселів на передньому плані: змінами яскравості та шумом камери.

Метод порогового алгоритму градієнта y був обраний для того, щоб відняти фон з переднього плану.

По-перше, ми перетворили RGB у градації сірого, після цього обчислили градієнти y (тобто вертикальні різниці у значенні сусідніх пікселів) і, нарешті, визначили пікселі переднього плану як ті, для яких відмінності більші за якийсь невеликий поріг. В результаті отримується бінарна маска об’єктів переднього плану.

Рис.3 Бінарна маска щілинного зображення

Ми спостерігали найбільше значення вертикальних градієнтів з боків кожного рухомого об’єкта. Центр, як правило, однорідний, тому значення градієнта не перевищує порогового значення. Отже, ми зробили наступні процедури:

Морфологічне розширення

Заповнення отворів

Морфологічна ерозія

Фільтруйте краплі за площею

Для морфологічного розширення та ерозії ми використовували структурований елемент у формі пастили, дещо стиснутий горизонтально

0 0 0 1 0 0 0

0 0 0 1 0 0 0

0 0 1 1 1 0 0

0 1 1 1 1 1 0

1 1 1 1 1 1 1

0 1 1 1 1 1 0

0 0 1 1 1 0 0

0 0 0 1 0 0 0

0 0 0 1 0 0 0

Причиною вибору цього конкретного структурного елемента є те, що ми виконували фільтрацію лише за вертикальними градієнтами, тому при виконанні морфологічного розширення надзвичайно важливо обв’язувати вертикально зламані об’єкти. Крім того, обрана форма допомагає розщепленню сусідніх краплин при наступній ерозії, яка могла б злитися з попередньою дилатацією.

При фільтруванні краплин за розміром опускаються ті, що менше третини середнього розміру краплин. Це запобігає помилкам при ідентифікації поділів після морфологічної ерозії або ефекту шуму камери.

На малюнку нижче показано, як змінюється маска після застосування 4 етапів морфологічної обробки:

Img.4 Чотири етапи морфологічної обробки

Результат морфологічної обробки буде виглядати так:

Рис.5 Результат морфологічної обробки

Всього 15 крапель (білі суцільні області на чорному тлі). Тобто 15 об’єктів перетнули лінію за часовий проміжок в одну хвилину. Тож об’єкти підраховуються і завдання виконується.

Короткий зміст:

Кількість об’єктів є важливим функціональним компонентом у багатьох системах, що базуються на баченні та виконують велику кількість соціальних, корпоративних та комерційних видів діяльності.

На сьогодні існує безліч існуючих методів підрахунку об’єктів, але вони включають складні алгоритми та рішення, безліч апаратних компонентів, датчиків та детекторів. Найяскравішою перевагою нашого підходу перед іншими подібними методами є рівень точності 95% без залучення додаткових або дорогих пристроїв.

Він є ненав’язливим, а також доступним за ціною, який обов’язково знайде цінне застосування в підприємствах, масовому виробництві та соціальних сферах.

Дізнайтеся більше про наш досвід у галузі комп’ютерного зору та про те, як ми застосовуємо його у реальних випадках:

Спочатку ця публікація була опублікована за адресою https://www.linkedin.com/pulse/numbers-matter-moving-object-counting-using-video-oleksandr-muzychuk/.

Oleksandr Muzychuk люб’язно дозволив нам перекласти і опублікувати цю статтю.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: