Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

Перевод статьи "Embedded Linux in a High Speed Gated Intensified Camera", опубликованной в   LinuxDevices LinuxDevices
Использование Линукса в высокоскоростной стробируемой камере с усилителем яркости

Андрей Н. Филиппов (9 января 2002)



Компания Эльфел (Elphel, Inc.) использовала
встраиваемый Линукс для создания высокоскоростной стробируемой камеры
с усилителем яркости. Это устройство совмещает в себе усилитель
яркости на микроканальной пластине (МКП), КМОП (CMOS) сенсор для
ввода изображений и встроенный компьютер, основанный на процессоре
ETRAX фирмы Axis Communications, на котором установлена ОС Линукс.
Такая комбинация позволила создать очень компактный (38х38х140мм),
быстрый (10 нс экспозиция) модуль, для подключения которого не требуется
специальных плат ввода изображений в компьютер (framegrabber) или
специального программного обеспечения (ПО) - достаточно стандартной
локальной сети Ethernet (10/100 Мб) и веб-браузера.





Высокоскоростная камера с усилителем яркости





Такие камеры можно использовать как самостоятельное устройство в
том случае, если достаточно иметь единственный кадр быстропротекающего
процесса, или изучается, например, движение светлого объекта на
темном фоне - в этом случае можно воспользоваться режимом многократной
экспозиции. Основным назначением этого модуля, однако, является
работа в составе многокадровой камеры. Такие системы содержат несколько
камер-модулей (обычно один модуль для каждого регистрируемого кадра),
оптический расщепитель и дополнительную электронику для синхронизации
затворов камер и мультиплексирования их выходов. При использовании
модулей Эльфел электронная часть существенно упрощается - достаточно
разветвителя входного сигнала запуска (каждый модуль имеет свой
программируемый генератор временных интервалов) и стандартного разветвителя
(hub) локальной сети. Если добавить пару стандартных (и, поэтому,
относительно недорогих) преобразователей для волоконно-оптической
локальной сети, то камеру можно использовать на большом удалении
от компьютера и/или в условиях сильных электромагнитных помех.




Что такое "стробируемая камера с усилителем яркости"?




Этот термин относится к классу высокоскоростных камер со временами
экспозиций в наносекундном диапазоне. Усилитель яркости - здесь
вакуумный прибор, аналогичный используемым в приборах ночного видения
(ПНВ). "Стробируемая" означает, что, в отличие от ПНВ,
этот прибор используется в качестве быстрого затвора путем подачи
электрических импульсных сигналов к управляющим электродам.

Большинство таких камер способно зарегистрировать
только одно изображение объекта, поэтому для получения даже очень
короткой видеозаписи требуется несколько совмещенных "электронных
фотоаппаратов" - по одному на кадр. Для этого есть две причины:
во-первых, "перемотка" даже "цифровой пленки"
(т.е. процесс считывания информации из приемника изображений) длится
гораздо дольше, чем время экспозиции. Даже самые быстрые КМОП (CMOS)
сенсоры позволяют делать не более десятков тысяч (да и то, обычно,
не на полном окне), а не сто миллионов кадров в секунду. Вторая
причина связана с длительным послесвечением выходного экрана усилителя
яркости - для высокоэффективных люминофоров это миллисекунды.

На самом деле существуют способы увеличения
числа кадров, которые способна зарегистрировать каждая камера. Один
прием работает со стандартными ПЗС (CCD) сенсорами, используемыми
в видеокамерах, которые имеют так называемый "электронный затвор",
для реализации которого сенсор имеет фактически дополнительный слой
аналоговой памяти. При использовании внешнего затвора эта память
может быть использована для удвоения числа регистрируемых кадров
до начала процесса считывания. Переключение каналов аналоговой кадровой
памяти происходит довольно быстро - за время порядка 1 микросекунды.
Это, конечно, все равно много дольше, чем 10 нс (время экспозиции),
но для приложений, где, например требуется скорость регистрации
10 000 000 кадров/сек (100 нс между кадрами) можно поставить 10
камер и запускать их "по кругу", т.е. каждая камера зарегистрирует
2 кадра с интервалом 1 мкс, а всего будет 20 кадров. Этот прием
позволяет вдвое уменьшить стоимость кадра, что для систем, цена
которых значительно превосходит 100 тыс. долларов, является существенным
фактором.

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

Почему МКП?



Усилители яркости с микроканальной пластиной (МКП) используют технологию
"отточенную" на приборах ночного видения. Они имеют коэффициент
усиления в диапазоне тысяч-десятков тысяч (гораздо выше, чем у усилителей
другого типа), а это очень полезное свойство для экспозиций наносекундного
диапазона, где света почти всегда "слишком" мало. Так,
при времени экспозиции в 10 нс количество света, попадающего на
фотоприемник почти в миллион раз меньше, чем, при аналогичном освещении,
в обычных видео и фотокамерах, где время экспозиции обычно имеет
значение нескольких миллисекунд.

