Files

51 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Обучение детектора мозаики (аниме)
Готовых публичных моделей детекции мозаики для рисованного/аниме контента нет,
поэтому обучаем свою на **синтетике**: берём чистые (без цензуры) кадры, случайно
накладываем мозаику и получаем разметку автоматически.
## 1. Подготовить чистые изображения
Сложите кадры **без цензуры** в папку (чем разнообразнее, тем лучше; от ~500
картинок для черновой модели, тысячи — для нормальной). Кадры можно нарезать из
чистых видео — например, любым плеером или нашим извлечением (папка проекта
`frames/`).
## 2. Сгенерировать датасет
```powershell
.\.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. Обучить
```powershell
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` (плашки) — генератор легко расширить.