Обработка видео
- Войдите на сайт для отправки комментариев
Втр, 31/07/2018 - 20:21
Всем доброго времени суток. Необходимо решение следующей задачи.
Изображение, снятое с видеокамеры, необходимо преобразовать в последовательность напряжений от 0 до 100 V с 160-ю градациями яркости.
На первом этапе необходимо 400 равномерно распределенных точек преобразования.
Камера-то в 4K поток выдает хотя бы?
4К это что
?
Есть требования к потоку?
А есть пожелания насчет платформы?
нет
хотелось оценить принципиальную возможность, а уж потом если понадобиться, оптимизировать
Сообщу вам на всякий случай, что тут один товарищ пытался JPG распаковать на ардуине - так и ушел ни с чем.
уважаемый sadman41 я не специалист в этой предметной области (иначе сделал бы сам) я как мог формализовал задачу, в ньюансы , честно говоря, не вникал
Это например 320*240 сжать до 20*20 с градацией яркости пикселя 160 уровней?
И что тут хитрого? Особенно если камера 4К выдаёт
получапется, что это невозможно в принципе? тогда уменьшим градации яркости. Я уловил? Повторюсь, мне приходиться вникать на ходу
Да хитрого ничего, надо сделать и все
Почему невозможно?
Если это возможно, сделайте, обозначив сроки и цену
Ну неделя уйдёт.
Да, именно так
А по деньгам?
Неделя на обработку одного кадра кластером ардуин.
Мне кажется, заказчик просит подкинуть ничего не писал,,,
Про подкинуть ( автозамена итить)
Про ардуину
Федор, ардуина (та, что в массовом сознании существует) - она не для того (вы же не просто так именно на этом форуме написали). Вам нужно, на мой взгляд, сразу смотреть на Orange Pi, как минимум. Потому как для анализа потока с камеры с приемлимой скоростью (а вам, поди, рилтайм нужен) нужно столько памяти и дури в процессоре, сколько у ардуин отродясь не было.
magstar все верно уловил, мне важен факт реализации задачи
sadman41 спасибо за совет, я серьезно
Он и про другие немаловажные параметры не пишет. На i7, например, это легко сделать. Но данный форум не про i7, верно? И этот факт заставляет делать определенные предположения о направлении мысли.
Или же это тот самый человек с непрпатченным KDE.
sadman41 спасибо за совет, я серьезно
Хорошо, что вы понимаете. Еще я скажу, что задача ваша описана крайне абстрактно. Ни формата потока, ни разрешения, ни интерфейса, ни того, куда эти 400 точек сливать - ничего нет. Соответственно - конкретной реализации в железе придумать нельзя.
Про KDE смешно:)))
sadman41 я формализую завтра более конкретно. Процесс то итерационный. А вдруг и при такой степени формализации задачи навалились бы толпы исполнителей ))))
Кстати, про kde- а есть спецфорум по видео+ minihard (любой)+ сжатие+ вывод в ккда-нитт?
Неделя на обработку одного кадра кластером ардуин.
Ну да. Я это и имел ввиду
Доброго времени суток. С учетом предыдущих замечаний хочу представить второй вариант ТЗ.
Необходимо преобразовать видеопоток от камеры в последовательность импульсов, кодирующих местоположение и яркость пикселя. При этом не надо передавать всю матрицу, а только 400 точек, равномерно распределенных по ней.
Ну это уже проще.
А чем раскодировать M-JPEG ? Неужто Ардуиной? Да ещё 30 кадров за секунду. Она хоть бы с BMP справилась.
Я сделал вашу задачу за 5 минут и из двух модулей, но... :)
Но?
Но под i7 под управлением Windows :) Впрочем, на raspberry тоже будет работать, только захватывать кадр надо не через directshow.
Использование шаблонизатора для обработки видео... этого я еще не видел в своей практике ))
Все бывает в первый раз ;-) а если серьезно беру тайм аут возможно на этапе тестирования и этот вариант подойдет
Этот вариант, как бы так помягче, не совсем для продакшен применения. Но может, и вправду подойдёт :D
sadman41, ну давайте на баше обработаем картинку, imagemagick там блаблабла convert --palette 160... Или на бейсике, да хоть на тикле, прототипу-то какая разница? Или нужен только расово верный чистый си?
PS А-а, вот оно что, блин, я не заметил, что это "ищу исполнителя". Не-не, я не исполнитель, не хочу и не буду.
У меня есть решение на одной Arduino Nano и модуле камеры OV7670:
https://drive.google.com/open?id=1OtIjjz2YZCVbKnZHk8kyYKoTer5mWsYE
Такой вариант не подойдет?
Сколько стоит ваше решение?
А пока поговорим о raspberry. Решение будет таким же оперативным?
Решение на Arduino Nano, какова стоимость?
Сколько стоит ваше решение?
Ваши предложения?
Нужно учесть, что ранее я на это решение потратил некоторое время и силы. И еще к моему работающему варианту нужно дописать вывод в требуемом для вас формате. У меня каждый кадр изображения с камеры в сжатом виде сохраняется в Ардуине в сжатом виде в кадровом буфере, а затем передается в PC через стандартный USB UART после программной бинаризации внутри Ардуино. Из-за низкой пропускной способности этого канала связи получился невысокий FPS. Однако сама Ардуино может обрабатывать от 15 до 30 кадров в секунду. Естественно, с не очень большим разрешением. Но для вашей задачи этого должно быть достаточно.
https://drive.google.com/open?id=1vRlfcfsfFkFucDQCJQfwDvnIRXBKDFTr
А что изображено на камере? Можете прислать такой же рисунок ну например кружки? Мне это нужно для оценки разрешения
Однако сама Ардуино может обрабатывать от 15 до 30 кадров в секунду.
Не может. Она может перенаправить поток куда либо еще, но никак не обработать. Для этого у авр недостаточно ОЗУ.
Не может. Она может перенаправить поток куда либо еще, но никак не обработать. Для этого у авр недостаточно ОЗУ.
В Ардуино, как я писал выше, я нашел место в ОЗУ под кадровый буфер в специальном формате. Ардуино в потоке сжимает каждую строку с камеры и помещает результат в кадровый буфер.
Не обязательно 30 FPS использовать. В Ардуино есть еще место для размещения простой нейросетки. Если хотя бы один раз в секунду или две секунды Ардуино будет распознавать хотя бы простые предметы перед камерой, будет весьма забавно. Я хотел доделать этот ардуиновский проект до такой стадии, но пока занят другими более сложными нейросетевыми и онтологическими проектами. Кстати, у меня есть работающий проект с такой же камерой на одной FPGA. Не предлагаю его только из-за высокой цены применяемой FPGA. Но там уже все может работать в полный рост.
Вот плис да, идеальный вариант. Но можно и попроще, тот-же стм. Он хоть 24 нужных мегагерца может дать на камеру, а не как авр, всего 8, которые ниже нижних документированных 10-ти. А это уже не готовый продукт, а херня.
Мне больше интересно, что за девас у ТС, которому надо кормить от 0 до 100 вольт? Я надеюсь последовательно, или 400 транзситоров надо?
А что изображено на камере? Можете прислать такой же рисунок ну например кружки? Мне это нужно для оценки разрешения
Камере я предъявлял лист бумаги с шахматным полем, которое обычно использую для калибровки алгоритмов стереозрения.
Кружочки прямо сейчас не могу отослать, т.к. нужно активировать проект. На это уйдет некоторое время, которого у меня сейчас в обрез.
Скажу лишь, что в Ардуино поступает цветное изображение формата QVGA (320х240) пикселов. Ардуино программно анализирует каждый пиксел , а затем преобразует в бинарное изображение в 80х60 пикселов, для того, чтобы сохранить в кадровом буфере внутри себя. Это бинарное изображение вы и видите в скриншоте с экрана PC.
Для вашей задачи я могу написать другой постпроцессор для Ардуины. И тогда каждый из (320х240) пикселов может быть обработан другим способом. В таком случае с кружочками вряд ли будут какие-то проблемы.
Вас понял. Называйте стоимость с учётом модуля вывода в нужном мне формате. Вы исполнитель, вы и определяйте стоимость работы. Я могу назвать только с потолка