Найти людей на картинке - PullRequest
       57

Найти людей на картинке

2 голосов
/ 11 января 2012

Мне нужно реализовать алгоритм, который для ввода имеет изображение (JPEG) и создать новую картинку, как вывод, но только с телами (фон полностью удален).Входная картинка - это картинка с людьми из отпуска, и мне нужно распознать человеческие тела и убрать фон.Может кто-нибудь подсказать мне, какой алгоритм использовать, какую книгу купить, чтобы выучить эти алгоритмы?

Ответы [ 7 ]

4 голосов
/ 15 января 2012

Отметьте эту ссылку , она отлично ответит на ваш вопрос об удалении фона и дальнейшей обработке

1 голос
/ 16 января 2012

Вы можете скачать бесплатный PDF книги Computer Vision by Richard Szeliski с сайта автора. У вас есть не только бесплатная книга по алгоритмам, но и книга, посвященная этой конкретной проблеме.

http://szeliski.org/Book/

Вы увидите это изображение вверху страницы автора сайта.

Image from Szeliski book

Использованные копии в твердом переплете доступны по цене около $ 62, если вы заходите на addall.com. Если вы потратили некоторое время на обработку изображений, вам понравится иметь бумажную копию хотя бы одного хорошего общего справочника.

1 голос
/ 15 января 2012

Начните с программного обеспечения и алгоритмов распознавания лиц; они были самыми изысканными за эти годы, и пока все ваши тела имеют головы, вы можете использовать exif-данные для определения ориентации захвата изображения (конечно, вы не можете полностью полагаться на это), пробовать кожу лица, чтобы получить кожу диапазон тонов, и найти прикрепленное тело. Все, что не является головой и телом, должно быть удалено. Этот процесс предполагает , что у человека примерно такой же оттенок кожи на лице, как и у его тела, и вспышка камеры не смывает это. Вы можете получить длительность вспышки и некоторые другие атрибуты из exif и соответствующим образом настроить диапазоны.

Многие программы могут распознавать лица (например, посмотрите на iPhoto), поэтому вам придется использовать лицо в качестве ориентира, а также тон кожи, чтобы найти края вашего тела. Ваш результат не будет идеальным, но до тех пор, пока ваш подход будет разумным, вы получите что-то полезное.

И когда вы закончите, выпустите ваше программное обеспечение с открытым исходным кодом, чтобы я мог его использовать ...:)

1 голос
/ 11 января 2012

У меня к вам вопрос: вы хотите реализовать это с помощью алгоритма?Если это так, то для этого может потребоваться многое (при условии, что вы новичок в области обработки изображений).В противном случае вы можете попробовать использовать методы маскировки в программном обеспечении для редактирования изображений, таком как Adobe Photoshop (это вряд ли займет 15 минут, в зависимости от того, насколько хорошо вы это знаете)

Хорошая книга для начала с методами обработки изображений: «Цифровое изображение»Обработка "Гонсалес и Вудс;оно начинается с основ и подробно объясняет материал.

Тем не менее, разработка алгоритма для выполнения этой работы может занять много времени.Я рекомендую вам использовать некоторые библиотеки для того же.OpenCV (компьютерное зрение с открытым исходным кодом) - отличный выбор.Сама библиотека поставляется с демонстрационными примерами, которые включают в себя программы для обнаружения лиц и т. Д. Встроенные функции предоставляют множество функций (обнаружение краев / Идентификация и извлечение функций, возможно, вам придется использовать это). Вот ссылка http://opencv.willowgarage.com/wiki/

Ссылка содержит множество справочных материалов, которые вы можете использовать!:)

1 голос
/ 11 января 2012

Это проблема сегментации.В общем случае сегментирование изображений является сложной исследовательской задачей (я только пять лет занимался в докторантуре, например, по сегментации медицинских изображений в оттенках серого), и то, как вы это делаете, тесно связано с типом изображений, с которыми вы должны работать.по рукам.Лучший совет, который я могу дать, - это пойти и прочитать соответствующую литературу по сегментации цветных изображений (например, использовать Google Scholar).С точки зрения книг, это хорошее введение в обработку изображений общего назначения:

http://www.amazon.co.uk/Digital-Image-Processing-Rafael-Gonzalez/dp/0130946508/ref=sr_1_7?ie=UTF8&qid=1326236038&sr=8-7

Поиск "сегментирования людей в цветных изображениях" в Google, похоже, вызывает некоторые хорошие ссылкиМежду прочим.

1 голос
/ 11 января 2012

нейронные сети особенно полезны для такого рода задач, но теория - это вселенная, если вы делаете это с нуля ... это много работы

0 голосов
/ 18 января 2012

Это сложно, но не невозможно. Я не могу дать вам никакого кода, но Питер Норвиг провел отличный разговор о значении данных, и в своем выступлении он показывает, как ему удалось сфотографировать озеро, снять все дома, блокирующие изображение, и расширить озеро с помощью лодки и т.д ..

Компьютер в основном узнал, как выглядят озера, а лодки ходят по озерам, а затем убрал дома и разместил их там. Он объясняет свой процесс (но не код или что-нибудь).

Вот оно: Питер Норвиг - Необоснованная эффективность данных http://www.youtube.com/watch?v=yvDCzhbjYWs

...