Комп'ютерний зір

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

Як технологічна дисципліна, комп'ютерний зір прагне застосувати теорії та моделі комп'ютерного зору до створення систем комп'ютерного зору. Прикладами таких систем можуть бути:

  1. системи керування процесами (промислові роботи, автономні транспортні засоби)
  2. системи відеоспостереження
  3. системи організації інформації (наприклад, для індексації баз даних зображень)
  4. системи моделювання об'єктів або оточуючого середовища (аналіз медичних зображень, топографічне моделювання)
  5. системи взаємодії (наприклад, пристрої введення для систем людино-машинної взаємодії).

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

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

Сучасний стан справ[ред.ред. код]

Область комп'ютерного зору може бути охарактеризована як молода та різноманітна. І, хоча існують більш ранні роботи, можна сказати, що тільки з кінця 1970-х почалось інтенсивне вивчення цієї проблеми, коли комп'ютери змогли керувати обробкою великих наборів даних, таких як зображення. Однак, ці дослідження зазвичай починались з інших галузей, і, відповідно, нема стандартного формулювання проблеми комп'ютерного зору. Також, і це навіть більш важливо, нема стандартного формулювання того, як повинна вирішуватись проблема комп'ютерного зору. Замість того, існує маса методів для вирішення різноманітних строго визначених задач комп'ютерного зору, де методи часто залежать від задач і рідко коли можуть бути узагальнені для широкого кола застосування. Багато з методів та застосувань все ще знаходяться на стадії фундаментальних досліджень, але все більша кількість методів знаходить застосування в комерційних продуктах, де вони часто складають частину складнішої системи, яка може вирішувати складні задачі (наприклад, в галузі медичних зображень або вимірювання та контролю якості в процесах виробництва). В більшості практичних застосувань комп'ютерного зору комп'ютери попередньо запрограмовані для вирішення окремих задач, але методи, що базуються на знаннях, стають все більше узагальненими.

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

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

Фізика є іншою наукою, яка тісно пов'язана з комп'ютерним зором. Значна частина комп'ютерного зору має справу з методами, які потребують досконального розуміння процесу, в якому електромагнітне випромінювання, зазвичай в області видимого або інфрачервоного спектру, відображається поверхнею об'єктів та вимірюється датчиком зображення, щоб отримати відеодані. Цей процес базується на оптиці і фізиці твердого тіла. Складніші датчики зображення також потребують знань з квантової механіки для повного розуміння процесу формування зображення. Також, різноманітні проблеми вимірювань у фізиці можуть бути вирішені, використовуючи комп'ютерний зір (наприклад, ті, що відносяться до руху в рідинах). Тому, комп'ютерний зір може розглядатись як розширення фізики.

Третя галузь науки, яка відіграє важливу роль, — це нейробіологія, зокрема вивчення систем біологічного зору. За останнє століття були проведені великі дослідження очей, нейронів та структур мозку, що відносяться до обробки візуальних подразників як у людини, так і в різноманітних тварин. Це призвело до грубого, і водночас складного, опису того, як працюють «реальні» системи зору, що допомогло вирішити деякі задачі. Результати цих досліджень призвели до створення штучних систем, що імітують роботу і функціонування аналогічних біологічних систем на різних рівнях складності. Також, деякі методи вивчення, що були розроблені в галузі комп'ютерного зору, зобов'язані своєму походженню біології.

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

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

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

Пов'язані області[ред.ред. код]

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

Обробка зображень і Аналіз зображень в основному зосереджені на роботі з двовимірними зображеннями, тобто як перетворити одне зображення в інше. Наприклад, попіксельні операції збільшення контрастності, операції з виділення країв, усунення шумів чи геометричні перетворення, такі як обертання зображення. Дані операції припускають, що обробка/аналіз зображення діють незалежно від вмісту самих зображень.

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

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

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

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

Приклади застосування комп'ютерного зору[ред.ред. код]

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

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

