Комп'ютерний зір
Комп'ю́терний зір або Комп'ютерне бачення — теорія та технологія створення машин, які можуть проводити виявлення, стеження та визначення об'єктів.
Як наукова дисципліна, комп'ютерний зір належить до теорії та технології створення штучних систем, які отримують інформацію у вигляді зображень. Відеодані можуть бути представлені у вигляді багатьох форм, таких як відеопослідовність, зображення з різних камер або тривимірними даними з медичного сканера.
Як технологічна дисципліна, комп'ютерний зір прагне застосувати теорії та моделі комп'ютерного зору до створення систем комп'ютерного зору. Прикладами таких систем можуть бути:
- системи керування процесами (промислові роботи, автономні транспортні засоби)
- системи відеоспостереження
- системи організації інформації (наприклад, для індексації баз даних зображень)
- системи моделювання об'єктів або навколишнього середовища (аналіз медичних зображень, топографічне моделювання)
- системи взаємодії (наприклад, пристрої введення для систем людино-машинної взаємодії).
Комп'ютерний зір також може бути описаний як доповнення (але не обов'язково протилежність) біологічному зору. У біології вивчається зорове сприйняття людини і різноманітних тварин, в підсумку створюються моделі роботи таких систем в термінах фізіологічних процесів. Комп'ютерний зір, з іншого боку, вивчає і описує системи комп'ютерного зору, які виконано апаратно або програмно. Міждисциплінарний обмін між біологічним та комп'ютерним зором виявився досить продуктивним для обох наукових галузей.
Підрозділи комп'ютерного зору охоплюють відтворення дій, виявлення подій, стеження, розпізнавання образів, відновлення зображень.
Сучасний стан справ
Галузь комп'ютерного зору може бути охарактеризована як молода та різноманітна. І, хоча існують більш ранні роботи, можна сказати, що тільки з кінця 1970-х почалось інтенсивне вивчення цієї проблеми, коли комп'ютери змогли керувати обробкою великих наборів даних, таких як зображення. Однак, ці дослідження зазвичай починались з інших галузей, і, відповідно, нема стандартного формулювання проблеми комп'ютерного зору. Також, і це навіть більш важливо, нема стандартного формулювання того, як повинна вирішуватись проблема комп'ютерного зору. Замість того, існує безліч методів для вирішення різноманітних суворо визначених завдань комп'ютерного зору, де методи часто залежать від завдань і рідко коли можуть бути узагальнені для широкого кола застосування. Багато з методів та застосувань все ще знаходяться на стадії ґрунтовних досліджень, але все більша кількість методів знаходить застосування в комерційних продуктах, де вони часто складають частину складнішої системи, яка може вирішувати складні завдання (наприклад, в галузі медичних зображень або вимірювання та контролю якості в процесах виробництва). У більшості практичних застосувань комп'ютерного зору, комп'ютери попередньо запрограмовано для вирішення окремих завдань, але методи, що базуються на знаннях, стають все більше узагальненими.
Важливою частиною в області штучного інтелекту, є автоматичне планування або прийняття рішень в системах, які можуть виконувати механічні дії, такі як пересування робота крізь деяке середовище. Цей тип обробки зазвичай потребує вхідних даних, що надаються системами комп'ютерного зору, діють як відеосенсор і надають високорівневу інформацію про середовище та роботу.
Інші галузі, які іноді описуються як ті, що належать до штучного інтелекту, і які використовуються відносно комп'ютерного зору, це розпізнавання образів та навчальні методи. Внаслідок цього, комп'ютерний зір іноді розглядається як частина галузі штучного інтелекту чи галузі комп'ютерних наук загалом.
Фізика є іншою наукою, яка тісно пов'язана з комп'ютерним зором. Значна частина комп'ютерного зору має справу з методами, які потребують досконального розуміння процесу, в якому електромагнітне випромінювання, зазвичай в області видимого або інфрачервоного спектру, відбивається поверхнею об'єктів та вимірюється датчиком зображення, щоб отримати відеодані. Цей процес ґрунтується на оптиці і фізиці твердого тіла. Складніші давачі зображення також, потребують знань з квантової механіки для повного розуміння процесу формування зображення. Також, різноманітні проблеми вимірювань у фізиці можуть бути вирішені, використовуючи комп'ютерний зір (наприклад, ті, що відносяться до руху в рідинах). Тому, комп'ютерний зір може розглядатись як розширення фізики.
Третя галузь науки, яка відіграє важливу роль, — це нейробіологія, зокрема вивчення систем біологічного зору. За останнє ХХ століття були проведені великі дослідження очей, нейронів та структур мозку, що стосуються обробки візуальних подразників як у людини, так і в різноманітних тварин. Це призвело до грубого, і водночас складного, опису того, як працюють «реальні» системи зору, що допомогло розв'язати деякі задачі. Результати цих досліджень призвели до створення штучних систем, що наслідують роботу і функціонування аналогічних біологічних систем на різних рівнях складності. Також, деякі методи вивчення, що були розроблені в галузі комп'ютерного зору, зобов'язані своєму походженню, біології.
Ще однією галуззю, що пов'язана з комп'ютерним зором, є обробка сигналів. Багато способів обробки одномірних сигналів, зазвичай часових сигналів, можуть бути природним шляхом розширені для обробки двовимірних чи багатовимірних сигналів в комп'ютерному зорі. Однак, через своєрідну природу зображень, існують багато методів, розроблених в галузі комп'ютерного зору, що не мають аналогів в області обробки одновимірних сигналів. Особливістю цих методів є їх нелінійність, що, разом з багатовимірністю сигналу, робить відповідну підобласть в обробці сигналів частиною області комп'ютерного зору.
Крім названих підходів до проблеми комп'ютерного зору, багато з досліджуваних питань можуть бути вивчені з суто математичної точки зору. Наприклад, більшість методів базуються на статистиці, оптимізаційній математиці або геометрії.
Нарешті, великі роботи ведуться в області практичного застосування комп'ютерного зору, в тому, як методи, що існують, можуть бути реалізовані програмно і апаратно чи як вони можуть бути змінені з метою досягнення високої швидкості роботи без істотного збільшення ресурсів, що споживаються.
Пов'язані області
Комп'ютерний зір, Обробка зображень, Аналіз зображень, Зір робота і Машинний зір — тісно пов'язані області. Але досі точно не визначено, чи є вони розділами однієї, ширшої галузі. При докладному аналізі може здатись, що це лише різні назви однієї і тієї ж області. Щоб не виникло плутанини, прийнято розрізняти їх як напрямки, зосереджені на певному предметі вивчення. Нижче наведено опис деяких з них, найбільш важливих.
Обробка зображень і Аналіз зображень в основному зосереджені на роботі з двовимірними зображеннями, тобто як перетворити одне зображення на інше. Наприклад, попіксельні операції збільшення контрастності, операції з виділення країв, усунення шумів чи геометричні перетворення, такі як обертання зображення. Дані операції припускають, що обробка/аналіз зображення діють незалежно від вмісту самих зображень.
Комп'ютерний зір зосереджується на обробці тривимірних сцен, спроєктованих на одне чи декілька зображень. Наприклад, відновлення структури чи іншої інформації про тривимірну сцену по одному чи декільком зображенням. Комп'ютерний зір часто залежить від більш чи менше складних припущень відносно того, що представлено на зображеннях.
Машинний зір зосереджується на застосуванні, в основному промисловому, наприклад, автономні роботи і системи зорової перевірки та вимірювання. Це означає, що технології давачів зображення і теорії керування пов'язані з обробкою відеоданих для керування роботом і обробка даних в реальному часі здійснюється апаратно чи програмно.
Також існує область, названа Візуалізацією, яка початково була пов'язана з процесом створення зображень, але іноді мала справу з обробкою та аналізом. Наприклад, рентгенографія працює з аналізом відеоданих медичного призначення.
Нарешті, розпізнавання образів є областю, яка використовує різноманітні методи для отримання інформації з відеоданих, що, в основному, ґрунтуються на статистичному підході. Значна частина цієї області присвячена практичному застосуванню цих методів.
Приклади застосування комп'ютерного зору
Одним з найбільш важливих застосувань є обробка зображень в медицині. Ця область характеризується отриманням інформації з відеоданих для визначення медичного діагнозу пацієнту. В більшості випадків, відеодані отримують за допомогою мікроскопії, рентгенографії, ангіографії, ультразвукових досліджень та томографії. Прикладом інформації, яка може бути отримана з таких відеоданих є виявлення пухлин, атеросклерозу чи інших злоякісних змін. Також прикладом може слугувати вимірювання розмірів органів, кровообігу тощо. Ця прикладна галузь також сприяє медичним дослідженням, наданням нової інформації, наприклад, про будову мозку чи якості медичного лікування.
Іншою прикладною галуззю комп'ютерного зору, є промисловість. Тут інформацію отримують для підтримки виробничого процесу. Прикладом може слугувати контроль якості, коли деталі чи кінцевий продукт автоматично перевіряються на наявність дефектів. Іншим прикладом є вимірювання положення та орієнтація деталей, що піднімаються рукою робота.
Військове застосування є, мабуть, найбільшою областю комп'ютерного зору. Очевидним прикладом є виявлення ворожих солдат і транспортних засобів та керування ракетами. Найбільш досконалі системи керування ракетами відправляють ракету в задану область, замість конкретної цілі, а визначення цілей відбувається тоді, коли ракета досягає заданої області, базуючись на відеоданих, що надходять. Сучасний воєнний термін, як «бойова поінформованість», припускає, що різноманітні давачі, в тому числі датчики зображення, надають великий набір інформації про поле битви, яка може бути використана для прийняття стратегічних рішень. В цьому разі, автоматична обробка даних використовується, щоб зменшити складність або збільшити надійність отриманої інформації.
Одними з нових галузей застосування, є автономні транспортні засоби, такі як: підводні, наземні (роботи, машини), повітряні. Рівень автономності вимірюється від повністю автономних (безпілотних) до транспортних засобів, де системи, що базуються на комп'ютерному баченні, підтримують водія чи пілота в різноманітних подіях. Повністю автономні транспортні засоби використовують комп'ютерне бачення для навігації, тобто для отримання інформації про місце свого положення, для створення мапи навколишнього оточення, для визначення перешкод. Вони також можуть бути використані, наприклад, для визначених завдань знаходження лісових пожеж. Прикладом таких систем, можуть бути: система попереджувальної сигналізації про перешкоди на машинах і системи автономної посадки літаків. Деякі виробники машин демонстрували системи автономного керування автомобілем, але ця технологія все ще не досягла того рівня, коли її можна запустити в масове виробництво.
Інші області застосування охоплюють:
- підтримку створення відеоефектів для кіно та телебачення;
- спостереження.
Типові завдання комп'ютерного зору
Кожна з галузей застосування комп'ютерного зору, що були описані вище, пов'язана з низкою завдань; більш чи менше гарно визначені проблеми вимірювання чи обробки можуть бути вирішені з використанням багатьох методів. Деякі приклади типових завдань комп'ютерного зору представлено нижче.
Розпізнавання
Класичне завдання в комп'ютерному зорі, обробці зображень і машинному зорі — це визначення того, чи містять відеодані деякий характерний об'єкт, особливість чи активність. Це завдання може бути вірогідно і легко вирішено людиною, але досі не вирішено задовільно в комп'ютерному зорі в загальному випадку: випадкові об'єкти у випадкових ситуаціях.
Наявні способи вирішення цього завдання придатні тільки для окремих об'єктів, таких як прості геометричні об'єкти (наприклад, багатокутники), людські обличчя, друковані чи рукописні символи, автомобілі і лише у визначених умовах, зазвичай це певне освітлення, тло і положення об'єкта відносно камери.
В літературі описане різноманіття проблем розпізнавання:
- Розпізнавання: один чи декілька попередньо заданих чи вивчених об'єктів або класів об'єктів можуть бути розпізнані, зазвичай разом з їх двовимірним положенням на зображенні чи тривимірним положенням в сцені.
- Ідентифікація: розпізнається індивідуальний екземпляр об'єкта. Приклади: ідентифікація визначеного людського обличчя або відбитка пальців чи автомобіля.
- Виявлення: відеодані перевіряються на наявність визначеної умови. Наприклад, виявлення можливих неправильних клітин чи тканин в медичних зображеннях. Виявлення, що ґрунтується на відносно простих і швидких обчисленнях, іноді використовується для знаходження невеликих ділянок в зображенні, що аналізується, які потім досліджуються за допомогою заходів, які потребують більше ресурсів, для отримання правильної інтерпретації.
Існує кілька спеціалізованих завдань, що базуються на розпізнаванні, наприклад:
- Пошук зображень за вмістом: знаходження всіх зображень серед великого набору зображень, які мають певний вміст. Вміст може бути визначено різними шляхами, наприклад в термінах схожості з певним зображенням (знайти всі зображення, що схожі на дане зображення), чи в термінах високорівневих критеріїв пошуку, котрі вводяться як текстові дані (знайти всі зображення на яких зображено багато будинків, які зроблені взимку і на яких нема машин).
- Оцінка положення: визначення положення чи орієнтації визначеного об'єкта відносно камери. Прикладом застосування цієї техніки може бути спрямування руки робота при вилученні об'єктів з конвеєра на лінії складання.
- Оптичне розпізнавання символів: розпізнавання символів на зображеннях друкованого чи рукописного тексту, зазвичай для перекладу в текстовий формат, найбільш зручний для редагування чи індексації (наприклад, ASCII).
Рух
Декілька завдань, що пов'язані з оцінкою руху, в яких послідовність зображень (відеодані) обробляється для знаходження швидкості кожної точки зображення чи 3D сцени, або навіть самої камери, що робить зйомку. Прикладами таких завдань є:
- одометрія — визначення руху камери (переміщення і обертання) в тривимірному просторі на основі низки знімків.
- стеження, тобто прямуванням за переміщенням об'єкта (наприклад, машин чи людей).
- оптичний потік — визначення руху кожної точки зображення відносно площини зображення, тобто видимий рух, що є підсумком руху як самої точки так і камери.
Відновлення сцени
Задані два або більше зображення сцени або відеодані. Відновлення сцени має за мету відтворення тривимірної моделі сцени. В найпростішому випадку, моделлю може бути набір точок тривимірного простору. Складніші методи відтворюють повну тривимірну модель.
Відновлення зображень
Завдання відновлення зображень — це видалення шумів (шум датчика, розмитість об'єкта, що рухається тощо). Найпростішим підходом до вирішення цього завдання, є різноманітні типи фільтрів, такі як фільтри низьких чи середніх частот. Складніші методи використовують уявлення того, як повинні виглядати ті або інші ділянки зображення, і на основі цього їх перетворення.
Більш високий рівень видалення шумів, досягається протягом первинного аналізу відеоданих на наявність різноманітних структур, таких як лінії чи межі, а потім керування ходом фільтрації на основі цих даних.
Системи комп'ютерного зору
Впровадження систем комп'ютерного зору дуже залежить від області їх застосування. Деякі системи є автономними і вирішують специфічні проблеми детектування та вимірювання, тоді як інші системи складають підсистеми більших систем, які, наприклад, можуть містити підсистеми контролю за механічними маніпуляторами, планування, інформаційні бази даних, інтерфейси людина-машина тощо. Реалізація систем комп'ютерного зору також залежить від того, чи є її функціональність наперед визначеною чи деякі її частини можуть бути вивчені і удосконалені в процесі роботи. Однак, існують функції, типові для багатьох систем комп'ютерного зору.
- Отримання зображень: цифрові зображення отримуються від одного чи декількох датчиків зображення, які окрім різноманітних типів світлочутливих камер мають давачі відстані, радари, ультразвукові камери тощо. Залежно від типу датчика, отримані дані можуть бути звичайним 2D зображенням, 3D зображенням чи послідовністю зображень. Значення пікселів зазвичай відповідають інтенсивності світла в одній чи декількох спектральних смугах (кольорові чи зображення у відтінках сірого), але можуть бути пов'язані з різноманітними фізичними вимірюваннями, такими як глибина, поглинання чи відображення звукових або електромагнітних хвиль, або ядерним магнітним резонансом.
- Попередня обробка: перед тим, як методи комп'ютерного зору можуть бути застосовані до відеоданих з метою вилучення певної частини інформації, необхідно обробити відеодані, щоб вони задовольняли деяким вимогам залежно від метода, що використовується. Приклади:
- повторна вибірка з метою, щоб переконатись, що координатна система зображення є правильною;
- видалення шумів задля того, щоби видалити спотворення, які вносяться давачем;
- покращення контрастності для того, щоб потрібна інформація могла бути виявлена;
- масштабування для кращого розрізнення структур на зображенні.
- Виокремлення деталей: деталі зображення різного рівня складності виділяються з відеоданих. Типовими прикладами таких деталей є:
- лінії та межі;
- локалізовані точки інтересу, такі як кути, краплі чи точки: складніші деталі можуть належати до структури, форми чи руху.
- Детектування/Сегментація: на певному етапі обробки приймається рішення про те, які точки чи ділянки зображення є важливими для подальшої обробки. Прикладами є:
- виділення визначеного набору точок, що нас цікавлять;
- Сегментація одного або кількох ділянок зображення, які містять характерний об'єкт.
- Високорівнева обробка: на цьому кроці вхідні дані зазвичай представляють невеликий набір даних, наприклад, набір точок чи ділянка зображення, в якій за припущенням знаходиться певний об'єкт. Прикладами є:
- перевірка того, що дані задовольняють умовам, що залежать від методу і застосування;
- оцінка характерних параметрів, таких як положення або розмір об'єкта;
- класифікація знайденого об'єкта за різними категоріями.
Специфікації OpenVX
Восени 2014 група Khronos, що відповідає за розробку стандартів сімейства OpenGL і OpenCL, представила кінцевий варіант специфікації OpenVX 1.0, котра визначає прикладний програмний інтерфейс (API) для розробки переносних, високопродуктивних і енергоефективних застосунків і бібліотек для вирішення завдань комп'ютерного зору (виявлення, стеження і класифікація об'єктів на зображеннях і відеоданих).
OpenVX надає можливість використання серії алгоритмів для розпізнавання і відстеження переміщення особи, тіла і жестів, автоматизації відеоспостереження, автоматичних систем допомоги водієві, реконструкції об'єктів та сцен, доповненої реальності, візуального огляду, робототехніки та багатьох інших застосувань. Обробка даних в OpenVX-застосунках проводиться через маніпуляцію з графом функціональних вузлів, робота з яким може бути пришвидшена за рахунок залучення графічного процесора, процесора цифрових сигналів і додаткових апаратних пристроїв, а також роздільної обробки фрагментів (tiling).
Література
- Л. Шапиро, Дж. Стокман. Компьютерное зрение = Computer Vision. — М. : Бином. Лаборатория знаний, 2006. — 752 с. — ISBN 5-94774-384-1.
- Дэвид Форсайт, Жан Понс. Компьютерное зрение. Современный подход = Computer Vision: A Modern Approach. — М. : «Вильямс», 2004. — 928 с. — ISBN 5-8459-0542-7.