Какво представлява компютърното зрение? AI за изображения и видео

Компютърното зрение идентифицира и често локализира обекти в цифрови изображения и видеоклипове. Тъй като живите организми обработват изображения с визуалната си кора, много изследователи са взели архитектурата на зрителната кора на бозайниците като модел за невронни мрежи, предназначени да извършват разпознаване на изображения. Биологичните изследвания датират от 50-те години на миналия век.

Напредъкът в компютърното зрение през последните 20 години е абсолютно забележителен. Въпреки че все още не са перфектни, някои системи за компютърно зрение постигат 99% точност, а други работят прилично на мобилни устройства.

Пробивът в зрителното поле на невронната мрежа беше LeNet-5 на Yann LeCun от 1998 г., седемстепенна конволюционна невронна мрежа за разпознаване на ръчно написани цифри, дигитализирани в изображения с размери 32x32 пиксела. За да се анализират изображения с по-висока разделителна способност, мрежата LeNet-5 ще трябва да бъде разширена до повече неврони и повече слоеве.

Днешните най-добри модели за класификация на изображенията могат да идентифицират разнообразни каталози на обекти с HD резолюция в цвят. В допълнение към чистите дълбоки невронни мрежи (DNN), хората понякога използват хибридни модели на зрение, които комбинират дълбоко обучение с класически алгоритми за машинно обучение, които изпълняват специфични подзадачи.

Други проблеми със зрението освен основната класификация на изображенията са решени с дълбоко обучение, включително класификация на изображения с локализация, откриване на обекти, сегментиране на обекти, прехвърляне на стил на изображението, оцветяване на изображението, реконструкция на изображението, супер-резолюция на изображението и синтез на изображението.

Как работи компютърното зрение?

Алгоритмите за компютърно зрение обикновено разчитат на конволюционните невронни мрежи или CNN. CNN обикновено използват слоеве, обединяване, ReLU, напълно свързани и слоеве за загуба, за да симулират визуална кора.

Конволюционният слой по същество взема интегралите на много малки припокриващи се области. Обединяващият слой изпълнява форма на нелинейно вземане на проби. ReLU слоевете прилагат ненасищащата функция за активиране f (x) = max (0, x) .

В напълно свързан слой невроните имат връзки с всички активирания в предишния слой. Загубеният слой изчислява как мрежовото обучение наказва отклонението между предсказаните и истинските етикети, използвайки Softmax или кръстосана ентропия за класификация.

Набори от данни за обучение за компютърно зрение

Има много набори от данни за обществени изображения, които са полезни за обучение на модели на зрение. Най-простият и един от най-старите е MNIST, който съдържа 70 000 ръкописни цифри в 10 класа, 60K за обучение и 10K за тестване. MNIST е лесен за моделиране набор от данни, дори с помощта на лаптоп без хардуер за ускорение. CIFAR-10 и Fashion-MNIST са подобни набори от 10 класа. SVHN (улични номера на къщи) е набор от 600 000 изображения на реални номера на къщи, извлечени от Google Street View.

COCO е по-мащабен набор от данни за откриване, сегментиране и надписване на обекти, с 330 000 изображения в 80 категории обекти. ImageNet съдържа около 1,5 милиона изображения с ограничителни полета и етикети, илюстриращи около 100 000 фрази от WordNet. Open Images съдържа около девет милиона URL адреса на изображения с около 5K етикета.

Google, Azure и AWS имат свои собствени модели на визия, обучени срещу много големи бази данни с изображения. Можете да ги използвате такива, каквито са, или да стартирате обучение за трансфер, за да адаптирате тези модели към собствените си набори от данни за изображения. Можете също така да извършите трансферно обучение, като използвате модели, базирани на ImageNet и Open Images. Предимствата на трансферното обучение пред изграждането на модел от нулата са, че то е много по-бързо (часове, а не седмици) и че ви дава по-точен модел. Все още ще ви трябват 1000 изображения на етикет за най-добри резултати, въпреки че понякога можете да се измъкнете с по 10 изображения на етикет.

Приложения за компютърно зрение

Въпреки че компютърното зрение не е перфектно, често е достатъчно добро, за да бъде практично. Добър пример е визията в самоуправляващите се автомобили.

Waymo, по-рано проектът на Google за самоуправляващи се автомобили, претендира за тестове на седем милиона мили обществени пътища и способността да се движите безопасно в ежедневния трафик. Имало е поне една катастрофа с участието на микробус Waymo; според полицията софтуерът не е бил виновен.

Tesla има три модела самоуправляващи се автомобили. През 2018 г. джип Tesla в режим на самоуправление е участвал във фатален инцидент. В доклада за инцидента се казва, че шофьорът (който е бил убит) е с ръце от волана въпреки многобройните предупреждения от конзолата и че нито водачът, нито софтуерът се опитват да спират, за да избегнат удара по бетонната бариера. Оттогава софтуерът е модернизиран, за да изисква, вместо да предлага ръцете на водача да са на волана.

Магазините на Amazon Go са магазини за продажба на дребно на самообслужване, в които системата за компютърно зрение в магазина открива кога купувачите взимат или връщат артикули на склад; купувачите се идентифицират и таксуват чрез приложение за Android или iPhone. Когато софтуерът Amazon Go пропусне даден елемент, купувачът може да го запази безплатно; когато софтуерът регистрира фалшиво взетия артикул, купувачът може да сигнализира за него и да получи възстановяване на сумата за това таксуване.

