LINUX.ORG.RU

4 веб-камеры, одновременное получение картинок.


0

2

Как может быть реализовано портативное (в рюкзаке) устройство, получающее 4 картинки 864x480 с 4 веб-камер по 4 USB-линиям за 1 секунду с примерно постоянной периодичностью? Насколько я понимаю, в какой-нибудь стандартном современном ноуте 4 постоянно идущих видеопотока не влезут в ширину канала контроллера USB (был опыт на ibm thinkpad t60 с 3-мя веб-камерами). Незнаю во что конкретно всё упирается, но работают любые 2 камеры из воткнутых в порты трёх.

На какой элементной базе можно решить эту задачу, если думать в русле проектирования всего устройства с нуля? Может ли быть полезной архитектура, похожая на архитектуру ethernet-свитча, где портами являются USB-порты, каждый из которых выходит на собственный независимый процессор, видящий картинку с веб-камеры и все эти процессоры могут по команде центрального процессора (возможно, слабее их самих) записать последний увиденный кадр «видеопотока» веб-камеры куда-то в общую память? Центральный процессор опрашивает их по очереди с гарантированным временем отклика (сбросить последний кадр или чёрный квадрат, если к тебе ничего не подключено) за короткое время, затем сбрасывает весь набор кадров в файл как одну «транзакцию».

Короче, как решается задача цепляния на голову 4 веб-камер и создания собственных street view с оборудованием в рюкзаке?

Про гугловые разработки можно не рассказывать, знаю я про этот рюкзак с шаром над бошкой (-;

Что-то мне подсказывает, что USB 3.0 может спасти ситуацию. На 2.0 один контроллер действительно не может пережевывать выхлоп двух камер.

melkor217 ★★★★★ ()
Ответ на: комментарий от melkor217

Интересно... (ну двух получалось, а вот трёх уже нет).

При этом веб-камеры тоже должны быть 3.0 или важно, чтобы контроллер на материнской плате был «3.0», совместимый с 2.0 и тогда во все его доступные 4 порта можно будет воткнуть и переварить 4 веб-камеры?

kiverattes ★☆ ()
Ответ на: комментарий от kiverattes

Сейчас порты между usb 2.0 <> usb 1.1 переключаются селективно. Если с usb 3.0 контроллерами так же, то будет достаточно usb 3.0 контроллера и пучка usb 2.0 камер.

aidaho ★★★★★ ()
Ответ на: комментарий от kiverattes

Устройства на USB2.0 отлично себя чувствуют в гнездах USB3.0. На многих ноутбуках сейчас есть только 1-2 гнезда USB2.0, остальные — USB3.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от anonymous

Ну, я у своего бука больше портов USB3.0 насчитал, чем 2.0. Хотя, мог и неправильно значок разглядеть (цвет-то у всех гнезд одинаковый).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от kiverattes

Комментарий, о том, что комбинация usb 3.0 контроллер + несколько usb 2.0 камер будет почти наверняка хорошо работать.

aidaho ★★★★★ ()

А в каком формате отдают веб камеры? как подключено усб внутри ноута?
USB 2.0 это 400Mbit по стандарту. Реально меньше, ибо оверхед. Но у тебя камеры точно забивают полосу всю? Или там реальный порт один, а остальное через хаб?
Если у тебя камера срет 32 бита анкомпрессед, это
864*480*32/8 = 1658880.0 байт на кадр.
1fps тогда будет 13271040 бит/с или около 12 мегабит.
Ты можешь делать так. Открывать v4l2 устройства, а далее читать раунд-робином с каждой камеры. Тогда у тебя частоту кадров будет ограничивать пропускная. Если боишься v4l - смотри OpenCv. Там как раз есть cvQueryFrame, которым можешь читать с девайсов.

AiFiLTr0 ★★★★★ ()
Ответ на: комментарий от AiFiLTr0

Мне казалось, что любой queryframe не избавляет от того, что камера фигачит в USB видеопоток. Библиотека просто возвращает кадр из буфера на момент вызова, а камера «срёт» в линию видеопотоком, ибо если видеопоток остановить, то камера будет переинициализироваться в смысле всяких там выдержек, балансов белого и т.п. - а это занимает время. Или камера умеет смотреть на мир инициализированными глазами, а кадры физически отдавать только по запросу?

kiverattes ★☆ ()
Ответ на: комментарий от Eddy_Em

Ну, я у своего бука больше портов USB3.0 насчитал, чем 2.0. Хотя, мог и неправильно значок разглядеть (цвет-то у всех гнезд одинаковый).

На сколько я помню спецификацию у USB 3.0 на 4 провода на разёме больше и он сдвоенный что бы можно было впихнуть 2.0.
Не прав?

hbars ★★★★★ ()
Ответ на: комментарий от Eddy_Em

И если пихать устройство толь в большой получится просто 2.0

hbars ★★★★★ ()
Ответ на: комментарий от hbars

Обычный USB-разъем. Просто на материнках он синенький, а на буках — абсолютно такой же, только рядом маркировка, что 3.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от ansky

Мне нравицца logitech c910 - среди IP-камер в таком компактном корпусе и с таким качеством картинки и за ту же цену я не найду )

kiverattes ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.