Виявлення об’єктів — це тип категоризації зображень, при якому нейронна мережа передбачає елементи на зображенні та малює навколо них обмежувальні рамки. Виявлення та локалізація речей на зображенні, що відповідає заданому набору класів, називається виявленням об’єктів.
Виявлення об’єктів (також відоме як розпізнавання об’єктів) є особливо важливим субдоменом комп’ютерного зору, оскільки такі завдання, як виявлення, ідентифікація та локалізація, знаходять широке застосування в реальних контекстах.
Підхід YOLO може допомогти вам виконати ці завдання. У цьому есе ми детальніше розглянемо YOLO, зокрема, що це таке, як він працює, різні варіації тощо.
Отже, що таке YOLO?
YOLO – це метод ідентифікації та розпізнавання об’єктів у реальному часі на фотографіях. Це абревіатура від «Ти дивишся лише раз». Редмонд та ін. запропонував цей підхід у статті, яка була спочатку опублікована в 2015 році на конференції IEEE/CVF з комп’ютерного зору та розпізнавання образів (CVPR).
Газета отримала нагороду OpenCV People's Choice Award. На відміну від попередніх методів ідентифікації об'єктів, які перепрофілювали класифікатори для виявлення, 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 як шийка та голова 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 надзвичайно зручний і готовий до використання на об’єктах на замовлення.
залишити коментар