16 KiB
Детекција објеката
Модели за класификацију слика које смо до сада обрађивали узимају слику и производе категоријски резултат, као што је класа 'број' у проблему MNIST. Међутим, у многим случајевима не желимо само да знамо да слика приказује објекте - желимо да можемо да одредимо њихову прецизну локацију. Управо то је суштина детекције објеката.
Квиз пре предавања
Слика са YOLO v2 веб сајта
Наивни приступ детекцији објеката
Претпоставимо да желимо да пронађемо мачку на слици. Веома наиван приступ детекцији објеката био би следећи:
- Разбијте слику на више плочица.
- Покрените класификацију слике на свакој плочици.
- Плочице које резултирају довољно високом активацијом могу се сматрати да садрже тражени објекат.
Слика из радне свеске за вежбе
Међутим, овај приступ је далеко од идеалног, јер омогућава алгоритму да веома непрецизно одреди оквир објекта. За прецизнију локацију, потребно је да покренемо неку врсту регресије како бисмо предвидели координате оквира - а за то су нам потребни специфични скупови података.
Регресија за детекцију објеката
Овај блог пост пружа одличан увод у детекцију облика.
Скупови података за детекцију објеката
Можете наићи на следеће скупове података за овај задатак:
- PASCAL VOC - 20 класа
- COCO - Уобичајени објекти у контексту. 80 класа, оквири и маске за сегментацију
Метрике за детекцију објеката
Преклапање преко уније (Intersection over Union)
Док је за класификацију слика лако измерити колико добро алгоритам ради, за детекцију објеката морамо измерити и исправност класе, као и прецизност локације предвиђеног оквира. За ово друго користимо такозвано преклапање преко уније (IoU), које мери колико добро се два оквира (или две произвољне области) преклапају.
Фигура 2 из овог одличног блога о IoU
Идеја је једноставна - делимо област преклапања између две фигуре са облашћу њихове уније. За две идентичне области, IoU би био 1, док би за потпуно одвојене области био 0. У другим случајевима ће варирати од 0 до 1. Обично узимамо у обзир само оне оквире за које је IoU изнад одређене вредности.
Просечна прецизност (Average Precision)
Претпоставимо да желимо да измеримо колико добро је препозната дата класа објеката C. За мерење користимо метрику просечне прецизности, која се израчунава на следећи начин:
- Размотрите криву прецизност-позив која показује тачност у зависности од вредности прага детекције (од 0 до 1).
- У зависности од прага, добићемо више или мање објеката детектованих на слици, и различите вредности прецизности и позива.
- Крива ће изгледати овако:
Слика из NeuroWorkshop
Просечна прецизност за дату класу C је област испод ове криве. Прецизније, оса позива се обично дели на 10 делова, а прецизност се просечава преко свих тих тачака:
AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})
AP и IoU
Узимамо у обзир само оне детекције за које је IoU изнад одређене вредности. На пример, у PASCAL VOC скупу података обично се претпоставља \mbox{IoU Threshold} = 0.5, док се у COCO AP мери за различите вредности \mbox{IoU Threshold}.
Слика из NeuroWorkshop
Средња просечна прецизност - mAP
Главна метрика за детекцију објеката назива се средња просечна прецизност, или mAP. То је вредност просечне прецизности, просечена преко свих класа објеката, а понекад и преко \mbox{IoU Threshold}. Детаљнији процес израчунавања mAP описан је
у овом блог посту), као и овде са примерима кода.
Различити приступи детекцији објеката
Постоје две широке класе алгоритама за детекцију објеката:
- Мреже за предлог региона (R-CNN, Fast R-CNN, Faster R-CNN). Главна идеја је генерисање регионa од интереса (ROI) и покретање CNN-а преко њих, тражећи максималну активацију. Ово је донекле слично наивном приступу, са изузетком да се ROI генеришу на паметнији начин. Један од главних недостатака ових метода је то што су споре, јер је потребно много пролаза CNN класификатора преко слике.
- Један пролаз (YOLO, SSD, RetinaNet) методе. У овим архитектурама дизајнирамо мрежу да предвиђа и класе и ROI у једном пролазу.
R-CNN: CNN заснован на регионима
R-CNN користи Selective Search за генерисање хијерархијске структуре ROI региона, који се затим прослеђују кроз CNN екстракторе карактеристика и SVM класификаторе за одређивање класе објекта, и линеарну регресију за одређивање координата оквира. Званични рад
Слика из ван де Санде и др. ICCV’11
*Слике из овог блога
F-RCNN - Брзи R-CNN
Овај приступ је сличан R-CNN-у, али региони се дефинишу након што су примењени слојеви конволуције.
Слика из званичног рада, arXiv, 2015
Бржи R-CNN
Главна идеја овог приступа је коришћење неуронске мреже за предвиђање ROI - такозване мреже за предлог региона. Рад, 2016
Слика из званичног рада
R-FCN: Потпуно конволуциона мрежа заснована на регионима
Овај алгоритам је још бржи од Faster R-CNN. Главна идеја је следећа:
- Екстрахујемо карактеристике користећи ResNet-101.
- Карактеристике се обрађују помоћу мапе оцена осетљивих на позицију. Сваки објекат из
Cкласа се дели наk\times kрегиона, и тренирамо за предвиђање делова објеката. - За сваки део из
k\times kрегиона све мреже гласају за класе објеката, и класа објекта са максималним бројем гласова се бира.
Слика из званичног рада
YOLO - You Only Look Once
YOLO је алгоритам за реално време са једним пролазом. Главна идеја је следећа:
- Слика се дели на
S\times Sрегиона. - За сваки регион, CNN предвиђа
nмогућих објеката, координате оквира и поузданост=вероватноћа * IoU.
Слика из званичног рада
Остали алгоритми
- RetinaNet: званични рад
- SSD (Single Shot Detector): званични рад
✍️ Вежбе: Детекција објеката
Наставите учење у следећој радној свесци:
Закључак
У овој лекцији сте направили брзи преглед различитих начина на које се детекција објеката може остварити!
🚀 Изазов
Прочитајте ове чланке и радне свеске о YOLO и испробајте их сами:
- Добар блог пост који описује YOLO
- Званични сајт
- Yolo: Keras имплементација, радна свеска корак по корак
- Yolo v2: Keras имплементација, радна свеска корак по корак
Квиз после предавања
Преглед и самостално учење
- Детекција објеката од Никхила Сардане
- Добро поређење алгоритама за детекцију објеката
- Преглед алгоритама дубоког учења за детекцију објеката
- Увод у основне алгоритме за детекцију објеката корак по корак
- Имплементација Faster R-CNN у Python-у за детекцију објеката
Задатак: Детекција објеката
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.









