Тестирование камеры и проверка камеры являются отличными инструментами для тестирования камеры и сбора технических деталей об устройстве обработки изображений. Однако, похоже, что бывают ситуации, когда люди просто хотят запустить предварительный просмотр камеры, не дожидаясь определения каких-либо технических деталей. Чтобы избавить их от ненужных функций и траты времени, я разработал простой онлайн-просмотрщик камеры, который транслирует видео с камеры в режиме реального времени.
Обратите внимание, что просмотрщик веб-камеры делает только одно: запускает камеру и показывает, что она снимает. Он даже не определяет максимальное разрешение и не поддерживает какие-либо действия (например, полноэкранный режим или снимки). Если вам нужны дополнительные функции или технические детали, попробуйте другой инструмент.
Этот бесплатный просмотрщик камеры не требует установки дополнительного программного обеспечения и поддерживает различные операционные системы (такие как Android, iOS, Linux, macOS, Windows и другие) независимо от типа камеры (встроенная, USB или беспроводная).
CMS — видеонаблюдение на компьютере. руководство по программе
Как запустить просмотрщик камеры?
- Выберите нужную веб-камеру.
- Нажмите «Показать предварительный просмотр камеры».
- Предоставьте доступ к вашей камере.
- Подождите несколько секунд, чтобы увидеть результат.
Обратная связь
Если вам нравится просмотрщик камеры или у вас есть какие-либо идеи и вопросы, не стесняйтесь оставлять комментарии. Обратите внимание, что все комментарии общедоступны.
Случайные Благодарности
Сайт- супер! — Ирина
НОРМ Я ИСПОЛЬЗУЮ КАК ДЗЕРКАЛО — Володимир
94 комментариев о странице «Просмотрщик камеры»
Владимир, 2 октября 2019 в 17:43 #
фигня какая то а не проверка 30 минут смотрел на черный мелькающий экран и не чего только повторите попытку
Стас, 8 октября 2019 в 05:57 # ↑
а у вас есть камера?
Ольга, 28 апреля 2020 в 07:19 # ↑
Как быть если видео кверх ногами?
Сергей, 28 декабря 2021 в 11:37 # ↑
поищите в драйвере камеры или переверните
Владимир, 18 марта 2021 в 19:34 # ↑
камера не работает
даня, 7 июня 2022 в 13:18 # ↑
отлично работает на все сто проц!
КРАВЧЕНКО БОГДАН, 21 февраля 2023 в 17:25 # ↑
ДА ЙЕС КАМЕРА
сергей, 21 октября 2019 в 04:58 # ↑
так-же но на скайпе работает
Виталий, 9 октября 2019 в 10:02 #
Все четко работает
Константин, 16 октября 2019 в 19:25 #
оно очень ухуенно работает
николай, 19 октября 2019 в 14:36 #
включил просмотрщик камеры но екран черный
Богдан, 17 сентября 2021 в 04:43 # ↑
Нажми на клавиатуре FN + F6
КРАВЧЕНКО БОГДАН, 21 февраля 2023 в 17:24 # ↑
КАМЕРА КЛАС 2-А КЛАС 9 ЛЕТ 3-А КЛАС 10 ЛЕТ
николай, 20 октября 2019 в 04:04 #
камера бывает отключаеться в скайпе
Алексей, 24 октября 2019 в 09:15 #
Всё работает
Нина, 27 октября 2019 в 09:36 #
Все отлично,но в скайпе запись,что не обнаружены микрофоны,такого у меня никогда не было.Просят включить микрофон,я этого не могу сделать.
Юрий, 9 ноября 2019 в 11:26 #
мне понравилось
валера, 1 декабря 2019 в 15:50 #
По непонятности запроса не разрешил использовать камеру перезагружал менял браузеры всё равно мстит и пишет вы не разрешили значит следит за другими браузерами-в понимании шпионит.
Валерий, 13 декабря 2019 в 12:19 #
Все прекрасно получается на большом расстоянии, но у меня на компе исчезла первичная установка, — то есть нет драйвера для работы камеры. Сама же камера переносная и должна работать автономно от аккумулятора — кубик (SQ 11). Не могу найти заводскую установку камеры и плеер на комп. Мой Виндовс 7 (32) не распознает флэш-карту (Самсунг 8 ГБ) и требует форматировать.
Далее ищет что то и выдает что карта не доступна. Однако подозреваю что куда то исчезли заводские настройки в самой камере. Что делать не знаю. Мне бы как то на эту камеру да все что есть с драйверов скачать на комп.
Тугол, 11 февраля 2021 в 04:34 # ↑
Запустите DriverPackSolition
михаил, 11 февраля 2020 в 06:51 #
сижу полчаса черный мерцающий экран
Мария, 27 марта 2020 в 05:34 #
Камера, показывает цветным цветом? Почему? Может есть драйвера, которые это могут изменить?
Марк, 31 марта 2020 в 06:49 #
камера свен отличная
Сергей, 31 марта 2020 в 17:52 #
Нет никакого видео. Так и не понял камера работает или пришла пора её выбрасывать!
Николай, 1 апреля 2020 в 10:39 #
Все хорошо!
Айбота, 4 апреля 2020 в 10:46 #
не работает
еаиреаи, 5 апреля 2020 в 08:08 #
размыленно
Надежда, 10 апреля 2020 в 06:32 #
При включении Вайбер камера не работает
КОЛЯ, 12 апреля 2020 в 07:10 #
КРУТО, ЗА ЭТО ЛАЙК
Алексей, 17 апреля 2020 в 03:41 #
Все проверил все работает
Юрий, 26 апреля 2020 в 04:23 #
Большое спасибо
Алина, 30 апреля 2020 в 12:24 #
Что делать,если он пишет,что моя камера используется или блокируется другим приложением? Как узнать что это за приложение?
Тогжан, 3 мая 2020 в 09:17 # ↑
и у меня также выходит
ьььььь, 29 июля 2022 в 21:20 # ↑
хочуу жену
Мирослав, 6 июня 2020 в 14:01 #
смотрю себя в 8 фпс :<)
александр, 19 июня 2020 в 19:48 #
норм но что то с моей камерой не так что то размыто моё лицо
СВЕТЛАНА, 23 августа 2020 в 09:43 #
ОЧЕНЬ ИНТЕРЕСНО
валерий, 19 сентября 2020 в 12:15 #
Как написал проверил в режиме веб камеры показало работает дальше буду настраивать сам. Если ещё есть идеи для начинающих установщиков предлагай. Проверял при покупке мини вэб экшн80
рома, 29 сентября 2020 в 03:25 #
все хорошо работает
Петр, 12 октября 2020 в 15:09 #
У меня он заработал! и Драйвер подошел! Но почему-то Скайп не видит камеру ((
Александр И., 14 октября 2020 в 10:42 #
Включил прогу.Нашла камеру. Разрешил передачу и все.
И поди плохо. Все работает. Ок.
Евгений, 21 октября 2020 в 19:14 #
В ожидании вашего разрешения. И что дальше.
АННА, 31 октября 2020 в 06:59 #
НЕ УСТАНОВИТЬ ПЛОХО
артем, 15 ноября 2020 в 20:34 #
просто шик
олег, 22 ноября 2020 в 10:03 #
не могу подобрать драйвер
Михаил, 23 ноября 2020 в 14:54 #
Хороший сайт отображает много полезных данных
вас, 30 ноября 2020 в 11:20 #
очень помог ваш ресурс, спасибо!
Борис, 15 декабря 2020 в 11:51 #
просто использовать, удобно смотреть результат
Виктор, 18 декабря 2020 в 08:46 #
У камеры есть звук, но нет изображения.
Александр, 7 января 2021 в 10:38 #
Помогите подобрать драйвер к камере USB 2.0 UVC HD Webcam ноутбука Aspire 5930,при переходе на windous 10,при переходе на windows 10 изображение перевернулось?спасибо
тупак шакур, 11 января 2021 в 10:17 #
дмитрий, 18 января 2021 в 08:31 #
камера супер показывает нормально.
Александр, 19 января 2021 в 15:43 #
Отличный сайт. Интуитивно понятный. Камеру проверил.Микрофон проверил.
Александр, 30 января 2021 в 05:33 #
не работает камера Gtnius iLook 300 нужны драйвера
MAKAR, 9 февраля 2021 в 21:42 #
хочу любви.
Владислав, 18 февраля 2021 в 08:02 #
Все быстро, удобно и понятно
Владимир, 18 марта 2021 в 19:31 #
Не работает моя камера Microsoft LifeCam VX-1000
Виктор, 31 марта 2021 в 05:42 #
все хорошо
Дмитрий, 28 апреля 2021 в 19:12 #
целый час черный экран и никаких сдвигов
Александр, 16 мая 2021 в 15:57 #
Отличная штука для проверки вебкамеры. Большое спасибо.
олег, 19 мая 2021 в 14:53 #
классс спасибо
шапка , 22 сентября 2021 в 10:52 # ↑
камера зеркальная
Юрий, 1 сентября 2021 в 10:30 #
Здорово! Прекрасный сайт!
Салям по полям, 13 сентября 2021 в 19:16 #
Спасибо вы очень умные люди
Neo, 27 сентября 2021 в 15:21 #
Все работает отлично, спасибо
Юрий, 1 октября 2021 в 09:06 #
отличный просмотр камеры
Галина, 2 ноября 2021 в 22:22 #
камера показывакт вверх ногами как перевернуть
стас, 9 декабря 2021 в 14:48 #
Ну да класно главное экран пк зовиснет тово что если припаднимаешь левую руку а получается правая
УЛДАНАЙ, 3 февраля 2022 в 16:16 #
СПАСИБО ПРЕКРАСНЫЙ САЙТ
дмитрий, 21 апреля 2022 в 10:08 #
очень хороший сайт)
Сергей, 5 мая 2022 в 21:19 #
Спасибо всё работает на ура!
Макс, 12 мая 2022 в 14:31 # ↑
Дааааа это прога огонь и топ 10 из 10 баллов
Юрий, 26 июня 2022 в 17:42 #
Низкий поклон.Спасибо за помощь.Сайт супер!
Aлексей, 13 июля 2022 в 11:16 #
проверяю PTZ Pro 2. Работает отлично.
Юлия , 17 сентября 2022 в 12:00 #
здравствуйте как подключить камеру через вай фай
владимир, 22 сентября 2022 в 14:47 #
полезная вещ
Альмира, 3 октября 2022 в 13:23 #
Проверка прошла успешно! Спасибо!
Руслан, 7 октября 2022 в 23:36 #
Наталья, 20 октября 2022 в 14:04 #
Здравствуйте. Тестирование выдаёт «По-видимому, ваша камера используется или блокируется другим приложением. Чтобы запустить камеру, вы должны временно закрыть то приложение.» Что делать?
Плохо всё(((, 23 октября 2022 в 19:04 #
Тестирование камеры и проверка камеры являются отличными инструментами для тестирования камеры и сбора технических деталей об устройстве обработки изображений. Однако, похоже, что бывают ситуации, когда люди просто хотят запустить предварительный просмотр камеры, не дожидаясь определения каких-либо технических деталей.
Чтобы избавить их от ненужных функций и траты времени, я разработал простой онлайн-просмотрщик камеры, который транслирует видео с камеры в режиме реального времени. Обратите внимание, что просмотрщик веб-камеры делает только одно: запускает камеру и показывает, что она снимает. Он даже не определяет максимальное разрешение и не поддерживает какие-либо действия (например, полноэкранный режим или снимки). Если вам нужны дополнительные функции или технические детали, попробуйте другой инструмент. Этот бесплатный просмотрщик камеры не требует установки дополнительного программного обеспечения и поддерживает различные операционные системы (такие как Android, iOS, Linux, macOS, Windows и другие) независимо от типа камеры (встроенная, USB или беспроводная).
Источник: ru.webcamtests.com
Как подключить камеру: пошаговая инструкция от WiFiGid
Друзья, приветствую! На связи Ботан из WiFiGid. Обзавелись камерой в домашнем хозяйстве и уже находитесь в предвкушении великих дел? Что-то не получается? Не проблема, в этой статье на примере собственной вебкамеры от Logitech я покажу, как можно подключить камеру к компьютеру, а может быть и еще чего интересного. Ну это как пойдет…
Все равно ничего не получается или остались вопросы? Напишите комментарий к этой статье! Возможно, вы получите ответ, но как минимум хороший комментарий помогает следующему читателю. Спасибо!
Шаг 1 – Установка камеры
Что бы вы там ни задумали с этой камерой, все равно придется ее изначально физически подключить. Скорее всего у вас не Wi-Fi камера, а подключение происходит через обычный USB разъем. Но если что-то не так – где находится обсуждение проблем, вы уже знаете. Но перед подключение ее нужно установить. И иногда это не совсем очевидно.
И совет от меня. Обычно с любой камерой есть инструкция – рекомендую все-таки пробежаться по ней глазами, некоторые производители стараются «удивить» нестандартностью своего пользователя. Если же в инструкции видите красивые иероглифы или прочий басурманский текст, рекомендую обратиться к поиску в Ютубе по точному циферному названию своей модели. И это помогает лучше всяких статей.
Способов закрепить камеру существует много, долго на этом останавливаться не буду. Некоторые ставятся на ножки, некоторые на присоски. Но большая часть домашних вебкамер крепится на монитор методом аккуратного «зажима». Показываю на примере своей старенькой Logitech C270:
Шаг 2 – Подключение через USB
Как уже писал выше, большая часть камер без всяких извращений подключается по стандартному USB порту. Берем и вставляем в любой свободный порт:
А вот теперь несколько важных замечаний от меня. Камеры бывают разные, поэтому могут возникнуть разные внештатные ситуации:
- Не заработало в первом USB порту – подключите в другой. Ну мало ли, вдруг этот порт прямо сейчас приказал долго жить. А еще лучше найти порт от текущего «подальше», чтобы точно не зацепить единый контроллер. Т.е. если подключали сзади – подключите спереди и наоборот. Задние порты сейчас цепляются на несколько контроллеров и могут быть выделены в разные группы – пробуйте. Основная проблема подключений камеры (кроме драйверов), лежит именно здесь.
- Передние порты USB иногда не вытягивают питание. Рекомендую приоритет отдавать задним.
- Через USB-концентраторы тоже порой не хватает питания. По возможности избегаем их. Хотя камера обычно и не потребляет много мощностей, но вдруг соседнее железо у вас будет влиять на нее.
- Нет порта USB? Наверняка есть другой порт (например, USB-C) – тогда нужно докупать «переходник» на обычный USB.
После подключения камеры система начнет издавать приятные мурлыкающие звуки. Дополнительно возможны вылеты подобных окошек:
В моем случае все установилось автоматически, и камеру уже можно использовать в любом приложении.
Шаг 3 (промежуточный) – Проверка камеры
Прежде чем перейти к дальнейшим настройкам, рекомендую проверить работоспособность камеры. А вдруг все уже работает, и ничего не нужно делать? На Windows 10 проверку можно сделать уже установленными средствами – приложениями Камера и Skype. Если знаете как это сделать – пропускаем (но не забудьте в настройках установить свою камеру, мало ли).
- Камера (если есть)
- Скайп (если вдруг нет – установить)
- Диспетчер устройств (есть всегда)
Идем по пунктам. Через поиск или Пуск ищем «Камера» и запускаем:
Как видите, эта штука все съела сразу и без проблем. Если здесь не работает – идем в Скайп. Со скайпом чуть менее очевидно (особенно с новыми версиями).
Настройки – Звук и видео – Выбираем камеру
Здесь можно выбрать при желании нужную камеру (особенно, если есть нерабочая встроенная). Не работает и здесь? Проверяем в Диспетчере устройств. Проще всего его открыть, щелкнув Правой кнопкой мыши по кнопке Пуск:
Пытаемся найти какой-нибудь раздел, связанный с камерами или около того. У меня она «упала» немного не сюда, так что просматриваем все и ищем похожую на свою модель:
Не смогли найти? А может быть среди устройств в Диспетчере есть подозрительные неизвестные устройства с восклицательными знаками? Скорее это оно и есть. Поздравляю! У вас нестандартная камера.
Переходим в следующий раздел.
Шаг 4 – Установка драйверов и программ
И здесь начинается самое веселое. Что нам можно сделать:
- Установить программу от производителя – там обычно и приложение с настройками, и драйвер.
- Установить отдельно драйвер .
Какой вариант вас больше устраивает? Предлагаю начать с первого.
Некоторые производители складывают в комплекте до сих пор CD/DVD диски – но лично у меня дисководов уже нет давно. Если есть возможность и это ваш случай – попробуйте установить с него что-нибудь.
Установка официальных программ
Идем на официальный сайт и ищем на нем название своей камеры. Можно сделать и проще – просто вбить ее в любом поисковике. С большой вероятностью первая ссылка и будет официальной страницей (но рекомендую быть внимательнее – мало ли злодее развелось).
На официальном сайте около страницы нашей вебкамеры пытаемся найти что-то связанное с программами или драйверами. Методом тыка я и пришел на страницу Загрузок:
Скачиваем приложение для своей камеры, устанавливаем, все должно заработать. Этот процесс опущу, так как конкретно для вас это наоборот может ввести путаницу – ведь камеры у всех разные. Но про вопросы и комментарии не забывайте, мало ли что.
Сразу же прошу обратить внимание на проблему совместимости. Некоторые старые web-камеры официально не поддерживают новые версии Windows или другую операционную систему (Linux, MAC OS). Есть ситуации и наоборот, когда железо отказывается работать со старыми версия операционных систем (например, работает только на «десятке», а с Windows 7 не дружит). Это уже решения самих производителей.
Что стоит попробовать в этом случае – насильно поставить эту же программу или драйвер. А вдруг пойдет? Если нет – спасет только замена системы.
Установка драйверов
Если на прошлом шаге среди официального ПО вы нашли драйвер – прекрасно. Ставьте и не волнуйтесь. После этого процесса скорее всего у вас все и заработает. Но порой его найти сложно. Или ситуация страшнее – вы не знаете название модели.
В таком случае можно воспользоваться общими методами поиска драйверов.
- Можете глянуть эту статью по установке сетевых драйверов (немного не в тему, но принцип поиска тот же). Особенное внимание к поиску драйверов по ID устройства для установки своими руками.
- Можете сразу поискать в интернете « Driver Pack Solution ». Это лично мое любимое приложение. Определит нужные драйвера сама, скачает, установит, а параллельно обновит и другие, чтобы работало лучше. Но с ней нужно быть внимательнее – рекомендую делать настройку только в ручном режиме («для администраторов») и снимать ненужные галочки. А то понаставит 100500 ненужных браузеров и антивирусов – нас интересуют только драйвера! По работе с ней есть небольшая информация в указанной выше статье, хотя там все несложно.
После установки драйверов делаем еще один шаг проверки. Убеждаемся, что в Диспетчере устройств камера отобразилась. Если же вдруг нет – или камере плохо, или явная проблема совместимости без логического продолжения.
А еще очень часто помогает простая перезагрузка. Без шуток.
Если не работает звук
Частая проблема, которую стоит рассмотреть отдельно. Суть – камеру-то вы поставили, но чего-то звук не идет. Лично я вообще призываю не использовать микрофон веб-камер, особенно если вы ее приобрели за «недорого» – у вашего собеседника могут сломаться уши, т.к. почему-то звук с самых дешевых микрофонов обычно все равно лучше (как минимум из-за расстояния от вас до камеры). Ну да ладно, на любое правило найдется исключение.
Вернемся к проблеме. Если у вас в камере точно заявлен микрофон (смотрим характеристики и упаковку), а драйвера установлены корректно – значит просто неверно выбран источник звука. Т.е. представьте, что работает скайп, а звук пытается взять с какого-то другого разъема. И это касается всех программ, работающих с микрофоном. Более того – в системе есть отдельная «единая» система захвата звука, но и она легко обходится сторонними программами.
Итого – нет звука – бежим в настройки своей программы.
Вот как это можно посмотреть в скайпе:
Настройки – Звук и видео – Микрофон
Обратите внимание, что в списке выбора есть некое «Устройство по умолчанию». Вот оно и задается в самой системе. Просто покажу это здесь на всякий случай. Ищем в трее возле часов значок звука и щелкаем по нему правой кнопкой мыши и выбираем «Открыть параметры звука» (то же самое можно найти и через поиск в системе или методом тыка в меню «Параметры»):
Откроется сразу вкладка «Звук», где в разделе «Ввод» и указывается микрофон по умолчанию – вот здесь и можно задать вашу вебку (а вот если щелкнуть по «Свойства устройства» – там будет настройка уровня звука микрофона, тоже частая проблема, когда вас не слышат, хотя звук нормально отстраивать уже в приложении).
Про камеры видеонаблюдения
Друзья, вы уже наверняка поняли, что камер очень много, и подгадать стопроцентный алгоритм конкретно под вашу модель невозможно. Но информации выше обычно хватит 99% наших читателей. В этом разделе я тезисно хочу обсудить тему видеонаблюдения, так как подключение камеры видеонаблюдения к компьютеру может заметно отличаться от обычной вебки:
- Вебкамеры обычно не созданы для наблюдения.
- Некоторый официальный софт от камеры все-таки позволяет включить некоторые функции (вроде слежения и движения), но это все равно ерунда. И даже если поставите отдельный софт. Из применимых к описанной в примере камеры можно взглянуть на прогу Logitech Webcam Software.
- Если нужно постоянное видеонаблюдение – ставьте уличную камеру. Вот наш обзор на эту тему.
- IP-камеры уже подключаются не в USB, а светятся в сети. Подробнее об этом и их настройке.
- А еще у наших читателей очень популярна китайская камера V380 Лично мне она не нравится, у нее есть некоторые проблемы, но народ активно берет и пользуется. Наш обзор.
На этом откланиваюсь. Если что-то было непонятно – пишите в комментарии. Там же можно поделиться своим опытом с другими людьми, которые прямо сейчас тоже читают эту статью. До скорых встреч на WiFiGid!
Источник: wifigid.ru
Какой программой открыть камеру
Начнем с того, что настроим клиенты и сервер.
Конфигурирование системы и установка необходимых пакетов
Сначала установим opencv и ZMQ. Чтобы избежать конфликтов, развертывание проведем в виртуальной среде:
На следующем шаге выберите опцию N1 Hostname.
На этом этапе задайте осмысленное имя хоста (например, pi-livingroom, pi-bedroom, pi-garage). Так вам будет легче ориентироваться в клиентах сети и сопоставлять имена и IP-адреса.
Далее, необходимо согласиться с изменениями и перезагрузить систему.
В некоторых сетях вы можете подключиться через SSH, не предоставляя IP-адрес явным образом:
Определение отношений сервер-клиент
Прежде чем реализовать стриминг потокового видео по сети, определим отношения клиентов и сервера. Для начала уточним терминологию:
- Клиент – устройство, отвечающее за захват кадров с веб-камеры с использованием OpenCV, а затем за отправку кадров на сервер.
- Сервер — компьютер, принимающий кадры от всех клиентов.
Конечно, и сервер, и клиент могут и принимать, и отдавать какие-то данные (не только видеопоток), но для нас важно следующее:
- Существует как минимум одна (а скорее всего, несколько) система, отвечающая за захват кадров (клиент).
- Существует только одна система, используемая для получения и обработки этих кадров (сервер).
Структура проекта
Структура проекта будет состоять из следующих файлов:
$ $ tree . ├── MobileNetSSD_deploy.caffemodel ├── MobileNetSSD_deploy.prototxt ├── client.py └── server.py 0 directories, 4 files
Два первых файла из списка соответствуют файлам предобученной нейросети Caffe MobileNet SSD для распознавания объектов. В репозитории по ссылке можно найти соответствующие файлы, чьи названия, правда, могут отличаться от приведенных ( *.caffemodel и deploy.prototxt ). Сервер ( server.py ) использует эти файлы Caffe в DNN-модуле OpenCV.
Скрипт client.py будет находиться на каждом устройстве, которое отправляет поток на сервер.
Реализация клиентского стримера на OpenCV
Начнем с реализации клиента. Что он будет делать:
- Захватывать видеопоток с камеры (USB или RPi-модуль).
- Отправлять кадры по сети через ImageZMQ.
Откроем файл client.py и вставим следующий код:
# импортируем необходимые библиотеки from imutils.video import VideoStream # захват кадров с камеры import imagezmq import argparse # обработка аргумента командной строки, содержащего IP-адрес сервера import socket # получение имени хоста Raspberry Pi import time # для учета задержки камеры перед отправкой кадров # создаем парсер аргументов и парсим ap = argparse.ArgumentParser() ap.add_argument(«-s», «—server-ip», required=True, help=»ip address of the server to which the client will connect») args = vars(ap.parse_args()) # инициализируем объект ImageSender с адресом сокета сервера sender = imagezmq.ImageSender(connect_to=»tcp://<>:5555″.format( args[«server_ip»]))
Назначение импортируемых модулей описано в комментариях. В последних строчках создается объект-отправитель, которому передаются IP-адрес и порт сервера. Указанный порт 5555 обычно не вызывает конфликтов.
Инициализируем видеопоток и начнем отправлять кадры на сервер.
# получим имя хоста, инициализируем видео поток, # дадим датчику камеры прогреться rpiName = socket.gethostname() vs = VideoStream(usePiCamera=True).start() #vs = VideoStream(src=0).start() time.sleep(2.0) # задержка для начального разогрева камеры while True: # прочитать кадр с камеры и отправить его на сервер frame = vs.read() sender.send_image(rpiName, frame)
Теперь у нас есть объект VideoStream , созданный для захвата фреймов с RPi-камеры. Если вы используете USB-камеру, раскомментируйте следующую строку и закомментируйте ту, что активна сейчас.
В этом месте вы также можете установить разрешение камеры. Мы будем использовать максимальное, так что аргумент не передастся. Если вы обнаружите задержку, надо уменьшить разрешение, выбрав одно из доступных значений, представленных в таблице. Например:
vs = VideoStream(usePiCamera=True, resolution=(320, 240)).start()
Для USB-камеры такой аргумент не предусмотрен. В следующей строке после считывания кадра можно изменить его размер:
frame = imutils.resize(frame, width=320)
В последних строках скрипта происходит захват и отправка кадров на сервер.
Реализация сервера
На стороне сервера необходимо обеспечить:
- Прием кадров от клиентов.
- Детектирование объектов на каждом из входящих кадров.
- Подсчет количества объектов для каждого из кадров.
- Отображение смонтированного кадра (панели), содержащего изображения от всех активных устройств.
Последовательно заполним файл с описанием сервера server.py :
# импортируем необходимые библиотеки from imutils import build_montages # монтаж всех входящих кадров from datetime import datetime import numpy as np import imagezmq import argparse import imutils import cv2 # создаем парсер аргументов и парсим их ap = argparse.ArgumentParser() ap.add_argument(«-p», «—prototxt», required=True, help=»path to Caffe ‘deploy’ prototxt file») ap.add_argument(«-m», «—model», required=True, help=»path to Caffe pre-trained model») ap.add_argument(«-c», «—confidence», type=float, default=0.2, help=»minimum probability to filter weak detections») ap.add_argument(«-mW», «—montageW», required=True, type=int, help=»montage frame width») ap.add_argument(«-mH», «—montageH», required=True, type=int, help=»montage frame height») args = vars(ap.parse_args())
Библиотека imutils упрощает работу с изображениями (есть на GitHub и PyPi).
Пять аргументов, обрабатываемых с помощью парсера argparse :
- —prototxt : путь к файлу прототипа глубокого изучения Caffe.
- —model : путь к предообученной модели нейросети Caffe.
- —confidence : порог достоверности для фильтрации случаев нечеткого обнаружения.
- —montageW : количество столбцов для монтажа общего кадра, состоящего в нашем примере из 2х2 картинок (то есть montageW = 2) . Часть ячеек может быть пустой.
- —montageH : аналогично предыдущему пункту — количество строк в общем кадре.
Вначале инициализируем объект ImageHub для работы с детектором объектов. Последний построен на базе MobileNet Single Shot Detector.
imageHub = imagezmq.ImageHub() # инициализируем список меток классов сети MobileNet SSD, обученной # для детектирования, генерируем набор ограничивающих прямоугольников # разного цвета для каждого класса CLASSES = [«background», «aeroplane», «bicycle», «bird», «boat», «bottle», «bus», «car», «cat», «chair», «cow», «diningtable», «dog», «horse», «motorbike», «person», «pottedplant», «sheep», «sofa», «train», «tvmonitor»] # загружаем сериализованную модель Caffe с диска print(«[INFO] loading model. «) net = cv2.dnn.readNetFromCaffe(args[«prototxt»], args[«model»])
Объект ImageHub используется сервером для приема подключений от каждой платы Raspberry Pi. По существу, для получения кадров по сети и отправки назад подтверждений здесь используются сокеты и ZMQ .
Предположим, что в системе безопасности мы отслеживаем только три класса подвижных объектов: собаки, люди и автомобили. Эти метки мы запишем в множество CONSIDER , чтобы отфильтровать прочие неинтересные нам классы (стулья, растения и т. д.).
Кроме того, необходимо следить за активностью клиентов, проверяя время отправки тем или иным клиентом последнего кадра.
# инициализируем выбранный набор подсчитываемых меток классов, # словарь-счетчик и словарь фреймов CONSIDER = set([«dog», «person», «car»]) objCount = frameDict = <> # инициализируем словарь, который будет содержать информацию # о том когда устройство было активным в последний раз lastActive = <> lastActiveCheck = datetime.now() # храним ожидаемое число клиентов, период активности # вычисляем длительность ожидания между проверкой # на активность устройства ESTIMATED_NUM_PIS = 4 ACTIVE_CHECK_PERIOD = 10 ACTIVE_CHECK_SECONDS = ESTIMATED_NUM_PIS * ACTIVE_CHECK_PERIOD # назначаем ширину и высоту монтажного кадра # чтобы просматривать потоки от всех клиентов вместе mW = args[«montageW»] mH = args[«montageH»] print(«[INFO] detecting: <>. «.format(«, «.join(obj for obj in CONSIDER)))
Далее необходимо зациклить потоки, поступающие от клиентов и обработку данных на сервере.
# начинаем цикл по всем кадрам while True: # получаем имя клиента и кадр, # подтверждаем получение (rpiName, frame) = imageHub.recv_image() imageHub.send_reply(b’OK’) # если устройства нет в словаре lastActive, # это новое подключенное устройство if rpiName not in lastActive.keys(): print(«[INFO] receiving data from <>. «.format(rpiName)) # записываем время последней активности для устройства, # от которого мы получаем кадр lastActive[rpiName] = datetime.now()
Итак, сервер забирает изображение в imageHub , высылает клиенту сообщение о подтверждении получения. Принятое сервером сообщение imageHub.recv_image содержит имя хоста rpiName и кадр frame . Остальные строки кода нужны для учета активности клиентов.
Затем мы работаем с кадром, формируя блоб (о функции blobFromImage читайте подробнее в посте pyimagesearch). Блоб передается нейросети для детектирования объектов.
Замечание: мы продолжаем рассматривать цикл, поэтому здесь и далее будьте внимательны с отступами в коде.
# изменяем размер кадра, чтобы ширина была не больше 400 пикселей, # захватываем размеры кадров и создаем блоб frame = imutils.resize(frame, width=400) (h, w) = frame.shape[:2] blob = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)), 0.007843, (300, 300), 127.5) # передаем блоб нейросети, получаем предсказания net.setInput(blob) detections = net.forward() # сбрасываем число объектов для интересующего набора objCount =
Теперь мы хотим пройтись по детектированным объектам, чтобы посчитать и выделить их цветными рамками:
# циклически обходим детектированные объекты for i in np.arange(0, detections.shape[2]): # извлекаем вероятность соответствующего предсказания confidence = detections[0, 0, i, 2] # отфильтруем слабые предсказания, # гарантируя минимальную достоверность if confidence > args[«confidence»]: # извлекаем индекс метки класса idx = int(detections[0, 0, i, 1]) # проверяем, что метка класса в множестве интересных нам if CLASSES[idx] in CONSIDER: # подсчитываем детектированный объект objCount[CLASSES[idx]] += 1 # вычисляем координаты рамки, ограничивающей объект box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]) (startX, startY, endX, endY) = box.astype(«int») # рисуем рамку вокруг объекта cv2.rectangle(frame, (startX, startY), (endX, endY), (255, 0, 0), 2)
Далее, аннотируем каждый кадр именем хоста и количеством объектов. Наконец, монтируем из нескольких кадров общую панель:
# отобразим имя клиента на кадре cv2.putText(frame, rpiName, (10, 25), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) # отобразим число объектов на кадре label = «, «.join(«<>: <>».format(obj, count) for (obj, count) in objCount.items()) cv2.putText(frame, label, (10, h — 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255,0), 2) # обновим кадр в словаре кадров клиентов frameDict[rpiName] = frame # построим общий кадр из словаря кадров montages = build_montages(frameDict.values(), (w, h), (mW, mH)) # покажем смонтированный кадр на экране for (i, montage) in enumerate(montages): cv2.imshow(«Home pet location monitor (<>)».format(i), montage) # детектируем нажатие какой-либо клавиши key = cv2.waitKey(1) ACTIVE_CHECK_SECONDS: # циклично обходим все ранее активные устройства for (rpiName, ts) in list(lastActive.items()): # удаляем клиент из словарей кадров и последних активных # если устройство неактивно if (datetime.now() — ts).seconds > ACTIVE_CHECK_SECONDS: print(«[INFO] lost connection to <>».format(rpiName)) lastActive.pop(rpiName) frameDict.pop(rpiName) # устанавливаем время последней активности lastActiveCheck = datetime.now() # если нажата клавиша `q`, выходим из цикла if key == ord(«q»): break # закрываем окна и освобождаем память cv2.destroyAllWindows()
Запускаем стриминг видео с камер
Теперь, когда мы реализовали и клиент, и сервер, проверим их. Загрузим клиент на каждую плату Raspberry Pi с помощью SCP-протокола:
Проверьте, что на всех машинах установлены импортируемые клиентом или сервером библиотеки. Первым нужно запускать сервер. Сделать это можно следующей командой:
$ python server.py —prototxt MobileNetSSD_deploy.prototxt —model MobileNetSSD_deploy.caffemodel —montageW 2 —montageH 2
Далее запускаем клиенты, следуя инструкции (будьте внимательны, в вашей системе имена и адреса могут отличаться):
Ниже представлено демо-видео панели с процессом стриминга и распознавания объектов с четырех камер на Raspberry Pi.
Аналогичные решения из кластера камер и сервера можно использовать и для других задач, например:
- Распознавание лиц. Такую систему можно использовать в школах для обеспечения безопасности и автоматической оценки посещаемости.
- Робототехника. Объединяя несколько камер и компьютерное зрение, вы можете создать прототип системы автопилота.
- Научные исследования. Кластер из множества камер позволяет проводить исследования миграции птиц и животных. При этом можно автоматически обрабатывать фотографии и видео только в случае детектирования конкретного вида, а не просматривать видеопоток целиком.
А какие у вас есть идеи для использования нескольких камер и OpenCV?
Источники
Источник: proglib.io