Я создаю приложение, которое возьмет изображение одного человека всего тела и произведет "mugshot" для этого человека.
Mugshot означает изображение лица всего лица, шеи, волос и ушей при том же общем размере другого кружка.
В настоящее время я использую
http://askernest.com/archive/2008/05/03/face-detection-in-c.aspx
для реализации OpenCV, и я использую
harrcascade_frontalface_default.xml
harrcascade_frontalface_alt.xml
harrcascade_frontalface_alt2.xml
harrcascade_frontalface_alt_tree.xml
как мои каскады.
Я использую все каскады, потому что один не обнаружит всех моих лиц. После того, как я получу все лица, обнаруженные всеми каскадами, я нахожу свой средний квадрат и использую это для моего окончательного предположения о том, насколько высок и широк должен быть mugshot.
Моя проблема состоит из 3 частей.
-
Мой текущий процесс довольно медленный. Как ускорить процесс обнаружения?
Изменить: Я нахожу, что время обработки напрямую связано с размером фото. Уменьшение размера фотографий может оказаться полезным. -
Один каскад не обнаружит всех лиц, с которыми я сталкиваюсь, поэтому я использую их все. Это, конечно, создает множество разнообразных квадратов и несколько ложных срабатываний. Какой метод я могу использовать для определения ложных срабатываний и оставить их вне среднего квадратного вычисления? ех.
Изменить: Я реализую среднее значение значений в рамках стандартного отклонения. Скоро будет опубликовать код. -
Я не совсем уверен в лучшем способе найти mugshot, учитывая квадратные координаты лица. Где я могу найти отношения лица к mugshot?
Изменить: Решено. Предполагая, что все мои головы имеют отношение к их лицам.static public Rectangle GetMugshotRectangle(Rectangle rFace) { int y2, x2, w2, h2; //adjust as neccessary double heightRatio = 2; y2 = Convert.ToInt32(rFace.Y - rFace.Height * (heightRatio - 1.0) / 2.0); h2 = Convert.ToInt32(rFace.Height * heightRatio); //height to width ratio is 1.25 : 1 in mugshots w2 = Convert.ToInt32(h2 * 4 / 5); x2 = Convert.ToInt32((rFace.X + rFace.Width / 2) - w2 / 2); return new Rectangle(x2, y2, w2, h2); }
Мне просто нужно избавиться от этих ложных срабатываний.
Хорошо сделайте это 4 проблемы.
-
Наша камера, которую мы будем использовать, в настоящее время не работает, поэтому у меня нет способа захвата изображений на данный момент. Где я могу найти полное изображение тела людей, которые не являются чистыми, такими как поиск изображений Google для изображений полного тела?Изменить: "Человек стоит" Делает хороший поиск:)