LINUX.ORG.RU

Видеорегистратор своими руками

 , ,


1

3

Сабж.

Есть желание собрать фронтальный видеорегистратор для авто на основе платы Raspberry PI 2 (Model B) и какой-нибудь вебки с питанием от USB.

Возникает сразу пачка вопросов:
- Стоит ли смотреть на широкоугольные (>100° угла поля зрения) камеры или же проще будет взять любую, запилив туда нормальную линзу (в фототехнике вообще не секу, возможно ли увеличить поле зрения, заюзав внешнюю линзу, без смены объектива оригинального устройства?)
- Есть ли какие-то неочевидные проблемы с драйверами для вебок на ARM-овских образах линухи?

Ответ на: комментарий от ThisNameWasFree

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

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

Остаётся тогда вопрос по углу обзора.

На этих ваших хреняндекс маркетах всего 12 моделей разной степени неадеквата имеют угол поля зрения >110°.

Мне прямая дорога на алиэкспресс или поле зрения можно как-то пропатчить руками, паяльником и стеклом?

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

Купил недавно, а потом вернул, вебку от A4tech, fullhd, 30fps.
Потому что максимум что выдавало - HD с 20 fps, с фуллхд было от силы 8 кадров. Так что, если у вас нет способа протестировать кучу вебок, чтобы найти нормальную, то дерзайте.

vladcraft ()

А почему не купить готовое устройство (КМК будет дешевле)?

- Есть ли какие-то неочевидные проблемы с драйверами для вебок на ARM-овских образах линухи?

У меня какой-то logitec, взлетело без проблем, но на B+ при работе с камерой ресурсы жрутся огого как.

alozovskoy ★★★★★ ()

Китайский видеорегистратор (при том с честным 30fps FullHD, а не 15-20fps как выдают в реальности многие вебки и мучениями с кодированием видео на слабой малинке) будет в несколько раз дешевле.

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

А почему не купить готовое устройство (КМК будет дешевле)?

30-баксовый noname из Китая подох на прошлой неделе и прихватил с собой SD карту. Каждая подобная покупка обходится в 2 месяца ожидания без надежды на успех. Проще один раз заморочиться и собрать самому, зная как оно работает. В крайнем случае можно будет перепрофилировать материнку под другие задачи.
Пока остановился на варианте PI 2 Model B + PI Cam Module + Wireless Adapter. Если не натыкаю вменяемую вебку с углом в ~120°, придётся ограничиться материнкой и камерой-расширением к плате.

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

Конечно можно и нужно, особенно если форма рук позволяет.
Это же банальная оптика, никаких секретов.
Особенно если она без автофокуса.

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

У вебок два режима работы: на качество и на кадры в секунду.
Если выбран режим на качество — кадров будет меньше при меньшем освещении.
Если на кадры, то качество будет страдать, но зато кадры проседать не будут.

По собственному опыту могу посоветовать Defender G-lens 2577 из недорогих качественных камер, доступных в расейской рознице.
За такую цену лучше фиг найдёшь, при тусклом офисном освещении она даёт честные 60фпс в разрешении 800×480 или 30фпс в 1280×720.

Оптика узкая, да.

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

Практика показывает что вебка+ежевика получается дешевле аналогичного по качеству готового устройства.

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

Ссылку на честный регистратор в студию.

Goury ★★★★★ ()

возможно ли увеличить поле зрения, заюзав внешнюю линзу, без смены объектива оригинального устройства?

На коленке невозможно.

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

Зато к Raspberry PI можно, скажем, примотать экран и вторую вебку на зад для парковки, её же использовать как мультимедиа-проигрыватель, воткнуть датчики температуры и ещё много интересных вещей, которые пожадничал производитель автомобиля :3

Проблема с тряской решается подвесом камеры сверху за пружину средней жёсткости, чтобы чуть проминалась под собственным весом.

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

Поле в пространстве предметов ограничено передней частью корпуса камеры, такое коническое углубление спереди. Это бленда, фактически.

Предположим, ты бленду уберешь, объектив оставишь и спереди поставишь рассеивающую линзу. Вроде, как получишь схему широкоугольного объектива, примерно как «рыбий глаз». Нет, поплывут все размеры, по крайней мере задний рабочий отрезок, от задней поверхности объектива до кристалла.

Предположим ты и с этим справишься. Но на коленке ты не сможешь отцентрировать даже двухкомпонентную систему и искажения будут присутствовать даже в центре изображения.

Забей.

anto215 ★★ ()

Если в линуксе под другими архитектурами работает, то и на ARM заведется. Другая проблема — ассемблерные вставки. Мне, например, одну свою библиотечку пришлось малость подрихтовать. Зато теперь ассемблерные вставки в ней и на i386, и на AMD64, и на ARM работают.

Но вот другой вопрос: потянет ли "малинка" видео в HD1080? А еще лучше в 4 раза больше, т.к. на HD1080 разглядеть номера едущей впереди на расстоянии сотни метров машины почти невозможно.

Вот взять бы помощней систему, можно было бы в реальном времени распознавать номера автомобилей в поле зрения и в лог сваливать. Удобно, однако.

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

1280×720

Это показометр, а не регистратор! Нужно не меньше HD1080. А еще лучше — QSXGA 2560x2048. Тогда уже можно назвать регистратором.

anonymous ()

А как ты собираешься реализовать аварийную блокировку памяти при сотрясении?

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

Тогда проще GoPro купить.
Там сразу и широкий обзор и мегапиксели и всё в одной коробке и на вибрации ей посрать.

