Моделі та платформи ШІ

Розпакування Yolov8: Вірусний Шедевр Комп’ютерного Зору Ultralytics

mm
Додайте Unite.AI до бажаних джерел у Google
Blog featured image for YOLOv8

До цього часу виявлення об’єктів на зображеннях за допомогою моделей комп’ютерного зору зазнавало великої затримки через час обробки. Ця затримка ускладнювала практичне застосування в таких випадках, як автономне водіння. Однак випуск моделі комп’ютерного зору YOLOv8 компанії Ultralytics подолав затримку обробки. Нова модель може виявляти об’єкти в реальному часі з неперевершеною точністю та швидкістю, що робить її популярною в сфері комп’ютерного зору.

Ця стаття досліджує YOLOv8, його можливості та те, як ви можете налаштувати та створити свої власні моделі через відкритий репозиторій Github.

Yolov8 Explained

YOLOv8-Ultralytics

YOLO (You Only Live Once) – популярна модель комп’ютерного зору, здатна виявляти та сегментувати об’єкти на зображеннях. Модель пройшла через кілька оновлень у минулому, а YOLOv8 позначає 8-му версію.

На даний момент YOLOv8 розширює можливості попередніх версій, вводячи потужні нові функції та покращення. Це дозволяє здійснювати виявлення об’єктів у реальному часі в даних зображень та відео з підвищеною точністю та точністю.

Від v1 до v8: Коротка Історія

Yolov1: Виходить у 2015 році, перша версія YOLO була представлена як одноетапна модель виявлення об’єктів. Функції включали можливість моделі читати все зображення для прогнозування кожного обмежувального рамку в одному оцінці.

Yolov2: Наступна версія, випущена у 2016 році, показала найкращу продуктивність на бенчмарках, таких як PASCAL VOC і COCO, і працювала на високих швидкостях (67-40 FPS). Вона також могла точно виявляти понад 9000 категорій об’єктів, навіть з обмеженою спеціфічною детекцією даних.

Yolov3: Запущена у 2018 році, Yolov3 представила нові функції, такі як більш ефективна мережа-основи, кілька якорів та просторове пірамідальне пулінг для багатомасштабного видобування функцій.

Yolov4: З випуском Yolov4 у 2020 році була введена нова техніка даних-аугментації Mosaic, яка пропонувала покращені можливості навчання.

Yolov5: Виходить у 2021 році, Yolov5 додав потужні нові функції, включаючи оптимізацію гіперпараметрів та інтегроване відстежування експериментів.

Yolov6: З випуском Yolov6 у 2022 році модель була відкрита для спільного розвитку спільноти. Були введені нові функції, такі як нова стратегія самодистиляції та стратегія тренування з якорями (AAT).

Yolov7: Виходить у тому ж році, 2022, Yolov7 покращила існуючу модель за швидкістю та точністю та була найшвидшою моделлю виявлення об’єктів на момент випуску.

Що Робить YOLOv8 Відрізняється?

Image showing vehicle detection

Неперевершена точність та висока швидкість YOLOv8 роблять цю модель комп’ютерного зору видатною серед попередніх версій. Це величезне досягнення, оскільки об’єкти тепер можуть бути виявлені в реальному часі без затримок, на відміну від попередніх версій.

Але окрім цього, YOLOv8 пропонує потужні можливості, які включають:

  1. Настройована архітектура: YOLOv8 пропонує гнучку архітектуру, яку розробники можуть налаштувати відповідно до своїх конкретних вимог.
  2. Адаптивне навчання: Нові адаптивні можливості навчання YOLOv8, такі як балансування функції втрат під час навчання та техніки, покращують швидкість навчання. Наприклад, Адам, який сприяє кращій точності, швидшому збіганню та загалом кращій продуктивності моделі.
  3. Розширений аналіз зображень: За допомогою нових можливостей семантичної сегментації та передбачення класів модель може виявляти дії, колір, текстуру та навіть відносини між об’єктами, окрім її основної функції виявлення об’єктів.
  4. Аугментація даних: Нові техніки аугментації даних допомагають подолати аспекти варіацій зображень, такі як низька роздільна здатність, окулювання тощо, у реальних ситуаціях виявлення об’єктів, коли умови не є ідеальними.
  5. Підтримка основи: YOLOv8 пропонує підтримку декількох основ, включаючи CSPDarknet (стандартну основу), EfficientNet (легку основу) та ResNet (класичну основу), які користувачі можуть вибрати.

