572 программно-аппаратные средства получения видеоинформации для малого космического аппарата



Скачать 89.95 Kb.

Дата11.12.2016
Размер89.95 Kb.
Просмотров126
Скачиваний0

572
ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА ПОЛУЧЕНИЯ
ВИДЕОИНФОРМАЦИИ ДЛЯ МАЛОГО КОСМИЧЕСКОГО
АППАРАТА
А. В. Донцов, И. С. Елин, С. В. Лешкевич, В. А. Саечников
Белорусский государственный университет

Минск, Беларусь
E-mail:saetchnikov@bsu.by
На примере USB камеры, подключенной через драйвер UVC к системе на базе процессора приложений с операционной системой Linux, рассмотрены принципы функционирования программно-аппаратных средств получения ви- деоинформации в малых космических аппаратах. Макет системы включает ви- деокамеру, комплект разработчика WI-9M 2443 с процессором ARM9 и про- грамму для интерпретатора Python, выделяющую видео-кадры из видеопотока.
Ключевые слова: малый космический аппарат (МКА), V4L2, UVC, Python.
Задачи работы
Целью работы является создание методических материалов и макетов для обуче- ния студентов технологиям обработки видеоинформации, приобретения навыков ра- боты с аппаратурой малого космического аппарата и ознакомления с технологией
Video For Linux (V4L2). Методические материалы включают

описание технологии V4L2 и ее возможностей, используемых для выполнения захвата видеокадров

основы работы с драйвером UVC.
Управление камерой и мониторинг состояния видеопотока осуществляется через терминал операционной системы Linux. Непосредственно задача программного за- хвата видеокадров выполняется при запуске программы, реализованной на языке
Python.
Программа реализована на языке Python, что вместе с использованием операцион- ной системы Linux позволяет обойтись без установки дополнительного программного обеспечения, максимально задействовать системные ресурсы, минимизировать затраты системы на выполнение программы. Приложение разработано на основании техноло- гии V4L2. Условная схема использования драйвера V4L2 представлена на рис. 1.
Алгоритмы работы программы
Вначале следует провести конфигурирование драйвера v4l.
fd = open("/dev/video0",'r+')
Как только драйвер будет правильно сконфигурирован и устройство
("/dev/video0") будет открыто, аппаратные средства начинают захват потока данных.
Далее выделение видеокадров происходит в следующей последовательности:
1.
Приложение делает запрос на выделение кадров с помощью команды
VIDIOC_REQBUFS:
a = array.array('i',[nbf,1,1,0,0])
fcntl.ioctl(fd, VIDIOC_REQBUFS,a,1)

573
Рис. 1. Логика работы драйвера v4l
2.
Расширенный v4l драйвер запрашивает у v4l-помощника разрешение на выделение 8 видеобуферов.
a = array.array('i',[8,1,1,0,0])
fcntl.ioctl(fd, VIDIOC_REQBUFS,a,1)
3.
Приложение запрашивает характеристики каждого выделенного буфера командой VIDIOC_QUERYBUF.
buf = list()
for i in range(nbf):
a = array.array('i',[i,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])
fcntl.ioctl(fd, VIDIOC_QUERYBUF,a,1)
buf.append( mmap.mmap(fd.fileno(), a[18], offset = a[16]) )
4.
Приложение делает запрос у драйвера на постановку в очередь каждого кадра командой VIDIOC_QBUF.
for i in range(nbf):
a = array.array('i',[i,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])
fcntl.ioctl(fd, VIDIOC_QBUF,a,1)
5.
Приложение запустит цикл с извлечением кадров командой
VIDIOC_STREAMON.
a = array.array('i',[1])
fcntl.ioctl(fd, VIDIOC_STREAMON,a,1)
6.
Приложение извлекает кадр командой VIDIOC_DQBUF.
a = array.array('i',[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])
fcntl.ioctl(fd, VIDIOC_DQBUF,a,1)
I = buf[a[0]][:a[18]]
fcntl.ioctl(fd, VIDIOC_QBUF,a,1)
7.
Приложение заканчивает извлечение кадров командой
VIDIOC_STREAMOFF.
a = array.array('i',[1])
fcntl.ioctl(fd, VIDIOC_STREAMOFF,a)
fd.close()

