Добавлено описание и документация для HVideoTool, включая функционал, требования, установку и запуск приложения для обнаружения цензуры на изображениях.

This commit is contained in:
Leonid Pershin
2026-06-06 15:11:53 +03:00
parent 10bf87aa47
commit 33f20fe681
28 changed files with 2256 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# Обучение детектора мозаики (аниме)
Готовых публичных моделей детекции мозаики для рисованного/аниме контента нет,
поэтому обучаем свою на **синтетике**: берём чистые (без цензуры) кадры, случайно
накладываем мозаику и получаем разметку автоматически.
## 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` (плашки) — генератор легко расширить.