Jump to content
Compvision.ru

Leaderboard

  1. Smorodov

    Smorodov

    Главные администраторы


    • Points

      7

    • Content count

      3,848


  2. Nuzhny

    Nuzhny

    Пользователи


    • Points

      3

    • Content count

      1,417


  3. Pavia00

    Pavia00

    Пользователи


    • Points

      3

    • Content count

      108


  4. OmgZomg

    OmgZomg

    Пользователи


    • Points

      1

    • Content count

      29



Popular Content

Showing most liked content since 01/26/2021 in all areas

  1. 2 points
    Ищи контуры и закрашивай те, площадь которых меньше некоторого порога
  2. 2 points
    7 Изменить размер гораздопроще чем Вы думаете. Чип сенсора как стоял в плоскости физического фокуса так и стоит. Просто отключаются не используются пиксели с края сенсора. Это сделать просто изменив приделы счётчика который перебирает пиксели камеры во время чтения. Когда как масштабирование требует заблюрить соседние пиксели и произвести децимацию оставив к примеру через один каждый второй пиксель. Вот только обычно масштабирование идёт не кратно 2 а через дробные значения к 3/2. Что требует уже усложнения чипов камеры. Так вот при изменении используемой области камеры меняется угол обзора. В математической модели это приводит к изменению математического фокуса. Известно что бочкообразые и подушкообразные искажения определяются параметрами линзы k1, k3 (внутренние параметры камеры) а они в свою очередь зависят от математического фокуса камеры, то они тоже уплывут.
  3. 1 point
    Посмотрите еще TLD tracker, ну и https://github.com/Smorodov/Multitarget-tracker . LK tracker быстрый, но не самый надежный вариант. Я имею ввиду, комбинацию трекеров, простой и быстрый, для коротких треков, между вызовами сложных и точных, для захвата/восстановления трека. Это даст регулируесый уровень компромиса между надежностью и вычислительными затратами/плавностью трека. Кстати, я как то делал проект с BFM : https://github.com/Smorodov/nano_bfm И еще SMPL: https://github.com/Smorodov/nano_smpl
  4. 1 point
    Отвечу на свой вопрос, может быть кому-то пригодится. Christoph Rackwitz дал мне хороший совет: Я изменил алгоритм. Когда угловые точки передаются алгоритму MOSSE, а не оптическому потоку то курсор ведет себя гораздо стабильнее. Возникла небольшая проблема с дискретным перемещением, поскольку рамки объектов перемещались одновременно на равное число пикселей. Поэтому и курсор двигался скачками. Поэтому пришлось устанавливать фильтр не на курсор, а на каждую точку. Но, как видно на видео, в итоге нагрузка на процессор не увеличилась. https://www.youtube.com/watch?v=WKwuas0GVkA 1. Lucas-Kanade optical flow: goodFeaturesToTrack(), cornerSubPix(), calcOpticalFlowPyrLK(), cursor EWMA filter 2. MOSSE object tracking: goodFeaturesToTrack(), cornerSubPix(), cv::legacy::TrackerMOSSE, all points EWMA filtration И, конечно, мне нужно было не забывать включить библиотеку tracking453.lib to Linker. Я потратил полдня, выясняя причину unresolved external symbol LNK2001 error при включении cv::legacy::Tracker. Почему то включение трекера из основной библиотеки (cv::Tracker) не приводило к этой ошибке компиляции, это сбивало с толку. Basel Face model, если получится, попробую для отслеживания мимики. Smorodov, спасибо что обратили внимание!
  5. 1 point
    Здравствуйте, предварительныя обработка может убрать шум, если усрежнять кадры или делать морфологию, но, как вы заметили, это не сильно добавляет стабильности, за исключением некоторых редких случаев. Намного лучшие результаты дают фильтры по модели. Это предполагает, что лицо имеет меньше степеней свободы чем независимые точки в том количестве что выдает детектор. Если кратко то у точек 3*N степеней свободы, а у лица M + 6, где N - количество точек, M - количество независимых групп мышц. Соответственно, точки не могут гулять как попало, они должны принадлежать модели. Есть параметрические модели лиц, например Basel Face model одна из наиьолее популярных, она довольно тяжелая, но можно достать из нее только нужные точки. Дальше линейная оптимизация, поможет сопоставить 2D и 3D, найти поворот, масштаб, смещение и параметры формы. Вот тут посмотрите: https://github.com/3d-morphable-models/curated-list-of-awesome-3D-Morphable-Model-software-and-data
  6. 1 point
  7. 1 point
    Проверил несколько камер, и действительно оказалось, что поведение при изменении разрешения достаточно сильно отличается. Особо не углублялся как именно обрабатывают зум каждая, но получилось, что матрицы при разных разрешениях сильнее отличаются, нежели просто пропорцией.
  8. 1 point
    А вот ничего подобного. Там два случая. Изменени плотности и изменение размера матрицы. Как правило задействуется последний что вносит геометрические искажения. В зависимости от формы линзы(рыбий глаз) мы ещё и зум можем поиметь(полу цифровой зум)
  9. 1 point
    Ну, оптика тут остается та же, меняется только плотность пикселей, поэтому думается достаточно будет поменять fx, fy, cx, cy. Дальше все как с исходной матрицей.
  10. 1 point
    Разобрался >>> im.shape (204, 512, 512) >>> cropped= im[:,374:274, 406:309] >>> tifffile.imsave('1.tiff',cropped) >>> cropped= im[:,274:374, 309:406] >>> cropped.shape (204, 100, 97)
  11. 1 point
    Как раз лучше когда не в одной плоскости. По поводу PnP есть неплохой пример здесь: https://learnopencv.com/head-pose-estimation-using-opencv-and-dlib/ Для плоских объектов лучше использовать что то вроде: https://github.com/arthur1026/RobustPlanarPose Вот, как то делал что то такое: MarkerTracker.rar
  12. 1 point
    Как я понял из описания: Функция возвращает ROI с корректными пикселями в параметре validPixROI . Alpha -задает порог по используемым пикселям, допустим пиксели ценные (сильные угловые точки), то они пройдут высокий порог, а на однотонном гладком участке точки будут малоценными и будут давать большую погрешность при сопоставлении, их ценность близка к 0. Вот из alpha и отсечет в зависимости от значения.
  13. 1 point
    Еще ссылка в тему: https://github.com/RaubCamaioni/OpenCV_Position И статья к проекту: https://medium.com/analytics-vidhya/using-homography-for-pose-estimation-in-opencv-a7215f260fdd
  14. 1 point
    Гомография же задаёт в общем случае перспективное преобразование. В этом случае, между плоскостями двух снимков есть 2 угла: поворота и наклона. И они, кажется, связаны друг с другом. Если мы имеем дело с аффинным преобразованием, то да - у нас есть один угол поворота и всё.
×