Как оценить состояние светодиодов с помощью OpenCV? - PullRequest
0 голосов
/ 16 февраля 2020

Я только начинаю с OpenCV, и это потрясающий фреймворк. Для моего текущего проекта мне нужно определить состояние устройства, посмотрев на его светодиоды состояния. На данный момент я немного ошеломлен всеми этими модулями и возможностями, и, конечно, всегда есть несколько способов сделать что-то. Я надеюсь, что кто-то с большим опытом может показать мне стратегию решения этой проблемы.

Но давайте начнем, это то, о чем я говорю. Типичный кадр, взятый из видеопотока: Video input in standard situation

Как видите, камера обычно сидит в темноте и смотрит на эту панель. Я отметил важную часть зеленым прямоугольником. Из того, что я понимаю до сих пор, я думаю, что это может быть первым подходом. Пожалуйста, исправьте меня, если есть неправильное представление:

В конце концов, у меня не одно устройство, а несколько тысяч, и есть 4 или 5 различных типов устройств. Каждый тип устройства имеет типичное фиксированное расположение светодиодов, как на рисунке выше. Так сказать, фиксированная подпись, но каждый светодиод может находиться в разных состояниях.

Поскольку положение и угол камеры могут варьироваться, я думаю, что было бы лучше не просто определять пиксели, которые относятся к каждому светодиоду. Я думаю об этой цепочке:

  1. Определите тип устройства на основе расположения светодиодов на панели
  2. Обрежьте и открутите изображение в интересующей области
  3. Найдите каждый светодиод как отдельное свойство (каждый тип устройства имеет фиксированный набор свойств (светодиоды))
  4. Переберите каждое свойство и определите его состояние (например, выкл. / Темно, красный, зеленый, желтый, белый )

Итак, другими словами, я считаю необходимым классифицировать объект, а затем проанализировать его свойства (особенности?) И сопоставить их с точками данных с дискретными состояниями. Распознавание или классификация должны работать с перекошенной перспективой, поэтому, вероятно, будет необходимо преобразовать изображение в нормализованную форму и, возможно, одновременно обрезать его, чтобы вы выбросили все, что находится за пределами зеленого прямоугольника.

Некоторые светодиоды могут быть выключены, так что камера их не увидит. Как бы я позаботился об этом, когда дело доходит до распознавания объектов?

Так же, как sidenote: изображение выше было взято из видео, которое я снял на своем смартфоне, что, конечно, не идеально, как автомат c включается экспозиция, и светодиоды выглядят яркими и дают ореолы. В конце я хочу использовать малиновую камеру (v2) с фиксированной экспозицией, чтобы избежать этого. Я надеюсь, что этот пример все еще помогает донести идею.

Моя общая идея в порядке или есть лучший подход? Какие методы и модули подходят для каждого из этапов? Заранее благодарим за ваши идеи и комментарии.

Обновление : Вот нетронутая версия примера изображения выше

...