Использование OpenCV для решения реальной проблемы

Компьютерное зрение решает множество задач в разных отраслях. Люди используют его для наблюдения, здравоохранения, розничной торговли и даже спорта. Недавно наткнулся на интересный проект. Там мне пришлось использовать несколько методов компьютерного зрения, чтобы достичь цели.

Описание проблемы было простым. Учитывая видео производственного процесса по созданию алюминиевых пластин, решить следующее:

  1. Подсчитайте количество движений прессы.
  2. Подсчитайте количество тарелок, выходящих из каждого выстрела.
  3. Обнаружьте, когда ряды тарелок достигают тревожных меток в полосах.

Я разработал решение, используя OpenCV 3 в Python 3.

Подсчитайте количество движений прессы.

Для этой цели мне нужно было считать каждый раз, когда пресс машины находился в нижнем положении. Я решил проблему в две части. На первом этапе я отследил четко определенную часть машины, как показано на Рис. 1. Я воспользовался API отслеживания OpenCV. В API есть 8 типов трекеров. Проведя некоторые эксперименты, я обнаружил, что трекер BOOST дает наилучшие результаты.

Средство отслеживания использует ограничивающую рамку для определения объекта для отслеживания. Ограничительная рамка обновляется в каждом кадре в соответствии с движением объекта. Затем вторым шагом было обнаружение кадров, когда ограничительная рамка находилась в нижнем положении. Оттуда я просто использовал счетчик, чтобы определить количество ходов пресса.

Количество тарелок от выстрелов.

Здесь я воспользовался цветом пластин. Поскольку они сделаны из алюминия, их яркость выше, чем у снимков, как видно на Рис. 2. Таким образом, для каждого кадра я рассчитывал яркость этих участков. Затем с помощью обработки сигналов я нашел самые высокие точки, которые соответствовали тарелкам.

Ряды пластин, достигающие тревожных меток в полосах

Для этой части я использовал гомографию и пороговое значение. Гомография помогла скорректировать перспективу и получить вид полос сверху, как показано на Рис. 3. Затем пороговое значение помогло определить, когда линии пластин достигли отметок на полосах.

Результат процесса показан на Рис. 4. Как видно, методы компьютерного зрения, реализованные в OpenCV, весьма полезны при разработке индивидуального решения в производственном процессе.

Привет, я Себастьян. Я разработчик программного обеспечения и консультант по искусственному интеллекту. Работаю в проектах, связанных с машинным обучением, компьютерным зрением и UX. Свяжитесь со мной в LinkedIn.