Другим важным преимуществом МКП является
то, что они управляются (стробируются) относительно низким напряжением
в несколько сот вольт, в то время как для большинства усилителей
других типов требуются киловольты.

Основными недостатками МКП, с другой
стороны, являются более низкое разрешение и динамический диапазон
кадра.



Почему КМОП (CMOS) сенсор?



Большинство стробируемых камер используют ПЗС (CCD) с фоконами (волоконно-оптическими
уменьшителями изображения), приклеенными непосредственно к поверхности
кристалла. Такая стыковка обеспечивает более эффективную передачу
света от выходного экрана усилителя яркости к поверхности полупроводникового
приемника, чем перенос изображения с помощью линз.

КМОП (CMOS) сенсоры, по сравнению
с ПЗС (CCD) - это обычно целиком "камеры-на-кристалле",
где все аналоговые цепи спрятаны внутри. Они используют низковольтное
питание, исполняют принимаемые цифровые команды управления режимами
работы и генерируют цифровой сигнал на выходе. Плата за удобство
- более низкая чувствительность и большая неоднородность чувствительности
и темнового сигнала отдельных фотоприемных элементов (fixed-pattern
noise). Детальное сравнение характеристик КМОП и ПЗС приемников
(CCD/CMOS) можно найти у фирмы Dalsa,
которая производит оба типа сенсоров. При считывании изображений
с выхода МКП слабые стороны КМОП сенсоров не очень существенны по
следующим причинам.

Современные МКП производят достаточно
света для КМОП сенсоров. "Достаточно" означает, что увеличение
чувствительности сенсора не добавляет информации (из-за квантовой
природы регистрации света на входе МКП) - это похоже на попытку
увеличить контраст цифрового изображения, когда уже видны ступени
яркости, если исходное изображение было слишком тусклым.

А ограниченный динамический диапазон КМОП приемников (обычно 8-10
бит) отлично соответствует (и даже несколько превосходит) диапазон
МКП.

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

Проектирование встроенного компьютера



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

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

Третьим начальным условием для меня было стремление создать по-настоящему
"умный" модуль, который бы налагал минимальные требования
на компьютер, к которому такие модули подключены - как с точки зрения
аппаратных, так и программных средств.

И, наконец, мне хотелось избежать использования так называемого
"plug-and-play" ПО, потому, что,
несмотря на свое название у меня с ним было много проблем и как
потребителя, и как производителя. Как потребителю, мне неоднократно
приходилось слать электронные письма и звонить изготовителям и слушать,
как я должен попробовать деинсталлировать и потом опять инсталлировать
их драйверы, чтобы устройство заработало. Мне также никогда не нравилось
пытаться угадать - почему у заказчиков не работает устройство, произведенное
фирмой, где я работал - действительно ли сломалось мое "железо"
или они просто обновили какое-то, на первый взгляд совершенно не
связанное с этим устройством, ПО на своем компьютере, работающем
под управлением популярной операционной системы?

Это условие позволило однозначно сделать
вывод, что в камере должен быть установлен веб-сервер. Интернет-технологии
- это de-facto наилучший "общий знаменатель" для различных
компьютеров и операционных систем.

Мне приходилось наблюдать, как мой друг последовательно пытался
установить и запустить Windows CE, Embedded NT, и Линукс на
встраиваемом PC/104 компьютере. Именно тогда я задался вопросом
(я сам "электронщик", который разработал много встраиваемых
систем на различных процессорах и программировал их на ассемблере):
какой минимальный набор "железа" необходим, чтобы поддерживать
локальную сеть Ethernet, Линукс и веб-сервер?

Потратив день на поиски в интернете
и сравнение вариантов, я остановился на процессоре, точнее "системе-на-кристалле"
ETRAX 100LX , производимой шведской
фирмой Axis Communications. Как всегда, я в первую очередь загрузил
"Programmer Manual" - документ, в котором описаны инструкции процессора,
ассемблерные мнемоники и времена исполнения команд - но на этот
раз я им ни разу не воспользовался.

Нескольких выходных дней оказалось достаточно
для разработки схемы камеры-компьютера (без модуля управления МКП
- он был спроектирован позднее). В основном я просто "вырезал
и вставлял" элементы схем из детальной документации, которая
помещена на сайте Axis, добавляя только узлы, специфические для
данного применения.