Користувачі навіть можуть налаштувати основу, замінивши CSPDarknet53 на будь-яку іншу архітектуру нейронної мережі, сумісну з розмірами входу та виходу YOLOv8.

Навчання та Настройка YOLOv8

Модель YOLOv8 може бути як налаштована для підгонки до певних випадків використання, так і навчена повністю з нуля для створення спеціалізованої моделі. Більше інформації про процедури навчання можна знайти в офіційній документації.

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

Настройка YOLOV8 З Набором Даних

Операція налаштування завантажує існуючу модель і використовує її стандартні ваги як початкову точку для навчання. Інтуїтивно кажучи, модель пам’ятає все своє попереднє знання, а операція налаштування додає нову інформацію, налаштовуючи ваги.

Модель YOLOv8 може бути налаштована за допомогою вашого коду Python або через командний інтерфейс (CLI).

1. Настройка Моделі YOLOv8 За Допомогою Python

Почніть з імпортування пакету Ultralytics у свій код. Потім завантажте користувацьку модель, яку ви хочете навчити, за допомогою наступного коду:

Спочатку встановіть бібліотеку Ultralytics з офіційного розподілу.

# Встановіть пакет ultralytics з PyPI
pip install ultralytics

Наступним кроком є виконання наступного коду у файлі Python:

from ultralytics import YOLO

# Завантажте модель
model = YOLO(‘yolov8n.pt’) # завантажте попередньо навчену модель (рекомендується для навчання)

# Навчте модель на наборі даних MS COCO
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

За замовчуванням код навчить модель за допомогою набору даних COCO протягом 100 епох. Однак ви також можете налаштувати ці параметри, встановивши розмір, епоху тощо у файлі YAML.

Як тільки ви навчите модель з вашими налаштуваннями та шляхом до даних, моніторьте прогрес, тести та налаштуйте модель, і продовжуйте навчання, поки не досягнете бажаних результатів.

2. Настройка Моделі YOLOv8 За Допомогою CLI

Для навчання моделі за допомогою CLI виконайте наступний скрипт у командному рядку:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Команда CLI завантажує попередньо навчену модель `yolov8n.pt` і додатково навчає її на наборі даних, визначеному у файлі `coco8.yaml`.

Створення Вашої Моделі З YOLOv8

Існує два способи створення спеціальної моделі з框 YOLO:

  • Навчання З Нуля: Цей підхід дозволяє використовувати попередньо визначену архітектуру YOLOv8, але не буде використовувати жодних попередньо навчених ваг.
  • Настройка Архітектури: Ви налаштуєте стандартну архітектуру YOLO та навчіте нову структуру з нуля.

Реалізація обидвох цих методів залишається однаковою. Для навчання моделі YOLO з нуля виконайте наступний код Python:

from ultralytics import YOLO

# Завантажте модель
model = YOLO(‘yolov8n.yaml’) # побудуйте нову модель з YAML

# Навчте модель
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Помітите, що цього разу ми завантажили файл `.yaml` замість файлу `.pt`. Файл YAML містить інформацію про архітектуру моделі, і не завантажуються жодні ваги. Команда навчання розпочне навчання цієї моделі з нуля.

Для навчання спеціальної архітектури вам потрібно визначити спеціальну структуру у файлі `.yaml`, подібному до `yolov8n.yaml` вище. Потім завантажте цей файл і навчіть модель, використовуючи той самий код, що і вище.

Дізнайтеся більше про виявлення об’єктів за допомогою штучного інтелекту та залишайтесь у курсі останніх тенденцій штучного інтелекту на сайті unite.ai.

Haziqa є вченим-даними з великим досвідом написання технічного контенту для компаній AI та SaaS.