Вай… .. что?

Если вы увлекаетесь аниме, возможно, вам знаком этот термин: вайфу, а может и не знаком. Вайфу обычно относится к лучшей или очаровательной девушке из аниме-сериала . Это слово произошло от японского произношения Wife, но поскольку эти слабаки действительно обожали Японию, то это слово стало waifu для обозначения их любимых аниме девушка. Но не то чтобы они действительно хотели иметь жену от двумерной девушки (или это так?). Но, в конце концов, это просто забавный термин для обозначения очаровательной аниме-девушки.

А, вернемся к нашей теме, если вы действительно фанаты аниме, вам стоит сейчас посмотреть этот потрясающий сериал под названием Re: Zero kara Hajimeru Isekai Seikatsu. Не смотрели? тогда сделай это прямо сейчас! Особенно, когда вы действительно увлекаетесь фэнтези, романами, комедиями, триллерами, путешествиями во времени и, что более важно… милая девушка из аниме!

Для тех, кто уже смотрел это, вы должны очень хорошо знать, что больше всего расстраивает в этой серии:

Лучшая девушка в сериале не получила по заслугам !!! Даже после того, как она приложила больше всего усилий в шоу.

Если вам интересно, это женский MC, который ни на что не годен.

И это лучшая девушка, которая прилагает максимум усилий, но вместо этого ее бросают.

Поскольку главный ведущий-мужчина шоу не заметил REM, пусть наш алгоритм глубокого обучения заметит ее - она этого заслужила!.

Первая проблема: RAM или REM?

Знаешь что? Рем на самом деле близнец, ее сестру зовут Рам. Как мы их различим? Самый простой способ - по цвету волос.

Ах, немного предыстории, на самом деле я новичок в DeepLearning. Так что я думаю, что это идеальный вариант использования для моего первого очень важного проекта DeepLearning. Я не хочу тратить свое время, чтобы начать только с набором данных MNIST: p

Итак, я думаю, что хочу создать классификатор, который мог бы различать, Рэм или Рем на картинке. Но…. чтобы было интереснее, ввод данных будет в градациях серого!

Итак, я готовлю свои инструменты войны: TensorFlow, OpenCV, Jupyter-Notebook и…

Тааааааааааааааааааааааач ... В итоге я потратил свое время на изучение концепции CNN и того, как реализовать ее с помощью TensorFlow. Благодаря this я смог действительно хорошо понять, как использовать фреймворк TensorFlow и строить свою собственную архитектуру.

Но вы знаете, что? 80% моего времени теряется на отладку TensorFlow вместо точной настройки моей модели и архитектуры :(. Даже операции сохранения и чтения - это еще одна проблема!

Ах, мой код доступен в этом гитхабе. Но это действительно беспорядок, лол. Я на 97,43% гарантирую, что вы этого не поймете, чего вы ожидаете от первого проекта с большим количеством внутренних отладок.

И результат?

И просто напоминание, ввод данных на самом деле представляет собой изображение в оттенках серого 96x96, подобное этому:

Что еще более важно, что я получаю от изучения архитектуры CNN? Что ж, концепция достаточно проста, даже если вы все еще можете реализовать ее в электронной таблице для простой архитектуры CNN!

Вторая проблема: мы хотим, чтобы нашего вайфу - Рема - заметили!

Я понял! Теперь я хочу попробовать еще одну задачу компьютерного зрения, основанную на глубоком обучении, под названием обнаружение объектов. Таким образом, ваша модель может предсказать, где был размещен интересующий вас объект на изображении или видео! Разве это не круто? (по крайней мере для меня). Вы можете увидеть это обнаружение объекта в действии:

Аааа ... Я так хочу, чтобы создать это самостоятельно.

И мое новое путешествие в поисках справедливости для Рем снова началось! Наши орудия войны для решения этой проблемы? API обнаружения объектов от TensforFlow, Skicit-Video и два замечательных поста в блоге: этот и этот (оба являются практическим руководством для TensorFlow object_detection API).

Самый первый шаг этого модного проекта: ручная маркировка каждой фотографии по очереди: ”)!

Код доступен на моем github снова, но статья о том, как использовать, может быть в отдельной статье (я, возможно, захочу создать ее на Bahasa, поскольку многие люди уже создают учебник на английском языке). Но вы можете использовать это как набор данных, поскольку он уже был помечен (мной).

Короче говоря, я закончил всю подготовку к обучению нашей модели вайфу поверх TensorFlow (кстати, большой процесс подготовки). Теперь давайте обучим нашу модель! - на CPU, к сожалению.

Я запустил его в полночь, засыпал и проснулся уже с итерацией ~ 1600. Вот результат проверки:

Аааи .. Наконец, вот финальный результат

Вы могли заметить, что есть одна, две или ... более двух неудачных классификаций модели, ну, всего лишь ~ 136 изображений для обучения, чего вы ожидаете? Но почему-то это действительно хорошо работает даже с очень небольшим количеством данных :)

Заключительные слова. Теперь, даже если наш главный ведущий не хотел замечать Рема, наша модель машинного обучения может заметить лицо Рема в видео. Что ж, заслуживаем самой лучшей девушки! :)

- Ах, также руководство может быть для следующего сообщения в блоге, если кому-то из вас это действительно нужно. Выпьем чашку кофе:

Личный адрес электронной почты: [email protected] или мой LinkedIn.