Pull to refresh

Comments 22

интересно отделять какие то предметы от background, а не только лица )
вот с ходу получилось найти полуработающее решение на tensorflow:
image
с OpenCv получается хуже (если не только с лицом работать)
Адепты нейросетей часто считают само по себе использование нейросетей достаточным условием для получения хороших результатов, даже без формализации модели, параметры которой они этой сетью оптимизируют. Результаты получаются либо случайно, либо применением типовых архитектур нейросетей для типовых задач (без особых размышлений над тем, почему они работают). Интересно, что почти тот же мотив приводит и к противоположным подходам — считая нейросети костылём для тех, кто не способен сам сформулировать модель, адепты «алгоритмических» решений полностью строят модель и аналитически, «руками» ограничивают её параметры.

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

Неправильно противопоставлять «нейросетевые» алгоритмы и «ручные», для решения прикладной задачи без модели не обойтись, и именно эти модели и являются самым важным аспектом решения, а вопрос в способе фиксации свободных параметров в этой модели, в общем-то, вторичен (а для математика он вообще не принципиален, он фиксирует саму принципиальную решаемость задачи :)).
нейросети захватят мир, на самом деле, но вы правы в чем-то — захватят, но не сегодня
Про Виолу-Джонс что-то не вспомнили совсем. Чтоб вам сразу не воспользоваться альфа-маттингом? Получили 62 точки, гарантированно на морде лица, по-бокам бэкраунд — и вперед, альфаматить. Современные методы вытворяют чудеса www.alphamatting.com
>CVPR 2009
ну не очень современный, но вообще про то и речь, да
Альфа маттинг сейчас это общий термин, который подразумевает разделение картинки на фон и передний план с учетом частичной прозрачности переднего плана.

Давать ссылки можно, например, на это arxiv.org/abs/1703.03872
угумс — это сегментация.
для картинки из статьи результат такой:
image
проектов то в целом много — вот например github.com/facebookresearch/deepmask, но вот нормально оно не работает ничего…
есть только более-менее норм github.com/tensorflow/models/tree/master/object_detection
но, там не по пикселям, а в box просто объекты заворачиваются…
а не подскажете эффективное решение такой задачи «первый кадр- статичный фон, потом на нём появляется человек и прорамма заменяет фон на произвольный» именно в real-time на видео потоке?
я видел статьи как отделять движущийся объект от фона, таких много, но вот хз на сколько они риал тайм; могу посоветовать зайти к нам в слак, там есть канал по компьютерному зрения и там думаю вам помогут; щас кину им туда ссылку может кто комент оставит
Гуглить «оптический поток».
Дай вам Бог здоровьечка, сходным путем шел для сегментации монет на фото, проблема была как раз улучшить после первичного разделения фона и объекта.
Спасибо. Редко когда приятно читать статью в которой не понимаешь деталей)

Кстати, выглядит так, что ключевые точки на лице визуально меняют ориентацию подопытного…
Так. Детекция лиц в актуальном dlib уже cnn сделана. Где-то с пол года назад они собирались переделывать и поиск точек под cnn. Уверены, что там ещё не вставили их и чистый AAM идёт?:)
вот это поворот =) честно говоря я хз что там, я же просто import face detector from dlib

ну вообще для текущей задачи не так важно качество детектирования точек, так что в принципе пофиг; я тут сотрудничая с одной конторой видел у них детектор точек просто деревянный регрессор на фичах хаара, ну и качество такое же (ну если оценивать на глаз)
Сегментация там на HOG. А вот points of interest может быть.
Хм? Вот блог.
image
16 октября 2016 года там уже был CNN Face Detection. Сейчас он в основной ветке. Работает, в принципе неплохо, но я и более хорошие видел.
Сейчас там на CNN уже детектор произвольных объектов.

Кстати, с того момента, как вы начали считать гистограммы, можно было, наверное, воспользоваться GrabCut, тоже реализованный в OpenCV. Алгоритм делает graph cut на графе чтоб (а) разбить граф вдоль намного более отличающихся пикселей (б) в каждом регионе оставить пиксели наиболее похожие друг на друга. Похожесть пикселей он определеяет как раз по гистограммам, но представляет их через Gaussian Mixture Model. Он делает несколько итераций (graph cut-оценка параметров GMM-graph cut-оценка параметров и т.д.).

Sign up to leave a comment.