Подсчитайте количество объектов в изображении - PullRequest
8 голосов
/ 01 июня 2010

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

Мне дадут фотографию, и мне нужно определить количество коробок, присутствующих на этом изображении.

Кто-нибудь имеет опыт работы с библиотеками Machine Vision / Image Processing, такими как ImageJ, Фиджи, JAI, jMagick, Java Vision Toolkit? Как вы думаете, что лучше всего подходит для работы? Что вы, ребята, предлагаете? Если бы API можно было использовать из Java, было бы лучше. Спасибо.

Edit: Я занимаюсь складом коричневых коробок. Да, я говорю о регулярных фотографиях. Источником обычно является изображение с мобильного телефона.

Edit2: Извините, ответ был автоматически выбран. : (

Ответы [ 5 ]

10 голосов
/ 01 июня 2010

Я никогда не использовал библиотеки, которые вы перечислили, но я использовал OpenCV.

OpenCV является хорошо поддерживаемой и проверенной библиотекой компьютерного зрения. Он имеет встроенные функции для подсчета количества примитивных форм в изображении. Он написан на C ++, но вы можете создать небольшую оболочку для вызова через JNI.

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

http://opencv.willowgarage.com/wiki/FullOpenCVWiki

http://www.roborealm.com/index.php

8 голосов
/ 06 июня 2010

Если вам нужно придерживаться Java, вы все равно можете использовать OpenCV .

  1. Если это просто коробки, вы можете использовать Преобразования Хафа для их обнаружения.
  2. Вы можете использовать OpenSURF для обнаружения телефонов по исходным изображениям, которые вы ему подаете.
  3. Не думайте, что это возможно в вашем случае: Каскады HAAR . Вы можете создать собственный классификатор HAAR, но процесс обучения может занять довольно много времени.

НТН, George

5 голосов
/ 11 июня 2010

Если вы не говорите об обработке изображений в реальном времени, вы можете написать API для Amazon Mechanical Turk .

5 голосов
/ 06 июня 2010

В Java существует несколько проектов, расширяющих API Java Advanced Imaging для обеспечения компьютерного зрения:

  • JavaVis
  • обработка изображений в java + IPJ - расширения компьютерного зрения для JAI
  • Java Vision Toolkit - JVT (EDIT: opps, это упоминается в вопросе.)

Существует документ для JavaVis, который представляет библиотеку, сравнивает и сравнивает с этими двумя другими упомянутыми библиотеками.

JavaVis имеет следующие функции:

  • обрабатывает 2D и 3D изображения (в данном случае 3D является наиболее актуальным)
  • Имеет графический интерфейс для проверки потенциальных результатов
  • Экспорт изображения Matlab

Также для Java это NeatVision . В отличие от других, документация четко видна для этого проекта.

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

1 голос
/ 11 июня 2010

Готовы ли вы разработать собственный код для этого? Есть несколько методов, которые могут быть применены и настроены для вашей конкретной проблемы, но я никогда не использовал упакованную библиотеку, всегда разрабатывал свой собственный код. Я могу предоставить ссылки на это, если вам интересно.

...