Вот такая маленькая искалка человеческих лиц на фото. Пока работает совсем не очень, но кое-что улучшить всё же ещё возможно в будущем. Написал за вечер, так что прошу не судить строго (кое-где совсем уж сыро написано пока, это даже как бы не альфа ещё).
Пока справа присутствует ползунок, устанавливающий порог подавления шума. Пока не придумал способ как-то это автоматизировать (да и вообще не думал ещё об этом, если честно). Так вот: фото распознаётся успешно при оооочень маленьком интервале порога подавления шума (чуть сильнее и уже становится недостаточно деталей, чуть слабее и шум уже мешает определить границы объектов).
Ещё порядка 20 констант установлены в почти произвольные значения (подбирал исключительно для фото, которое на борту, так что для некоторых лиц они скорее-всего не сгодятся (в основном отвечают за пропорции и взаимные расположения элементов лица). А идеальном раскладе было бы вообще шикарно сделать самообучение, чтобы эти параметры сами подбирались оптимальным образом, но до этого скорее-всего дело не дойдёт. Пока не мешало бы хотя бы определить адекватные интервалы значений для них).
Что за что отвечает: серые прямоугольники получаются после определения границ фигур, выделенных по определённому алгоритму и после исключения фигур, которые заведомо не похожи на части человеческого лица. Далее определяется взаимное расположение этих прямоугольников и если оно похоже на расположение частей человеческого лица, то лицо обводится жёлтым кругом (если повезёт). Одновременно на одной фотографии может присутствовать несколько лиц. Лица не должны примыкать к границам фотографии (а фото пока что обрезается под размер picturebox`а, стало быть не должны примыкать к границам онного). Лица так же не должны перекрываться каким-либо предметом и должны быть расположены в естественном положении (довольно слабый наклон головы пока приведёт к невозможности поиска лица на фото).
Собственно идея чрезвычайно проста, если кого-то заинтересует, то могу описать в двух словах алгоритм. Может кто придаст толк (я же как обычно почти утратил интерес к сабжевому проекту и уже хочу сваять кое-что другое). И да, ещё: большая часть кода была взята из PhotoPF, который я не так давно постил в наших проектах емнип.
И последнее: приложу фото с Чаком, которое тоже удалось почти корректно распознать (порог подавления шума 21, но у него немного более вытянутое лицо и за губы идёт нижнее ребро носа).