написать-то можно, только замаешься потом калибровать: там жеж не только нормализация, но ещё и тренировка алгоритма
В примере есть строчка «cv.cascade(»haarcascade_frontalface_default.xml");" — это как раз и есть загрузка предварительно сгенерированного каскада (они идут в комплекте вместе с OpenCV)
Очень полезная штука, спасибо!
Есть пара вопросов:
— Как у этого модуля с производительностью? Какие-нибудь тесты делали?
— Какой минимальный размер лица в пикселях распознаётся?
Тестов не делал, но с производительностью должно быть всё хорошо: OpenCV используется для захвата лиц из потокового real-time видео с уличных камер. Ну и до кучи все эти «Moution Eye» от сони тоже, в принципе, используют эту открытую библиотеку. С точки зрения же джавы там тоненькая прокси прослойка над апи нативной либы.
Минимальный размер пикселей задаётся каскадом. Какой каскад будет — такой и минимальный размер :)
насчет производительности… а какое железо и размеры кадра? =))
я гибрид этого метода и интенсивности карт разгонял для поиска лиц на живом видео в реалььном времени.
НО у каскадов openCV система обучена искать на видео очень хорошего(!) качества, не приемлемого для камер наблюдения к примеру =(
на телефонных камерах та же проблема =)
решал её наверно с полгода =)
распознавал для диплома аватарки из контакта, 15-20 пиксельное лицо довольно хорошо находит, при этом «ложных срабатываний» в разы меньше, чем «нераспознанных лиц»
лица расположенные на изображение под углом не распознает, но это можно доработать добавив поворот на pi/2 и pi
производительность для изображений ~200х200 около 200мс на изображение (это вместе с чтением/записью в файл с рамочкой), но зависит от параметров
Вах, давно хотел подобное поюзать. А то, что это кросплатформенно и есть ява биндинг ещё больше усилило стремление попользовать. Спасибо за ценный топик.
Жуть как интересно :)
Это ж можно распознавание лиц сделать.
И вместо того, чтоб носить с собой на работу «электронную бирочку» для входа в офис — просто поглядел в объектив видеокамеры, нажал кнопочку «открыть дверь», система подумала, серверок пошуршал у себя, сравнил данные с видеокамеры с данными сотрудников. И открыл || не открыл дверь.
Круть! Уже хочу!
к распознаванию — это сюда: faint.sourceforge.net/ :) Ребята забацали «The Face Annotation Interface» на основе всё того же OpenCV. Для определения лиц используют алгоритм «EigenFace»
Насчет зимой/летом — не знаю, но вот уверен чтоб уменьшить возможность подтасовки и прочих хаков (например фотки босса, как предложил Quadrix), нужно будет обязательно сделать «тесты» объекта.
Подходишь к небольшому терминальчуку, смотришь туда, система выдает, а теперь покажи язык :) А теперь скорчи рожу, а покажи как ты сердишься, а представь теперь, что ты удивлен :)))
Смотрим на реакцию лица, сравниваем с эталонами сотрудника — если ок:
— ты наш чувак, проходи!
Почему? По-моему, как раз то самое: распознавание форм, поиск контуров и т.п. — разве нет?
Я никогда не пользовался OpenCV, да и другими библиотеками компьютерного зрения, так что поправьте меня если я неправ.
Насколько я понимаю, распознавание символов не есть задача систем компьютерного зрения. Вернее это более частный случай для которого существует целый класс OCR систем, и на java в том числе.
есть… побаловался даже =)
Интересно можно заставить это не только находить лица, но и распознавать кто на фотографии? =) Было бы удобнее вконтакте так выкладывать — выложил фотографию и уже всех друзей на ней отметило.
Да зачем выкручиваться так? Модуль уже скомпилировал, тестирую вот — работает очень быстро, результат очень хороший — показывает отлично. Процессор не грузит.
Сейчас пишу курсовую, две камеры снимают руку, и движение руки переводится в 3d-модель. Пишу на С# c использованием Aforge.NET Framework — библиотека для работы с нейронными сетями, ИИ, обработка изображений. Классная вещь вобщем… =)
В тексте я указал название алгоритма — это широко известный алгоритм Виолы-Джонса. В гугле не составит труда найти развёрнутые описания работы алгоритма. Так что описывать их тут бессмысленно, разве что перевести на русский.
скажите, как обойтись без установки библиотеки в операционной системе, а использовать внутри своего проекта на java? Прослойка между openCV и java отличная получается, но заставлять пользователя дополнительно к проекту отдельно ставить библиотеки не хочется, сами понимаете.
Известно, как обойтись без установки на с++, а что насчет Java?
Face Detection на джаве — это просто!