Використовуємо LiDAR у розробці застосунків
Вітаю, мене звати Олексій Васильченко. Я обіймаю посаду AI Group Leader в MobiDev. Сьогодні ми з моїм колегою, AI Engineer Станіславом Кутником, хочемо розповісти спільноті про LiDAR — технологію отримання та обробки інформації про віддалені об’єкти за допомогою активних оптичних систем, яку ми в команді використовуємо для проєктів з комп’ютерного зору, починаючи з 2019 року.
Зверніть увагу, що LiDAR у девайсах Apple — це спеціальний датчик, який має вбудований лазер. Його використання у розробці застосунків потребує інших підходів і стеку технологій. Більш детально про це можна почитати у нашій статті про використання LiDAR у розробці застосунків для вимірювання.
У цій статті ми розглянемо плюси та мінуси роботи з даними, отриманими з використанням LiDAR, та задачі, які можна виконувати за допомогою застосунків на базі цієї технології.
Робота з хмарою точок
Датчики LiDAR надсилають швидкі лазерні імпульси та фіксують реакцію у відповідь. Отримані при відбиванні лазерних імпульсів від об’єктів точки формують хмару, яка використовується для побудови 3D-моделей. Залежно від типу і розміру сенсора, відстань сканування буде відрізнятись.
При цьому будь-яка LiDAR-технологія передбачає сканування об’єктів з оточення за прямими лініями, вертикально і горизонтально. Оскільки LiDAR не може сканувати крізь об’єкти, для складних завдань, де об’єкти блокують одне одного, використовується декілька датчиків.
Зазвичай хмари точок містять координати XYZ, але можуть містити й інші дані, такі як швидкість, інтенсивність або навколишнє світло.
3D-хмара точок LiDar
Дані точкових хмар мають кілька переваг порівняно з даними оптичних датчиків, які використовуються у стандартному комп’ютерному зорі:
- Точність вимірювання. Робота LiDAR схожа на ту, яку виконує лазерний далекомір.
- Збереження конфіденційності даних. Точкові хмари зберігають конфіденційність даних, оскільки не відображають обличчя людей, автомобільні номери або іншу чутливу інформацію.
- Менше спотворень інформації. Порівняно з відео або фотографіями, дані LiDAR, зокрема отримані розміри об’єктів, ближчі до реальності. Це пов’язано з відсутністю оптичних спотворень лінзи, викривлень зображення, викликаних абераціями, дефектами покриття та світлом, що змінює зображення само по собі.
- Краща робота в умовах низької освітленості. Оскільки LiDAR базується на лазерних променях, він може збирати дані в повній темряві, і це не матиме негативного впливу на кінцевий результат. Оптичні датчики, своєю чергою, потребують достатньої освітленості для формування зображення.
Це не означає, що LiDAR переважає над техніками комп’ютерного зору, що базуються на обробці зображення і відео. Наприклад, технологія LiDAR надає обмежену кількість інформації, яку можна витягти, таку як текст, кольори, маленькі деталі об’єкта тощо. Саме тому кожен тип даних та датчиків використовується для відповідних завдань або разом з іншими технологіями.
У наступних секціях ми детальніше розглянемо, як працювати з точковими хмарами і які завдання можна виконати з їх допомогою.
Підготовка даних
Залежно від роздільної здатності LiDAR, точкові хмари можуть містити 65 000 або більше точок. Подібно до комп’ютерного зору на основі зображень і відео, точкові хмари також потребують попередньої обробки, щоб надати корисну інформацію для завдання.
Масова обробка потрібна рідко, оскільки точкові хмари збирають багато довкільної інформації, яка тільки збільшує вагу всієї системи. Ось деякі з найбільш поширених технік попередньої обробки, які ми використовуємо у наших проєктах LiDAR:
Різні рівні щільності точкових хмар
Зниження роздільності (Downsampling). Це зменшення щільності точкових хмар для ефективної обробки, особливо якщо оригінальні дані занадто щільні. Можуть застосовуватись методи зниження щільності сітки вокселів або випадкове вибіркове зниження.
Видалення випадкових точок (Outlier removal). Ця техніка включає ідентифікацію та вилучення викидних точок, які виникають через шум датчика або помилки вимірювання.
Видалення ґрунту. Це процес відокремлення ґрунтових точок від інших, який потрібен оскільки ґрунт зазвичай домінує в точкових хмарах.
Нормалізація. Дані точкових хмар нормалізуються відповідно до загальної системи координат. Це забезпечує однорідність та сприяє можливості порівняння даних LiDar, зібраних у різні часи або з різних пристроїв.
Згладжування, обрізка та фільтрація. Це зменшує шум та покращує загальну якість точкових хмар.
Трансформації. Деякі базові операції з точковими хмарами включають зсув, обертання вздовж осі, масштабування, відображення тощо. Ці методи можна використовувати для центрування точкової хмари по вісі або комбінування і вирівнювання точкових хмар з різних джерел. Існують як ручні, так і автоматичні рішення для цієї задачі.
У більшості випадків нам доведеться обробляти дані, отримані за допомогою LiDAR, «на льоту». Попередня обробка зменшить навантаження на девайс і, в цілому, покращить продуктивність. Набір операцій попередньої обробки буде залежати від самого завдання, кількості LiDAR та умов збирання даних.
Сегментація та виявлення об’єктів
Хмари точок можуть використовуватись різними алгоритмами для виконання завдань сегментації та виявлення об’єктів. Два загальні підходи тут включають машинне навчання на основі радіального пошуку та нейронні мережі.
Алгоритми радіального пошуку виявляють великі кластери точок у визначеному радіусі. Ці алгоритми швидкі, але потребують попередньої обробки для отримання прийнятних результатів. Однак вони можуть бути надзвичайно корисними для процесу розробки, оскільки не потребують навчання.
Нейронні мережі, такі як VoxelNet, PointCNN або SparsConvNet, навчаються для сегментації хмар точок. У цьому випадку нам потрібно зібрати набір даних та продумати процедуру навчання.
Проте, результати зазвичай більш точні: нейронні мережі можуть вирішувати складні завдання, і дані, які передаються моделі, вимагають значно менше обробки. Крім того, такі моделі можуть виконувати кілька завдань одночасно, наприклад, 3D-сегментацію та класифікацію об’єктів.
Класифікація об’єктів за допомогою даних Lidar. Джерело зображення: semanticscholar.org
Класифікація об’єктів
Ефективну класифікацію об’єктів можна здійснити за допомогою оптичних сенсорів. Задача ускладнюється через те, що об’єкти часто відрізняються за кольором або дрібними деталями (криві автомобілів, деталі обличчя тощо).
Однак це все ще можливо з точковими хмарами, оскільки LiDAR зчитує достатньо деталей для класифікації об’єктів. Також ми можемо здійснювати класифікацію, використовуючи загальнодоступні фото, оскільки точкові хмари є анонімними.
Деталі точкової хмари
Деталі точкової хмари
Класифікація точкових хмар також виконується за допомогою нейронних мереж, як з тривимірними, так і з двовимірними даними. Додаткові канали даних LiDAR, такі як інтенсивність, навколишнє середовище або відбивання, можуть служити джерелом двовимірних даних. Оскільки можна знайти двовимірні нейронні мережі та застосувати їх з мінімальною адаптацією.
Прогнозування руху і трекінг
Отже, об’єкти можуть бути виявлені або сегментовані на кожному окремому кадрі, але часто нам також потрібно відстежувати ці об’єкти для навігаційних цілей. Присвоюючи унікальний ідентифікатор кожному об’єкту на кадрі, ми можемо відстежувати його на різних кадрах та прогнозувати траєкторії руху.
Моделі JPDAF, SORT та DeepSORT виконують відстежування кількох об’єктів у тривимірному просторі «з коробки» і широко використовуються в автономних транспортних засобах. Моделі глибокого навчання, такі як RNN та графічні мережі, також можуть бути використані для відстежування об’єктів.
Навігація та відстежування у зовнішньому середовищі є одними з найпоширеніших сценаріїв для комерційних пристроїв LiDAR. Також існують легші версії LiDAR-сенсорів, які використовуються в iPhone та iPad через камеру TrueDepth, або навіть камери Sony для підтримки автофокуса та вимірювання фізичних відстаней через камеру. Ми також можемо реалізувати навігаційні застосунки для внутрішніх та зовнішніх середовищ за допомогою мобільних пристроїв. Проте зі зменшеним LiDAR максимальна вимірювальна відстань буде відрізнятися. Щільність даних також вплине на деталізацію картографування порівняно з великими промисловими пристроями LiDAR.
Залежно від завдання, можуть знадобитися різні конфігурації LiDAR та додаткове апаратне та програмне забезпечення.
Робота з сенсорами LiDAR і крайові пристрої
Розглянемо другу частину — апаратні компоненти. У випадку, якщо ми розробляємо систему LiDAR, яка базується на окремому пристрої, потрібно знати, яка апаратна інфраструктура потрібна для встановлення всіх компонентів в один конвеєр.
Виробники LiDAR пропонують пристрої, які генерують різні формати даних та типи вимірювань, з якими можна працювати. Для взаємодії з самим пристроєм та вилучення вихідних даних потрібен API для виконання наступних завдань:
- підключення до датчиків;
- налаштування та конфігурація роботи датчика;
- потокова передача даних з датчиків до інших програмних застосунків;
- запис даних та читання записів;
- візуалізація даних.
Це основні завдання, але є багато інших налаштувань, які потрібно виконати на датчику. У випадку, якщо у системі є кілька LiDAR, процедура налаштування займе більше часу, оскільки всі пристрої повинні бути синхронізовані, дані повинні бути інтерпретовані в якийсь загальний формат тощо.
Ми отримуємо величезну кількість даних, які потрібно обробляти ближче до самого пристрою, оскільки передача даних ускладнює обробку у режимі реального часу. З цією метою ми використовували крайові пристрої, такі як Nvidia Xaviers, щоб забезпечити мобільність системи та реалізувати автономний режим роботи.
Крайові пристрої мають менше обчислювальних ресурсів та специфічну архітектуру, тому наш загальний підхід полягає в тому, щоб використовувати C++ для подолання обмежень платформи та проблем інтеграції. C++ є низькорівневою мовою програмування, яка надає досить високу обчислювальну швидкість.
За своєю структурою крайові пристрої оптимізовані для завдань машинного навчання і мають ряд переваг:
- можливість обробки даних у реальному часі;
- висока пропускна здатність;
- енергоефективність та відповідність законодавчим вимогам.
Крім того, крайові пристрої можуть взаємодіяти з іншими девайсами, включаючи різні типи датчиків.
Складнощі при використанні LiDAR у розробці застосунків
Настав час перейти до останньої частини статті — типові складнощі роботи з LiDAR і як з ними впоратись.
Об’єкти чорного кольору
Відомо, що однією з проблем, характерних для LiDAR, є погане сканування об’єктів чорного кольору. Оскільки LiDAR отримує дані через відбитий від поверхні лазерний промінь, чорний колір може поглинати велику частину світлового імпульсу, відправленого з датчика. Це призведе до порушення хмари точок об’єкта. Це особливо небезпечно для автономних транспортних засобів, які не можуть розпізнати, скажімо, чорну машину.
Цю проблему можна вирішити кількома способами: отримати додаткові дані від іншого датчика (камери, радару), надати додаткове освітлення сцени або розв’язати проблеми алгоритмічно. Наш підхід полягає у розробці окремої моделі, яка заповнить пропущені області певними значеннями для виявлення чорних об’єктів.
Низька частота кадрів
Хмари точок і відео — дискретні джерела даних. Проте більшість оптичних датчиків, налаштованих для машинного зору, надають принаймні 30 кадрів на секунду, тоді як LiDAR генерує новий кадр кожні 50 мс, що приблизно дорівнює 20 кадрам у секунду. Така частота кадрів може бути надто низькою для динамічних середовищ, тому нам необхідно вирішувати й цю проблему.
Ми можемо використовувати декілька датчиків, щоб створити систему, де датчики збирають дані почергово. Хоча це вимагає ретельної синхронізації даних, за допомогою цього метода ми можемо об’єднати вивід з датчиків, щоб генерувати більше кадрів у секунду. Як варіант, можна використовувати машинне навчання для визначення проміжних кадрів.
Як я вже зазначав, для більшості кейсів важливою буде обробки даних у режимі реального часу. Попередня обробка даних та оптимізація всієї системи є ключовими у забезпеченні реального часу обробки. Для зменшення часу обробки ми використовуємо наступні способи оптимізації.
- База коду написана на C ++ для підвищення продуктивності.
- Оптимізація дизайну системи.
- Вибір алгоритму на основі бенчмарку та тестування.
- Вибір коректної архітектури моделі.
Аналогічні техніки оптимізації використовуються при обробці відео в режимі реального часу у сфері машинного навчання та комп’ютерного зору.
Запуск проєкту на основі LiDAR у сфері комп’ютерного зору
Використання LiDAR є далеко не єдиним рішенням у сфері автоматизації візуальних завдань. Це лише альтернативний спосіб надання комп’ютеру даних про оточення. Порівняно з відео або зображеннями LiDAR є бажаним типом сенсора через властивості даних, які ми можемо витягти, і можливості обробки інформації.
Хочемо висловити вдячність Діані Малик за її значний внесок у розробку проєктів MobiDev і зокрема цього тексту — Діана нам дуже допомогла, здійснивши ґрунтовні дослідження та зібравши важливу інформацію, яка стала основою цієї статті. Вона також відіграла важливу роль у нашій проєктній команді, активно сприяючи інтеграції технології LiDAR у розробку наших застосунків.
Маєте запитання чи досвід роботи з LiDAR? Запрошуємо до дискусії в коментарях!
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів