Требования к модели разбора одежды (ТЗ на улучшение разбора)
================================================================
Сейчас (версия 8.0): Google MediaPipe Selfie Multiclass (Apache-2.0) + геометрия
фигуры (client/hybrid_parser.py). Разбор грубее, чем у прежней модели SegFormer
(удалена: некоммерческая лицензия NVIDIA). Ниже — требования к собственной
модели, которая вернёт качество 7.7. Подключение: положить файл
models/own_parser.onnx (имя human_parser.onnx занято прежней некоммерческой моделью и блокируется проверкой сборки) и в client/ai_parser.py вызывать его вместо
hybrid_parser, если файл есть (формат выхода тот же, 18 классов).
Файл: own_parser.onnx
Формат: ONNX, opset 12 и выше, только CPUExecutionProvider (без CUDA).
Величина файла: до 60 МБ, чтобы не раздувать сборку.
================================================================
ВХОД
  - изображение RGB 512x512;
  - тип float32, формат NCHW (1,3,512,512);
  - нормализация: mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225];
  - значения пикселей предварительно делятся на 255.
ВЫХОД
  - логиты (1,18,512,512) float32; аргмакс по оси классов даёт карту меток;
  - порядок классов строго такой (индексы использует portrait_engine.py):
      0  фон
      1  шапка или головной убор
      2  волосы
      3  очки
      4  верхняя одежда
      5  юбка
      6  штаны
      7  платье
      8  ремень
      9  левый ботинок
      10 правый ботинок
      11 лицо
      12 левая нога
      13 правая нога
      14 левая рука
      15 правая рука
      16 сумка
      17 шарф
================================================================
ТРЕБОВАНИЯ К ЛИЦЕНЗИИ
  - разрешено коммерческое использование и распространение в составе
    платного приложения;
  - разрешена модификация или конвертация в ONNX (если конвертация делалась);
  - в комплект прикладывается текст лицензии и уведомление об авторстве;
  - в файле лицензии нет требования раскрывать исходный код нашей программы.
 Подходящие лицензии: Apache-2.0, MIT, BSD, CC BY 4.0 для весов,
 либо собственные веса, обученные нами.
================================================================
КАК ПРОВЕРЯТЬ КАЧЕСТВО ПОСЛЕ ЗАМЕНЫ
  1. MiningcraftPapercraft 8.x AI.exe --check фото.jpg папка-отчёта
  2. MiningcraftPapercraft 8.0 AI.exe --check-library папка-отчёта
  3. Сравнить на 10-15 своих фотографиях: цвет верха и низа, длина рукавов,
     юбка или штаны, обувь, длина волос.
  4. Проверить, что время обработки одной фотографии на CPU остаётся
     в пределах 2-4 секунд.
================================================================
КАК ОБУЧИТЬ СВОЮ МОДЕЛЬ (на ПК с видеокартой NVIDIA от 8 ГБ)
  Архитектура: DeepLabv3+ или U-Net (segmentation_models_pytorch, MIT) на
  backbone из timm (Apache-2.0), например efficientnet_b3 / resnet50.
  Данные с разрешительной лицензией:
    - Open Images V7, маски сегментации (разметка CC BY 4.0, изображения
      CC BY 2.0): классы Human hair, Human face, Human arm, Human leg,
      Footwear, Hat, Glasses/Sunglasses, Handbag, Belt, Scarf, Skirt,
      Trousers/Jeans/Shorts, Dress, Shirt/Coat/Jacket/Suit;
    - Fashionpedia (разметка CC BY 4.0) — одежда, 46 классов;
    - собственные фотографии владельца, размеченные вручную.
  Сведение к 18 классам: shirt/top/t-shirt/sweater/cardigan/jacket/vest/coat
  → 4; skirt → 5; pants/shorts → 6; dress/jumpsuit → 7; belt → 8; shoe → 9/10
  (левый/правый по положению); hat/headband → 1; glasses → 3; bag/wallet → 16;
  scarf/tie → 17. Левые/правые руки и ноги — с точки зрения человека на фото
  (его левая рука на снимке справа).
  Проверка: mIoU на отложенных 10 % фото, цель — не ниже 0,70 по классам
  одежды; затем --check на своих фото и сравнение с 7.7.
  В отчёте указать лицензии всех наборов данных и весов backbone.
