Откриването на обекти е една от най-модерните технологии в момента в областта на компютърното зрение. Изследванията се извършват с наистина бързи темпове в тази област и резултатите са просто изумителни.
Но какво точно е откриването на обект? Откриването на обекти се занимава с идентифициране и локализиране на обекти от определени класове с ограничаващи полета от даден вход (изображение или видео).
Някои от най-успешните алгоритми за откриване на обекти към тази дата са следните:
1. Регионално базирани CNN: RCNN, Бърз RCNN, По-бърз RCNN
2. ЙОЛО
3. SSD
(В тази статия ще разгледаме RCNN и поредица от подобрения, направени в него, т.е. Fast R-CNN и Faster R-CNN)
Аз. Региони със CNN (R-CNN):
Този алгоритъм включва намиране на конкретни региони в изображение, които е вероятно да съдържат обекти (използвайки селективно търсене) и препращането им през CNN за извличане на функции. По-късно извлечените характеристики се използват за предсказване на класа и ограничителната кутия около тях.
По принцип RCNN включва следните стъпки:
1. Около 2000 предложения за региони отдолу нагоре се извличат от входно изображение.
2. Независимо от размера или съотношението на страните на кандидатския регион, ние изкривяваме всички пиксели в тясно ограничаващо поле около него до необходимия размер. За всяко предложение той изчислява функции, използвайки голям CNN.
3. Той класифицира всеки регион с помощта на специфични за класа линейни SVM.
4. Алгоритъмът също така предвижда четири стойности, които са стойности на отместване, за да се увеличи прецизността на ограничителната кутия.
Недостатъци:
1. Обучението е бавно: Около 2000 предложения за регион трябва да бъдат класифицирани на изображение, което отнема огромно време.
2. Изводът е бавен: Отнема около 47 s/на изображение с VGG16. Откриването в реално време не е възможно.
II. Бърз R-CNN:
Fast R-CNN е импровизиран наследник на алгоритъма R-CNN. Той включва няколко промени, които го правят по-бърз и по-точен в сравнение с обсъждания по-рано R-CNN.
Основният проблем с R-CNN беше, че изпълнява CNN пропуск за всяко предложение за регион, без да споделя изчисления. Бързият R-CNN подобрява R-CNN, като препраща цялото изображение през CNN.
Тя включва следните стъпки:
1. Цялото изображение се предава напред през CNN, за да се генерира конволюционна карта на характеристиките.
2. Регионът на интерес се идентифицира от картата на конволюционните характеристики и върху тях се прилага Слой за обединяване на ROI, за да се преоформят всички до един и същ размер. След това всяко предложение се предава на напълно свързан слой.
3. Слоят Softmax и слоят с линейна регресия след това се използват паралелно за извеждане на класовете и ограничаващите кутии.
Недостатъци:
Въпреки че Fast R-CNN е подобрение спрямо R-CNN по отношение на скорост и точност, той все още използва селективно търсене за предложение за регион, което всъщност отнема много време процес.
III. По-бърз R-CNN:
Faster R-CNN е по-нататъшен напредък спрямо Fast R-CNN. Основната разлика между Fast R-CNN и Faster R-CNN е фактът, че той използва мрежата за регионални предложения (RPN) за генериране на региони от интерес.
Следват стъпките, включени в Faster R-CNN:
1. Цялото изображение се предава през CNN, за да се генерира карта на конволюционни характеристики (точно както направихме в случай на Fast R-CNN).
2. Регионите на интерес се идентифицират чрез прилагане на мрежа за предложения за региони (RPN) върху тези карти на характеристиките, които връщат предложенията за обекти с техния резултат за обектност.
3. Слоят за обединяване на ROI се прилага върху тях, за да ги доведе до същия размер и след това предложенията се предават на напълно свързан слой.
4. Слоят Softmax и слоят с линейна регресия се прилагат отгоре му, за да се класифицират и изведат ограничителните кутии.
По-бързият R-CNN е най-добрият сред алгоритмите за откриване на обекти, които обсъдихме в тази статия. Откриването на обекти не е ограничено само до регионално базирани CNN. Има много други алгоритми като YOLO, SSD и RetinaNet, които ще обсъдим в предстоящите статии.