muzruno.com

Съвременна компютърна визия. Задачи и технологии за компютърно виждане. Програмиране на компютърно виждане в Python

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

компютърна визия

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

Визията е важен източник на информация за човек, с помощта на който получаваме, според различни източници, 70-90% от цялата информация. И, естествено, ако искаме да създадем интелигентна машина, трябва да приложим същите умения в компютъра.

Задачата на компютърното виждане може да бъде формулирана доста размита. Какво е "виж"? Трябва да разберем, че къде се намираме, просто гледаме. Това е разликата между компютърното виждане и човешкото виждане. Визията за нас е източникът на познание за света, както и източник на метрична информация - т.е. способността да се разбират разстояния и измерения.

Семантичното ядро ​​на изображението

Поглеждайки към образа, можем да го характеризираме по много начини, така да се каже, да извлечем семантична информация.

компютърна визия питон

Например, гледайки тази снимка, можем да кажем, че това е извън стаята. Какъв е този град, трафик на улицата. Че има коли тук. С конфигурацията на сградата и от йероглифи можем да предположим, че това е Югоизточна Азия. Портретът на Мао Цзедун се разбере, че това е в Пекин, и ако някой видя видео на живо или самият е бил там, предполагам, че това е известният площад Тянанмън.

Какво можем да кажем за картината, като я разгледаме? Можем да изберем обектите на изображението, да речем, има хора там, по-близо е оградата. Ето чадърите, тук е сградата, тук са плакатите. Това са примери за класове много важни обекти, които се търсят в момента.

Можем също така да извлечем някои атрибути или атрибути на обекти. Например, тук можем да определим, че това не е портрет на някои обикновени китайци, а именно Мао Цзедун.

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

Стойността на разстоянията и дължините в компютърното виждане

Много важна е метричната информация в областта на науката за компютърната визия. Това е най-различни разстояния. Например за роувър това е особено важно, защото командите от Земята продължават около 20 минути и отговорът е еднакъв. Съответно, връзката там и обратно - 40 минути. И ако изготвим план за движението на земните команди, тогава трябва да вземем предвид това.

компютърна визия pdf

За щастие технологиите за компютърно виждане са интегрирани в видеоигрите. С видеото можете да създавате триизмерни модели обекти, хора и потребителски снимки, които могат да възстановят триизмерните модели на градовете. И тогава ходете по тях.

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

Анализ, разпознаване на шаблони - начинът да се създадат по-висши умове

Ние ще анализираме тези понятия отделно.

методи за компютърно виждане

Обработката на изображения е областта на алгоритми, в които входът и изходът са изображение, а ние вече правим нещо с него.

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

Разпознаването на изображения е абстрактна математическа дисциплина, която разпознава данните под формата на вектори. Тоест входът е вектор и ние трябва да направим нещо с него. Откъде идва този вектор, не е толкова важно да знаем.

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

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

Роботите могат да "видят"

И последното нещо е машинно виждане. Чрез компютърно виждане се има предвид видението на роботите. Това е решението на някои производствени проблеми. Можем да кажем, че компютърната визия - това е една велика наука. Тя обединява някои други науки отчасти. И когато компютърното виждане получи конкретно приложение, то се превръща в компютърно виждане.

задачи за системи за компютърно виждане

Сферата на компютърното виждане има много практически приложения. Тя е свързана с автоматизацията на производството. В предприятията става по-ефективно да се замени ръчния труд с машината. Машината не се уморява, не спи, има нерегулиран работен график, е готова да работи 365 дни в годината. Така че, използвайки машинна работа, можем да получим гарантиран резултат в определено време и това е доста интересно. Всички задачи за системи за компютърно виждане имат визуално приложение. И няма нищо по-добро, освен да се види резултата веднага от картината, само на етапа на изчисленията.

На прага на света на изкуствения интелект

Плюс района - това е сложно! Значителна част от мозъка, които отговарят за зрението, и се смята, че ако ви научи компютъра, за да "виждат", че е, пълното използване на компютър визия, тя е една от целите на пълен изкуствения интелект. Ако успеем да решим проблема на човешко ниво, най-вероятно в същото време ще решим проблема с ИИ. Което е много добро! Или не много добре, ако погледнете "Терминатор 2".

Защо визията е трудна? Тъй като изображението на едни и същи обекти може да варира значително в зависимост от външни фактори. В зависимост от точките за наблюдение обектите изглеждат различни.

Например една и съща фигура, взета от различни ъгли. И най-интересното е, че фигурата може да има едно око, две очи или един и половина. И в зависимост от контекста (ако е снимка на мъж в тениска с боядисани очи), тогава окото може да бъде повече от две.

Компютърът все още не разбира, но вече "вижда"

Друг фактор, който създава сложност, е осветяването. Същата сцена с различно осветление ще изглежда различно. Размерът на обектите може да варира. И предмети от всички класове. Е, как може да кажеш за мъж, че височината му е 2 метра? Няма начин. Височината на човек може да бъде 2,3 м и 80 см. Като предмети от други видове, те са все пак предмети от един и същи клас.

примери за компютърно виждане

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

програма за компютърно виждане

