-
Количество публикаций
1 427 -
Зарегистрирован
-
Посещение
-
Days Won
176
Сообщения, опубликованные пользователем Nuzhny
-
-
Обычный blob tracking?
-
Выложи картинку как bmp, сейчас - jpg.
-
Выделяешь через malloc - удаляй через free. Аналогично: new - delete (а для массивов delete []).
-
Нет, имеется ввиду Альфред Хаар.
-
Попробуй перебрать всевозможные результаты параметров, посмотри, что можно "выжать" из этого.
Вообще, всё зависит от того, что ты хочешь получить. Что-то вроде вычитания фона?
-
Не видел. Но вообще, сделать это просто.
Если проекции двух прямоугольников на горизонтальную ось и на вертикальную накладываются друг на друга, то прямоугольники пересекаются.
Проекция прямоугольника на горизонтальную ось есть (rect.x, rect.x + rect.width). Надо лишь написать маленькую функцию по проверке наложения этих проекция - всего несколько условий.
-
А помогает подбор порога методом Оцу?
-
Текст ошибки говорит об обратном.
-
lib файлы подключить надо
-
Функция принимает указатели.
Это уже указатель: IplImage *img2;
Значит в функцию надо передавать только img2
Если ты создаёшь объект на стеке: cv::Mat img;
То в функцию надо передавать его указатель &img
-
Надо не саму матрицу, а указатель на неё передавать.
-
cv надо писать маленькими буквами. Это не класс, а namespace, Rect определён в нём. Ошибка "Ambiguity between 'Rect' and ..." говорит о том, что компилятор не знает какой именно Rect ему использовать. Декларация cv::Rect прямо указывает компилятору, что надо использовать Rect из OpenCV. Должно работать.
В крайнем случае, напиши Rect_<int>
-
cv::Rect?
-
Обычно в отдельный поток выделяют самую "тяжёлую" в вычислительном смысле часть. В твоём случае это, вероятно, поиск лица на кадре. Или нет?
Если да, то выделить её в отдельный поток, сделать очередь кадров, которые ждут обработки. При получении очередного кадра от камеры просто складывать его в очередь. А поток с поиском лиц пусть её разгребает. Так как компьютеры сейчас многоядерные, то имеет смысл таких "тяжёлых" потоков сделать по числу ядер.
-
Вроде всё правильно. Отлаживать надо. Если есть желание, конечно.
Положительных и отрицательных примеров в выборке должно быть по несколько тысяч.
-
Для бинарных изображений можно найти все контуры.
-
Мда. Содержание там на 4 страницы. Сканера у меня нет, фотографии при искусственном свете получаются отвратительные, при вспышке - блики. Переписывать вручную лень.
-
Очевидно, что fps нельзя так просто брать и задавать значение 25. Камера захватывает с другой частотой, при записи в файл надо задавать такое же значение.
-
Странный адрес. Может у тебя утечка памяти? Созданный IplImage потом удаляешь? Что показывает диспетчер задач по поводу использования памяти твоей программой?
-
Я думаю, что самый правильный ответ: "А хрен его знает!"
Одно дело - научные статьи, совершенно другое - практика. А тестирование разных методов и есть практика.
Так вот. Я видел работу нескольких разных коммерческих (и довольно дорогих) библиотек для распознавания лиц. Некоторые библиотеки более капризны, некоторые менее., но все работают в условиях близких к идеальным: ровное и яркое освещение, никаких наклонов и поворотов лица и т.д. То есть нельзя повесить на стене дома камеру и направить на тротуар - распознавать не будет. Только помещение с искусственным освещением, хорошая видеокамера.
Не многие выдают процент распознавания выше 80, худшие около 40. Но даже лучшую, что я видел - немецкую Когнитек, можно легко обмануть, приложив к своему лицу качественную фотографию другого человека соответствующего размера.
Поэтому: "А хрен его знает!"
Сейчас нормальное распознавание можно сделать разве что в аэропортах, в нешироких проходах или кабинках, лучше всего с помощью не плоского, трёхмерного распознавания на двух или более камерах.
-
Вышла в конце 2009 года очень неплохая книга «Цифровая обработка видеоизображений» А. А. Лукьяница, А. Г. Шишкина.
В ней довольно подробно описаны вопросы вычитания фона, сегментации, сопровождения объектов и другие темы, актуальные для видеоаналитики охранных систем. Содержание можно найти в интернете, по ссылке один из самых дешёвых способов покупки (я книгу через них и заказывал). Мне книга понравилась гораздо больше переводных "Компьютерных зрений" что Понса с Форсайтом, что Шапиро со Стокманом.
В общем, рекомендую к прочтению.
-
Битрейт никак не задать, просто не выведены интерфейсы. Если OpenCV скомпилирована по-умолчанию, то в качестве обёртки для компрессии и записи avi используется виндовская vfw. В этом случае выставляется: copts.dwQuality = 10000;, где copts - это AVICOMPRESSOPTIONS (см. файл ..OpenCV2.1\src\highgui\cvcap_vfw.cpp). Это значение для большинства (или для всех?) кодеков является значением битрейта.
Выхода два:
1. доработать OpenCV, сделать интерфейс для задания битрейта при записи в avi - это трудный путь;
2. исправить в исходниках приведённое мной значение по-умолчанию, перекомпилировать highgui.dll и пользоваться.
-
-
Да, чуть не забыл. При захвате из файла просто вызываешь cvCaptureFromAVI, а не cvCaptureFromFile_FFMPEG. Внутри этой функции ffmpeg автоматически будет выбираться.
Распознавание лиц
в OpenCV
Опубликовано · Report reply
Я бы не сказал, что каскады Хаара работают медленно. Имеется в виду стандартный пример из OpenCV? Его можно ускорить в несколько раз. Не находить соседей, например. А ложные сработки отсеивать временным фильтром.