Подсчет количества объектов в изображении

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

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

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

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

Edit2: Я к сожалению ответ получил autoselected. : (

5 ответов


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

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

HTH, Джордж!--3-->


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

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

RoboRealm-еще одна проверенная система компьютерного зрения, используемая роботизированными любителями. Это коммерческий продукт с закрытым исходным кодом, который использует элемент управления на основе сокета ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС.

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

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


в Java есть несколько проектов, которые расширяют API расширенной визуализации Java для обеспечения компьютерного зрения:

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

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

JavaVis имеет следующие особенности:

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

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

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


Если вы не говорите об обработке изображений в реальном времени, вы можете написать API для Амазонки Механический Турок.


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