Откриването на обекти е вид категоризация на изображението, при която невронна мрежа предвижда елементи в изображението и чертае ограничаващи кутии около тях. Откриването и локализирането на неща в изображение, което съответства на предварително зададен набор от класове, се нарича откриване на обекти.
Откриването на обекти (известно също като разпознаване на обекти) е особено важен поддомейн на компютърното зрение, тъй като задачи като откриване, идентификация и локализация намират широко приложение в контекста на реалния свят.
Подходът YOLO може да ви помогне да изпълните тези задачи. В това есе ще разгледаме по-отблизо YOLO, включително какво представлява, как работи, различни вариации и др.
И така, какво е YOLO?
YOLO е метод за идентификация и разпознаване на обекти в реално време във снимки. Това е съкращение от You Only Look Once. Redmond et al. предложи подхода в документ, който първоначално беше публикуван през 2015 г. на конференцията IEEE/CVF за компютърно зрение и разпознаване на модели (CVPR).
Наградата OpenCV People's Choice бе присъдена на вестника. За разлика от предишни методи за идентификация на обекти, които пренасочваха класификаторите за откриване, YOLO предлага използването на от край до край невронна мрежа който предвижда едновременно ограничаващи кутии и вероятности за класове.
YOLO произвежда най-съвременни резултати, като използва принципно нов подход към разпознаването на обекти, като лесно превъзхожда предишните методи за откриване на обекти в реално време.
YOLO работи
Методът YOLO разделя картината на N мрежи, всяка с еднакъв размер SxS сектор. Всяка от тези N решетки отговаря за откриването и локализирането на обекта, който съдържа.
Тези решетки от своя страна прогнозират координатите на ограничителната кутия B спрямо координатите на клетката, както и името на елемента и вероятността обектът да присъства в клетката. Поради това, че много клетки предвиждат един и същ елемент с различни прогнози за ограничаваща кутия, тази техника значително намалява изчисленията, тъй като както откриването, така и разпознаването се обработват от клетки от картината.
Въпреки това, той произвежда много дублиращи се прогнози. За да се справи с този проблем, YOLO използва немаксимално потискане. YOLO потиска всички ограничаващи полета с по-ниски вероятностни резултати при немаксимално потискане.
YOLO прави това, като изследва вероятностните резултати, свързани с всяка опция, и избира този с най-висок резултат. Ограничаващите кутии с най-голямо пресичане над Съединението с текущата ограничаваща кутия с висока вероятност след това се потискат.
Този процес продължава до завършване на ограничаващите кутии.
Различни вариации на YOLO
Ще разгледаме някои от най-често срещаните версии на YOLO. Да започваме.
1. YOLOv1
Първоначалната версия на YOLO беше обявена през 2015 г. в публикацията „Гледате само веднъж: Обединено откриване на обекти в реално време” от Джоузеф Редмон, Сантош Диввала, Рос Гиршик и Али Фархади.
Поради своята скорост, точност и способност за обучение, YOLO бързо доминира в областта на идентификацията на обекти и се превърна в най-широко използвания алгоритъм. Вместо да се занимават с откриването на обекти като проблем с класификацията, авторите го подходиха като проблем на регресия с географски разделени ограничаващи кутии и свързани вероятности за класове, които са решили с помощта на единичен невронна мрежа.
YOLOv1 обработва снимки при 45 кадъра в секунда в реално време, докато по-малкият вариант, Fast YOLO, обработва със 155 кадъра в секунда и все пак получава двойно по-голяма карта от другите детектори в реално време.
2. YOLOv2
Година по-късно, през 2016 г., Джоузеф Редмон и Али Фархади пуснаха YOLOv2 (известен още като YOLO9000) във вестника „YOLO9000: По-добър, по-бърз, по-силен"
Капацитетът на модела да прогнозира дори 9000 различни категории артикули, докато все още работи в реално време, му спечели обозначението 9000. Не само новата версия на модела беше едновременно обучена за набори от данни за откриване на обекти и класификация, но също така получи Darknet-19 като нова базова линия модел.
Тъй като YOLOv2 също беше голям успех и бързо се превърна в следващия най-съвременен модел за разпознаване на обекти, други инженери започнаха да експериментират с алгоритъма и да произвеждат свои собствени, уникални версии на YOLO. Някои от тях ще бъдат обсъдени в различни точки на статията.
3. YOLOv3
Във вестника „YOLOv3: Постепенно подобрение”, Джоузеф Редмон и Али Фархади публикуваха нова версия на алгоритъма през 2018 г. Той е изграден върху архитектурата на Darknet-53. Независими логистични класификатори замениха механизма за активиране на softmax в YOLOv3.
По време на обучението беше използвана двоичната загуба на кръстосана ентропия. Darknet-19 беше подобрен и преименуван на Darknet-53, който вече има 53 конволюционни слоя. Освен това, прогнозите бяха направени в три различни скали, което помогна на YOLOv3 да подобри своята точност при прогнозиране на малки неща.
YOLOv3 беше последната версия на YOLO на Джоузеф Редмън, тъй като той избра да не работи върху по-нататъшни подобрения на YOLO (или дори в областта на компютърното зрение), за да избегне пагубното влияние на работата му върху света. Сега се използва най-вече като отправна точка за изграждане на уникални архитектури за откриване на обекти.
4. Йолов4
Алексей Бочковски, Чиен-Яо Уанг и Хонг-Юан Марк Ляо публикуваха „YOLOv4: Оптимална скорост и точност на откриване на обекти” през април 2020 г., което беше четвъртата итерация на алгоритъма YOLO.
Претеглени остатъчни връзки, междуетапно-частични връзки, кръстосано мини-партидно нормализиране, самостоятелно съревнователно обучение, миш активиране, блокиране на падане и загуба на CIoU бяха въведени като част от архитектурата SPDarknet53.
YOLOv4 е потомък на семейството YOLO, но е разработен от отделни учени (не Джоузеф Редмон и Али Фархади). Гръбнакът на SPDarknet53, обединяване на пространствена пирамида, PANet path-агрегиране като врата и главата YOLOv3 съставляват неговата архитектура.
В резултат на това, в сравнение със своя родител, YOLOv3, YOLOv4 постига 10% по-висока средна точност и 12% по-добри показатели за кадри в секунда.
5. YOLOv5
YOLOv5 е проект с отворен код, който включва набор от модели и алгоритми за идентификация на обекти, базирани на модела YOLO, който е бил предварително обучен в набора от данни на COCO.
YOLOv5 е колекция от комбинирани модели за идентификация на обекти обучени за набора от данни COCO, с лесни възможности за TTA, асемблиране на модел, разработване на хиперпараметри и експорт в ONNX, CoreML и TFLite. Тъй като YOLOv5 не прилага или разработва никакви уникални подходи, официалният документ не може да бъде публикуван. Това е просто разширение PyTorch на YOLOv3.
Ultranytics използва този сценарий, за да публикува „новата YOLO“ версия под свое спонсорство. Тъй като има и пет предварително обучени модела, достъпни, началната страница на YOLOv5 е доста ясна и професионално структурирана и написана, с редица уроци и предложения за обучение и използване на моделите YOLOv5.
YOLO ограничения
Въпреки че YOLO изглежда най-добрата техника за решаване откриване на обект проблеми, той има редица недостатъци. Тъй като всяка решетка може да идентифицира само един елемент, YOLO среща трудности при откриването и разделянето на малки неща в картини, които се появяват в групи. Малките неща в рояци, като например рояк мравки, са трудни за идентифициране и локализиране от YOLO.
В сравнение със значително по-бавни методи за идентификация на обекти като Fast RCNN, YOLO също се характеризира с по-ниска точност.
Започнете да използвате YOLOv5
Ако се интересувате да видите YOLOv5 в действие, вижте официален GitHub намлява YOLOv5 в PyTorch.
Заключение
Първоначалната версия на YOLOv5 е изключително бърза, производителна и лесна за използване. Въпреки че YOLOv5 не добавя нова архитектура на модела към семейството на YOLO, той предоставя нова рамка за обучение и внедряване на PyTorch, която подобрява състоянието на техниката за детектори на обекти.
Освен това, YOLOv5 е изключително удобен за използване и идва „извън кутията“, готов за използване върху предмети по поръчка.
Оставете коментар