Статья опубликована в рамках: Научного журнала «Студенческий» № 18(188)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10
ПРИМЕНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРНОГО ЗРЕНИЯ ДЛЯ ВЫХОДНЫХ ДАННЫХ СКОРОСТНОЙ ВИДЕОСЪЕМКИ ПОСРЕДСТВОМ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON И БИБЛИОТЕКИ OPENCV
APPLICATION OF COMPUTER VISION ALGORITHMS FOR THE OUTPUT OF HIGH-SPEED VIDEO SHOOTING USING THE PYTHON PROGRAMMING LANGUAGE AND THE OPENCV LIBRARY
Sergey Khitrin
Master student, faculty of "computer systems and professional education", Kazakh Agrotechnical University named after S. Seifullin,
Republic of Kazakhstan, Nur-Sultan
Vladimir Gruzin
Scientific Supervisor, Doctor of Technical Sciences, Professor, Faculty of Computer Systems and Vocational Education, S.Seifullin Kazakh Agrotechnical University,
Republic of Kazakhstan, Nur-Sultan
АННОТАЦИЯ
Рассматривается формат выходных данных скоростной видеосъемки, предоставляемых скоростной видеокамерой TMC-6740GE, с последующим анализом с использованием языка программирования Python 3 и библиотекой алгоритмов компьютерного зрения OpenCV 4. Применяются алгоритмы отслеживания движения.
ABSTRACT
The format of high-speed video output data provided by the TMC-6740GE high-speed video camera is considered, followed by analysis using the Python 3 programming language and the OpenCV 4 computer vision algorithms library. Motion tracking algorithms are used.
Ключевые слова: скоростная видеосъемка; компьютерное зрение; библиотека OpenCV; язык программирования Python.
Keywords: high-speed video shooting; computer vision; OpenCV library; Python programming language.
Введение
Для проведения исследований на основе скоротечных процессов используется такой инструмент, как скоростная видеосъёмка. В данной статье рассматриваются выходные данные скоростной видеокамеры TMC-6740GE. Эти данные представляют собой множество изображений в формате BMP. Каждый снимок хранит один кадр, снимки упорядочены по наименованию файла. Например, мы имеем множество файлов со следующими наименованиями: “00010373.bmp”, “00010374.bmp”, “00010375.bmp”, “00010376.bmp”, “00010377.bmp” и так далее.
Данная камера имеет множество режимов съемки с различной скоростью, соответственно зависимой от разрешения снимаемого кадра. Поддерживаемые разрешения кадра – от 56x40 до 640x480 [1]. Встроенный регулятор выбирает электронную выдержку от 1/250 до 1/64 000 [2].
В работе используется языка программирования Python версии 3.8.5, библиотека OpenCV версии 4.5.5 с пакетом opencv-contrib-python версии 4.5.5.64, для загрузки изображений используется пакет Pillow версии 9.1.0 и пакет numpy версии 1.22.3.
Алгоритм
Перед использованием алгоритма отслеживания объекта необходимо подготовить кадры. Сначала их необходимо загрузить. (Таб. 1)
Таблица 1.
Функция получения списка всех изображений с кадрами
В данном примере получаем список имён файлов в каталоге с кадрами, после чего они сортируются по возрастанию, чтобы был верный порядок, несмотря на то, что система возвращает отсортированный список. После этого каждое имя файла приводится к полному пути до файла и функция возвращает список, состоящий из полного пути до каждого кадра.
Далее все эти файлы загружаются в объект PIL.Image и преобразуются в массив типа uint-8 с помощью библиотеки numpy. (Таб. 2)
Таблица 2.
Функция загрузки изображений и преображения в массивы
Теперь данные цифровой видеосъемки готовы к работе с библиотекой OpenCV. В версии библиотеки 4.5 доступны следующие алгоритмы: KCF, CSRT, MIL, Goturn, DasiamRPN, а также некоторые алгоритмы, которые хранятся как “наследие”, то есть, legacy: Boosting, TLD, Mosse, MedianFlow.
Рассмотрим пример применения алгоритма KCF. Реализуем функцию процесса отслеживания. (Таб. 3)
Таблица 3.
Функция отслеживания движения объекта с отображением
Данная функция track принимает два параметра: frames – кадры видеосъемки и tracker – объект, который и реализует алгоритм отслеживания.
Для инициализации трэкера берём первый кадр и указывает левый верхний угол как точку начального внимания. В каждом конкретном случае требуется указывать свою зону интереса. Далее, проходимся в цикле по каждому кадру и опрашиваем посредством метода update объекта tracker в какую координату и с какими размерами теперь переместился объект, то есть, новую зону интереса и изображаем зелёный квадрат на этом кадре, в случае необнаружения – отображаем красный текст “Not detected”. Выводится кадр с отображением зоны интереса в 23-й строчке.
Теперь соберём всё воедино и запустим результат. (Таб. 4).
Таблица 4.
Запуск отслеживания движения по кадрам
В моём примере используются кадры в разрешении 224x160, на которых запечатлено падение твёрдого тела (Рис. 1, 2).
Рисунок 1. Вывод результата анализа кадра движения падающего объекта |
Рисунок 2. Вывод результата анализа кадра движения падающего объекта |
Как видно, алгоритм работает, но имеет большую погрешность. Это зависит в немалой степени от качества изображения, а в данных условиях это очень заметно.
Список литературы:
- User's Manual RM/TM-6740GE, RMC/TMC-6740GE Digital Monochrome/Color Progressive Scan, Interline-Transfer GE Camera : официальный сайт проиизводителя -URL: https://www.jai.com/uploads/documents/Discontinued-Products/English-Manuals-Datasheets/TM-Series/Manual_.TM-6740GE_Discontinued.pdf, с. 17. (Дата обращения 17.05.2022)
- User's Manual RM/TM-6740GE, RMC/TMC-6740GE Digital Monochrome/Color Progressive Scan, Interline-Transfer GE Camera : официальный сайт проиизводителя -URL: https://www.jai.com/uploads/documents/Discontinued-Products/English-Manuals-Datasheets/TM-Series/Manual_TM-6740GE_Discontinued.pdf. с. 21. (Дата обращения 17.05.2022)
Оставить комментарий