=DeaD= писал(а):Замечательно, если оно у вас так же легко отрабатывает не только объекты размера почти на все изображение обычно с мелкими и корявыми объектами проблемы начинаются...
Для движения, я думаю, будет достаточно анализировать плоскости - поверхности, типа стена, пол. А все - мелкие - отсеивать. Если машинка застрянет, то картника с камеры будет изменяться меньше чем 5%, следовательно мы застряли, 5 см назад, поворот, фотографирование, и т.д. Короче дальше дело техники, а точнее ИИ (Искусственного интеллекта). Но, повторюсь, в основе обработки - векторная графика + нейронные сети. Все алгоритма - свои. Кто уже делал что-либо подобное и не боится раскрывать патенты - жду исходы или хотя бы описание. Можно и описание идей. Это интересно всем.
Никаких фильтров не применяю. Обработка изображения - вручную, софтварно на С++ через WinAPI. Хотя, возможно это и есть фильтр, только свой, программный.
Dimmy писал(а):Для движения, я думаю, будет достаточно анализировать плоскости - поверхности, типа стена, пол. А все - мелкие - отсеивать.
Отсеивать - это как? Стол составленный из 100 спичечных коробков от цельного стола как отличается?
Dimmy писал(а):Если машинка застрянет, то картника с камеры будет изменяться меньше чем 5%, следовательно мы застряли, 5 см назад, поворот, фотографирование, и т.д.
Эээ... не понял - у вас 3д-картинку по 1 фотке воссоздает?
Dimmy писал(а):Короче дальше дело техники, а точнее ИИ (Искусственного интеллекта). Но, повторюсь, в основе обработки - векторная графика + нейронные сети. Все алгоритма - свои. Кто уже делал что-либо подобное и не боится раскрывать патенты - жду исходы или хотя бы описание. Можно и описание идей. Это интересно всем.
Есть семейство алгоритмов, называющееся motion-flow, они разными способами строят векторное поле по паре изображений, которое должно сопоставлять пиксели на первом и на втором изображении. никаких патентов здесь особых нет, все алгоритмы вроде как общедоступны, только разбираться в них - это то еще удовольствие.
Dimmy писал(а):Никаких фильтров не применяю. Обработка изображения - вручную, софтварно на С++ через WinAPI. Хотя, возможно это и есть фильтр, только свой, программный.
Основной принцип то алгоритма в чем? или это и является секретом?
Отсеивать, ну можно описать в общем, а как это делать правильно, уже другой вопрос. :wink:
Как отсеивать? А как человек, стоя в коридоре, знает что это коридор? Если источник света "под колесами", то самые светлые объекты будут находиться снизу, а чем дальше к фокусу у горизонта, значит перед нами поверхность, далее по 3D рельефу можно определить где препятсвия и где проехать. (+векторный анализ по длине линий... (см. Вузовскую геометрию и алгебру))
Да, на основе 2х(!!!)-мерного (по X и Y - два измерения) сторится 3х мерное. Аналогов алготима мире нет.
Повторюсь: цель построения машинки/манипулятора - создание ИИ алгоритма движения, как бы продолжение программы преобразования изображения из 2D в 3D.
когда мы едим по дороге нас интересует есть ли преграда или нет. Т.е. уже координата Z интересует только как есть (1) либо нет (0).
А в вашей формуле тогда A=F(X,Y,Z) известны X и Y. Но: у нас же есть еще и цветовая информация о точке, т.е. уже можно "предположить" есть Z или нет.
Некий лабиринт, как в виндовой заставке. И этого, для движения вполне достаточно. Но т.к. камера двигается, то нет проблем - у нас периферическое зрение!!!
P.S. эксперимент: на улице спереди играет музыка. "Где-то" спереди, но стоит повернуть голову на 45 ргадусов и обратно мы с точностью до градуса скажем откуда она. Не так? Попробуйте. :wink:
Dimmy писал(а):не совсем так. Мы же знаем основы геометрии, что Куб имеет не только X и Y , следовательно у него будет и Z. и не важно, какое.
После длительных экспериментов всплывет, что не то что бы неважно какое Z, а то, что оно может быть каким угодно но не таким, как нужно.
Dimmy писал(а):А НС (нейросеть) может предсказать что перед нами с указанной точностью, если ее обучить.
Смутно себе представляю её сложность, длительность обучения и т.д. ИМХО - самостоятельная нейросеть (stand alone), без дополнительных средств/супервизоров для навигации - тупик
ПС: между прочим, матричные фильтры в большинстве своем, которые используют для обработки графики, аналитически выглядят точно так-же, как и нейросети (в основном однослойные, а "веса" задаються вручную)
Вкратце: едем(картинка с камеры меняется более чем на 5%) - хорошо. врезались (картинка изменилась менее чем на 5% и двигателям поступала энергия на движение) - плохо. Значит, "вспоминаем" тракторию до удара, выделяем объекты (все возможные), а если таковых не выделили, то вот тут то и обучение: самым "кривым" неровностям присваиваем значение объекта и в следующий раз уже объедем. А для проверки новых коэфф. в НС - отъедем назад и едем в течение 10 сек, если объехали - то значение весов сохраняем.
Описано все терминологически и вкратце. На самом деле все куда сложнее. Или проще... :wink:
Тоесть, грубо говоря, каждый раз когда в что-то врежешься (произойдёт ЯВНО ОБОЗНАЧЕННОЕ событие), подкручиваешь коефициенты? Но ведь это бесконечный процесс! Так в течении некоторого времени можно перекрутить всё наизнанку (тоесть, всё начисто забыть). Где же здесь ИИ?
2Outcaster: да ладно вам... мы их предупредили, теперь пусть смотрят сами, а железо сделать мы поможем... потыкается немножко потом и от некуда деваться может и направится на корректный путь, каждый волен сам набить себе необходимое количество личных ошибок
Суть алгоритма мы выяснили, теперь будем смотреть куда это приведет автора
2Dimmy: скажу лишь одно - попробуйте рассмотреть следующее утверждение "если вы сможете создать универсальный эффективный распознаватель образов, то у вас получится из 2D получать 3D, иначе не получится".
Я не утверждаю что это будет ИИ. Просто на ряде экспериментов вдруг возникнет новая концепция ИИ. А что все забудет - запросто. Человек же в жизни к старости забывает прошлое.
Хочу просто сделать "интеллектуальную" игрушку. Так даже будет правильней. Ее можно будет научить и выполнять звуковые приказы. До для начала пусть займется уборкой. :wink:
Кто-то сказал: "Лень - двигатель прогресса". Точно! :)