Внутренности видеокамеры FISCHERTECHNIK

В этой статье речь пойдет о внутренностях видеокамеры (арт. 152522), которая входит в состав набора FISCHERTECHNIK 524328 «Набор первооткрывателя». Видеокамера используется в игрушечных роботизированных комплексах для построения действующих систем компьютерного зрения.

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

Компьютерное зрение FISCHERTECHNIK

Компьютерное зрение — это, вообще, что?

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

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

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

Обычно систему компьютерного зрения можно условно разделить на три составные части:

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

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

Компьютер принимает данные от устройства захвата изображения и затем обрабатывает эти данные с помощью программ, предварительно загруженных в его память.

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

Для экспериментов с компьютерным зрением я рекомендую использовать конструктор FISCHERTECHNIK ROBOTICS TXT «Набор первооткрывателя», в котором имеются все необходимые компоненты, включая видеокамеру, программируемый контроллер и инструментальное ПО с библиотекой алгоритмов компьютерного зрения.

Конструкция камеры

Видеокамера FISCHERTECHNIK 152522 выполнена в черном пластиковом корпусе, на поверхности которого имеются стандартные монтажные элементы FISCHERTECHNIK. С их помощью камеру можно присоединять к конструкциям. Из корпуса камеры выходит гибкий кабель с разъемом USB-A. Длина кабеля 80 см.

01. Видеокамера с кабелем USB.
Видеокамера FISCHERTECHNIK 152522

 

02. Вид на внутренности камеры без лицевой панели. На фотографии видны: объектив и печатная плата с управляющей электроникой.

Видеокамера FISCHERTECHNIK 152522

Светочувствительная матрица

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

03. Здесь я полностью выкрутил объектив и теперь в центральной части печатной платы хорошо видна светочувствительная матрица.

Видеокамера FISCHERTECHNIK 152522

К сожалению, на самой матрице никаких обозначений не видно. Однако, судя по надписи «+NT99140» на печатной плате, можно предположить, что в камере 152522 используется КМОП-матрица NOVATEK NT99140. В этой матрице каждый пиксель снабжён усилителем считывания, а выборка сигнала с конкретного пикселя происходит, как в микросхемах памяти, произвольно. Разрешение матрицы составляет 1280 * 720 пикселей.

Объектив

Объектив видеокамеры предназначен для формирования четкого изображения снимаемого объекта на поверхности светочувствительной матрицы. В видеокамере 152522 объектив состоит из оправы, выполненной из двух пластиковый колец, вставленных одно в другое. Между собой кольца соединяются с помощью резьбового соединения M12х0.5. Внутри вращающегося кольца установлены линзы и апертурные диафрагмы. Поворачивая внешне кольцо объектива можно изменять расстояние между задней линзой и светочувствительной матрицей и таким образом осуществлять фокусировку.

04. Два вида на объектив видеокамеры. В задней части объектива хорошо виден фильтр, блокирующий инфракрасную часть спектра.

Видеокамера FISCHERTECHNIK 152522

05. Иллюстрация с разрезом объектива. Хорошо видны оптические элементы: линзы и диафрагмы.

Видеокамера FISCHERTECHNIK 152522

06. Компоненты, из которых состоит объектив камеры.

Видеокамера FISCHERTECHNIK 152522

07. Здесь хорошо видно группу оптических элементов, которую принято называть «хроматический дуплет». Группа состоит из двух склеенных линз, одна из которых положительная, а другая — отрицательная. Хроматический дуплет используется для исправления хроматической и сферической аберраций.

Видеокамера FISCHERTECHNIK 152522

Микроконтроллер

08. Вид на обратную сторону печатной платы. В желтой рамке микроконтроллер, обеспечивающий согласование интерфейсов для передачи данных. Микроконтроллер принимает сырые данные от матрицы, обрабатывает их и затем передает результат через последовательный интерфейс USB на компьютер. В зависимости от выбранного режима микроконтроллер осуществляет сжатие изображения или оставляет его в исходном формате. Судя по обозначениям на корпусе чипа, в видеокамере используется микроконтроллер SONIX SN9C259BFG-002 USB image controller.

