Перейти к содержимому
Compvision.ru

nikrubab

Пользователи
  • Количество публикаций

    16
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О nikrubab

  • Звание
    Бывалый
  1. супер!очень доступно!спасибо Вам огромное!
  2. хорошо,допустим что так. тогда не понятно следующее.мне надо обосновать выбор Виолы-Джонса и произвести сравнительный анализ аналогичных методов.так вот чем больше читал тем больше запутывался Виола-Джонс это вообще никак не альтернатива PCA ,HMM ?это что то другое? Вы пишите "РСА ....применяемый и для распознавания лиц в том числе" то есть по сути выступает как замена Виолы?? И да,самое главное,в приведенных мною выше примерах в основе что ?Как описать код можно?Что там реализован метод Виолы-Джонса и точка?или там смесь разных алгоритмов,в том числе РСА,НММ ? сорри что походу туплю,но сроки жмут и откладывать некуда дальше.. спасибо за понимание!
  3. я просто делаю обзорную часть и мне надо описать метод который тут используется. исходя из вашего последнего замечания и пришел к выводу что сослаться на Виола-Джонса будет не совсем корректно. а как тогда пояснить это можно?ну что бы было не как "черное с круглым"
  4. спасибо за ответ! то есть в этом коде реализован метод Виолы-Джонса и это полностью самостоятельный метод, такой как например "Скрытые Марковские модели" или "Метод главных компонент" ??
  5. Всем доброго времени суток! Как говорится ,чем дальше в лес,тем больше дров! вот и в моем случае так же. Изначально надо было лишь организовать подсчет распознанных лиц в кадре.но как только с этой задачей справился,стало интересно на основе какого метода все это дело у меня работает.Стал читать и еще больше запутался... Кто может подсказать ,по какому методу идет распознавание лиц в этом и в этом #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; /** Function Headers */ void detectAndDisplay( Mat frame ); /** Global variables */ String face_cascade_name = "haarcascade_frontalface_alt.xml"; String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml"; CascadeClassifier face_cascade; CascadeClassifier eyes_cascade; string window_name = "Capture - Face detection"; RNG rng(12345); /** @function main */ int main( int argc, const char** argv ) { CvCapture* capture; Mat frame; //-- 1. Load the cascades if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading\n"); return -1; }; if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading\n"); return -1; }; //-- 2. Read the video stream capture = cvCaptureFromCAM( -1 ); if( capture ) { while( true ) { frame = cvQueryFrame( capture ); //-- 3. Apply the classifier to the frame if( !frame.empty() ) { detectAndDisplay( frame ); } else { printf(" --(!) No captured frame -- Break!"); break; } int c = waitKey(10); if( (char)c == 'c' ) { break; } } } return 0; } /** @function detectAndDisplay */ void detectAndDisplay( Mat frame ) { std::vector<Rect> faces; Mat frame_gray; cvtColor( frame, frame_gray, CV_BGR2GRAY ); equalizeHist( frame_gray, frame_gray ); //-- Detect faces face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) ); for( int i = 0; i < faces.size(); i++ ) { Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 ); ellipse( frame, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 ); Mat faceROI = frame_gray( faces[i] ); std::vector<Rect> eyes; //-- In each face, detect eyes eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CV_HAAR_SCALE_IMAGE, Size(30, 30) ); for( int j = 0; j < eyes.size(); j++ ) { Point center( faces[i].x + eyes[j].x + eyes[j].width*0.5, faces[i].y + eyes[j].y + eyes[j].height*0.5 ); int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 ); circle( frame, center, radius, Scalar( 255, 0, 0 ), 4, 8, 0 ); } } //-- Show what you got imshow( window_name, frame ); } примерах с сайта 1 и 2 соответственно . Там что то про Виола-Джонс говорится,но насколько я понял,Виола-Джонс это набор нескольких методов ,то есть это скорей методика. Проясните пожалуйста
  6. Оптимизация кода

    Доброго дня! подскажите пожалуйста ресурс,где можно почитать про то как работать с GPU в opencv ? iskees можете показать код программы с помощью которой вы тестировали? я просто с английским не очень,и поэтому возникают трудности..
  7. Оптимизация кода

    спасибо за совет! а как задействовать видеоядро? кстате начал разбираться с этим и на сайте ссылка пишет чел вот ,что : "Чтобы сравнить производительность вычислений на видеокарте и на процессоре я написал несколько тестов производительности на базе Qt. Можете их скачать здесь. К моему удивлению, у меня видеокарта nvidia GeForce 9600M GS считает в разы медленнее чем процессор intel Centrino 2." по сути это мое железо.может и не стоит мне связываться тогда с этим?
  8. Оптимизация кода

    благодарю за ответ! 1)LBP каскад есть уже обученный?подключать его так же как и Хааровский? 2)насколько я знаю по умолчанию используется лишь одно ядро процессора. у меня их два.возможно есть смысл для начала его задействовать? если знаете как,подскажите пожалуйста 3)то есть просто следить за найденным лицом?есть примеры гденть такого кода?сам боюсь не осилю с нуля 4)да у меня и так берется 500 на 400.уменьшать не вариант.хотелось бы наоборот увеличить... CPU Intel Core 2 Duo P8400 по 2.3 Ггц на ядро GPU Nvidia 9600M GT 512Mb Диск SAMSUNG HM500JI 5400 об/мин ОЗУ 3Гб ddr2 время детектирования если в кадре один человек и хорошее освещение то около 400мс. если плохое ,то около 600. ну и с появлением нескольких лиц в кадре где то плюс 200мс
  9. Оптимизация кода

    спасибо за ответ! это уже опробовал. в первом случае не подходит так как надо искать и считать всех кто есть в кадре,а второе не подходит по причине того,что начинает пропускать лица ,которые дальше эмм..ну примерно метра ,2х от камеры. Есть еще что то?или это плата за бесплатное пользование библиотеки?
  10. Оптимизация кода

    Добрый день ! Вот есть код : #include "StdAfx.h" #include <opencv2/opencv.hpp> #include <opencv2/core/core_c.h> #include <opencv2/core/core.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/imgproc/imgproc_c.h> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui_c.h> #include <opencv2/highgui/highgui.hpp> #include <opencv2/objdetect/objdetect.hpp> #include <C:\videoInput0.1995\compiledLib\compiledByDevCpp\include\videoInput.h> #include <process.h> #include <stdio.h> #include <vector> #include <iostream> using namespace cv; # pragma comment(lib, "C:/videoInput0.1995/compiledLib/compiledByCW/videoInput.lib") static CvMemStorage* storage = 0; static CvHaarClassifierCascade* cascade = 0; const char* cascade_name = "C:/OpenCV2.2/data/haarcascades/haarcascade_frontalface_default.xml"; double scale = 1; CvSeq* contours = 0; void detect_and_draw( IplImage* image); void Init(); CvFont myFont; char text_buf[20]; int _tmain(int argc, _TCHAR* argv[]) { Init(); return 0; } void Init() { IplImage *frame_copy = 0; IplImage *image = 0; int i; const char* input_name = 0; cvInitFont(&myFont, CV_FONT_HERSHEY_COMPLEX, 0.7, 1, 0, 1, 8); //Загрузка базы данных, обученной на детектирование лиц в Фас cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); //Создание хранилища памяти storage = cvCreateMemStorage(0); cvNamedWindow( "result", 1 ); //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // создание объекта videoInput videoInput VI; // получение списка доступных видеоустройств, возвращается число устройств int numDevices = VI.listDevices(); int device1=0; // первое найденое видеоустройсво из списка // частота кадров VI.setIdealFramerate(device1, 15); // указываем разрешение VI.setupDevice(device1, 500, 400, VI_COMPOSITE); //VI.showSettingsWindow(device1); // показать окошко настроек камеры // создаём картинку нужного размера image = cvCreateImage(cvSize(VI.getWidth(device1),VI.getHeight(device1)), IPL_DEPTH_8U, 3); while(1){ if (VI.isFrameNew(device1)){ // первый параметр - индекс видеоустройсва // второй - указатель на буфер для сохранения данных // третий - флаг, определяющий менять ли местами B и R -составляющий // четвёртый - флаг, определяющий поворачивать картинку или нет VI.getPixels(device1, (unsigned char *)image->imageData, false, true); // получение пикселей в BGR // if( image ) { //Производим детектирование detect_and_draw( image); } } char c = cvWaitKey(33); if (c == 27) { // ESC break; } } //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ } void detect_and_draw( IplImage* img ) { static CvScalar colors[] = { {{0,0,255}}, {{0,128,255}}, {{0,255,255}}, {{0,255,0}}, {{255,128,0}}, {{255,255,0}}, {{255,0,0}}, {{255,0,255}} }; IplImage *gray; int i, j; gray = cvCreateImage( cvSize(img->width,img->height), 8, 1 ); //cvCvtColor( img, gray, CV_BGR2GRAY ); cvClearMemStorage( storage ); if( cascade ) { double t = (double)cvGetTickCount(); CvSeq* faces = cvHaarDetectObjects( img, cascade, storage, 1.1, 2, 0|CV_HAAR_DO_CANNY_PRUNING,cvSize(30, 30) ); t = (double)cvGetTickCount() - t; printf( "detection time = %gms\n", t/((double)cvGetTickFrequency()*1000.) ); sprintf(text_buf,"find faces:%d",faces->total); cvPutText(img, text_buf, cvPoint(5,40), &myFont, cvScalar(255,255,255)); for( i = 0; i < (faces ? faces->total : 0); i++ ) { CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); CvMat small_img_roi; CvSeq* nested_objects; CvPoint center; CvScalar color = colors[i%8]; int radius; center.x = cvRound((r->x + r->width*0.5)*scale); center.y = cvRound((r->y + r->height*0.5)*scale); radius = cvRound((r->width + r->height)*0.25*scale); cvCircle( img, center, radius, color, 3, 8, 0 ); }} cvShowImage( "result", img ); cvWaitKey(1); cvReleaseImage( &gray ); } Почему то сильно тормозит картинка,получаемая с веб камеры . по умолчанию значение cvWaitKey(1) было 1000 .сейчас 1 и стало шустрее,но недостаточно. + время обнаружения порядка 500мс а если людей в кадре несколько то и более. Как можно улучшить эти показатели?
  11. Подсчет людей в кадре

    ок.это я понял.а как это реализовать? как понять faces.size() вернет количество лиц ?? чтобы она что то вернула это как то прописать надо.вот как я не знаю .. подскажите ,что почитать по теме можно,что бы я понял о чем эти строки
  12. Подсчет людей в кадре

    спасибо за разъяснение! с этим туториалом уже ознакомился.даже побаловался через свою вебку. почему то подтормаживает сильно картинка.. но меня больше всего волнует как организовать подсчет людей в кадре и вывод этой информации на экран mrgloom писал выше про это ,но я пока не смог осознать ,на что влияют эти строки и как их использовать в моих интересах.
  13. Подсчет людей в кадре

    за мысли спасибо! вот только теперь возможно глупый,но все же вопрос. как откомпилировать facedetect.cpp ? пробовал создавать новый проект,прописывал библиотеки все по инструкции.пробовал заменять код в рабочем приложении на код из facedetect.при компиляции консоль выскакивает,там быстро идет текст и пропадает. в output пишет следующее: The program '[3960] openCV_FaceTracking.exe: Native' has exited with code -1 (0xffffffff). UPD откомпилировал.заработало.только почему то изображение с вебкамеры подвисает изрядно.и глаза плохо распознаются. кто может объяснить что это значит? 'fd.exe': Loaded 'C:\Users\Dima Baburkin\Documents\Visual Studio 2010\Projects\fd\Debug\fd.exe', Symbols loaded. 'fd.exe': Loaded 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\opencv\build\x86\vc10\bin\opencv_core243d.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\opencv\build\x86\vc10\bin\opencv_imgproc243d.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\opencv\build\x86\vc10\bin\opencv_highgui243d.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\opencv\build\x86\vc10\bin\opencv_objdetect243d.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msvcp100d.dll', Symbols loaded. 'fd.exe': Loaded 'C:\Windows\System32\msvcr100d.dll', Symbols loaded. 'fd.exe': Loaded 'C:\Windows\System32\user32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\gdi32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\ole32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\oleaut32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\advapi32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9200.16384_none_bf100cd445f4d954\comctl32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\avifil32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msvfw32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\avicap32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\combase.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msvcrt.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\rpcrt4.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\sechost.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\winmm.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msacm32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\shell32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\version.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\winmmbase.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\shlwapi.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\imm32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msctf.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\cryptbase.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\bcryptprimitives.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\uxtheme.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Program Files\Punto Switcher\pshook.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\imagehlp.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\SHCore.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\clbcatq.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\devenum.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\setupapi.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\devobj.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\ntmarta.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\wintrust.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\crypt32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msasn1.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\msdmo.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\qcap.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\quartz.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\dwmapi.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\ksproxy.ax', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\ksuser.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\d3d9.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\vidcap.ax', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\Kswdmcap.ax', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\mfc42.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\odbc32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\qedit.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\comdlg32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9200.16518_none_ba1cf6b7e09f1918\GdiPlus.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\ddraw.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\dciman32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\nvd3dum.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\psapi.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\powrprof.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\d3dim700.dll', Cannot find or open the PDB file 'fd.exe': Unloaded 'C:\Windows\System32\powrprof.dll' 'fd.exe': Unloaded 'C:\Windows\System32\psapi.dll' 'fd.exe': Unloaded 'C:\Windows\System32\nvd3dum.dll' 'fd.exe': Loaded 'C:\Windows\System32\nvd3dum.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\psapi.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\powrprof.dll', Cannot find or open the PDB file 'fd.exe': Unloaded 'C:\Windows\System32\powrprof.dll' 'fd.exe': Unloaded 'C:\Windows\System32\psapi.dll' 'fd.exe': Unloaded 'C:\Windows\System32\nvd3dum.dll' 'fd.exe': Loaded 'C:\Program Files\K-Lite Codec Pack\Filters\ffdshow\ffdshow.ax', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9200.16384_none_893961408605e985\comctl32.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\dinput.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\sspicli.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Program Files\K-Lite Codec Pack\Filters\vsfilter.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\winspool.drv', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\wininet.dll', Cannot find or open the PDB file 'fd.exe': Loaded 'C:\Windows\System32\iertutil.dll', Cannot find or open the PDB file The thread 'Win32 Thread' (0xc4c) has exited with code 0 (0x0). 'fd.exe': Loaded 'C:\Windows\System32\msyuv.dll', Cannot find or open the PDB file The thread 'Win32 Thread' (0x110c) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0xf04) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0xfb8) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0xc24) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x15a4) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x1508) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x934) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x9d8) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x1728) has exited with code -1073741510 (0xc000013a). The thread 'Win32 Thread' (0x1038) has exited with code -1073741510 (0xc000013a). The program '[4348] fd.exe: Native' has exited with code -1073741510 (0xc000013a).
  14. Подсчет людей в кадре

    а можете пояснить что значит вектор ректов? и как это можно сделать?
  15. Подсчет людей в кадре

    а можно подробнее? я просто не так давно начал вникать в эту тему и был бы рад учиться у знающих
×