Моделирование трехмерных объектов в движении в пакете прикладных программ MATLAB
Авторы: Афанасьева Ирина Андреевна, Жураковский Валерий Николаевич
.Рубрика: Технические науки
Страницы: 80-84
Объём: 0,19
Опубликовано в: «Наука без границ» № 4 (21), апрель 2018
Библиографическое описание: Афанасьева И. А., Жураковский В. Н. Моделирование трехмерных объектов в движении в пакете прикладных программ MATLAB // Наука без границ. 2018. № 4 (21). С. 80-84.
Аннотация: В статье рассмотрена возможность моделирования объектов в движении в пакете MATLAB. Практическая реализация данной задачи является частью системы, с помощью которой можно в реальном масштабе времени решать задачи, связанные с обнаружением и высокоточным сопровождением объектов. Цель работы состояла в создании программы, которая моделирует объект в движении. В результате работы трехмерная модель визуализации объекта рассмотрена в движении в среде программирования MATLAB. При движении относительно телевизионной камеры получился видеоряд, к которому в дальнейшем можно применять обработку изображений, к примеру, применение сегментационных и корреляционных алгоритмов обнаружения и сопровождения объектов.
Одно из наиболее сложных и актуальных направлений цифровой обработки последовательностей изображений – разработка методов, с помощью которых можно в реальном масштабе времени решать задачи, связанные с обнаружением и высокоточным сопровождением объектов [1].
Несмотря на большое количество публикаций по данной тематике, большинство источников, связанных с разработкой систем автоматического обнаружения и сопровождения объектов касаются лишь теоретических положений. В данной статье описан практический способ моделирования объекта в движении с помощью MATLAB.
Задача работы состояла в моделировании трехмерного объекта в движении, для чего необходимо было создать модель движения объекта и получить последовательность видеокадров его движения.
Чтобы иметь возможность решать задачи, связанные с сопровождением объекта в оптической системе, необходима последовательность кадров, на которой отображается трехмерная цель под разными ракурсами в движении по произвольной траектории. Наша задача заключается в том, чтобы под разными ракурсами увидеть объект. Для этого необходимо создать 3-D модель цели, сделать последовательность кадров в движении по произвольной траектории. На рис. 1 изображена сцена поставленной задачи – наблюдаемый объект движется относительно телевизионной камеры по произвольной траектории.
Рис. 1. Сцена поставленной задачи
Для работы в MATLAB необходима трехмерная модель, которую можно создать с нуля в любом удобном 3-D редакторе, некоторые из которых достаточно просты, поэтому проблем с созданием трехмерных объектов быть не должно.
3-D модель реализована в программном пакете трехмерного моделирования. Модель представляет собой каркас, состоящий из множества вершин и соединяющих их ребер, образующих треугольники. Каркасная модель является триангулированной (triangular mesh) [2]. Список всех вершин модели извлекается из программы 3-D редактора в *.mat-файл для дальнейшего его использования в MATLAB.
Далее, уже в MATLAB пишется программа, удовлетворяющая поставленным задачам.
function[H]=drawModel(fig,MOD,TAG,pos,euler,varargin);
Данная функция рисует 3-D модель, загруженную из *.mat файла, также создаются преобразователи для удобной манипуляции нашей модели. Указываем такие параметры, как позиция объекта и углы поворота. Получаем трехмерное изображение нашего объекта.
Рис. 2. 3-D модель объекта
function [Hline,HT,HC,Hline2] = GTbarmeter(H,Aval,varargin);
Функция рисует вертикальную заостренную ось объекта, при необходимости ось можно зафиксировать, чтобы она была в неподвижном состоянии.
function [euler_hgt] = plotAxes(FIG,EULER,R,EXTRAS);
Функция создает плоскости для обозначения осей с помощью задания углов Эйлера и радиуса плоскостей.
В нашем случае трехмерная модель объекта представляет собой самолет.
3-D модель визуализации цели помещена в программу, которая при движении относительно телевизионной камеры, получает видеоряд.
Получившиеся изображения цели в движении под разными ракурсами в телевизионной камере представлены на рис. 3, 4, 5.
Рис. 3. Ракурс самолета под углом нутации
Рис. 4. Ракурс самолета под углом собственного вращения
Рис. 5. Ракурс самолета под углом прецессии
Программа позволила визуализировать трехмерный объект в движении при различных ракурсах по произвольной траектории и получить последовательность кадров движения нашего самолета, некоторые кадры из которой представлены ниже.
Рис. 6. Кадр из полученной видеопоследовательности
Рис. 7. Кадр из полученной видеопоследовательности
К полученному видеоряду можно применять алгоритмы обнаружения и слежения за объектом (корреляционный и сегментационный). Сегментационный алгоритм основан на выделении контура интересующего нас объекта, а корреляционный алгоритм основан на сравнении текущего кадра с предыдущим – эталонным. Данная программа позволяет реализовать эти алгоритмы.
В результате получили программу в MATLAB, которая визуализирует трехмерный объект в движении по произвольной траектории при различных ракурсах. Использование стандартных функций, которые представлены в MATLAB, позволяет ускорить процесс разработки программы моделирования, а также реализовывать практические задачи в реальном масштабе времени. В дальнейшем эта программа позволит отрабатывать алгоритмы обнаружения и сопровождения объектов.
Список литературы
1. Алпатов Б. А. и др. Методы автоматического обнаружения и сопровождения объектов. Обработка изображений и управление. М. : Радиотехника, 2008. 176 с.
2. Кетков Ю. Л., Кетков А. Ю., Шульц М. М. MATLAB 7. Программирование, численные методы. СПб. : БХВ-Петербург, 2005. 734 с.
3. Гонсалес Р., Вудс Р. Цифровая обработка изображений. М. : Техносфера, 2012. 1104 с.
4. Дьяконов В. П. MATLAB и Simulink для радиоинженеров. М. : ДМК, 2011. 975 с.
Материал поступил в редакцию 15.04.2018
© Афанасьева И. А., Жураковский В. Н., 2018