Goury ★★★★★ ()
Последнее исправление: Goury (всего исправлений: 2)

у китайцев есть широкоугольные объекивы к камерам (на китайские вебки подходят).

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

Это на малинке с ее родным камерным модулем? Если так, то сколько кушает проца и какая малинка, какой софт? Я хочу компактный регик на работу сварганить.

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

Это на малинке с ее родным камерным модулем? Если так, то сколько кушает проца и какая малинка, какой софт? Я хочу компактный регик на работу сварганить.

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

ThisNameWasFree ()
Ответ на: комментарий от yaba

Добрался до цивилизации, сейчас буду медленно спамить.

Залил видео для примера - https://www.youtube.com/watch?v=SIlh75tqZo8&vq=hd1080 (убедитесь, что качество просмотра выставлено 1080p, шесть минут видео 1920x1080 регик упаковал в 763M .h264). Звука нету - расширения на плату не докупал, только материнка + 5MP камера от тех же ребят, что и плата.

У меня в Минске с электроникой подобного рода довольно тухло, как и с вообще доставкой напрямую в Беларусь, поэтому брал с рук - последняя малинка (RPI 2+) обошлась в $55, камера $26. Насколько реально взять дешевле в других городах\странах - смотрите сами.

По операционке: предпочитаю арч, поэтому был впёрт он. Хард (флешка) разбит на 2 партишена: немного для оси, остальное в FAT32 для видео.

По софту: производитель камеры наклепал примеров юзания своего поделия на обычном баше с параметрами, а не на вызовах API из C\C++, поэтому задача кода - собрать параметры в командную строку. На чём делать - до фонаря, я слепил за 20 минут на пыхе.

Сорц вида

# DVR settings

define('RUDE_DVR_MAX_VIDEO_FILES', 15);

define('RUDE_DVR_DIRECTORY_ROOT', '/mnt/videos');

define('RUDE_DVR_FILE_INDEX', RUDE_DVR_DIRECTORY_ROOT . DIRECTORY_SEPARATOR . 'index.txt');
<?

namespace rude;

require_once 'rude-config.php';
require_once 'src/rude-php/include.php';


camera = new camera('/opt/vc/bin/raspivid');
$camera->set_timeout_minutes(4);
$camera->set_automatic_white_balance_auto();
$camera->set_fps(24);
#$camera->set_video_stabilization();
#$camera->set_metering_matrix();
$camera->set_iso(200);


if (!filesystem::is_exists(RUDE_DVR_FILE_INDEX))
{
	filesystem::write(RUDE_DVR_FILE_INDEX, 1);
}

$index = filesystem::read(RUDE_DVR_FILE_INDEX);
$index++;

for ($i = $index; $i < PHP_INT_MAX; $i++)
{
	filesystem::write(RUDE_DVR_FILE_INDEX, $i);

	$video_files       = filesystem::search_files(RUDE_DVR_DIRECTORY_ROOT, 'h264', false);
	$video_files_count = count($video_files);

	if ($video_files_count > RUDE_DVR_MAX_VIDEO_FILES)
	{
		sort($video_files);

		$total_remove = $video_files_count - RUDE_DVR_MAX_VIDEO_FILES;

		foreach (items::first($video_files, $total_remove) as $video_file)
		{
			filesystem::remove(RUDE_DVR_DIRECTORY_ROOT . DIRECTORY_SEPARATOR . $video_file);
		}
	}

	$camera->set_output_file(RUDE_DVR_DIRECTORY_ROOT . DIRECTORY_SEPARATOR . 'video_' . $i . '.h264');
	$camera->init();
}

Для своего любимого языка подставить по аналогии. Весь архив поделия - http://rude-php.com/rude-dvr.zip.

ThisNameWasFree ()
Ответ на: комментарий от yaba

Внешний вид скворечника - http://rude-php.com/dvr.jpg

Шестибаксовый корпус из оргстекла пришлось фиксить дрелью для выемки под присоску на стекло (сверху) и под саму камеру (фронтальная часть, 4 отверстия под крепёж камеры + один под сам объектив).

Самое геморройное из всего этого было найти пару винтов на 2мм с гаечками для крепежа. Безуспешно обошёл часовщиков и радиорынок. Случайно зашёл в оптику где брал когда-то очки с напылением и за коробку конфет уговорил продавщицу расстаться с частью винтиков.

ThisNameWasFree ()
Ответ на: комментарий от alix

На плате всего один разъём под RPI камеру. Даже если возьму пару вебок на USB и догадаюсь их зафиксировать так, чтобы не тряслись - я не уверен, что малинка успеет клеить два видеопотока в один.

ThisNameWasFree ()
Ответ на: комментарий от alix

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

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

Просто развивая мысль - я не настаиваю - можно записывать оба потока одновременно, а склеивать лишь по необходимости

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

Спасибо за подробный рассказ! Чисто у вас там в Минске.

Камеру уже заказал, для съемки скорее всего буду использовать патченный motion (уже немного ознакомился с малинкиной камерой заочно), писать буду на хард 2,5". Получается бутерброд конечно толстый: малинка в кожухе, хард в боксе, аккумулятор плоский (самодельная УПСа), камеру размещу в торце этого бутерброда. Доступ по WiFi, только шнурок питания кинуть и можно прятать под фальш-потолок.

yaba ★★ ()

Возьми две обычных вебки, поставь их под углом. Получишь все 180 градусов обзора.

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