2013-05-20 2 views
6

Я разрабатываю проект в робототехнике с использованием камеры для Android. Робот может перемещать и очищать поверхность, если какие-либо объекты находятся на пути. Я застреваю в обнаружении объектов на пути, я не использую никаких датчиков, чтобы найти расстояние между камерой и объектами. Я использую только камеру для поиска объектов в пути. Я не хочу определять форму, тип, цвет объекта на пути. мелкие объекты в пути могут быть проигнорированы, такие как песок, трава и т.д. Там не должно быть никаких больших объектов в пути (в отмеченной части рисунке ниже)Обнаружение реального объекта с помощью камеры. Возможности поиска реальных объектов с помощью камеры

enter image description here

В то время обнаружения объектов с помощью камеры картины , тени, определяются как объекты. Из приведенного выше рисунка музыкальный символ определяется как объект. Есть ли какая-либо платная библиотека с открытым исходным кодом для обнаружения реального объекта с помощью камеры (это будет более полезно, если оно будет использоваться на Java или C++). Я пробовал opencv, javacv, jhlabs, jjil, aviary sdk, jiu, imagemagic и т. Д. Но нет, где я могу найти точное решение для моей потребности. Если кто-нибудь, кто работает с этой обработкой изображений, предложите мне, что я могу сделать при обнаружении реальных объектов с помощью камеры Android. Если это невозможно, объясните, почему это невозможно.

Возможности я попробовал:

  1. алгоритм распознавание лиц (функция обнаружение): - алгоритм обнаружения лица на основе сопоставления шаблона. Это не применимо в этом случае. т.е. здесь объект может быть любым или в любой форме. Нет шаблона для сопоставления.

  2. Распознавание объектов: Распознавание объектов также делает то же самое, что и с patten. Я не хотел распознавать объект, просто хотел узнать, что это объект в отмеченной части изображения, и это реальный объект (т. Е. Не любые половые картины, тени и т. Д.).

  3. Обнаружение кромок: Я пробовал разные алгоритмы обнаружения кромок, но это также неточное решение для меня. т. е. картины и тени с краями, поэтому мы не можем предположить, что найденные нами ребра являются реальными объектами.

+1

Вы решили это? Вы пытались найти общие изображения из искаженных изображений. Легко реализовать гауссовское размытие, так как это всего лишь среднее значение окружающих пикселей, помещенных непосредственно в оконную матрицу? Другие искажения тоже не слишком сложны. Что касается реального времени, вы можете замедлить бот, когда он найдет что-то и обработает то, что вы найдете, а затем продолжите. Попробуйте http://www.amazon.com/dp/013168728X/?tag=stackoverfl08-20. Извините, я проделал свою работу на Java. –

+0

Спасибо, Андрей. Я проверю это, и я поделюсь результатами здесь. У меня есть другие проекты, кроме этого сейчас, когда я стану свободным, я проверю это. – Sujith

ответ

4

Если кто работает с этой обработкой изображения, пожалуйста, предложите мне, что я могу сделать в режиме реального обнаружения объекта с помощью андроида камеры. Если это невозможно, объясните, почему это невозможно.

В режиме реального времени обнаружение объектов на лету является предметом интенсивных исследований.

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

Проблема с обнаружением реального мира заключается в том, что реальный мир тоже ... реальный. У вас есть много вариантов любого объекта или предмета, и невозможно, чтобы одна библиотека обеспечивала их обнаружение. Обнаружение реального мира является правдоподобным только благодаря обширному сбору данных и обучению посредством обучения машинам, что требует большей обработки и мощности батареи, чем может обеспечить большинство мобильных устройств.

+0

Спасибо Raghav Sood, пожалуйста, дайте мне знать, если вы найдете какие-либо возможности в этом отношении. – Sujith

1

Много сделал для анализа изображений в видеонаблюдении. Сначала вам нужно определить, какой уровень успеха вам нужен. Если вы пробуете все это на одном изображении, вы, вероятно, знаете, что это не сработает :). В видеоанализе вы можете найти некоторые хорошие алгоритмы обнаружения движения, которые будут давать вам все движущиеся объекты на каком-то фоне.У вас более сложный случай, когда вы двигаетесь. Вам как-то нужно смоделировать этот фон. Если вы хотите, чтобы ваш робот переместился на какой-нибудь яркий фон, например, как рисовать, как вы узнаете, что такое объект без восприятия глубины. Может быть, попробовать что-то с тенями, но нет. И в конце концов, эти алгоритмы настолько интенсивны, тем лучше результат, который вам нужен. Android не предназначен для этого. Вы можете сделать простую обработку, но вы хотите, чтобы она была намного больше, чем это возможно в настоящее время.

Нижняя линия заключается в том, что вам нужно дополнительно настроить свои потребности/ресурсы.

PS. Если вам удастся это сделать в конце концов, как вы впервые сказали, мы увидим вас на какой-нибудь яхте с великолепными моделями

Надеюсь, это поможет вам и вам понравится.

+0

Thanks Marko Lazic. Пожалуйста, дайте мне знать, если вы пробовали какие-либо библиотеки обработки изображений. Сердечно думать, что я пропущу яхту;) – Sujith

0

Я думаю, вы должны использовать более одной камеры ..... дает двухмерное представление на изображение ..... надеюсь, что это поможет ....

+0

Спасибо, обмен. Пожалуйста, позвольте мне, если вы найдете что-нибудь по этому поводу. – Sujith

2

Вы можете ознакомиться с методами называемой структурой из движения. Если у вас есть серия изображений с одной камеры, сделанных через короткие промежутки времени, вы можете получить некоторую 3D-информацию о сцене на снимках. К несчастью, я не знаю ни одной библиотеки, которая сделала бы это для вас из коробки, но это довольно популярная проблема, поэтому некоторые поиски могут дать вам готовое решение.

+0

Спасибо morynicz за информацию. Я искал структуру из движения, удивительный концептуальный чувак. – Sujith

+2

Hi morynicz, я просто узнал о некоторых образцах structre из движения в надводный. проверьте эту демонстрацию: https://play.google.com/store/apps/details?id=org.boofcv.android. Источники: https://github.com/FedeCamposeco/Android-SfM-client, https://github.com/lessthanoptimal/BoofAndroidDemo. – Sujith

1

Если камера параллельна земле, а земля обычно плоская, вы можете оценить расстояние между объектами, учитывая его положение на видеокадре. Hogher расстояние объекта, больше к верхней части изображения это будет. Фактически вы можете оценить значение в метрах с некоторым шумом, как мы, люди.

Я думаю, что ваша проблема распознавания «реальных объектов» может быть переведена на: «Найти не плоские (на землю) визуальные элементы, другими словами, найти объекты с некоторой высотой».

Вы считаете стереовизорный подход? Используя две камеры, вы можете справиться с трехмерными проблемами более правильно.

+1

Спасибо Марвину за ваш ответ. Найти расстояние - это решение. Но проблема в том, что мы не можем оценить расстояние от объектов до камеры в андроиде. Нет датчика, чтобы найти расстояние в андроиде. – Sujith

Смежные вопросы