574
В соответствии с разработанной программой блок-схема выделения видеокадров из потока может быть представлена в следующем виде (рис.2.)
… …
На входе имеем непрерывный поток информации
Разбиваем поток на n буферов
Итерационно
«замораживаем» каждый буфер, получаем кадр из буфера, «размораживаем» буфер
Рис. 2. Блок-схема работы программы
Библиографические ссылки
1.
http://www.mjmwired.net/kernel/Documentation/video4linux/V4L2-framework.txt
2.
http://www.mjmwired.net/kernel/Documentation/video4linux/uvcvideo.txt
3.
http://habrahabr.ru/post/148692/
4.
http://linuxtv.org/wiki/index.php/V4L2_Userspace_Library
5.
Video for Linux Two API Specification. 2008.
6.
Jonathan Corbert, Alessandro Rubini, Greg Kroah-Hartman. Linux Device Drivers (third edition).
2005.
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА
ДЛЯ ПОСТРОЕНИЯ ПРИЗНАКОВОГО ОПИСАНИЯ
РЕЧЕВЫХ СИГНАЛОВ И ЕГО
ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ
П. Е. Ковалец, А. М. Сорока
Белорусский государственный университет,
Минск, Беларусь
E-mail: kovalets.p.e@outlook.com
Предложен метод построения признакового описания фонем на основе вейвлет преобразования с использованием генетического алгоритма. Сформу- лирована решаемая задача оптимизации. Рассмотрен способ параллельной реа- лизации генетического алгоритма, показана ее высокая эффективность, иссле- дованы ее основные характеристики для различных размеров популяций.

575
Ключевые слова: оптимизация, генетический алгоритм, параллельная реа- лизация, вектор признаков, вейвлет-преобразование.
Построение признакового описания фомен
Одной из актуальных задач обработки речевых сигналов является их классифика- ция, и, в частности, классификация фонем русского языка. Методы решения данной задачи состоят из двух этапов – первичной обработки сигнала с целью построения его признакового описания, и непосредственной классификации акустических сигналов
[1]. В первом случае используются традиционные методы спектрального анализа на основе преобразования Фурье, такие как мелчастотный кепстральный анализ, во вто- ром – нелинейные классификаторы. Одним из главных недостатков такого подхода является тот факт, что для анализа неоднородных акустических сигналов применяется одинаковый метод первичного анализа, в то время как акустический сигнал может со- стоять из множества участков, которые отличаются внутренней структурой в силу раз- личных механизмов образования, задействованных для их получения.
В то же время вейвлет-преобразование хорошо подходит для анализа нестацио- нарных сигналов, так как позволяет достичь оптимального частотно-временного раз- решения [2]. Однако при анализе и классификации негармонических сигналов, к ко- торым можно отнести большинство согласных фонем русского языка, возникают оп- ределенные трудности, связанные с тем, что признаковые описания фонем со схожи- ми механизмами образования зачастую находятся в перекрывающихся областях про- странства признаков, что затрудняет классификацию. Учитывая тот факт, что именно согласные фонемы составляют семантический каркас речевого сообщения, актуальна задача разработки алгоритма построения их признакового описания с целью улучше- ния результатов классификации.
Непрерывное вейвлет-преобразование задается базовой функцией ψ(t). Путем применения операторов масштабирования и сдвига к базовой вейвлет-функции полу- чается набор функций
,
,
,
a b
t b
a b
R
a



  





, который и используется для полу- чения вейвлет-коэффициентов. Было замечено [3], что при фиксировании базовой вейвлет-функции точность классификации одних фонем выше, чем других. Однако при смене базовой вейвлет-функции фонемы, которые ранее имели высокую точ- ность классификации, могли классифицироваться с меньшей точностью. Таким обра- зом, было сделано предположение, что возможно построение базовых вейвлет- функций, позволяющих достичь высокой точности классификации определенных фонем за счет построения оптимального признакового описания.
Оптимизация параметров базовой вейвлет-функции
Искомую базовую вейвлет-функцию будем описывать с помощью набора пара- метров


1
,
,
n
x
x
x



