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

ProgRoman

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

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

  • Посещение

  • Days Won

    7

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

  1. всем привет, разбираюсь с библиотекой http://conv-net.sourceforge.net/doc/index.html там реализована свёрточная сеть на С++ с использованием opencv.. может кто работал с этой библиотекой. У меня даже xml не может загрузиться вроде бы делаю всё правильно, пробовал загружать mnist.xml и sample.xml результат один вылет происходит тут ну а потом сообщение о вылете получаем тут
  2. Добрый день, вот пытаюсь разобраться прочитал, что в библиотеке CCV есть более современные(по сравнению с OpenCV) методы классификации с помощью глубокого обучения свёрточных нейронных сетей вот нашёл пример у них в папке /bin называется cnnclassify.c, но ни как не могу запустить его, возможно кто-то пробовал работать с этой библиотекой, как её надо настроить?.. под windows она вроде бы не работает.. работает только под линукс.. поэтому я пробовал запускать её на ubuntu в netbeans 8.0, но запустить так и не удалось, ошибки сразу при построении причём ругается на функции библиотеки ccv...
  3. Отлично! всё получилось, для этого мне пришлось пересобрать либу(libccv) и изменить makefile, собрал её без оптимизации и добавил ещё отладочную информацию и всё стало работать наверно что-то с оптимизацией связано было.. CFLAGS := -g -O0 -ffast-math -Wall $(CFLAGS)# -fprofile-arcs -ftest-coverage NVFLAGS := -g -O0 $(NVFLAGS) это были изменения теперь при отладке можно заходить в ccv_read ну и другие функции) при выполнении команды выдал список точек при выполнении появился набор чисел так, что всё работает спасибо всем за помощь! Буду разбираться, что за цифры и что с ними можно сделать..
  4. у меня ccv_read() кода нету почему то.. есть дефайн в ccv.h, а какого-нибудь ccv.c нету где есть эта функция ccv.h ..... int ccv_read_impl(const void* in, ccv_dense_matrix_t** x, int type, int rows, int cols, int scanline); #define ccv_read_n(in, x, type, rows, cols, scanline, ...) \ ccv_read_impl(in, x, type, rows, cols, scanline) #define ccv_read(in, x, type, ...) \ ccv_read_n(in, x, type, ##__VA_ARGS__, 0, 0, 0) // this is a way to implement function-signature based dispatch, you can call either // ccv_read(in, x, type) or ccv_read(in, x, type, rows, cols, scanline) // notice that you can implement this with va_* functions, but that is not type-safe ccv_read_impl, которая вызывается в свою очередь из ccv_read_n, а она из ccv_read так же нигде нету кода.. как это возможно.. ставлю точку останова она просто перескакивает через неё.. не заходит внутрь...
  5. скомпилировать под netbeans всё таки получилось надо в настройках изменить gcc на clang и добавить дополнительные параметры, которые есть в make файле, всё собралось без ошибок, тут такая проблема при чтении изображения ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE); изображение не считывается, image равен 0 всегда, не понятно почему так.. пробовал и абсолютный и относительный путь всё равно image равен 0..
  6. А как можно результат посмотреть?.. у меня при вводе той же команды только с sudo вроде бы стало выполняться.. в папке sample ничего не появляется.. странно.. если ./cnnclassify вызывать таким образом то.. будет следующее и ещё вопрос такой каким образом можно отлаживаться, а то работать в камандной строке не всегда удобно) в netbeans как я понял надо саму среде как-то настраивать..
  7. да вроде бы стоит у меня libpng вот полный список, что говорит при конфигурации
  8. попробовал в командной строке. make собрал все файлы из ./bin без ошибок, появились объектные файлы и исполняемые ну а далее я как в примере в doc вызвал исполняемый файл ./siftmatch ../samples/book.png ../samples/scene.png выдало следующий ответ попробовал cnnclassify ./cnnclassify ../samples/dex.png ../samples/image-net.sqlite3 output.png ответ такой сами исполняемые файлы собраны без ошибок..
  9. Пробовал ещё и под Debian собирать.. всё собралось, получил libccv.a, а примеры выполнить так и не получилось, почему-то ошибки одни и теже.. как-то очень странно.. не понятно почему eglibc не подключилась.. (пакет eglibc-source устанавливал)... может быть в настройках netbeans надо что-то прописывать..
  10. а как её подключить я сейчас установил этот пакет eglibc как ты писал выше... попробовал заново откомпилировать ошибки теже удалил либу libccv.a и пересобрал.. но почему-то ошибки всё теже странно... как-то...
  11. Как-то странно проверил файл ccv_convnet.c как-то не нашёл там действительно функции powf.. хотя в самом коде она используется.. что-то непонятно.. На самом деле пробовал и другие примеры, что-то пока без результатно... к прмеру при выполнении siftmatch.c появляется следуещее
  12. У меня почему-то не всё компилируется (пробую код из примера ./bin/cnnclassify.c) к примеру код компилируется вроде бы всё нормально... assert(argc >= 3); ccv_enable_default_cache(); ccv_dense_matrix_t* image = 0; ccv_read(argv[1], &image, CCV_IO_ANY_FILE | CCV_IO_RGB_COLOR); if (image != 0) { //ccv_convnet_t* convnet = ccv_convnet_read(0, argv[2]); ccv_dense_matrix_t* input = 0; //ccv_convnet_input_formation(convnet, image, &input); ccv_matrix_free(image); uint elapsed_time = get_current_time(); ccv_array_t* rank = 0; } ccv_drain_cache(); но если же раскомментировать строчку ccv_convnet_t* convnet = ccv_convnet_read(0, argv[2]); то идёт ошибка.. что-то не понятно, вроде бы ccv_convnet_t есть в библиотеке ccv не знаю что и думать... в компоновщике в дополнительные каталоги библиотек добавил libccv.a
  13. Отлично! make выполнился без ошибок, создалась библиотека libccv.a теперь пробую примеры запускать)
  14. что-то у меня какой-то косяк с установкой, так после когфигурации получаю такое сообщение далее делаю make и получаю следующее
  15. после команды ./configure получаю следующее ..... checking for libavcodec/avcodec.h... no checking libavformat/avformat.h usability... no checking libavformat/avformat.h presence... no checking for libavformat/avformat.h... no checking libswscale/swscale.h usability... no checking libswscale/swscale.h presence... no checking for libswscale/swscale.h... no checking for cos in -lm... yes checking for cblas_dgemm in -lgslcblas... no checking for gsl_blas_dgemm in -lgsl... no checking cuda... no правильно я понимаю везде где no надо установить эти библиотеки, где их брать откуда устанавливать поясните пожалуйста) в линуксе я новичок)
  16. shape context algorithm

    Всем привет, вот разбираюсь с алгоритмом Shape context ниже ссылки на него Shape context Wiki Matching with Shape Contexts Shape context как я понял действует он следующим образом 1. сперва надо получить контуры изображений, затем из изображения(контура) берутся N точек pi где i = 1 до N 2. для каждой точки строится n-1 вектор 3. для каждой точки pi получить соответствующую гистограмму hi мне единственно пока не очень понятно как строится эта гистограмма
  17. Добрый день, в samples opencv есть примеры работы детектора latent svm можно даже найти файлы xml для обучения модели детектора они обучены как я понимаю на базе данных INRIA-2007 и есть для каждого из 20-ти классов изображений вопрос в том как их сгенерировать самому для своей задачи?
  18. Детекторы

    Добрый день, посоветуйте пожалуйста качественный детектор, который мог бы отслеживать либо головы, либо самих людей.. ну в общем случае просто объекты конечно, мне необходимо периодически его запускать для трекинга вот, тут как я вижу два варианта развития событий 1. Сперва запускаем детектор, получаем блобы и их тречим, периодически запуская детектор снова для проверки 2. у нас уже есть блобы полученные каким-то другим способом(к примеру вычитанием фона), но без запуска детектора вот и нам во первых надо убедиться что блобы являются интересующимися объектами для нас ну т.е. что это объекты трекинга вот, и второе надо разъединить несколько людей в одном блобе на разные блобы. Для этого мы так же должны запустить детектор, который уже в блобах и должен выделить человека или сказать что его там нету, возможно что в блобе несколько людей. Пока пробовал стандартные средства в opencv это CascadeClassifier на различных наборах и HOGDescriptor, отработали они достаточно плохо часто вообще просто не видели людей вот. Сейчас я пробую обучить каскады и хога под свою задачу думаю будет получше. Наверное есть более эффективные детекторы возможно кто сталкивался или работал с этим?..
  19. Трекинг объектов.

    Пока удалить эти полосы не получилось.. странно ещё то, что для фильтра Калмана их нету, а для фильтра частиц они есть...
  20. Трекинг объектов.

    Да да их они в фильтре частиц очень видны поэтому я подумал, что это выбросы самого фильтра) спасибо за подсказку попробую подправить
  21. Трекинг объектов.

    странно сейчас пересматривал повторно запускал трекер с фильтром частиц и такое ощущение, что когда трек рвётся ну начинается время жизни нового объекта, то он показывает эти полосы ну как бы траекторию первую и последнюю точку трека...
  22. Трекинг объектов.

    а вот то что периодически возникают полосы от трека в разные стороны это из-за того, что на частицы влияют другие движущиеся объекты?...
  23. Трекинг объектов.

    Спасибо за ответ ниже даю ссылки на ролики работы трекера с разными фильтрами, фильтром частиц и фильтром Калмана по роликам можно сказать, что всё же у фильтра Калмана меньше ложняка получается возможно настроил я как-то не так фильтр частиц, но приблизительно такой вариант получался всегда, ниже прикрепил класс фильтр частиц написанный по аналогии с Калманом. Пробовал различные распределения вероятностей для частиц.. особо сильного улучшения не было //condens->flConfidence[i] = exp(1.0 / (sqrt(diffX * diffX + diffY * diffY))); //condens->flConfidence[i] = exp(-(sqrt(diffX * diffX + diffY * diffY))); //condens->flConfidence[i] = exp(-((diffX*diffX)/(2*diffX * diffX + 2*diffY * diffY)))*exp(-((diffY*diffY)/(2*diffX * diffX + 2*diffY * diffY))); //condens->flConfidence[i] = exp(-((diffX*diffX)/(2*xRange *yRange)))*exp(-((diffY*diffY)/(2*xRange *yRange))); condens->flConfidence[i] = 1.0 / (sqrt(diffX * diffX + diffY * diffY)); ParticleFilter.h ParticleFilter.cpp
  24. Трекинг объектов.

    большое спасибо за разъяснения по работе фильтра вот ещё вопрос я составляю класс ParticleFilter по аналогии с классом Kalman из вашей программы. Приведу заголовочный файл class TKalmanFilter { public: KalmanFilter* kalman; double deltatime; //приращение времени Point2f LastResult; TKalmanFilter(Point2f p,float dt=0.2,float Accel_noise_mag=0.5); ~TKalmanFilter(); Point2f GetPrediction(); Point2f Update(Point2f p, bool DataCorrect); }; для класса ParticleFilter всё довольно похоже(там конечно свои параметры) метод GetPrediction() получается довольно просто cv::Point statePt(condens->State[0], condens->State[1]); и у нас есть точка. а вот метод Point2f Update(Point2f p, bool DataCorrect); пока ставит меня в тупик если смотреть на калмана, то там вызывается специальный метод внутреннего класса Калмана для коррекции // Коррекция Mat estimated = kalman->correct(measurement); LastResult.x=estimated.at<float>(0); //уточняем, используя данные измерений LastResult.y=estimated.at<float>(1); ничего похожего у CvConDensation я не нашёл... но как-то же надо обновлять координаты...
  25. Трекинг объектов.

    я правильно понимаю если xRange и yRange задают диапазон в котором происходит распределение частиц то мне надо задавать не по всему размеру изображения, а только по выделенному прямоугольнику + какой-то шаг ну т.к. человек (объект) может сместиться.. или даже наверно так просто надо просто задавать распределение частиц внутри каждого прямоугольника вроде бы так... а надо ли это делать я не совсем понимаю.. вот у нас есть несколько блобов для каждого из них мы запускаем фильтр частиц он предсказывает для этого блоба следующую координату подобно Калману и всё хорошо... разве может быть такое, что фильтр частиц запущенный для одного блоба покажет направление другого?.. если это возможно.. то задача значительно усложняется вроде бы...
×