TGViewer
В АйТи из Уфы | Раушан Каримов В АйТи из Уфы | Раушан Каримов @nashuarit · 1.03K subscribers
Post #126 739
Обучение модели компьютерного зрения в домашних условиях. Часть 2

Этап обучения - Самый долгий этап в зависимости от размера датасета и мощности железа

Время обучения по нашим замерам:
Windows, RTX 4070: ~400 изображений - около 3 часов.
Mac M4: ~4000 изображений - заняло два дня...

По метрикам после 20 эпох:
mAP50: ~0.45
Precision: ~0.67
Recall: ~0.4
Маловато, но для прототипа и учебной задачи - более чем рабочий результат.
Для production-задачи желательны значения mAP50 от 0.7+ в зависимости от критичности ошибок.

Разницу в результатах «на глаз» не заметил. Размер датасета — не решающий фактор, там много нюансов от качества разметки, разнообразия кадров, настройки обучения и других критериев.

Для первого быстрого теста хватит и 200 изображений.
В примере стоит 100 эпох обучения, я остановил после 20.
save_period можно поставить 5, например - чтобы меньше ждать до следующего сохранения.

Код для обучения:
from ultralytics import YOLO
import torch

# Проверка device
device = "mps" if torch.backends.mps.is_available() else "cpu"
print(f"Обучение на: {device}")

# Загрузить модель
print("Загрузка модели yolov8s...")
model = YOLO("yolov8s.pt")

# Запустить обучение
print("Начинаем обучение...")
results = model.train(
# Основные параметры
data="/путь_до_вашей_папки/data.yaml", # указываем свой путь
epochs=100,
imgsz=640,
device=device,

# Параметры обучения
batch=16,
patience=20, # early stopping после 20 эпох без улучшения
save=True, # сохранять чекпойнты
save_period=10, # сохранять каждые 10 эпох

# Augmentation
hsv_h=0.015,
hsv_s=0.7,
hsv_v=0.4,
degrees=10.0,
translate=0.1,
scale=0.5,
flipud=0.5,
fliplr=0.5,

# Оптимизация
lr0=0.01,
lrf=0.01,
momentum=0.937,
weight_decay=0.0005,
warmup_epochs=3.0,

# Сохранение результатов
project=".",
name="yolov8s_ppe",
exist_ok=False, # создать новую папку если существует

# Валидация
val=True,
split=0.1, # 10% на валидацию

# Логирование
verbose=True,
)

print("Обучение завершено!")
print(f"Результаты сохранены в: runs/detect/yolov8s_ppe")


Запуск обучения можно сделать из терминала, на Windows так и поступили. Команда с минимальными настройками:
yolo task=detect mode=train model=yolov8s.pt data="C:/путь_до_вашей_папки/data.yaml" epochs=100 imgsz=640


Запуск обученной модели

Готовая модель сохраняется в файл best.pt - его можно спокойно переносить на другие машины и запускать там, где установлен Python и ultralytics

Код для запуска в комментах


Следующим этапом можно пойти дальше и разметить свой датасет, но я пока не уверен стоит ли оно того 🤷🏻‍♂️

Эти знания можно применить для реализации своих идей хоть сейчас.
От распознавания пролетающих птиц до определения брака на конвейере.

Было полезно? )
Если где-то не хватило инфы - пишите, дополню пост.

З.Ы. Если кто-то попробует обучить свою модель - напишите, пожалуйста, что по результатам и впечатлениям 🤗

2/2
  • 👍 12
  • ❤ 6
  • 🔥 6
More from @nashuarit
  1. Oct 2, 2026Кажется, пора возвращаться к контенту, который я обещал ещё летом. Но первый пост после па…
  2. Jul 27, 2026Вот живут же люди… У меня друг в Португалии - спонтанно рванул в Амстердам, а обратно реши…
  3. Jul 13, 2026Даже богатырю нужен отдых, говорила мне бабушка. А учитывая что я совсем не богатырь - про…
  4. Feb 14, 2026🥰
  5. Feb 14, 2026Развитие круто, но про любовь не забываем, кста 😜
  6. Feb 14, 2026Обучение модели компьютерного зрения. За один вечер, в домашних условиях, без регистрации,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →