Планирую создать лютую установку и нужен совет, какой микроконтроллер справится с задачей обработки видео в реал-тайме. Грубо говоря, хочу написать нейронную сеть, которая будет определять объекты, а процессор принимать решения на основе этого. Например:
Машинка увидела красный кубик - должна свалить от него подальше. Увидела жёлтую пирамиду - подъехала к ней.
Это очень, даже чрезмерно упрощённая схема, в финале процу будет поступать ещё куча данных, начиная от "дальномера", заканчивая тепловизором. Хотел всё это делать на Ардуино, но умные люди сказали, что не вытянет даже близко. Так что ищу совета здесь, на базе чего строить эту дичь?
Я к Arduino Nano подключал камеру OV7670. Правда, разрешение было маловатым из-за слабого контроллера: 80х80 пикселов. Обрабатывалось до 15 кадров в сек. В Arduino хватило места для кадрового буфера и оставались ресурсы на простенькую нейросеть или другие чудеса кибернетики. Естественно, тогда существенно понизится скорость обработки кадров.
уже не в моде сначала на компьютере, смартфоне, планшете,... или ещё на чём, что уже есть, начать делать и поняв, какие и сколько ресурсов нужно, уже осознано подбирать железо?
Angel71 писал(а):уже не в моде сначала на компьютере, смартфоне, планшете,... или ещё на чём, что уже есть, начать делать и поняв, какие и сколько ресурсов нужно, уже осознано подбирать железо?
Я бы так, наверное, и поступил, если бы ранее собрал в своей жизни что-то помимо ЛЕГО)) Я прикинул, вроде beaglebone должен справиться, осталось понять, что к этой гадине можно подключить, ибо тот же дальномер звуковой довольно экзотичная штуковина. Да и потоковое видео - тоже не хухры-мухры.
Добавлено спустя 1 минуту 52 секунды:
Angel71 писал(а):уже не в моде сначала на компьютере, смартфоне, планшете,... или ещё на чём, что уже есть, начать делать и поняв, какие и сколько ресурсов нужно, уже осознано подбирать железо?
А идея как-то эмулировать работу робота была, только вот я не представляю как
простенькие реализации распознования цветастых кубиков, шариков и много чего ещё, в том числе и простенькое потоковое видео, спокойно делаются на слабеньких процессорах, допустим младших армах с примерно 200-400мгц. от куда ты знаешь, сколько ресурсов потребуется под твою задачу? ну возьмёшь биглебон, потом и узнаешь, это железо потянет (с поправками на ветер в виде твоих способностей в программировании, наличия готовых библиотек, исходников и прочего) твою задачу или нет. накука что-то эмулировать? хотя бы кубик сначала распознай, потом уже и об расспозновании в движении думай. если взять смартфон, ну так по блютузу или вайфай с дуней общение - в одну сторону даныне с датчиков, в другую как моторчиками или севами крутить. и ещё полно вариантов, как можно реализовать. не, если шило в опе, беги и покупай. чуть позже может и ещё об одном моменте подумаешь - глубоко фиолетово на мегогерцы, мегобайты и прочее штуки, если нет нужных драйверов железа, библиотек, сдк, исходников, примеров, сред разработки, нужной операционки под этот чип/плату и ещё много чего софтового. есть, хорошо. нет, ну так или самому пилить или хоть гвоздями это бесполезное железо прибить к стенке можно.
Angel71 писал(а):простенькие реализации распознования цветастых кубиков, шариков и много чего ещё, в том числе и простенькое потоковое видео, спокойно делаются на слабеньких процессорах, допустим младших армах с примерно 200-400мгц. от куда ты знаешь, сколько ресурсов потребуется под твою задачу? ну возьмёшь биглебон, потом и узнаешь, это железо потянет (с поправками на ветер в виде твоих способностей в программировании, наличия готовых библиотек, исходников и прочего) твою задачу или нет. накука что-то эмулировать? хотя бы кубик сначала распознай, потом уже и об расспозновании в движении думай. если взять смартфон, ну так по блютузу или вайфай с дуней общение - в одну сторону даныне с датчиков, в другую как моторчиками или севами крутить. и ещё полно вариантов, как можно реализовать. не, если шило в опе, беги и покупай. чуть позже может и ещё об одном моменте подумаешь - глубоко фиолетово на мегогерцы, мегобайты и прочее штуки, если нет нужных драйверов железа, библиотек, сдк, исходников, примеров, сред разработки, нужной операционки под этот чип/плату и ещё много чего софтового. есть, хорошо. нет, ну так или самому пилить или хоть гвоздями это бесполезное железо прибить к стенке можно.
Вообще, дело говоришь. Я разве что, уточню, что мой пример с кубиками крайне сильно упрощён, в идеале устройство должно отличить, например, собаку от табурета в условиях плохой видимости) Да и на самом деле я тут фигнёй страдаю: одной рукой рисую чертёж устройства (не очень получается, кстати), другой рукой гуглю разные платы и материалы, а ногами ищу фотки кубиков для обучения нейронки, желательно с инструкцией как её, заразу, написать. Прибавить ко всему эту слабый опыт программирования, нулевой опыт роботостроения и высокие амбиции - становится понятно, что всё сложно Так что покупать никакие платы я пока не собираюсь, а так, чисто интересуюсь, список компонентов составляю, так сказать. А вот про библиотеки я прям и не подумал, надо прошерстить этот момент.
когда надумаешь покупать, тогда и подбирай - к тому времени в продаже выбранного сейчас, давно может и не быть. вместо какой нафантазированной сейчас фигни с арм ядром, каким сопроцессором хоть в виде дсп, фпга, видюшки (у которых ещё есть всякие мелкие нюансы на подобии поддержки каких матюков на подобии opencl, каких сдк и прочего) или ещё чего, более подходящим что-то другое будет,... а за списком деталюшек приходи лет так через тцать, когда хоть немного наберёшся приктического опыта, в нейронках и других направлениях чуть лучше разбираться будешь, сможешь внятно формулировать задачу, осозновать ограничения и т.д. и т.п. а пока фантазии такие (тыкаем пальцем в небо, гадаем по погоде на марсе,...), что тебе и пачки энвидий из второго сообщения, кластера топовых компов и видюх легко может не хватить. а пока ты даже не в курсе, что сферическая нейронка непонятно как обученная на каких-то фотках, легко может обучиться немного не тому, что ты хочешь. допустим выцепит какие параметры камеры, шумы, яркость, освещённость, особенности картинко при сжатии и хз что ещё, а ты ей потом попытаешся подсунуть картинко со своей камеры, а оно твой шарик в упор не захочет распозновать. или обучишь в пасмурную погоду или на вечерних картинко со своей камеры, а днём в ясную погоду она в упор ничего не будет распозновать.
Belg2001 писал(а):Прибавить ко всему эту слабый опыт программирования, нулевой опыт роботостроения и высокие амбиции - становится понятно, что всё сложно
Это хорошая черта характера - самокритичность. Можно горы свернуть
Belg2001 писал(а):в идеале устройство должно отличить, например, собаку от табурета в условиях плохой видимости
Нереально сложно. Вот на арм с 75 мгц., кое как распознать трек - красная изолента, остановки - синие куски изоленты. При этом используется вся мощь аппаратных средств - dma, прерывания и.т.д.
С ними все хорошо, кроме одного - ОС сьест все ресурсы, надо железо программировать на уровне BareMetal. Вот тут хвастался mjpeg-ом "на лету" на крутом контроллере - Blackfin, он выполняет несколько операций за один такт. По нынешним временам уже довольно старый контроллер. http://roboforum.ru/forum107/topic15929-1365.html#p376293