Військове застосування є, мабуть, найбільшою областю комп'ютерного зору. Очевидним прикладом є виявлення ворожих солдат і транспортних засобів та управління ракетами. Найбільш досконалі системи управління ракетами відправляють ракету в задану область, замість конкретної цілі, а селекція цілей відбувається тоді, коли ракета досягає заданої області, базуючись на відеоданих, що надходять. Сучасне воєнне поняття, таке як «бойова поінформованість», припускає, що різноманітні датчики, включаючи датчики зображення, надають великий набір інформації про поле битви, яка може бути використана для прийняття стратегічних рішень. В цьому випадку, автоматична обробка даних використовується, щоб зменшити складність або збільшити надійність отриманої інформації.

Одними з нових областей застосування є автономні транспортні засоби, включаючи підводні, наземні (роботи, машини), повітряні. Рівень автономності вимірюється від повністю автономних (безпілотних) до транспортних засобів, де системи, що базуються на комп'ютерному баченні, підтримують водія чи пілота в різноманітних ситуаціях. Повністю автономні транспортні засоби використовують комп'ютерне бачення для навігації, тобто для отримання інформації про місце свого положення, для створення карти навколишнього оточення, для визначення перешкод. Вони також можуть бути використані, наприклад, для визначених задач знаходження лісових пожеж. Прикладом таких систем можуть бути система попереджувальної сигналізації про перешкоди на машинах і системи автономної посадки літаків. Деякі виробники машин демонстрували системи автономного управління автомобілем, але ця технологія все ще не досягла того рівня, коли її можна запустити в масове виробництво.

Інші області застосування включають:

  • підтримку створення відеоефектів для кіно та телебачення;
  • спостереження.

Типові задачі комп'ютерного зору[ред.ред. код]

Кожна з областей застосування комп'ютерного зору, що були описані вище, пов'язана з низкою задач; більш чи менше гарно визначені проблеми вимірювання чи обробки можуть бути вирішені з використанням багатьох методів. Деякі приклади типових задач комп'ютерного зору представлені нижче.

Розпізнавання[ред.ред. код]

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

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

В літературі описане різноманіття проблем розпізнавання:

  • Розпізнавання: один чи декілька попередньо заданих чи вивчених об'єктів або класів об'єктів можуть бути розпізнані, зазвичай разом з їх двовимірним положенням на зображенні чи тривимірним положенням в сцені.
  • Ідентифікація: розпізнається індивідуальний екземпляр об'єкта. Приклади: ідентифікація визначеного людського обличчя чи відбитка пальців чи автомобіля.
  • Виявлення: відеодані перевіряються на наявність визначеної умови. Наприклад, виявлення можливих неправильних клітин чи тканин в медичних зображеннях. Виявлення, що базується на відносно простих і швидких обчисленнях, іноді використовується для знаходження невеликих ділянок в зображенні, що аналізується, які потім аналізуються за допомогою заходів, що потребують більше ресурсів, для отримання правильної інтерпретації.

Існує кілька спеціалізованих задач, що базуються на розпізнаванні, наприклад:

  • Пошук зображень за вмістом: знаходження всіх зображень серед великого набору зображень, які мають певний вміст. Вміст може бути визначено різними шляхами, наприклад в термінах схожості з конкретним зображенням (знайти всі зображення, що схожі на дане зображення), чи в термінах високорівневих критеріїв пошуку, що вводяться як текстові дані (знайти всі зображення на яких зображено багато будинків, які зроблені взимку і на яких нема машин).
  • Оцінка положення: визначення положення чи орієнтації визначеного об'єкта відносно камери. Прикладом застосування цієї техніки може бути сприяння руки робота при вилученні об'єктів з конвеєра на лінії складання.
  • Оптичне розпізнавання символів: розпізнавання символів на зображеннях друкованого чи рукописного тексту, зазвичай для перекладу в текстовий формат, найбільш зручний для редагування чи індексації (наприклад, ASCII).

Рух[ред.ред. код]

Декілька задач, що пов'язані з оцінкою руху, в яких послідовність зображень (відеодані) обробляється для знаходження оцінки швидкості кожної точки зображення чи 3D сцени. Прикладами таких задач є:

  • визначення тривимірного руху камери
  • стеження, тобто прямуванням за переміщенням об'єкта (наприклад, машин чи людей)

Відновлення сцени[ред.ред. код]

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

Відновлення зображень[ред.ред. код]

Задача відновлення зображень — це видалення шумів (шум датчика, розмитість об'єкта, що рухається тощо). Найпростішим підходом до вирішення цієї задачі є різноманітні типи фільтрів, таких як фільтри низьких чи середніх частот. Складніші методи використовують уявлення того, як повинні виглядати ті або інші ділянки зображення, і на основі цього їх перетворення.

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

Системи комп'ютерного зору[ред.ред. код]

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

  • Отримання зображень: цифрові зображення отримуються від одного чи декількох датчиків зображення, які окрім різноманітних типів світлочутливих камер включають датчики відстані, радари, ультразвукові камери тощо. Залежно від типу датчика, отримані дані можуть бути звичайним 2D зображенням, 3D зображенням чи послідовністю зображень. Значення пікселів зазвичай відповідають інтенсивності світла в одній чи декількох спектральних смугах (кольорові чи зображення у відтінках сірого), але можуть бути пов'язані з різноманітними фізичними вимірюваннями, такими як глибина, поглинання чи відображення звукових або електромагнітних хвиль, або ядерним магнітним резонансом.
  • Попередня обробка: перед тим, як методи комп'ютерного зору можуть бути застосовані до відеоданих з метою вилучення певної частини інформації, необхідно обробити відеодані, щоб вони задовольняли деяким вимогам залежно від метода, що використовується. Приклади:
    • повторна вибірка з метою, щоб переконатись, що координатна система зображення є правильною;
    • видалення шумів з метою, щоб видалити спотворення, що вносяться датчиком;
    • покращення контрастності для того, щоб потрібна інформація могла бути виявлена;
    • масштабування для кращого розрізнення структур на зображенні.
  • Виокремлення деталей: деталі зображення різного рівня складності виділяються з відеоданих. Типовими прикладами таких деталей є:
    • лінії та межі;
    • локалізовані точки інтересу, такі як кути, краплі чи точки: складніші деталі можуть належати до структури, форми чи руху.
  • Детектування/Сегментація: на певному етапі обробки приймається рішення про те, які точки чи ділянки зображення є важливими для подальшої обробки. Прикладами є:
    • виділення визначеного набору точок, що нас цікавлять;
    • Сегментація одного або кількох ділянок зображення, які містять характерний об'єкт.
  • Високорівнева обробка: на цьому кроці вхідні дані зазвичай представляють невеликий набір даних, наприклад, набір точок чи ділянка зображення, в якій за припущенням знаходиться певний об'єкт. Прикладами є:
    • перевірка того, що дані задовольняють умовам, що залежать від методу і застосування;
    • оцінка характерних параметрів, таких як положення або розмір об'єкта;
    • класифікація знайденого об'єкта за різними категоріями.

Специфікації OpenVX[ред.ред. код]

Восени 2014 група Khronos, що відповідає за розробку стандартів сімейства OpenGL і OpenCL, представила фінальний варіант специфікації OpenVX 1.0, котра визначає прикладний програмний інтерфейс (API) для розробки переносних, високопродуктивних і енергоефективних застосунків і бібліотек для вирішення задач комп'ютерного зору (виявлення, стеження і класифікація об'єктів на зображеннях і відеоданих). специфікації OpenVX розроблена .

OpenVX надає можливість використання серії алгоритмів для розпізнавання і відстеження переміщення особи, тіла і жестів, автоматизації відеоспостереження, автоматичних систем допомоги водієві, реконструкції об'єктів та сцен, доповненої реальності, візуального огляду, робототехніки та багатьох інших застосувань. Обробка даних в OpenVX-застосунках проводиться через маніпуляцію з графом функціональних вузлів, робота з яким може бути прискорена за рахунок залучення CPU, GPU, DSP і додаткових апаратних пристроїв, а також роздільної обробки фрагментів (tiling).

Література[ред.ред. код]

  • Л. Шапиро, Дж. Стокман Компьютерное зрение = Computer Vision. — М.: Бином. Лаборатория знаний, 2006. — 752 с. — ISBN 5-94774-384-1.
  • Дэвид Форсайт, Жан Понс Компьютерное зрение. Современный подход = Computer Vision: A Modern Approach. — М.: «Вильямс», 2004. — 928 с. — ISBN 5-8459-0542-7.