Це надзвичайно складна проблема. Я був частиною команди, яка працювала над нею кілька років, і довго розробляла та підтримувала інші подібні програми, можу сказати, що виявлення зубців - особливо складна проблема, і набагато важче, ніж це виглядає спочатку.
Справа в роботі алгоритму в лабораторних умовах або на відомих зображеннях; розробка системи, яка буде точною та надійною для "природних" зображень, таких як автомобілі, помічені на парковці, швидше за все, потребуватиме команди, яка працює кілька років. Окрім основної проблеми створення алгоритму, існує чимало інших інженерних труднощів.
Тестовий код, який ви протестували, не є поганим початком. Якщо ви могли знайти краї навколо темної правої сторони вм’ятини, ви могли б порівняти карту країв автомобіля з дінгом до карти краю відомого хорошого автомобіля, знятого під тим же кутом, з тим же освітленням. Управління освітленням допоможе зовсім небагато.
Проблеми, які слід врахувати, включають такі:
- Освітлення (набагато складніше, ніж здавалося б)
- Очікувана 3D-поверхня зібраної зовнішньої панелі (наприклад, із даних CAD)
- Критерії, що характеризують вм’ятину: площа, глибина, профіль тощо.
- Критерії помилкових негативів та помилкових позитивних результатів
- Засіб для збереження даних вм'ятин та / або відображення вм'ятин на моделі автомобіля (або макет метелика)
- Методика та пристрій для вимірювання "справжніх" характеристик вм'ятини: глибина, площа тощо.
- Широка база даних вм'ятин від випадкового відбору проб транспортних засобів
- Справа з різними кольорами фарби та обробкою
1. Освітлення
Як правильно зазначав Мартін Б, правильне освітлення є критичним для цієї проблеми. Навіть при гарному структурованому освітленні у вас виникнуть великі труднощі з виявленням невеликих вм'ятин поблизу особливостей, проміжків між панелями, ручками тощо.
Запис у Вікіпедії для структурованого освітлення трохи тонкий, але це початок для розуміння принципу:
http://en.wikipedia.org/wiki/Structured_light
Світлі смуги можуть бути використані для виявлення вкраплення (вм’ятини) та виходу (прищі). Щоб побачити динг, вам знадобиться відносний рух між джерелом світла та автомобілем. Або світло + камера рухаються разом відносно машини, або автомобіль рухається повз світло + камера.
Незважаючи на те, що вкраплення та виходи мають характерні види, коли їх бачити на краю світлої смуги, виявлення даної вм'ятини залежить від розміру та глибини вм’ятини щодо ширини світлої смуги. Кривизна автомобіля є складною, тому представляти камеру послідовну світлову смугу досить складно. По мірі переміщення світлової смуги по кузову автомобіля кривизна і навіть інтенсивність світлової смуги будуть змінюватися.
Одне часткове рішення полягає у тому, щоб забезпечити, щоб фотокамера та смуга світла завжди знаходились під послідовним кутом відносно нормального (3D-перпендикуляр) частини поверхні, що оглядається. На практиці роботові потрібно буде точно переміщувати камеру відносно поверхні тіла. Переміщення робота акуратно вимагає знання пози (положення та кутів 3D) кузова автомобіля, що саме по собі є неприємною проблемою.
Для будь-якого огляду автомобільних застосувань потрібно повністю контролювати освітлення. Це означає не тільки розміщення ліхтарів на ваш вибір у відомих місцях, але й блокування всього іншого світла. Це буде означати досить великий корпус. Оскільки панелі автомобіля вигнуті назовні (майже як сферична поверхня), вони відбиватимуть світло від джерел навколо них. Щоб значно спростити цю проблему, ви можете використовувати високочастотний люмінесцентний брусок всередині корпусу, оповитий чорним оксамитом. Досить часто доводиться йти до таких крайнощів для інспекційних програм.
2. 3D-поверхня
Зовнішня поверхня автомобіля складається із складних кривих. Для того, щоб дізнатися, чи є підозріле місце динг, вам доведеться порівняти це місце з відомими особливостями автомобіля. Це означає, що вам потрібно буде зіставити 2D-зображення з камери та 3D-модель, переглянуту під певним кутом. Ця проблема не вирішується швидко, і досить складно зробити добре, що деякі компанії спеціалізуються на цьому.
3. Характеристика дефектів
Для академічного дослідження або лабораторного тестування може бути достатньо розробити алгоритм, який показує обіцянку або вдосконалює існуючий метод. Щоб правильно вирішити цю проблему для реального комерційного чи промислового використання, вам потрібно мати досить детальну специфікацію розмірів вм'ятин, які ви хочете виявити.
Коли ми вирішували цю проблему, не було розумних галузевих чи національних стандартів щодо вм’ятин (3D-деформації). Тобто, не було узгодженої техніки для характеристики вм'ятини за її площею, глибиною та формою. Ми просто мали зразки, за якими експерти погодились з галузевими, поганими, не надто поганими та маргінальними з точки зору гостроти. Визначення "глибини" дінга теж складне, оскільки дінг - це 3D-відступ у (як правило) 3D поверхні, що вигинається назовні.
Більш великі дігги легше виявити, але вони також менш поширені. Досвідчений автомайстер може швидко сканувати кузов автомобіля - набагато швидше, ніж непідготовлений спостерігач - і швидко знайти неглибокі тони розміром з вашим рожевим пальцем. Щоб виправдати вартість автоматизованої системи, вам, швидше за все, доведеться відповідати можливостям досвідченого спостерігача.
4. Критерії помилок виявлення
На початку слід встановити критерії прийнятних помилкових негативів та помилкових позитивних результатів. Навіть якщо ви просто вивчаєте цю проблему як проект НДДКР і не маєте наміру розробляти продукт, спробуйте визначити свої критерії виявлення.
хибнонегативний: вм’ятина присутня, але не виявлена хибнопозитивна: незабруднена зона, ідентифікована як вм'ятина
Зазвичай існує компроміс: збільшуйте чутливість і знайдете більше сигнів (зменшення помилкових негативів), але ви також знайдете більше суглобів, яких там немає (збільшуйте помилкові позитиви). Переконати себе в тому, що алгоритм працює краще, ніж насправді, досить легко: наш природний ухил полягає в тому, щоб помітити дефекти, виявлені алгоритмом, та пояснити ті, які він не виявив. Проведення сліпих, автоматизованих тестів. Якщо можливо, попросіть когось іншого виміряти тонуси та призначити суворість, щоб ви не знали, що таке справжні вимірювання.
5. Збережіть дані та / або нанесіть на карту
Вм’ятина характеризується своєю суворістю та розташуванням на кузові автомобіля. Щоб знати його місцезнаходження, ви повинні вирішити проблему листування 2D-3D, згадану вище.
6. Визначення «справжньої» форми вм'ятин
Вм'ятини важко виміряти. Різка вм’ятина і округле вм’ятина однакової площі поверхні і глибини будуть виглядати різними. Вимірювання вм'ятин механічним способом призводить до суб'єктивних суджень, а також використовувати прилади для вимірювання глибини, лінійок тощо, досить виснажливо, коли вам, мабуть, доведеться виміряти десятки, якщо не більше.
Це одна з найскладніших інженерних проблем для вирішення будь-якого проекту виявлення дефектів для виробництва: як можна виміряти дефект та охарактеризувати його? якщо є стандарт для цього, чи відповідає стандарт, чи відповідає система інспекції? якщо система інспекції не знайде дінг, це "повинно було" знайти, хто винен?
Однак, якщо система перевірки працює досить добре для вибірки відомих дефектів, з часом користувачі можуть їй довіряти, а сама система стає стандартом для визначення серйозності дефектів.
7. Обширна база даних вм'ятин
В ідеалі у вас було б сотні, якщо не тисячі зразкових зображень вм'ятин різної тяжкості в різних місцях на транспортних засобах складних виробників. Якщо ви зацікавлені в пошуку вм'ятин, спричинених аваріями під час складання, збирання даних може зайняти багато часу. Вм’ятини, що виникають в процесі складання, зустрічаються нечасто.
Якщо вас цікавить лише пошук вм'ятин, спричинених аваріями чи шкодою для навколишнього середовища, то це вже інша справа. Типи вм’ятин будуть відрізнятися від тих, що викликаються випадковими пошкодженнями всередині автоскладальної установки.
8. Робота з різними кольорами фарби
Це правда, що детектори країв можуть бути досить надійними при виявленні країв на зображеннях різного рівня контрасту, але це може бути дуже огидно, щоб побачити, що "різний рівень контрастності" насправді означає для різних автомобільних фарб та оздоблень. . Світлу смужку, яка чудово виглядає на блискучому чорному автомобілі, навряд чи можна помітити на білому автомобілі зі старою фарбою.
Більшість камер мають відносно обмежений динамічний діапазон, тому досягнення хорошого контрасту як чорних блискучих, так і білих тьмяних поверхонь є складним. Цілком ймовірно, що вам доведеться автоматично контролювати інтенсивність освітлення. Це теж важко.