Следващият вид е прикрит. Някои обекти, животните са маскирани под околната среда и умело достатъчно. И петна са еднакви и цвят. Но въпреки това ги виждаме, макар и не винаги отдалеч.



Друг проблем е движението. Обектите в движение претърпяват невъобразими деформации.

Много обекти са много променливи. Ето например, на две снимки под обекти като "фотьойл".

програмиране компютърно виждане в питон

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

различията в компютърното виждане и човешкото зрение

Интегриране на компютърното виждане в различни платформи

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

Сега, компютърното виждане има съвсем ново практическо приложение - разпознаване на лице от лице.

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

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

Изискванията към паспортните снимки до голяма степен се дължат на особеностите на алгоритмите за разпознаване на лица.

Например, ако имате биометричен паспорт, в някои модерни летища можете да използвате автоматична система за контрол на паспортите.

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

Може би някой използва системата за разпознаване на текст. Един от тях е Fine Reader, много популярна система в Runet. Има много форми, в които трябва да попълвате данните, те са перфектно сканирани, информацията се разпознава много добре от системата. Но с произволен текст върху изображението, нещата са много по-лоши. Тази задача остава нерешена.

Игри, включващи компютърно виждане, улавяне на движения

Отделна голяма област е създаването на триизмерни модели и улавяне на движението (което се прилага доста успешно в компютърните игри). Първата програма, използваща компютърна визия, е система за взаимодействие с компютъра с помощта на жестове. Когато беше създаден, имаше много, които бяха отворени.

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

Това е един милион изображения и седмица време е възможно броим суперкомпютър за създаване на алгоритъм, който консумира 12% от капацитета на един процесор и позволява на човек да възприема позицията в реално време. Това е системата Microsoft Kinect (2010).

компютърна програма за виждане

Търсенето на изображения по съдържание ви позволява да качвате снимка в системата и по резултати тя ще покаже всички снимки със същото съдържание и от същия ъгъл.

Примери за компютърно виждане: сега се правят триизмерни и двуизмерни карти. Картите за автомобилни навигатори се актуализират редовно в съответствие с данните от DVR.

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

Роботите са навсякъде

Роботиците вече са навсякъде, без изобщо. Сега има автомобили, в които има специални камери, които разпознават пешеходци и пътни знаци, за да предадат команди на водача (това е в известен смисъл компютърна визия, която помага на любителите на кола). Има и напълно автоматизирани роботи, но те не могат да разчитат единствено на камерата, без да използват много допълнителна информация.

Модерна камера е аналогов на камера obscura

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

компютърна визия

Съвременните цифрови камери (матрицата) се състоят от отделни елементи - пиксели. Всеки пиксел ви позволява да измервате енергията на светлината, която попада на този пиксел общо, и извеждате един номер. Ето защо, в цифров фотоапарат получаваме вместо изображение набор от измервания на яркостта на светлината, попадаща в отделен пикселен компютър зрително поле. Ето защо, когато изображението се увеличи, не виждаме плавни линии и ясни контури, а мрежа от пиксели, които са оцветени в различни тонове - пиксели.

По-долу можете да видите първото цифрово изображение в света.

компютърна визия

Но какво липсва в този образ? Цвят. И какво е цветът?

Психологическо възприемане на цвета

Цвят е това, което виждаме. Цветът на обекта, същият обект за човек и котка ще бъде различен. Тъй като ние (при хората) и животните имаме оптическа система - визия, тя е различна. Следователно цветът е психологическо свойство на нашето виждане, произтичащо от наблюдението на обекти и светлина. И не физическото свойство на обекта и светлината. Цветът е резултат от взаимодействието на компонентите на светлината, сцената и нашата визуална система.

технологията на компютърното виждане

Програмиране на компютърно виждане в Python чрез използване на библиотеки

Ако решите сериозно да изучавате компютърното виждане, трябва веднага да се подготвите за редица трудности, тази наука не е най-лесната и скрива редица клопки. Но "Програмирането на компютърната визия в Питон" в авторството на Ян Ерик Солем е книга, в която всичко е изложено на най-простия възможен език. Тук ще се запознаете с методите за разпознаване на различни обекти в 3D, научете как да работите със стерео изображения, виртуална реалност и много други приложения за компютърно виждане. Има достатъчно примери в книгата в Python. Но обясненията са представени, така да се каже, по един общ начин, така че да не се претоварват с твърде много научна и тежка информация. Работата е подходяща за учениците, просто за любителите и ентусиастите. Можете да изтеглите тази книга и други за компютърната визия (pdf формат) онлайн.

В момента има отворена библиотека от алгоритми за компютърно виждане, както и обработка на изображения и цифрови алгоритми за OpenCV. Това се изпълнява в повечето съвременни езици за програмиране, има код с отворен код. Ако говорим за компютърно виждане, Python го използва като език за програмиране, поддържа и тази библиотека, освен това постоянно се развива и има голяма общност.

Microsoft предоставя своите Api-услуги, които могат да обучават невронни мрежи за работа с изображения на хора. Съществува и възможност да се приложи и компютърно виждане, като Python се използва като програмен език.

Споделяне в социалните мрежи:

сроден