Опрос


Что для Вас Умный Дом?


Результаты


Реклама


Подключение web-камеры Genius I-Look 111 под Linux

22/11/2008 12:09:06

При использовании компьютера в качестве сервера домашнего видеонаблюдения всегда возникает соблазн попробовать Web-камеры.
Преимущества, вроде бы, очевидны:

  • низкая цена (пожалуй, основное достоинство)
  • нет необходимости в дополнительном питании (питание от USB)
  • цветная картинка

Но, разумеется, есть и недостатки:

  • максимальная длина кабеля, гарантирующая работу устройств, для USB составляет 3 метра
  • низкая (очень!) чувствительность дешевых камер при низкой освещенности

Итак, соблазн попробовать USB Web-камеру возник и у меня. Полагаясь на то, что Linux поддерживает большинство Web-камер я зашел в ближайший магазин и умышленно выбрал самую дешевую Web-камеру стоимостью 320 руб. Этой камерой оказалась Genius I-Look 111.





Характеристики не особенно выдающиеся: 0,1Мп CMOS сенсор, USB 1.1

Используя в качестве ОС Debian Etch (а позднее и Debian lenny, в которой проблема сохранилась) я установил драйвера

apt-get install gspca-modules-2.6.18-6-686

Но устройство /dev/video* не появилось. Драйвер этой камеры не знал. Что ж, это обычное дело, поэтому я обратился за последней версией драйверов gspca на сайт разработчика
http://mxhaard.free.fr/

Последняя версия драйвера была датирована 24 января 2007 года и имела версию 1.00.20
Скачав архив, я распаковал его и скомпилировал. Напомню, что для компиляции драйверов нужны такие Debian пакеты как build-essential, linux-headers и другие.

Выгружаем старый драйвер
rmmod gspca
Устанавливаем новый
insmod gspca.ko (Находясь в папке, где лежит свежескомпилированный модуль)

Устройство /dev/video* не появилось. Драйвер этой камеры не знал...

Несколько запросов в Google и, слава богу, нашелся человек, который сталкивался с данной проблемой.
http://vitus-wagner.livejournal.com/325190.html

Приведу выдержки из блога товарища vitus_wagner

diff -ruN gspca/gspca_core.c gspca.patched/gspca_core.c
--- gspca/gspca_core.c	2008-01-09 13:44:54.000000000 +0300
+++ gspca.patched/gspca_core.c	2008-11-07 17:49:34.000000000 +0300
@@ -833,6 +833,7 @@
 	{USB_DEVICE(0x046d, 0x08dd)},	/* Logitech QuickCam for Notebooks */
 	{USB_DEVICE(0x046d, 0x08af)},	/* Logitech QuickCam Cool */
 	{USB_DEVICE(0x093a, 0x2472)},	/* PAC207 Genius VideoCam ge110 */
+	{USB_DEVICE(0x093a, 0x2474)},    /* Genius I-Look 111 */
 	{USB_DEVICE(0x093a, 0x2463)},	/* Philips spc200nc pac207 */
 	{USB_DEVICE(0x0000, 0x0000)},	/* MystFromOri Unknow Camera */
 	{}			/* Terminating entry */
@@ -4127,6 +4128,7 @@
 			break;
 		case 0x2472:
 		case 0x2471:
+		case 0x2474:
 			spca50x->desc = GeniusGe111;
 			spca50x->bridge = BRIDGE_PAC207;
 			spca50x->sensor = SENSOR_PAC207;

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

	case SENSOR_OV7620:
	case SENSOR_MC501CB:
