Jump to content
Compvision.ru

JoQeR

Пользователи
  • Content count

    39
  • Joined

  • Last visited

Community Reputation

0 Новичек

About JoQeR

  • Rank
    Эксперт
  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). Но про необходимость этого конвертирования вопрос актуален)
×