Веб-разработчик, программист, технический консультант и аналитик с творческим подходом Джейсон Мэйс (Jason Mayes) создал и выложил на GitHub свой алгоритм, разработанный с помощью библиотеки TensorFlow.js и JavaScript. С его помощью Джейсон смог научить нейросеть анализировать контур человека, а потом убирать его фигуру из видеопотока в режиме реального времени, например, при трансляции с веб-камеры в браузере, оставляя и дополняя в случае необходимости в кадре только объекты на заднем плане. Особенно интересно смотреть на то, как человек прошелся по какой-то мягкой поверхности, но его нет на видео, а следы появились.
Для Мэйса этот проект является экспериментальным. Сам разработчик уточняет, что в процессе работы алгоритма конечно есть проблемные моменты, но все зависит от конкретного заднего плана. Чем больше общий фон насыщен различными деталями, тем более реальнее получается итоговая картинка без человека. Сейчас после обработки видео кое-где в обработанной трансляции присутствуют различные артефакты. Джейсон далее планирует с помощью машинного обучения продолжить совершенствовать свой алгоритм, чтобы проект мог быстрее работать с разными типами элементов на заднем плане, компенсировать разный уровень освещенности при перемещении человека и даже мог бы удалять сразу несколько людей из видеоролика.
Джейсон Мэйс опубликовал этот проект в режиме демонстрации на платформе Codepen.io и на портале Glitch.com. Там любой пользователь может из браузера (в настройках должен быть включен JavaScript) и с помощью веб-камеры попытаться удалить себя из видео.
Также Мэйс разрешает использовать его алгоритм в других проектах. Сам же проект Real-Time-Person-Removal выпущен под лицензией Apache.
«Не стесняйтесь использовать мой код в собственных проектах. Хотелось бы увидеть, что другие пользователи могут сделать с его помощью :-) Спасибо». — подытожил Джейсон Мэйс на GitHub.
Пример работы алгоритма Real-Time-Person-Removal, в кадре вверху автор проекта.
Автор: denis-19