Система кругового обзора одной видеокамерой и вращающимися зеркалами, v. 2

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

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

Ведь можно из середины объекта сверху обозреть в принципе всё вокруг и даже вверх/вниз на полную сферу (исключая корпус своего объекта) несколько Гц небольшим "гаджетом" (зеркальный датчик, ЗД) и подсказать самые интересные/опасные объекты с помощью нейросетей, определить расстояние до любого, его габариты, вычислить скорость, направление и текущую опасность. Для всех IT-шников работа найдётся ! ;) Всё выглядит очень просто:

Схема и принципы зеркального датчика
Схема и принципы зеркального датчика

Слева вверху схематический вид ЗД сбоку, слева внизу вид сверху, справа – пояснение физического принципа для несмаза экспозиции.

Имеем два больших соосных монотонно крутящихся кольца с зеркалами (ККЗ, серые), вращающихся с одинаковой угловой скоростью в одну сторону, на них жёстко прикреплены зеркала (З, чёрные): с внешнего ККЗ они "смотрят" в разные стороны, какие нам требуются, принимают оттуда пучки света (ПС, красные) и отражают в середину, на внутреннее ККЗ, З которого расположены более регулярно и перенаправляют ПС сбоку вниз, на камеру (камеры, К, тёмно-красная).

Всё может быть штампованное из крашеного серебрянкой пластика, но с идеально ровными поверхностями, стоить недорого, ведь основное здесь – быстрая К и плавность вращения, даже дешёвые смартфоны могут подойти внизу, со временем разобравшись со скоростью вращения ККЗ и подстроив свою кадровую частоту съёмки, и даже управляя вращением ККЗ по Блютусам. А также общаясь друг с другом, сопоставляя свои картинки для стерео-метода и запуская распознающие нейросети.

В принципе, два ККЗ можно "склеить" в одно, разместив на нём по кругу несколько призм с двумя отражающими гранями, взамен соседних З на паре ККЗ. Если обычная К порядка нескольких миллиметров, то такой набор ККЗ займёт несколько сантиметров в диаметре, а по высоте – в размер зрачка К.

Скорость вращения может быть любой, современные технологии позволят, в моторах много Гц. Всё зависит от способностей К.

Перейдём к правой части рисунка, доказательству несмаза изображения внутри К на её светочувствительной матрице (М) при отражении ПС от пары вращающихся З. В оптике есть закон -- обычная линза все проходящие сквозь себя параллельные лучи собирает в одну точку на своём фокусном расстоянии. Потому если тот же самый ПС немного сдвинется параллельным образом после нескольких отражений, то это нестрашно, лишь бы попал в объектив, тогда преломится и на М попадёт в тот же самый пиксел. (С недалёкими объектами есть сложность – при смещении наблюдателя ПС от них меняют свой угол. Муха, например, на 20 см будет нерезкой, хотя и вдруг опасной ;)

Вместо вращения пары зеркал без потери общности оставим их на месте, а изменим угол входящего ПС. Нам нужно, чтобы на выходе угол остался. Имеем 2 ПС – красный и оранжевый. Справа-вверху их отражение от параллельных З, там всё очевидно, угол между выходящими ПС ровно такой же, как на входе. А если зеркала непараллельны (справа-внизу), то всё аналогично – после первого отражения угол между красным и оранжевым не изменится, и после второго, и сколько бы их ещё потом не было... И правда, если мы в ближайшем зеркале будем наблюдать ещё много следующих зеркал, то поле зрения самого последнего дойдёт до нас неизменным, только, возможно, отражённым относительно некоей линии.

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

Это было для двумерного случая, а у нас трёхмерный – откуда-то снизу или сверху ПС тоже могут пригодиться, и наблюдать можно полную сферу. 2 наших рассмотренные чёрные линии-зеркала будут представлять собой пересечения пары З с горизонтальной плоскостью. Вектор ПС в этом случае можно разбить на 2 составляющие – горизонтальную и вертикальную. При вращении ККЗ вокруг вертикальной оси вертикальная часть каждого куска траектории ПС останется неизменной, а горизонтальная положительно рассмотрена выше.

Второе отражение вертикально вниз у нас точно будет интересным – весь горизонтальный вектор ПС внутреннее З отправит вертикально вниз, на К+М. Но т.к. горизонтально мы видели параллельность самому себе выходящего ПС во время поворота пары З, то этот ПС вниз будет идти тоже параллельно первичному и на М фиксироваться без смазов. Ну, исключая дрожь всей системы при движении, это отдельная проблема.

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

К и М должны знать, когда очередная пара З "светит" нам, стартовать и стопать экспозицию.

Если меняются условия освещения, то угловые скорости вращения ККЗ можно менять.

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

Ещё интересная задача – уменьшить количество З, смотрящих в определённый уровень по вертикали. Чтобы, например, четыре З обозревали самый емкий горизонтальный сектор по высоте, 3 – от 30 градусов... Это точно будет нужно 2 ККЗ, и внешнее крутится в несколько раз быстрее внутреннего, где З жёсткие, а на внешнем – тоже вращающиеся в противоход, чтобы, проходя над К, быть параллельным З внутреннего ККЗ и посылать на него правильный ПС. Так мы сильно экономим пространство, если имеем миниатюрные очень точные двигатели.

Источник: https://habr.com/ru/articles/727740/


Интересные статьи

Интересные статьи

Привет, Хабр! Сегодня у меня для вас отличные новости. В последние несколько лет мы во «Фланте» внимательно следили за технологиями-лидерами в cloud-native. Но это вовсе не праздное любопытство: из ни...
Если Вы используете Битрикс24 и у Вас один из архивных тарифов, то наверняка Вы уже в курсе того, что в 2023 году планируется прекратить их поддержку. Если нет, то сейчас самое время чтобы об этом пог...
Всем привет. Текст состоит из двух частей:1. Небольшая шпаргалка по параметрам настроек по умолчанию;2. Текст о том, почему вообще существование такой шпаргалки может кому-то понадобится.
В данной публикации будет рассматриваться линейно групповой код, как один из представителей систематических корректирующих кодов и предложена его реализация на C++. Что из себя представляет из...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...