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

Wildcat

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

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

  • Посещение

  • Days Won

    1

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

  1. Компиляция 2.3.1 в VS2008 с Cuda

    Пытаюсь откомпилировать в VS2008 OpenCV 2.3.1 c поддержкой графических карт. Компилируется все, кроме модуля opencv_gpu. Вылезают ошибки неразрешенных функций cv::gpu::error(...) Из сопутствующего: Компилирую с tbb (если это может на что-то повлиять) - версия tbb40_20120201oss Стоит Cuda - cudatoolkit_4.0.17_win_32.msi и соответствующий sdk Может я что-то не подключила? Подскажите?
  2. Компиляция 2.3.1 в VS2008 с Cuda

    Куда есть и большинство модулей *.cu компилируются корректно. Нашла даже эту функцию с нужными параметрами объявленную в файле safe_call.hpp и этот файл должен быть виден в модуле, в котором возникает ошибка линковки - stereobp.cu - Error 67 error LNK2001: unresolved external symbol "void __cdecl cv::gpu::error(char const *,char const *,int,char const *)" (?error@gpu@cv@@YAXPBD0H0@Z) cuda_compile_generated_stereobp.cu.obj opencv_gpu. Но почему-то не находит его.
  3. Каскады и wchar_t

    Встала передо мной такая задача. Надо грузить каскады (CascadeClassifier) из файлов имена которых не char*, а wchar_t*. Для OpenCv 1.0 переписывала функции загрузки (тогда это относилось к изображениям). Переписывать конечно пришлось много, но было достаточно прозрачно, что где искать и достаточно было дойти до fopen и заменить ее на _wfopen. Но в версии 2.3 что-то они сильно намудрили с FileStorage и никак не могу найти концы. Кто-нибудь уже решал эту проблему? Или может будет вообще проще написать функции загрузки и сохранения загруженных каскадов...
  4. Каскады и wchar_t

    Попробовала с картинками - работает. Но тут есть 1 подвох - надо знать в какой кодировке представлен wchar_t.
  5. CUDA для Хаара

    Не все каскады корректно запускаются на куде. Там есть параметр <tilted>0</tilted>. Если встречается место, где он равен 1, то на куде каскад не запустится. А вот точность действительно для cpu и gpu сильно отличается. Почему - понять не удалось. Да, кстати при запуске по дефолту у куда-каскада и обычного разные параметры масштабируемости и соседей.
  6. Нашла в чем проблема - изображения, по которым строится РСА должны быть приведены к типу CV_32FC1. Тогда все строится вполне корректно. Хотя в процессе поиска ошибки все переписала заново, код стал другим. Может еще есть какие-то неточности.
  7. Пытаюсь переписать распознавание по PCA на новый OpenCv 2.3. Там есть класс РСА, с помощью которого можно реализовать это. Вот что у меня получилось по коду: #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/gpu/gpu.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/features2d/features2d.hpp> #include <vector> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { ArgParser parser(argc, argv); char filelist[200]; try { if (!parser.queryFilename("filelist", filelist)) { printf("Filelist not specified.\n"); _getch(); return -1; } } catch (char* str) { printf("%s\n", str); _getch(); return -1; } FilelistProcessor flP(filelist); const unsigned numpics = 100; vector <cv::Mat> img_tr; for (unsigned i = 0; i < numpics; i++) { cv::Mat itmp = cv::imread(flP.getfile(i), 0); img_tr.push_back(itmp); } unsigned imsize = img_tr[0].rows*img_tr[0].cols; cv::Mat mat_tr(numpics, imsize, img_tr[0].type()); for (unsigned i = 0; i < numpics; i++) { cv::Mat matRow = mat_tr.row(i); memcpy(matRow.data, img_tr[i].data, imsize*sizeof(unsigned char)); } const unsigned maxComponents = 60; cv::PCA eigenvectorsCompute(mat_tr, cv::Mat(), CV_PCA_DATA_AS_ROW, maxComponents); cv::Mat newImg = cv::imread(flP.getfile(numpics + 1), 0); cv::Mat newImgTr(1, imsize, img_tr[0].type()); { cv::Mat matRow = newImgTr.row(0); memcpy(matRow.data, newImg.data, imsize*sizeof(unsigned char)); } cv::Mat coeffs; coeffs.create(1, maxComponents, CV_32F); eigenvectorsCompute.project(newImgTr, coeffs); return 0; } FilelistProcessor - читает список файлов с изображениями лица. Файлов больше 100, поэтому ошибки в количестве векторов быть не может. Проблема в том, что полученные на выходе coeffs - нулевые. Что может быть не так?
  8. cvResize в версии 2.2

    Не подскажете куда переехала или во что преобразовалась функция cvResize в версии 2.2?
  9. cvResize в версии 2.2

    Спасибо, Вы просто самый полезный человек, как не задам вопрос, Вы знаете на него ответ
  10. HOG OpenCV 1.20

    Говорят (точнее пишут) на многих форумах, что формат svm классификатора получаемого при CvSVM::train оказывается несовместим с форматом, классификатора нужным при загрузке в HOG дескриптор. Ну на самом деле не попробуешь не узнаешь Буду делать, а там если что хорошее получится - напишу.
  11. HOG OpenCV 1.20

    А может кто знает, как можно обучить свой детектор и встроить его вместо cv::HOGDescriptor::getDefaultPeopleDetector()? Делать это хочу в openCv 2.2
  12. Я попробовала Хаара и HOG, и различные характеристики области (среднее, дисперсия, несколько первых собственных векторов, то же для градиентных изображений) с нейросетевым классификатором поверх этого. Пока все в начальной стадии, но моя статистика такая: Хаар: работает быстро, обучался на соответствующих примерах (часть ролика, а на другой части его же тестировался) находит очень много ложных примеров, иногда находит людей. HOG: стандартный из opencv2.2 пока переобучение классификатора не делала, если находит пешехода, то почти всегда прав, но пропускает достаточно много. Хочу попробовать переобучить svm на своих примерах, посмотреть как будет работать. Нейронные сети: обучались, как и хаар, находят больше пешеходов чем HOG, но и всякой лажи тоже больше находят. Тут наверно можно еще какие-то признаки добавить, гистограммы слышала, что используют еще... Приемлемого решения для себя пока не нашла.
  13. Спасибо за помощь :)

  14. opencv 2.2

    Спасибо, нашла, действительно все работает. Правда качество распознавания (я тестирую на своем ролике) не очень высокое.
  15. opencv 2.2

    Нашла пример из свн, правда не уверена, что тот, который нужно он в группе gpu проектов и у меня говорит. что opencv скомпилирован без поддержки gpu и поэтому не работает? Мне придется перекомпилировать OpenCv?
  16. opencv 2.2

    С вашего позволения тоже напишу тут вопрос: Пытаюсь разобраться с программой поиска пешеходов с помощью HOG алгоритма. Поставила VS2010 и opencv 2.2. В файле internal.hpp есть следующий код: #else namespace cv { class BlockedRange { public: BlockedRange() : _begin(0), _end(0), _grainsize(0) {} BlockedRange(int b, int e, int g=1) : _begin(, _end(e), _grainsize(g) {} int begin() const { return _begin; } int end() const { return _end; } int grainsize() const { return _grainsize; } protected: int _begin, _end, _grainsize; }; template<typename Body> static inline void parallel_for( const BlockedRange& range, const Body& body ) { body(range); } template<typename Iterator, typename Body> static inline void parallel_do( Iterator first, Iterator last, const Body& body ) { for( ; first != last; ++first ) body(*first); } class Split {}; template<typename Body> static inline void parallel_reduce( const BlockedRange& range, Body& body ) { body(range); } typedef std::vector<Rect> ConcurrentRectVector; } #endif [/code] Этот кусок кода активен (т.е. условие при #else должно выполняться), но в основном файле cvhog.cpp [code] struct HOGInvoker { HOGInvoker( const HOGDescriptor* _hog, const Mat& _img, double _hitThreshold, Size _winStride, Size _padding, const double* _levelScale, ConcurrentRectVector* _vec ) <------------------------ { hog = _hog; img = _img; hitThreshold = _hitThreshold; winStride = _winStride; padding = _padding; levelScale = _levelScale; vec = _vec; } ... ругается, что ConcurrentRectVector некорректно используется (С2061 - номер ошибки, строчка со стрелочкой). Как попровить, помогите, пожалуйста.
  17. Тренировка каскадов Хаара

    Нашла проблему - попробовала изменять параметры -nstages -nsplits, Раньше было 20 и 2, при 3 и 3 находятся лица с правым поворотом, только работает в таком варианте распознаватель гораздо медленнее. Наверно можно еще поиследовать эти параметры и выбрать наилучший вариант... А есть какие-нибудь правила по выбору этих параметров в зависимости от сложности данных и объема выборки, ну и с учетом желаемой скорости работы?
  18. Тренировка каскадов Хаара

    В обучении я ставила ключик -nonsym и использовала ALL... Кстати попробовала отразить картинки и поискать левым классификатором - все равно ничего не находит, наверно надо что-то делать с самими картинками лиц
  19. Тренировка каскадов Хаара

    Тоже возникла интересная проблема - пытаюсь обучить каскад на лица с поворотами головы. При этом для лиц с левыми поворотами получаются средние результаты, но все же что-то распознается. А вот для лиц с правыми поворотами почти ничего не распознается. В обоих случаях положительных примеров мало, но для лиц с правыми поворотами - больше. Из-за чего такое может происходить? Как бороться?
  20. Тренировка каскадов Хаара

    Если обучение не закончено, а застопорилось, то xml файл не будет создан. Можно, конечно, его создать, но я не уверена корректно ли будет счить его обученным. Вообще обучение достаточно долгое и, может, стоит еще подождать или поискать ошибку в данных...
  21. Тренировка каскадов Хаара

    Благодарю за советы. Разобралась в чем была проблема. Я по наивности посчитала, что при создании примеров и обучении если не задать размер, то будет задан какой-то по умолчанию, но в этом была проблема. Когда явно написала размер каскад обучился.
  22. Тренировка каскадов Хаара

    Да, пользователь под которым запускается утилита имеет права администратора. И падение происходит не сразу как к файлам обращается, а уже в процессе обучения. Вот что выдает программа в окне: Data dir name: (NULL) Vec file name: positives.vec BG file name: bg.txt Num pos: 7000 Num neg: 3000 Num stages: 14 Num splits: 1 (stump as weak classifier) Mem: 200 MB Symmetric: TRUE Min hit rate: 0.995000 Max false alarm rate: 0.500000 Weight trimming: 0.950000 Equal weights: FALSE Mode: BASIC Width: 24 Height: 24 Max num of precalculated features: 3495 Applied boosting algorithm: GAB Error (valid only for Discrete and Real AdaBoost): misclass Max number of splits in tree cascade: 0 Min number of positive samples per cluster: 500 Required leaf false alarm rate: 6.10352e-005 Stage 0 loaded Stage 1 loaded Stage 2 loaded Stage 3 loaded Stage 4 loaded Stage 5 loaded Stage 6 loaded Stage 7 loaded Stage 8 loaded Tree Classifier Stage +---+---+---+---+---+---+---+---+---+ | 0| 1| 2| 3| 4| 5| 6| 7| 8| +---+---+---+---+---+---+---+---+---+ 0---1---2---3---4---5---6---7---8 Number of features used : 85848 Parent node: 8 *** 1 cluster *** POS: 964 1000 0.964000 NEG: 413 0.0128624 BACKGROUND PROCESSING TIME: 0.09 .................................. Precalculation time: 0.19 +----+----+-+---------+---------+---------+---------+ | N |%SMP|F| ST.THR | HR | FA | EXP. ERR| +----+----+-+---------+---------+---------+---------+ | 1|100%|-|-0.205523| 1.000000| 1.000000| 0.458243| +----+----+-+---------+---------+---------+---------+ | 2|100%|+|-0.283935| 1.000000| 1.000000| 0.342774| +----+----+-+---------+---------+---------+---------+ | 3| 88%|-|-0.625260| 1.000000| 1.000000| 0.245461| +----+----+-+---------+---------+---------+---------+ | 4| 90%|+|-0.805312| 1.000000| 1.000000| 0.245461| +----+----+-+---------+---------+---------+---------+ | 5| 82%|-|-0.946783| 1.000000| 1.000000| 0.228758| +----+----+-+---------+---------+---------+---------+ | 6| 81%|+|-0.892359| 1.000000| 0.973366| 0.228758| +----+----+-+---------+---------+---------+---------+ | 7| 80%|-|-1.087639| 1.000000| 0.973366| 0.214234| +----+----+-+---------+---------+---------+---------+ | 8| 78%|+|-1.152422| 0.996888| 0.963680| 0.203341| +----+----+-+---------+---------+---------+---------+ | 9| 78%|-|-1.293953| 0.995851| 0.869249| 0.196805| +----+----+-+---------+---------+---------+---------+ | 10| 77%|+|-1.325108| 0.995851| 0.866828| 0.195352| +----+----+-+---------+---------+---------+---------+ | 11| 77%|-|-1.181903| 0.997925| 0.656174| 0.186638| +----+----+-+---------+---------+---------+---------+ | 12| 77%|+|-1.386390| 0.995851| 0.702179| 0.148874| +----+----+-+---------+---------+---------+---------+ | 13| 75%|-|-1.439945| 0.995851| 0.687651| 0.145243| +----+----+-+---------+---------+---------+---------+ | 14| 76%|+|-1.304697| 0.995851| 0.636804| 0.124909| +----+----+-+---------+---------+---------+---------+ | 15| 76%|-|-1.408380| 0.995851| 0.658596| 0.102397| +----+----+-+---------+---------+---------+---------+ | 16| 74%|+|-1.347601| 0.995851| 0.605327| 0.111111| +----+----+-+---------+---------+---------+---------+ | 17| 74%|-|-1.324087| 0.995851| 0.552058| 0.099492| +----+----+-+---------+---------+---------+---------+ | 18| 73%|+|-1.258324| 0.995851| 0.508475| 0.095134| +----+----+-+---------+---------+---------+---------+
  23. Тренировка каскадов Хаара

    Пытаюсь обучить каскад хаара с помощью данной утилиты. В качестве исходных данных используется набор картинок с выделенными пешеходами (вручную). По полученным данных создаю info.dat для генерации положительных примеров. Вот его содержимое (кусочек): e:\PedestriansPics\frame00001.bmp 2 248 60 15 30 241 40 9 19 e:\PedestriansPics\frame00002.bmp 2 249 60 14 28 241 41 9 19 e:\PedestriansPics\frame00003.bmp 2 247 61 13 27 240 39 12 25 e:\PedestriansPics\frame00004.bmp 2 249 61 14 28 240 39 13 26 e:\PedestriansPics\frame00005.bmp 2 250 62 14 28 238 40 9 18 с помощью утилиты createsamples.exe создаю файл positives.vec - пока все успешно. В исходных картинках закрашиваю пешеходов черными прямоугольниками и делаю их список - файл с отрицательными примерами. Запускаю обучение каскада Хаара: haartraining.exe -vec positives.vec -bg bg.txt -npos 7000 -nneg 3000 он начинает обучаться, но потом выдает ошибку: haartraining.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства. Из-за чего такая может возникать? как исправить? Заранее благодрана
  24. Формат DPX

    Подскажите, пожалуйста, чем можно читать и писать формат dpx.
  25. Формат DPX

    Итак я нашла достаточно удобный инструмент для чтения записи таких файлов, работает корректно: OpenDPX - http://code.google.com/p/dpx/
×