, на которые накладываются ограничения вида


1 1,
1 ...
n
i
X
x|
x
i
n
R

  



Тогда временное представление искомой функций будет вычисляться при помощи сплайна Акимы [4] на основе данного набора пара- метров, который представляет собой ординаты базовых точек вейвлет-функции. За- дача оптимизации может быть записана в следующем виде:

576
 
max;
;
{ |1 1,
1 ... }
;
n
i
F x
x
X
X
x
x
i
n
R






  






где x

– набор оптимизируемых параметров,
( )
F x

– целевая функция,
X
– допустимое множество значений параметров.
Для устойчивой классификации фонем искомая базовая функция должна локали- зовать значимые коэффициенты для фонем со схожим механизмом образования в схожей полосе масштабов. Сделаем априорное предположение о том, что в данном случае для момента времени t значения вейвлет-коэффициентов в полосе масштабов


,
c
c
S
s
s

 
 
, где
c
s
– центральное значение масштабов данной полосы, можно аппроксимировать при помощи функции Гаусса
 


2 2
1
exp(
)
2 2
c
t
t
t
s
s
G s






где
t

– дисперсия вейвлет-коэффициентов в момент времени t, при этом ширина полосы 2 3
  
. Тогда целевую функцию оптимизации зададим как величину, обрат- ную суммарной ошибке аппроксимации
 
 
 
1 0
,
h
l
s
N
t
x
t
s s
F x
G s
W s t
















и будем искать ее максимум. Здесь
 
,
x
W s t

– коэффициенты вейвлет-преобразования, задаваемого при помощи базовой функции, полученной из набора параметров x

Достоинство данного подхода к заданию целевой функции в том, что для ее подсчета требуется только вычислить коэффициенты вейвлет-преобразования и ошибку ап- проксимации на их основе, а это относительно быстрая операция. Однако сущест- венным недостатком является факт использования априорного предположения о ха- рактере распределения векторов признаков, так как фактические результаты класси- фикации не участвуют в построении адаптивной вейвлет-функции.
В качестве метода оптимизации будем использовать генетический алгоритм (ГА)
[5], так как он позволил найти лучшее по сравнению с другими методами значение целевой функции в схожей задаче оптимизации параметров машины на опорных век- торах для классификации патологий речевого тракта [6].
Параллельная реализация генетического алгоритма
Один из основных недостатков ГА заключается в очень большом количестве вы- числений значений целевой функции, что в случае нетривиальных функций (вычис- ление значений которых требует времени) ведет к неприемлемо большому времени нахождения оптимального значения [6]. Однако использование современных техно- логий параллельных вычислений позволяет устранить данный недостаток, так как ГА довольно легко реализовать параллельно. Существуют три подхода к реализации па- раллельного ГА [7]:

«главный-подчиненный» – параллельность на уровне вычисления целевой функции;

модель подпопуляций, обрабатываемых независимо, с миграциями лучших индивидов между ними;

577

модель ячеек с селекцией из смежных областей.
Так как основное время в рассматриваемой задаче занимает вычисление целевой функции, был выбран первый подход. Была реализована библиотека на языке про- граммирования c++, поддерживающая такие параллельные технологии, как потоки и интерфейс передачи сообщений (англ. Message Passing Interface, MPI). MPI позволяет использовать реализованную библиотеку для вычислений на большинстве суперком- пьютерных кластеров (в том числе и СКИФ-БГУ), при этом изменений уже написан- ного и отлаженного кода от пользователя библиотеки не требуется.
Реализованный на основе указанной библиотеки параллельный генетический ал- горитм был исследован на предмет эффективности и прироста производительности.
Для этого измерялось время работы генетического алгоритма для двух популяций и различного количества индивидов (100 и 300 индивидов в популяции) в зависимости от количества задействованных процессоров вычислительного кластера СКИФ-БГУ.
График зависимости среднего времени работы генетического алгоритма от количест- ва задействованных в расчете процессоров N представлен на рис. 1а. График зависи- мости скорости расчета индивидов в единицу времени от количества процессоров представлен на рис. 1б. Также были исследованы основные характеристики парал- лельной реализации [8].
Одной из таких характеристик является ускорение реализации алгоритма на вы- числительном кластере, состоящем из N одинаковых процессоров, которое определя- ется как отношение времени выполнения алгоритма на одном процессоре ко времени параллельного выполнения. График зависимости ускорения от количества процессо- ров представлен на рис. 1в. Также была исследована эффективность реализации ал- горитма, которая представляет собой отношение ускорения к N. График зависимости эффективности от количества процессоров представлен на рис. 1г.
Рис. 1. Характеристики параллельной реализации ГА в зависимости от количества задействованных в расчете процессоров

