BOORU-CHARS OPEN DATASET (english description here ):
- открытый набор данных о качественных арт-изображениях персонажей аниме, игр, мультипликации и т.п.
- состоит из мета-данных (ссылок на booru-первоисточник, смысловых тегов, статистических показателей, результатов применения алгоритмов на изображениях) и thumbnail-изображений 512x512px ( & 1024x1024px ? )
- содержит описание используемых методов, скриптов, программ и их параметров для единообразного применения
- большие наборы изображений распространяются через torrent, код, описание и компактные данные хостятся на Github
ЦЕЛИ ПРОЕКТА:
- быть основой для применения Machine Learning & Neural Networks алгоритмов к не-фотографическим изображениям (их "иконкам"), например
- обнаружение ключевых объектов в рисованных изображениях (лица, другие части тела, другие объекты, характер фона)
- сегментирование изображений по композиции и масштабу на основе относительного размера и положения детектированных лиц (и других ключевых объектов)
- разработка "весовой функции визуального качества", пригодной для создания априорных "хит-парадов", а также (хотя бы частичной) автоматизации разгребания безбрежного арт-океана
- быть основой для нетривиального анализа накопленных мета-данных: SQL-запросы, data mining clustering & classification
с легкой визуализацией результатов, например
- рейтинг популярности для портретных изображений в разрезе персонажей и годов постинга
- самые многочисленные (в разрезе по авторам) серии для заданной комбинации тегов
- неисчислимое множество примеров "хит-парадов", на основе которых можно отбирать для просмотра и/или качать подборки
- систематизация мета-данных - "тегов" - как таковых в т.ч. координация между их источниками, например
- соотнесение тегов артист/произведение/персонаж разных источников
- соотнесение произведений / персонажей myanimelist и соответствующих тегов Danbooru & Safebooru
- группировка произведений во "франшизы" с (в основном) пересекающимся множеством персонажей
До тех пор, пока я не научусь самостоятельно создавать адекватные модели, основным результатом проекта являются датасеты - torrent-ы с "иконками" и метаданными, а также изображениями исходных размеров перечислены отдельно
BOORU-источники данных (только самые интенсивно используемые) и сопутствующие сервисы:
- https://safebooru.org/ самый массовый ресурс без откровенной эротики и хентая, служит основой композитной подборки (3.2 млн постов на конец 2020 года)
- http://e-shuushuu.net/ самый "приличный" из ресурсов, в последние годы активность затухает 1 млн
- https://yande.re/ NSFW специализируется на высококачественных сканах, процент "уникальности" высок 0.6 млн
- https://gelbooru.com/ NSFW "полный" вариант safebooru без моральных ограничений 5.2 млн
- http://konachan.com/ NSFW специализируется на "обоях" (ландшафтной ориентации), уникален за счет переделок арта с других ресурсов 0.3 млн
- https://chan.sankakucomplex.com/ очень NSFW самый богатый выбор, но защищен от массового скачивания (7 млн артовин + 8 млн хентайных додзинси и gameCG)
- https://www.zerochan.net/ достаточно уникальный набор, допускает эротику 2.2 млн
- https://anime-pictures.net/ не очень большой 0.6 млн но с хорошим подбором
- https://danbooru.donmai.us/ NSFW классика жанра 3.5 млн
- "специализированный" поиск по вышеупомянутым и другим ресурсам http://iqdb.org/ охват порядка 15 млн. изображений
Необходимо упомянуть массовый кросспостинг между некоторыми источниками (например danbooru -> gelbooru -> safebooru ) и относительную изоляцию других (zerochan, yande-re).
ВНЕШНИЕ ПРОГРАММЫ (под Windows):
- скачивание Grabber
- разбивка по пропорциям Dimensions2Folders
- просмотр и простые преобразования Fast stone image viewer
- дедубликация AntiDupl.NET
- простой листинг метаданных ExifTool
- преобразования, в т.ч. весьма нетривиальные и статистики ImageMagick
- скриптовый "клей" для процессинга и скачивания с кучей готовых библиотек Python 3.8
- файловый менеджер Far восхитительный инструмент в умелых руках
МЕТОДИКА ОБРАБОТКИ датасета в подробностях описана отдельно
- сбор (скачивание) и накопление оригинальных изображений для очередного релиза
- начальная обработка и итеративное улучшение релиза в т.ч. с помощью анализа атипичных метаданных
- слияние текущего релиза с пулом предыдущих релизов
Размышления о постановке задачи, обнаруженные датасеты, модели и сервисы:
Задача распозначания рисованных персонажей на данный момент (конец 2020) удовлетворительного решения не имеет. На то есть объективные причины (кардинальное отличие от задачи распознавания объектов реального мира) и, по моему мнению, большинство усилий по ее решению тратятся впустую. Подроблее о моем видении ситуации в лонгриде
До относительно недавнего времени (примерно 2019) возня с распознаванием рисунков была в основном уделом энтузиастов и немногие достигнутые результаты стали "хрестоматийными":
- определение анимешных лиц by Nagadomi https://github.com/nagadomi/lbpcascade_animeface и https://github.com/nagadomi/animeface-2009
- первый из них крайне прост в использовании, Internet наполнен датасетами, на-CROP-аными с его помощью, в своем проекте я тоже не удержался ;-)
- генеративная модель по созданию новых мордашек https://www.thiswaifudoesnotexist.net/ на основе комбинирования существующих by Gwern Branwen https://www.gwern.net/TWDNE
- создала волну хайпа и вторичных проектов
- все тот же неутомимый Gwern
- не поленился описать свои труды, в частности интересна его фундаментальная статья с массой полезных ссылок https://www.gwern.net/Danbooru2019
- основательно потрудился на ниве создания датасетов Danbooru - массивов тегов, иконок и даже нарезок частей тел https://www.gwern.net/Crops
Затем важность задачи почувствовала индустрия (игровая, но и анимешная тоже) и в нее пришли некоторые деньги (гранты), количество работ резко возросло, но результаты - в основном те же.
Из интересных проектов, некоторые из которых мне удалось оживить (под Windows и без специфического оборудования):
- детектор нецензурщины NudeNet но и лиц тоже, удалось запустить
- использует keras_retinanet, пришлось ставить Visual C++ 14, крайне желательна видеокарта с CUDA
- очень правильное направление "научиться узнавать определенных персонажей" MoeFlow
далее расширяя их список с доступным сервисом
- использует TensorFlow, не запускал
- детектор лиц и фигур full_body, upper_body torchvision у меня не заработал
- очень перспективный и потенциально полезный для меня проект
Другие решения, которые я не смог использовать или пока не пробовал:
- сервис определения тегов для произвольной картинки http://kanotype.iptime.org:8003/deepdanbooru/ , натренированный на большом количестве данных Danbooru
- IMHO random_in -> random_out
- вспомагательный инструмент на Python для разделения пересекающихся прямоугольников детектирования https://github.com/mnpinto/splitbbox
- определение анимешных лиц https://github.com/nya3jp/python-animeface не скомпилировалось под windows, автор не отозвался, 3 года без изменений
В связи с ключевой важностью датасетов (тренировочных, тестовых) они начали появляться, иногда даже в общедоступном виде:
- полезная всячина с Kaggle (списком) https://www.kaggle.com/datasets?search=anime , меня особо заинтересовали метаданные MyAnimeList и Safebooru
- набор данных iCartoonFace (описан в https://www.arxiv-vanity.com/papers/1907.13394/ но скачать нигде не удалось)