Как считать обнаруженные объекты на кадре камеры? - PullRequest
0 голосов
/ 22 декабря 2019

Контекст:

  • У меня есть некоторое изображение и камера устройства iOS, на которой я получаю некоторую часть изображения и обнаруживаю некоторые объекты на нем (я получаю ограничивающие рамки, если быть точным).
  • Изображение перемещается, поэтому камера получает новую часть изображения.
  • Я хочу однозначно считать обнаруженные объекты, чтобы, если я получил часть изображения, я 'я уже прошел и нашел объекты, которые я уже посчитал, я бы просто пропустил их.
  • Решение на основе TensorFlow Lite SDK для iOS

Вот телефон того, какэто выглядит как ( и видео захвата и обнаружения ): Example of detection on frame captured from camera

Мои мысли

  1. Подсчет Движение ( сдвиги ) кадров и затем сравнение обнаруженных ограничивающих рамок с уже найденным bbss с учетом абсолютного сдвига. Проблема в том, что алгоритм сдвига не является детерминирующим и недостаточно точным, поэтому, когда я возвращаюсь к предыдущему фрагменту изображения, сдвиг определяется с некоторой ошибкой, и во время движения эта ошибка накапливается. В результате абсолютная позиция старых bbs определяется неверно. Я делаю это неправильно или это неправильное решение для моей задачи?
  2. Использование нескольких отслеживания объектов , кажется, это самый популярный и используемый способ для задач такого типа. Там довольно много разных подзадач, но в основном из них мне нужно иметь возможность повторно идентифицировать объект в последующих кадрах, иметь дело с появлением и исчезновением объектов. Было бы неплохо, если бы я мог отслеживать их, несмотря на изменение освещения и размытость изображения (для размытия я мог бы пока просто игнорировать эти кадры). Было бы также хорошо иметь дело с ситуациями, когда объекты частично или полностью закрыты в некоторых кадрах или когда два объекта пересекаются друг с другом. У меня только одна точка зрения, и перспектива стабильна, и на данный момент меня не волнует изменение масштаба, но, возможно, я сделаю это в будущем. Что я могу использовать здесь? Я столкнулся с OpenCV Camshift (https://docs.opencv.org/3.4.1/db/df8/tutorial_py_meanshift.html) и SORT (https://arxiv.org/abs/1602.00763)) и множеством других решений, основанных на глубоком обучении. Каковы лучшие практики для отслеживания и подсчета объектов в режиме реального времени здесь?
  3. Используя сшивание изображения , чтобы я считал объект на сшитом изображении. Полученное изображение будет сшиваться, как в этом видео: https://www.youtube.com/watch?v=orcYKy19mjQ. Теоретически, если изображение будет сшито правильнои дублированные фрагменты изображения будут игнорироваться, это будет простая задача просто подсчитать обнаруженные объекты. Я смотрю на алгоритм OpenCV SURF (я знаю, что он запатентован) или ORB. Это может быть способ решения задачи, чтопредостережения здесь, это будет хорошо работать на устройствах iOS?

Кто-нибудь сталкивается с подобной задачей, пожалуйста, поделитесь своим опытом :)

...