Files

2.9 KiB
Raw Permalink Blame History

Обучение детектора мозаики (аниме)

Готовых публичных моделей детекции мозаики для рисованного/аниме контента нет, поэтому обучаем свою на синтетике: берём чистые (без цензуры) кадры, случайно накладываем мозаику и получаем разметку автоматически.

1. Подготовить чистые изображения

Сложите кадры без цензуры в папку (чем разнообразнее, тем лучше; от ~500 картинок для черновой модели, тысячи — для нормальной). Кадры можно нарезать из чистых видео — например, любым плеером или нашим извлечением (папка проекта frames/).

2. Сгенерировать датасет

.\.venv\Scripts\Activate.ps1
python scripts\training\gen_mosaic_dataset.py --input C:\clean_frames --output dataset_mosaic --variants 3

Получите dataset_mosaic/ с images/, labels/ и data.yaml (класс 0: mosaic, формат сегментации YOLO). Часть кадров остаётся чистыми (негативы) — это снижает ложные срабатывания.

Полезные флаги: --neg-frac 0.2, --tile-min/--tile-max (размер плиток мозаики), --area-min/--area-max (доля площади под мозаику), --shapes rect,ellipse.

3. Обучить

pip install -e ".[yolo]"
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121  # CUDA
python scripts\training\train_mosaic.py --data dataset_mosaic\data.yaml --epochs 100

Веса появятся в runs/segment/mosaic/weights/best.pt.

4. Подключить в приложении

Параметры → Детектор: YOLO → Обзор… и выбрать best.pt, затем Файл → Детектировать заново. Класс mosaic маппится в CensorType.MOSAIC, маски превращаются в контуры обводки.

Советы по качеству

  • Разнообразьте источник (разные стили, сцены, освещение).
  • Варьируйте размер плиток и областей (флаги выше) — мозаика в реальности разная.
  • Доля негативов 15–25 % обычно хорошо снижает ложные срабатывания.
  • GPU NVIDIA сильно ускоряет; на CPU обучение очень медленное.
  • Дальше можно добавить классы bar (плашки) — генератор легко расширить.