В здравеопазването има приложения за зрение за класифициране на определени характеристики в диапозитивите на патологията, рентгеновите лъчи на гръдния кош и други медицински системи за изображения. Някои от тях демонстрираха стойност в сравнение с квалифицирани специалисти, някои достатъчно за одобрение от регулаторите. Съществува и система в реално време за оценка на кръвозагубата на пациента в операционна или родилна зала.

Има полезни приложения за визия за селското стопанство (селскостопански роботи, мониторинг на посевите и почвите и прогнозен анализ), банковото дело (откриване на измами, удостоверяване на документи и отдалечени депозити) и промишлен мониторинг (отдалечени кладенци, сигурност на обекта и работна дейност).

Има и приложения на компютърното зрение, които са противоречиви или дори остарели. Единият е разпознаването на лица, което, когато се използва от правителството, може да бъде нахлуване в личния живот и което често има пристрастие към обучението, което има тенденция да погрешно идентифицира небелите лица. Друго е поколението deepfake, което е повече от малко зловещо, когато се използва за порнография или създаване на измами и други измамни изображения.

Рамки и модели за компютърно зрение

Повечето рамки за задълбочено обучение имат значителна подкрепа за компютърно зрение, включително базирани на Python рамки TensorFlow (водещ избор за производство), PyTorch (водещ избор за академични изследвания) и MXNet (рамка на Amazon за избор). OpenCV е специализирана библиотека за компютърно зрение, която е насочена към приложения за зрение в реално време и се възползва от инструкциите MMX и SSE, когато са налични; той също има поддръжка за ускорение с помощта на CUDA, OpenCL, OpenGL и Vulkan.

Amazon Rekognance е услуга за анализ на изображения и видео, която може да идентифицира обекти, хора, текст, сцени и дейности, включително анализ на лице и персонализирани етикети. API на Google Cloud Vision е предварително обучена услуга за анализ на изображения, която може да открива обекти и лица, да чете отпечатан и написан на ръка текст и да вгражда метаданни във вашия каталог с изображения. Google AutoML Vision ви позволява да обучавате персонализирани модели изображения. И двете потребителски етикети на Amazon Rekogmination и Google AutoML Vision извършват обучение за трансфер.

API на Microsoft Computer Vision може да идентифицира обекти от каталог от 10 000, с етикети на 25 езика. Той също така връща ограничителни полета за идентифицирани обекти. API на Azure Face прави разпознаване на лица, което възприема лица и атрибути в изображение, идентификация на лице, което съответства на лице във вашето частно хранилище с до един милион души, и разпознаване на възприемани емоции. Face API може да работи в облака или на ръба в контейнери.

IBM Watson Visual Recognition може да класифицира изображения от предварително обучен модел, да ви позволи да обучавате персонализирани модели изображения с обучение за трансфер, да извършвате откриване на обекти с преброяване на обекти и да тренирате за визуална проверка. Watson Visual Recognition може да работи в облака или на iOS устройства, използващи Core ML.

Пакетът за анализ на данни Matlab може да извършва разпознаване на изображения, използвайки машинно обучение и дълбоко обучение. Той има допълнителна кутия с инструменти за компютърно зрение и може да се интегрира с OpenCV.

Моделите на компютърното зрение са изминали дълъг път след LeNet-5 и те са предимно CNN. Примерите включват AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) и MobileNet (2017-2018). Семейството на невронните мрежи за зрение MobileNet е проектирано с мисъл за мобилни устройства.

[Също на: Kaggle: Къде учените по данни учат и се състезават]

Рамката на Apple Vision извършва разпознаване на лица и лица, забелязване на текст, разпознаване на баркод, регистрация на изображения и общо проследяване на характеристиките. Vision също така позволява използването на персонализирани Core ML модели за задачи като класификация или откриване на обекти. Работи на iOS и macOS. Google ML Kit SDK има подобни възможности и работи на устройства с Android и iOS. ML Kit допълнително поддържа API на естествен език.

Както видяхме, системите за компютърно зрение са станали достатъчно добри, за да бъдат полезни, а в някои случаи и по-точни от човешкото зрение. Използвайки трансферно обучение, персонализирането на зрителните модели стана практично за обикновените смъртни: компютърното зрение вече не е изключителната област на изследователите на докторска степен.

Прочетете повече за машинното обучение и дълбокото обучение:

  • Дълбоко обучение срещу машинно обучение: Разберете разликите
  • Какво е машинно обучение? Интелигентност, получена от данни
  • Какво е дълбоко обучение? Алгоритми, които имитират човешкия мозък
  • Обяснени алгоритми за машинно обучение
  • Какво представлява обработката на естествен език? AI за реч и текст
  • Автоматизирано машинно обучение или AutoML обяснено
  • Обяснено контролирано обучение
  • Обяснено полууправлявано обучение
  • Обяснено учене без надзор
  • Обяснено учебно усилване
  • Kaggle: Къде учените по данни учат и се състезават
  • Какво е CUDA? Паралелна обработка за графични процесори

Прочетете отзиви за машинно обучение и дълбоко обучение:

  • Как да изберем платформа за машинно обучение в облак
  • Deeplearning4j: Дълбоко обучение и ETL за JVM
  • Преглед: Amazon SageMaker играе наваксване
  • Преглед на TensorFlow 2: По-лесно машинно обучение
  • Преглед: Google Cloud AutoML е наистина автоматизирано машинно обучение
  • Рецензия: MXNet дълбокото обучение блести с Gluon
  • Преглед на PyTorch: Дълбока рамка за обучение, създадена за скорост
  • Рецензия: Keras плава чрез дълбоко обучение