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

JoQeR

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

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

  • Посещение

Все публикации пользователя JoQeR

  1. Мой модуль авторизации делает практически тоже самое)) Чтобы не более одного человека было и тд)
  2. Спасибо! А тема диссертации какая?
  3. Ребят! Всем огромнейшее спасибо за помощь и ответы на вопросы) Во многом благодаря этому форуму, сегодня защитил на отлично дипломный проект с темой "авторизации пользователя ИС с помощью веб-камеры") Отдельное спасибо главному админу Надеюсь, форум будет развиваться и подчерпну еще много нового от сюда)
  4. To Flame. На хабре прочитал статью, интересно, но решил, что взять и установить порог по расстоянию Махаланобиса и не ваять сложный велосипед (реализация есть в с++ на том же хабре + ссылку здесь выкладывали на полное руководство). Очень хотелось поэксперементить)
  5. Я для эксперемента яндекс картинки пробовал искать , лица", "лицо человека", там конечно много ереси вылезает. В основном звезды. Кстати, насчет звезд, на кинопоиске куча фотографий хорошего качества звезд)
  6. Реализовал все это дело, чисто порогом расстояния) Но точность распознавания, т.е. сам этот порог жутко зависит от совещения( Может есть какие то моменты и нюансы, чтобы лучше справлялся алгоритм собственными средствами?
  7. Flame, а как ты реализовал сам отсев неприсутствующих в БД? Примерный алгоритм или как изменить программу. Можешь поделиться?
  8. Flame. В статье Распознавание с помощью PCA делается на Евклидовом расстоянии. Но в конце указывается что изменить, чтобы использовать расстояние Махаланобиса. Вот кусок этого текста:
  9. timer1->Stop(); <-- это у меня остановка таймера, который отвечает за воспроизведение кадров в pictureBox. Спаибо за ответ, очень похоже что у меня как раз эта проблема. Но т.к. я еще новичек в этом деле, особенно с таймерами. Что есть функция обратного вызова у таймера Windows Forms? У системного таймера есть такая функция.
  10. Эх, а что ж делать с моим багом при релизной версии? Может туплю п острашному. Нашел еще один момент. Для того чтоб получить при фотографировании картинку качества получше, увеличиваю разрешение считываемого кадра, т.к. видео с камеры отображается в миниатюрном окошке, если убрать это изменение кадра, то все работает, но фото конечно отстойного качества. Может надо как то оптимизировать эту задачу? Хотя все тоже - на ноуте работает с любыми настройками. timer1->Stop();// Counter = 0; //счетчик времени для показа "Данные записаны в БД" //BuffCount =0; cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 1280); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 1024); frame = cvQueryFrame( capture ); //-------/возврат к миниатюрному изображению/-----------// cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, WidthFrame); cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, HieghtFrame); Спасибо еще раз, за ваши ответы!
  11. Нет, в отладочной версии еще при запуске "Возникла точка останова" и на ноуте и на компе. Но я отладочную версю запускал с библиотеками OpenCV для релизной версии. Может из-за этого? Я еще думал что мож из-за фреймворка такое может быть каким то образом? Хотя и на ноутбуке и на компьютере ставился новый 4,5 вроде со студией. Приложение я пытаюсь сделать на 3-м фреймворке. Реально уже не знаю, что придумать. Еще есть такое, что без нахождения лица работает стабильно. Может слишком много дейсвий при нажатии кнопки происходит и 32-х разрядная система не справляется? Хотя вроде ересь.
  12. Если не секрет, как это сделать?) На компьютере где висне стоит ОС 32 разрядная. На ноуте 64-х. Где именно копилировать надо? И как поменять настойки сборки, чтобы это сделать.
  13. Нужен совет! Последния два дня меня убивает непонятная вещь, а именно виснет приложение, которое фотографирует, находит лицо ресайзит его и записывает в БД на компьютере. Причем оно виснет оно самым странным образом. 1)Запускаю приложение. При этом сразу отображается видео с камеры на форму. 2)Нажимаю кнопку сфотографировать. 3)Находит лицо. 4)Фотографирует, ресайзит и сохраняет в БД все успешно. 5)Видео продолжает отображаться и вроде все впорядке. Можно даже нажать "Закрыть" и все закроется как надо. НО 6) Если взять окно и попробовать перетащить его, сразу же "Завершена работа программы.." и "Widows ищет поиск решения данной проблемы.." Еще одно - на ноутбуке все работает замечательно, ничего подобного не происходит. Практически всё идентично: ОС Windows 7, MS Visual Studio 2010, MS SQL 2008, разве что на ноутбуке стоит 64-х разрядная система. Думал, что может из-за веб камеры. Но поставил камеру с компьютера на ноутбук, там и с этой камерой все работает прекрасно. К тому же иногда работает все прекрасно и на компьютере. В связи с чем такое может быть, куда смотреть, что делать даж не знаю. Может у кого то были подобные проблемы? Спасибо за ваши ответы!
  14. Каскады хаара

    Привожу пример подобного кода, только с выделением лица, без глаз. [code] // FaceDetectAndTrack.cpp #include <stdafx.h> #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> #include <string> #include <iostream> using namespace std; using namespace cv; void detectFace(IplImage *FaceIm); //Глобальные переменные CvSeq * pFaceRectSeq; // list of detected faces CvHaarClassifierCascade * pCascade; // каскад для нахождения лиц CvMemStorage * pStorage; // хранилище памяти int main( int argc, const char** argv ){ IplImage * pInpImg; const char* cascade_name = "haarcascade_frontalface_alt.xml"; pStorage = cvCreateMemStorage(0); pCascade = (CvHaarClassifierCascade *)cvLoad(cascade_name, 0, 0, 0 ); // initializations //* filename = argc == 2 ? argv[1] : "d:/StudentDetect1.jpg"; //IplImage * pInpImg = cvLoadImage(filename,1); //Проверка инициализируемых данных if( !pInpImg || !pStorage || !pCascade ){ printf("Initialization failed: %s \n", (!pInpImg)? "didn't load image file" : (!pCascade)? "didn't load Haar cascade -- " "make sure path is correct" : "failed to allocate memory for data storage"); exit(-1); } CvCapture *capture = cvCreateCameraCapture(CV_CAP_ANY); //CvCapture *capture = cvCreateCameraCapture(1); assert(capture); while(true){ pInpImg = cvQueryFrame( capture ); //Применяем функцию детектирования к каждому кадру detectFace(pInpImg); // показываем cvShowImage("Haar Window", pInpImg); char c = cvWaitKey(33); if (c == 27) { // нажата ESC break; } } // display face detections //cvShowImage("Haar Window", pInpImg); //cvWaitKey(0); //показываем результат в окне cvDestroyWindow("Haar Window"); //освобождаем все ресурсы cvReleaseImage(&pInpImg); if(pCascade) cvReleaseHaarClassifierCascade(&pCascade); if(pStorage) cvReleaseMemStorage(&pStorage); return 0; } void detectFace(IplImage *FaceIm){ int i; // Применяем функцию детектирования с заданными параметрами pFaceRectSeq = cvHaarDetectObjects (FaceIm, pCascade, pStorage, 1.2, // increase search scale by 10% each pass 6, // drop groups of fewer than three detections //CV_HAAR_DO_ROUGH_SEARCH //|CV_HAAR_SCALE_IMAGE CV_HAAR_DO_CANNY_PRUNING, // skip regions unlikely to contain a face cvSize(50,50)); // use XML default for smallest search scale // create a window to display detected faces cvNamedWindow("Haar Window", CV_WINDOW_AUTOSIZE); // draw a rectangular outline around each detection for(i=0;i<(pFaceRectSeq? pFaceRectSeq->total:0); i++ ){ CvRect * r = (CvRect*)cvGetSeqElem(pFaceRectSeq, i); CvPoint pt1 = { r->x, r->y }; CvPoint pt2 = { r->x + r->width, r->y + r->height }; cvRectangle(FaceIm, pt1, pt2, CV_RGB(0,255,0), 3, 4, 0); } }
  15. Как конвертировать нашел. Функция cvCvtColor(img, im2, CV_BGR2GRAY). Но про необходимость этого конвертирования вопрос актуален)
  16. Еще вопросик есть по этой теме. Для распознавания лица методом главных компонент обязательно преобразовывать цветное изображение в градации серого? Как в этом ПРИМЕРЕ . И если обязательно, то как это сделать? Наверняка есть какая то встроенная функция, но поискав я нашел только работу с каналами RGB. Пробовал копировать 3-х канальное изображение в созданное вот таким методом cvCreateImage( STD_SIZE, IPL_DEPTH_8U, 1 ), сразу вылезает ошибка. Я так понял что нельзя запихнуть автоматом цветное изображение в черно-белое. Как быть?
  17. Спасибо большое! Применил cvSetImageROI, все прекрасно работает под C++/cli.
  18. Есть вопрос, подскажите пожалуйста! Я нахожу в кадре лицо каскадами Хаара. Затем выделяю найденную область(как в примере прямоугольником). Как мне найденную область фотографии сохранить в JPG и сделать строго определенного размера? Например 100х100 пикселей. Спасибо.
  19. С марковскими моделями не стал разбираться, а с PCA сразу с ходу пошло дело. Неплохо работает! Мануал на английском тема)
  20. Я так понял пример программы, который вы прикрепили в начале топика, это на C Builder? Ниразу просто с ним не работал и не встречался) Не имеется подобного проекта для Visual studio с++/cli? А по поводу статьи на хабре, очень доступно, врочем как и всегда, спасибо)
  21. Да, все это здорово, но все это чистая математическая теория, без практической реализации на какой-либо платформе. Вы пробовали использовать программу выложенную в начале темы, со своими наборами фотографий? Или только стандартные?
  22. Всем привет! Очень сложная тема и с ходу почему то не дается. Пытаюсь применить для MS Visual studio 2010 c++/cli. Может у кого-нибудь завалялись руководства или ссылки на них, был бы очень признателен) Что то вроде такого, пусть даже на английском Детектирование Лиц Каскадами Хаара
  23. Решил проблемму с закрытием процесса, но по-моему как то по извращенски просто переопределив переменную в обработчике закрытия формы. Потому что static у CvCapture *capture, ничего не изменил и не устранил ошибку с cvReleaseCapture: private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { CvCapture *capture; // Переопределяем capture и удаляем этот объект timer1->Stop(); capture = cvCreateCameraCapture(CV_CAP_ANY); cvReleaseCapture(&capture); this->Close(); }
  24. Чет всё равно не удается закрыть процесс( Что еще можно сделать? Что именно с cvWaitKey() проделать? И зачем делать capture статиком?
  25. На самом деле пробовал я удалять с помощью delete image, всё равно растет. Единственно что утешает, это что память занимается очень медленно, иногда чуток убывает. Но все равно спасибо вам)
×