Вид камеры без модуля управления МКП - видны элементы встроенного
компьютера. И в таком "усеченном" (без МКП) виде это
законченная сетевая камера, на которой установлен Линукс и работает
веб-сервер





В июне 2001 я взял отпуск на две недели и попросил друга помочь
мне установить Линукс на домашнем компьютере. На тот момент у меня
не было абсолютно никакого опыта с этой ОС - я не знал, что такое
"ls".

Через две недели камера могла производить
JPEG-картинки. А я влюбился в Линукс. Я никогда не мог себе представить,
насколько просто окажется комбинировать части программ, написанных
другими, "влезать внутрь" и модифицировать чужой код.
Я не знаю точно, насколько я обязан этим самому Линуксу, насколько
- отличному продукту фирмы Axis и консультациям их сотрудника Майкла
Старвика (Mikael Starvik). Но может быть это взаимозависимые факторы?

Где нужны высокоскоростные камеры
- только ли для регистрации быстропротекающих явлений?




Некоторые применения высокоскоростных камер достаточно очевидны
- это регистрация взрывов, баллистические испытания, изучение
процессов в плазме или, например, молний.

Существуют, однако, и другие применения,
где быстрые процессы являются частью процесса измерения, а не изучаемого
объекта. К ним относится, например, чувствительные методы дистанционного
зондирования, основанные на кратковременной люминесценции объекта
при облучении короткими лазерными импульсами (laser induced fluorescence). Другое интересное
применение стробируемых камер - это получение изображений через мутную
воду или густой снег ночью, когда фары только слепят. Технология
Flash LADAR использует такие камеры
для получения трехмерной информации. Можно, например, установить
на одну поворотную платформу импульсный лазер и две камеры - одну
со стробируемым МКП, а другую просто цветную. Тогда лазером и первой
камерой можно строить трехмерную модель окружающих объектов (например,
зданий), а цветной камерой получать текстуры, которыми автоматически
"обклеивать" построенную модель.

TODO: увеличить частоту кадров, регистрируемых
камерой




Стробируемый модуль камеры с усилителем яркости модели 303 предназначен
для высокоскоростной фотографии. Большинство таких применений не
требуют высокой частоты повторения экспозиций - в любом случае камера
способна зарегистрировать лишь один кадр быстропротекающего события.
"Видео" режим обычно бывает нужен лишь для вспомогательных
операций - прицеливания, настройки фокуса и усиления. В описанной
версии камеры используется программное JPEG-сжатие изображений,
которое занимает до нескольких секунд при обработке полного 1288х1032
кадра (без сжатия частота кадров определяется полосой пропускания
локальной сети).

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

Я планирую построить более быструю
камеру, которая, тем не менее, не будет больше по габаритом. Для
этого я надеюсь использовать два новых компонента - ETRAX 100LX Multi Chip Module (MCM)
фирмы Axis Communications и ADV-JP2000 JPEG-2000 компрессор фирмы
Analog Devices. Меньший, по сравнению с существующей камерой, объём
оперативной памяти в модуле ETRAX 100LX MCM не является препятствием
- все равно потребуется отдельная память кадров (и коэффициентов),
так что внутренние 8 МБ будут свободны от больших массивов. Для
реализации аппаратного умножения элементов изображения на калибровочные
коэффициенты будет, вероятно, достаточно простых (без DSP) версий
FPGA фирмы QuickLogic.



Об авторе: Андрей Николаевич Филиппов
страстно увлечен применением современных технологий для встраиваемых
компьютерных устройств, особенно в области ввода и обработки изображений.
У него более двадцати лет опыта исследований и разработок в области
высокоскоростных аналогово-цифровых систем, программируемых микросхем,
микропроцессорных устройств и их программного обеспечения, для целей,
в том числе, ввода и обработки изображений в лазерной физике и автоматизации
научных исследований. У Андрея Николаевича ученая степень кандидата
физ.-мат. наук (Ph.D.), полученная в Московском физико-техническом
институте. Фото автора сделано высокоскоростной камерой с усилителем
яркости.












Кроме тех случаев, когда это явно указано,
содержание этой страницы составляет copyright © 1999-2001 DeviceForge LLC.
Все права защищены. DeviceForge, LinuxDevices, and LinuxDevices.com являются
торговыми марками DeviceForge LLC. The LinuxDevices.com logo является service
mark DeviceForge LLC. Все остальные торговые марки принадлежат их владельцам.
Except where otherwise specified, the
contents of this page are copyright © 1999-2001 DeviceForge LLC. All rights
reserved. DeviceForge, LinuxDevices, and LinuxDevices.com are trademarks
of DeviceForge LLC. The LinuxDevices.com logo is a service mark of DeviceForge
LLC. All other trademarks are the property of their respective owners.