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