Каков наилучший метод обнаружения изображений с помощью устройства Android для безмаркерного обнаружения?

Я пытаюсь создать приложение для Android для обнаружения объектов с камеры с помощью openCV, я прочитал ссылку на openCV и обнаружил, что существует множество методов для обнаружения изображений,

моя цель - создать приложение

1) Приложение может обнаруживать любой объект из базы данных (набор объектов, которые могут быть обнаружены) на кадре камеры в реальном времени (важна скорость обработки / обнаружения)

2) База данных изображений объектов будет время от времени обновляться (база данных предпочтительно на внешнем сервере) - Означает ли это, что я не могу использовать каскадный классификатор, HOG или какие-либо методы машинного обучения?

3) В кадре камеры иногда может быть два или более объекта, которые есть в базе данных, могут ли оба быть обнаружены в этом случае?

Я попробовал простое обнаружение функции с обнаружением ORB и описанием и сопоставлением методом перебора, но дает обнаружение практически любого объекта или даже стены - ложное срабатывание. (Использование SIFT или SURF для тестирования даже вызывает ошибку)

FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE);

Мне не нужна омография или перспектива, поскольку я не собираюсь проектировать что-либо, просто надежный метод обнаружения присутствия объекта.


person shyamnathan    schedule 16.08.2013    source источник


Ответы (1)


2) Можно, но вам придется обучать новые детекторы, если вы хотите добавлять объекты в базу данных.

3) Да, если вы примените к раме более одного детектора.

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

Кроме того, вы можете использовать Viola & Jones или одну из многих схем обнаружения объектов (например, HOG + SVM или BOW + SVM).

person GilLevi    schedule 16.08.2013
comment
Любой метод по умолчанию без использования обучения для конкретных изображений, поскольку изображения базы данных могут быть обновлены практически кем угодно? и в openCV можно использовать surf / sift для тестирования, т.е. некоммерческая цель. - person shyamnathan; 17.08.2013
comment
Если вы не хотите использовать обучение, это означает, что вы можете использовать только классификацию Knn, и я не уверен, что это сработает. В openCV Surf и Sift запатентованы. Не уверен, каковы детали патента. - person GilLevi; 17.08.2013