В ОС Linux подробную информацию об устройстве на шине USB можно получить с помощью команд lsusb и dmesg.

Вывод команды lsusb:

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 24, If 0, Class=Video, Driver=uvcvideo, 480M
        |__ Port 3: Dev 24, If 1, Class=Video, Driver=uvcvideo, 480M
        |__ Port 3: Dev 24, If 2, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 3: Dev 24, If 3, Class=Audio, Driver=snd-usb-audio, 480M

Вывод команды dmesg:

[1552817.385166] usb 1-1.3: new high-speed USB device number 25 using xhci_hcd
[1552817.632077] usb 1-1.3: New USB device found, idVendor=1b71, idProduct=0056, bcdDevice= 0.00
[1552817.632099] usb 1-1.3: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[1552817.632118] usb 1-1.3: Product: USB 2.0 Camera
[1552817.632135] usb 1-1.3: Manufacturer: Sonix Technology Co., Ltd.
[1552817.644232] uvcvideo: Found UVC 1.00 device USB 2.0 Camera (1b71:0056)
[1552817.664470] input: USB 2.0 Camera: HD 720P Webcam as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input1
[1552817.674486] usb 1-1.3: 3:1: cannot get freq at ep 0x84

Видеокамера FISCHERTECHNIK 152522

09. Вид на печатную плату со снятым креплением объектива. Цифрами на фото обозначены: 1 – микросхема 25L0512 (флэш память 64K x 8 с последовательным интерфейсом SPI); 2 – кварцевый резонатор; 3 — светочувствительная матрица; 4 – микрофон.

Видеокамера FISCHERTECHNIK 152522

Микрофон

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

Характеристики видеокамеры 152522

  • Матрица: CMOS 1,0 Мпикс
  • Разрешение: 1280 * 720 пикселей
  • Формат видеопотока: YUV (без сжатия), MJPG (со сжатием)
  • Частота кадров максимальная: 60 Гц при разрешении 320х240 пикселей
  • Способ фокусировки: ручной
  • Встроенный микрофон: имеется
  • Интерфейс: USB 2.0 (480 Мбит/с)
  • Версия UVC: 1.0)
  • USB VID:PID: 1b71:0056
  • Длина соединительного кабеля: 80 см
  • Разъем кабеля: USB-A

Пример изображения

10. Изображение тестовой картинки EIA1956, полученное с помощью приложения «Камера» в ОС Windows 10. Здесь используется максимальное доступное разрешение 1280х720 пикселей. Кликнув на картинку можно увидеть изображение в оригинальном разрешении.

Видеокамера FISCHERTECHNIK 152522

Программное обеспечение

На программном уровне доступ к камере осуществляется через драйверы USB video device class (UVC 1.1), встроенные в большинство операционных систем, в том числе Linux и Windows. В частности в программируемом контроллере ROBOTICS TXT, который работает под управлением ОС Linux, для получения изображений от камеры используется программный интерфейс v4l2 (video for linux).

Программирование с использованием прямого доступа к видеокамере — достаточно сложная задача для новичков. Поэтому тем, кто только начинает свой путь в программирование и робототехнику, я рекомендую использовать инструментальное программное обеспечение ROBO Pro из конструктора TXT «Набор первооткрывателя», в котором имеется библиотека функций компьютерного зрения, которые можно использовать для решения прикладных задач. С помощью ROBO Pro можно строить серьезные системы компьютерного зрения с использованием обычных компьютеров или на базе программируемого контроллера ROBOTICS TXT.

Более подробно о программной части системы компьютерного зрения на примере ROBO Pro я расскажу в одной из следующих публикаций.

Список внешних источников

  1. Внутренности контроллера ROBOTICS TXT. Статья в блоге ПАКПАК.
  2. Exploring Converging Lenses
  3. OpticalRayTracer — Java-based virtual optical bench
  4. EIA 1956 standard test pattern
  5. Хорн Б. К. П. Зрение роботов: Пер. с англ. — М.: Мир, 1989. — 487 с., ил.
  6. Конструктор Fischertechnik Optics (520399)