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

Smorodov

Главные администраторы
  • Количество публикаций

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

  • Посещение

  • Days Won

    327

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

  1. OpenCV содержит в себе много примеров программ, и обучающих примеров. см. поддиректорию samples. Ну и в документации примеров много разобрано: http://docs.opencv.org/master/
  2. Убрать этот шум будет довольно проблематично, но сверточная нейронка способна работать с таким шумом и распознать цифры. Задача похожа на распознавание капчи, посмотрите здесь: https://habrahabr.ru/post/116222/ , может будет полезно.
  3. Реализовал измеритель пульса по изображению с камеры (pdf-ка в архиве с исходниками). Работает не очень устойчиво (думаю из-за того что переключаются каналы разделенные при помощи ICA), но при удачном исходе на разложении Фурье виден острый четкий пик. Предлагаю желающим поэксперименировать Там встроен детектор лица, но и так работает Исходники (используются: OpenCV и Eigen): HeartRateMeasure.rar UPD: добавил комментариев и немного подправил исходники. Только что откопал интересный ресурс по теме: http://people.csail.mit.edu/mrub/vidmag/ с исходниками на MATLAB и видеороликами (обязательно посмотрите ). И еще исходники на питоне: https://github.com/thearn/webcam-pulse-detector
  4. Ну, можно для негров отдельный эллипс организовать Распределения можно взять здесь: https://www.cs.rutgers.edu/~elgammal/pub/skin.pdf
  5. Собственно есть изящный метод как раз с эллипсом: cv::Mat Src = imread("image.jpg", 1); cv::Mat mask = Mat::zeros(Src.size(), CV_8UC1); Mat crcb; skinCrCbHist = Mat::zeros(Size(256, 256), CV_8UC1); cvtColor(Src, crcb, CV_BGR2YCrCb); ellipse(skinCrCbHist, Point(113, 155.6), Size(23.4, 15.2), 43.0, 0.0, 360.0, Scalar(255, 255, 255), -1); double t = (double)getTickCount(); for (size_t i = 0; i < Src.rows; i++) { for (size_t j = 0; j < Src.cols; j++) { Scalar v; v = crcb.at<Vec3b>(i, j); int s=skinCrCbHist.at<uchar>(v[1], v[2]); // проверяем попали ли в эллипс, если да, то кожа if (s > 0) { mask.at<uchar>(i, j) = 255; } } } и довольно неплохо работает.
  6. Так есть же SEGNET на том же Keras, можно там посмотреть: https://github.com/imlab-uiip/keras-segnet
  7. А гауссианы жестко сидят на каналах, или они просто собирают все максимумы подряд и затем сортируется кто куда идет ?
  8. Можно просто в переменную среды PATH добавить путь к папке с DLL-ками.
  9. В qt может быть расширение .a , но они должны создаваться при компиляции Opencv, пройдите поиском. При создании динамических библиотек обычно создается пара файлов dll и lib (или .a) . В проекте подключают lib а при запуске программа должна иметь возможность найти соответствующий dll файл.
  10. Так lib надо подключать, а не dll.
  11. Да я пока в других краях работаю, больше по нейронкам. А ее как поставишь учиться, ничего больше делать невозможно, все жутко тормозит.
  12. Ковыряю DLIB, наткнулся на оптимизатор параметров венгерского алгоритма в DLIB : examples/assignment_learning_ex.cpp, насколько я понимаю изучается метрика расстояний между объектами для лучшего трекинга. Есть еще learning_to_track_ex.cpp . Плюс к тому оптимизатор кроссвалидацией: model_selection_ex.cpp
  13. Что хорошо реализуется, а что плохо, можно прикинуть изучив основные паттерны, например здесь: http://my-it-notes.com/2013/06/gpu-processing-intro-cuda-opencl/ на каждый из них, при желании, всегда можно найти примеры реализации.
  14. Глянь еще эту штуку: https://github.com/Tencent/ncnn
  15. Посмотрел патент, там по моему слишком конкретная формула патентуемого метода, если измените один два пункта, это уже не будет подпадать под патент. По поводу аналогов, поищите по запросу "Driver Drowsiness Detection System".
  16. ASM/AAM в OpenCV

    Поситайте еще про FACS, здесь https://ru.wikipedia.org/wiki/Система_кодирования_лицевых_движений и у главного эксперта по ним http://www.paulekman.com/product-category/facs/ .
  17. В качестве оптимизатора думается можно взять любой нелинейный понравившийся из многих доступных в сети. Наример http://ab-initio.mit.edu/wiki/index.php/NLopt , https://software.sandia.gov/opt++/ или встроенный в DLIB http://dlib.net/optimization.html .
  18. Мне видится, что нужно настраивать параметры системы блоками. Например: детектор отдельно фильтр Кальмана отдельно. Для детектора можно использовать статические картинки и тут вроде все понятно. Есть вполне очевидная целевая функция, есть вектор параметров. Засовываем в оптимизатор, получаем результат. Весовые коэффициенты, например "время детекта"/"точность детекта", задавать пользователем. Для трекера, брать рандомный кусок, считать время до срыва трека. Далее применять целевую функцию на этом куске, понятно, что тут без весовых коэффициентов задаваемых пользователем тоже не обойтись. И засовывать в оптимизатор. Каждую итерацию брать новый рандомный кусок до срыва трека. Получится что с улучшением качества, будет расти набор данных для подстройки, что позволит недать более точные оптимизации.
  19. Сравнение изображений

    Здесь интересное применение GAN, может пригодится: https://github.com/hiwonjoon/cycle-gan-tf
  20. А, например, этот смотрели ? https://www.jpjodoin.com/urbantracker/ Ну и наш с Nuzhny проект: https://github.com/Smorodov/Multitarget-tracker
  21. Посмотрел видео, для снега как то стремно, поддержу что не нужно добавлять это в основную ветку, по крайней мере пока с параметрами не будет определенности.
  22. Думается это уменьшенное, но не очень сильно. Уменьшать можно до тех пор, пока все объекты которые нужно детектировать различимы. А пропускать кадры, да еще один хороший способ снизить нагрузку на железо.
  23. Возможно, для ускорения поиска, изображение нужно уменьшить раза в 4, и шаблон также, точность поиска это уменьшить не должно, а искать будет намного быстрее. Затем просто пересчитать координаты в исходный масштаб.
  24. Да, нейронка, в данном случае как из пушки по воробьям, если бы вы изначально подробно описали задачу, то можно было бы найти решение быстрее. А так да, Nuzhny прав,поиск по шаблону скорее всего будет работать здесь оптимально см. http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html Если нужно распознавать что заэлемент, а не искать место расположения элемента, тогда можно обучить маленькую трехслойную нейронку..
×