51 lines
2.9 KiB
Markdown
51 lines
2.9 KiB
Markdown
# Обучение детектора мозаики (аниме)
|
||
|
||
Готовых публичных моделей детекции мозаики для рисованного/аниме контента нет,
|
||
поэтому обучаем свою на **синтетике**: берём чистые (без цензуры) кадры, случайно
|
||
накладываем мозаику и получаем разметку автоматически.
|
||
|
||
## 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` (плашки) — генератор легко расширить.
|