roboforum.ru

Технический форум по робототехнике.


Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 19 апр 2009, 23:41

Привет! В общем у меня работа по компьютерному зрению!!! Мне нужна помощь - может кто-то уже делал эту работу. В OpenCV мне сказали это уже сделано, там имеется пример facedetect - у меня не получилось его запустить(((.

Подскажите, пожайлуйста, в какую сторону двигаться? Какие функции использовать.

Что мне нужно: например, у нас есть обучающая выборка в виде набора изображений. И потом алгоритм обучаетсяна этих изображениях. А после я загружаю картинку и он ищет те объекты, на которых я обучался.

Спасибо, заранее!!! Буду рад любой помощи!!!

Модератор vooon:Перенес в более подходящую ветку
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 00:41

Хоть кто-то что-то напишет здесь???

Я уже нашел нужные функции в OpenCV для своей работы - haartraining...
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение =DeaD= » 21 апр 2009, 08:05

А чего писать то, если у вас даже примеры типа не запускаются от OpenCV - мы круче их не сделаем... :pardon:

А по распознаванию - там вроде и так кроме haartraining нету ничего...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24212
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 12:25

Хорошо, такой вопрос. Я в общем запустил один один пример в C-Builder. Сделал как было написано на каком-то форуме: создал для проекта lib-файлы с помощью утилиты implib:

например : implib -a cv110.lib cv110.dll

И добавил lib-файлы в проект. И заработал примитивный пример:
Код: Выделить всёРазвернуть
#include "cv.h"
#include "highgui.h"

//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
     IplImage* image;
     if( argc != 2 ) return -1;
     image = cvLoadImage( argv[1] );
     if( !image ) return -1;

    cvNamedWindow( "Sample", 1 );
     cvShowImage( "Sample", image );
     cvWaitKey();
     return 0;
}

Хоть это вызвало радость на душе. Уже достижение)

А вот второй пример с вырисовыванием контуров:


Код: Выделить всёРазвернуть
#include "cv.h"
#include "highgui.h"

//---------------------------------------------------------------------------


IplImage* image = 0;
int thresh = 100;

void on_trackbar(int)
{
    IplImage* gray = cvCreateImage( cvGetSize(image), 8, 1 );
    CvMemStorage* storage = cvCreateMemStorage(0);
    CvSeq* contours = 0;
    cvCvtColor( image, gray, CV_BGR2GRAY );
    cvThreshold( gray, gray, thresh, 255, CV_THRESH_BINARY );
    cvFindContours( gray, storage, &contours );
    cvZero( gray );
    if( contours )
        cvDrawContours( gray, contours, cvScalarAll(255),
                        cvScalarAll(255), 100 );
    cvShowImage( "Contours", gray );
    cvReleaseImage( &gray );
    cvReleaseMemStorage( &storage );
}

int main( int argc, char* argv[] )
{
    IplImage* image;
    if( argc != 2 || !(image = cvLoadImage(argv[1])) )
        return -1;
    cvNamedWindow( "Contours", 1 );
    cvCreateTrackbar( "Threshold", "Contours",
                      &thresh, 255, on_trackbar );
    on_trackbar(0);
    cvWaitKey();
    return 0;
}


Не заработал. Нашел вроде на этом форуме решение: нужно создать def-файлы для dll-файлов OpenCV:
для этого тоже существует утилита
Код: Выделить всёРазвернуть
impdef cv110.def cv110.dll


Но, когда добавляю файлы в проект и собираю проект, то вылетает ошибка типа:

Код: Выделить всёРазвернуть
[ILINK32 Error] Fatal: Could not open cv110_bc.defhighgui110_bc.def (error code 2)


где cv110_bc.def и highgui110_bc.def созданные мною файлы с помощью impdef.

Помогите, пожайлуста, что я делаю не так? Заранее спасибо.
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение EdGull » 21 апр 2009, 12:30

ну для начала в своем сообщении код закрой в тэги "Code" :evil:

Я за него поправил - а то читать тяжко... Но присоединяюсь к ругани: автор, пользуйтесь тегами! :no:
<Digit>
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 12:57

Да извиняюсь. Буду иметь в виду! А помочь мне можете?
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение =DeaD= » 21 апр 2009, 13:01

Не помню чтобы надо было def-файлы создавать, вот lib - это вроде надо.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24212
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 13:05

Хорошо. Вот без def-файлов:

выдает такие ошибки:
Код: Выделить всёРазвернуть
[ILINK32 Error] Error: Unresolved external '_cvGetSize' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvCreateImage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvCreateMemStorage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvThreshold' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvSetZero' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvDrawContours' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvReleaseImage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvReleaseMemStorage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение =DeaD= » 21 апр 2009, 13:39

lib-файлы то правильно сделаны?

я когда делал вроде без .def-файлов как-то обошелся...

А библиотеки в проект подцеплены?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24212
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение EDV » 21 апр 2009, 13:54

RATA писал(а):Хорошо. Вот без def-файлов:

выдает такие ошибки:
Код: Выделить всёРазвернуть
[ILINK32 Error] Error: Unresolved external '_cvGetSize' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvCreateImage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvCreateMemStorage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvThreshold' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvSetZero' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvDrawContours' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvReleaseImage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ
[ILINK32 Error] Error: Unresolved external '_cvReleaseMemStorage' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ


Дружище, так у тебя линкер (модуль сборки объектного кода) просто не находит объявленные внешние идентификаторы (подпрограммы, структуры данных) которые находятся во внешних библиотеках: cxcore.lib cv.lib highgui.lib. Просто укажи их место расположения для линкера (папка ..\ OpenCV\lib) и всё слинкуется.
Аватара пользователя
EDV
 
Сообщения: 1009
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина (Донбасс), Лисичанск
ФИО: Дмитрий Еремеев

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 14:58

В общем добавил в проект еще один lib-файл: cxcore110_bc.lib и многие ошибки пропали:

осталась одна:

Код: Выделить всёРазвернуть
[ILINK32 Error] Error: Unresolved external '_cvThreshold' referenced from C:\DOCUMENTS AND SETTINGS\RATA\¦+L -+¦L¦+=T-\RAD STUDIO\PROJECTS\CONTOURS\RELEASE\CONTOURS.OBJ


А функция cvThreshold находится как раз в cv110_bc.lib. И должна по идее работать. Так в чем тогда проблема не пойму???


Всего в проект добавлено 3 lib-файла:

cxcore110_bc.lib
cv110_bc.lib
highgui110_bc.lib

Пробовал со всеми lib-файлами - не решило проблему!
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение EDV » 21 апр 2009, 15:24

Попробуй использовать последнюю версию OpenCV от Intel OpenCV_1.0.exe (2006-10-19 15:43). Все последующие версии ведёт другая команда разработчиков, и там возможны недоработки (я работаю именно с этой версией, а в следующей версии ничего особенного не добавилось, зато порезали некоторые полезные фишки).
Аватара пользователя
EDV
 
Сообщения: 1009
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина (Донбасс), Лисичанск
ФИО: Дмитрий Еремеев

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 15:37

у меня стоит последняя версия OpenCV_1.1pre1a

Или это не то?
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение =DeaD= » 21 апр 2009, 16:15

2RATA: А помоему очевидно что не версия тут проблемная, а какой-то либы не хватает. Добавь все, что тебе жалко чтоли? :P
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24212
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Алгоритм Виолы Джонса распознавания лиц(любых объектов)

Сообщение RATA » 21 апр 2009, 17:40

Не помогло!!!
Добавил все что есть.
Может все-таки в версии проблема?
RATA
 
Сообщения: 9
Зарегистрирован: 19 апр 2009, 22:02
Откуда: Город

След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Mail.ru counter