+	case SENSOR_PAC207:
		break;
	default:
		PDEBUG(0,

Компилируем

	make clean; make; rmmod gspca; insmod gspca.ko

Запускаем
xawtv -c /dev/video1 (или /dev/video0, в зависимости от того, какое у вас устройство по счету)

Ура, камера работает! Все было прекрасно. Физиономия, конечно слегка отличалась от того, что я видел в зеркале, но в целях видеонаблюдения, да еще за такие деньги сойдет. С этими мыслями я поспешил обратить око камеры на улицу. Но тут меня ждало разочарование... На мониторе я увидел инвертированный квадрат Малевича, а, попросту говоря, белое поле с зеленовато-синими пятнами в которых я узнал прилегающую дорогу. В чем же тут дело? Сенсор не способен отрабатывать короткую экспозицию?

Я подцепил камеру к Windows. Тут меня ждал сюрприз. Родная программа прекрасно показывала картинку за бортом. Если следовать логике причина лежала в драйвере веб-камеры для Linux... Интернет сходу не дал ответа на этот вопрос и я углубился в изучение драйвера. Сначала текущей версии, а затем и новой версии, носящей кодовое название gspca2. В этой версии я и нашел ответ на свой вопрос, но, к сожалению, не решение...
Все дело в сенсоре, который используется в этой камере. Называется он PAC207BCA и производит его компания PixArt Imaging Inc.

Оказалось, что этот чип использует плавающий алгоритм сжатия данных. То есть при низкой освещенности он вовсе не компрессирует данные, при средней компрессирует одним алгоритмом, а при высокой - другим алгоритмом, более агрессивным. Это необходимо, чтобы камера могла передать данные через USB 1.1 без потери данных. В большинстве случаев драйвера под Linux пишутся энтузиастами, которые производят реверс-инжениринг работы устройства, не имея зачастую никакой документации. Так случилось и с этой камерой. Никаких внятных данных от производителя нет. Нашелся человек, который смог написать функцию расшифровывания одного алгоритма, но его не хватило на тот алгоритм, который используется при ярком освещении. А, может быть, он посчитал, что будет вполне достаточно и этого, ведь веб-камеры чаще всего используются именно в помещении.

Вывод из всего этого такой. Genius I-Look 111, ровно как и прочие веб-камеры, использующие сенсор PAC207BCA, а таким камер не мало, не пригодны в качестве камер видеонаблюдения в связке с Linux, по причине неполной их поддержки драйвером gspca.

Пришлось камеру нацеливать на наблюдение за котельной. Это тоже полезная функция. Например можно удаленно видеть, не случилось ли в котельной какое ЧП... Разрешение камеры, конечно, маловато, но какое-то представление она все же дает. В связи с тем, что камера имеет низкую чувствительность требовалась подсветка. Я решил, что будет через чур расточительным делать подсветку лампами накаливания или даже люминесцентными лампами, поэтому применил светодиодную лампу Nakai NE MR16 / LED 18, работающую в видимом спектре и потребляющую 1Вт. Везде утверждается, что лампы Nakai японского производства, но, скорее всего, производятся они в Китае. А кто-нибудь видел сайт бренда Nakai? Свет, создаваемой этой светодиодной лампой примерно сравним с 20Вт лампой накаливания, но это вполне достаточно для того, чтобы разобрать контуры котельной. Заявленная продолжительность работы лампы 30 000 часов. Лампа была установлена 23 ноября 2008 года и, никогда не выключаясь, работает пока и по сей день. К сожалению спустя год непрерывной работы стоит сказать, что световой поток лампы ослаб субъективно примерно на 20-30%. Таким образом нужно констатировать факт, что дешевые китайские светодиодные лампы имеют ограниченный срок службы не по причине их выхода из строя, а по причине слишком быстрого (относительно заявленного срока службы) ослабления светового потока.

Несколько полезных советов.
Для захвата и сохранения в архиве кадров я в основном использую команду:

v4lctl snap jpeg full my_pic.jpg

прописав ее в cron с запуском каждую минуту.

По каким-то причинам v4lctl не совсем корректно работает с веб-камерой I-Look 111, и позволяет захватывать только кадры размером 160х120, в то время как настоящее разрешение камеры 352х288. Поэтому я воспользовался разработкой автора драйверов, которая носит название spcaview
Лежит это хозяйство там же: http://mxhaard.free.fr/
spcacat более корректно работает с камерой - захватывает изображение правильного разрешения. Кроме того, имеет ряд других возможностей.
Вот такой командой я пользуюсь для захвата с веб-камеры.

spcacat -d /dev/video1 -s 352x288 -o

Продолжение...

Logitech C250Спустя почти два года я решил поменять Web-камеру на более современную Logitech C250. На момент покупки (август 2010) камера стоила порядка 950 руб. Подключение к Linux'у в этот раз прошло без каких-либо приключений. Система сразу же "нашла" камеру и создала устройство /dev/video1

Качество картинки значительно превосходит Genius I-Look 111. Несмотря на скромный VGA сенсор с разрешением 640х480, изображение с камеры достаточно четкое, чистое, резкое, с относительно хорошей цветопередачей. Кроме того, камера Logitech C250 намного лучше "видит" при низком освещении. В связи с этим могу только порекомендовать использовать линейку продуктов от Logitech не только для видеонаблюдения, но и для видеоконференций. Подробнее.

 

 

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2009-10-11 17:30:54 | bolonia
А есть ли шанс завести эту камеру под Mac OS X