578
Исходя из приведенных графиков, можно сделать вывод, что реализация парал- лельного генетического алгоритма особо эффективна для конфигураций с большим количеством индивидов в популяции. А именно для 100 индивидов в популяции, на- чиная с 28 процессоров, наблюдался устойчивый спад эффективности с 0,8 до 0,6. В то же время для 300 индивидов в популяции эффективность не опускалась ниже 0,74.
Также стоит отметить, что максимальная скорость расчета индивидов составила примерно 12 в секунду и не зависела от количества индивидов в популяции. Таким образом, можно утверждать, что реализация параллельного генетического алгоритма приемлема для исследуемой задачи, так как для нее характерно большое (более 100) количество оптимизируемых параметров, а, следовательно, необходимо большое ко- личество индивидов в популяции для нахождения оптимального значения.
Данная реализация ГА была использована в ходе вычислительного эксперимента по оптимизации параметров базовых вейвлет-функций применительно к задаче клас- сификации фонем русского языка. Результаты классификации фонем с использованием адаптивных базовых вейвлет-функций, полученных в результате оптимизации их па- раметров, сравнивались с результатами классификации для классических базовых вейвлет-функций (Хаара, Морле и др.), а также для метода на основе мелчастотных кепстральных коэффициентов (МЧКК). Было показано [3], что построенные базовые вейвлет-функции позволили увеличить точность классификации по сравнению с клас- сическими базовыми вейвлет-функциями. Улучшение составило от 1% до 7 % в зави- симости от конкретного множества фонем, для которого проводилась классификация.
Заключение
В данной статье предложен метод построения признакового описания фонем на основе вейвлет-преобразования с использованием генетического алгоритма, позво- ляющий получить устойчивое увеличение точности классификации (от 1% до 7% для различных согласных). Рассмотрен способ параллельной реализации генетического алгоритма, показана высокая эффективность параллельной реализации (не ниже 80% для больших популяций) для исследуемой задачи и исследованы ее основные харак- теристики для различных размеров популяций.
Библиографические ссылки
1.
Saon G., Chien J. Large-Vocabulary Continious Speech Recognition System // IEEE Signal Processing.
2012. V. 29. № 6. P. 18–34.
2.
Сорока А. М., Хейдоров И. Э. Обнаружение патологий голосового тракта на основе вейвлет ана- лиза и метода опорных векторов // Международный конгресс по информатике: информационные системы и технологии: материалы международного научного конгресса 31 окт. – 3 нояб. 2011 г.: в 2 ч. Ч. 2. Минск : БГУ. 2011. C. 375–378.
3.
Сорока А. М., Ковалец П. Е., Хейдоров И. Э. Адаптивный вектор признаков речевых сигналов на основе вейвлет-преобразования и метода опорных векторов // Вестник БГУ. 2013. Сер. 1. № 2.
С. 48–51.
4.
Akima H. A new method of interpolation and smooth curve fitting based on local procedures // J.ACM,
1970. V.17, № 4. P. 589–602.
5.
Back T. Evolutionary Algorithms in Theory and Practice. Oxford: Oxford University Press. 1996.
6.
Ковалец П. Е. Оптимизация параметров машины на опорных векторах для обработки звуковых сигналов // Сборник работ 69-й научной конференции студентов и аспирантов БГУ (14–17 мая
2012 г., Минск). Минск : БГУ.
7.
Haupt R. L., Haupt S. E. Practical genetic algorithms John Wiley & Sons, Inc. 2004.
8.
Воеводин В. В., Воеводин Вл. В. Параллельные вычисления СПб.: БХВ-Петербург. 2002.


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал