Pull to refresh

Comments 13

Кто будет собирать по этой инструкции — перед «cd serve/ && make && ./ccv» надо зайти в папку lib/ и сделать там "./configure"
Почему бы не встроить этот классификатор в OpenCV? Зачем писать свой велосипед?
OpenCV — уж больно развесист. Они мечутся из стороны в сторону, то классификаторы новые добавляют, то поддержку для Closure. А на исправление старых багов или обновление версии FLANN, например, руки не доходят.

Больше классификаторов хороших и разных!
Если вы видите какие-то баги или хотите добавить какую-то фичу в OpenCV, то всегда можете сделать Pull Request со своим вариантом решения. Это ведь открытый проект.

з.ы. И советую собирать OpenCV из ветки 2.4.
Насколько я помню, в OpenCV есть сразу два интерфейса: на Си++ и на обычном Си. А как они соотносятся по функционалу?
На конференции icvs 2013 в презентации посвященной OpenCV, интерфейсы для ANSI C были объявлены устаревшими. Но это не означает, что в следующих релизах этих интерфейсов не будет. Вообще с API штука какая, все новые фичи в OpenCV сейчас имплементируются на C++, а обертки для Java и Python генерируются автоматически. Для ANSI C API такого автогенератора на данный момент нет(насколько мне известно), поэтому это API на данный момент отличается в худшую сторону от C++ в плане новых фич. Но вообще говоря такой врапер иметь полезно(в некоторых случаях проще организовать совместимость с библиотекой посредством ANSI C, например в каких-то встраиваемых системах), поэтому если у кого-то найдется желание помочь сообществу и добавить поддержку такого автогенератора, то это было-бы отлично.
Обалдеть!
И очень хорошо, что классификатор отдельно идет, вне этого монстра под жутким названием OpenCV.
А вы не могли бы более развернуто описать свои замечания к OpenCV?
Она совершенно неюниксвейная. Хороший пример того, как нельзя программировать. Хорошая библиотека должна быть легковесной. И быстрой. OpenCV же — неуклюжий урод.

// хм, странно: я думал, БХ заддосили окончательно, а оно, к сожалению, еще живо…
Эмм… вы вообще OpenCV видели?:)
1) OpenCV хоть и довольно большая библиотека, но модульная, а в будущем может стать еще модульней. Поэтому нет необходимости таскать за собой всё, что там есть — берется только необходимые модули для решения конкретной задачи.
2) Насчет скорости, посмотрите внутрь модулей OCL и GPU — там есть реализации многих алгоритмов при помощи CUDA/OpenCL. Также в большистве алгоритмов есть поддержка TBB/OpenMP.
3) Компютерное зрение очень широкая область, и люди применяют OpenCV для самых различных задач на широком зоопарке платформ. В таких условиях обойтись реализациями 2-3 мэйнстримных(на данный момент) алгоритмов просто нельзя.

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

Всем любителям компьютерного зрения хорошо известна библиотека OpenCV, однако это совсем не значит, что все ею довольны. Поэтому периодически возникают альтернативные проекты, пытающиеся сделать работу с компьютерным зрением проще и приятней. Одним из таких проектов является библиотека Community Computer Vision (CCV). Разработанная небольшой группой китайских программистов, библиотека ставит в приоритет простой и ясный интерфейс. Кроме того, проект рассчитан на практические задачи, поэтому разработчики сосредоточились на наиболее важных и современных алгоритмах.

Одним из таких алгоритмов является глубокая свёрточная нейронная сеть (Deep Convolutional Neural Networks). Представленная Алексом Крижевски (Alex Krizhevsky) в 2012 году архитектура объединяет работы Яна Лекуна (Yann LeCun) по свёрточным нейронным сетям (1990г.) и принципы глубокого обучения, разработанные Джефри Хинтоном (Geoffrey Hinton) в 2006-м. На нескольких значимых тестах DCNN показала непревзойдённые результаты, значительно опередив известные ранее алгоритмы.

Несмотря на большой интерес к свёрточным сетям в последние годы, работа с ними часто затруднена из-за большого количества ресурсоёмких операций (и конкретно операции свётки) и, как следствие, крайне медленного обучения. Поэтому с самого появления CNN остро стоит вопрос увеличения производительности за счёт ипользования низкоуровневых оптимизаций (чаще всего с использованием GPU). На данный момент известно не так много реализаций, ориентированных на скорость работы, и самыми известными из них являются Caffe из университета Беркли и OverFeat из NYU.

Ребята из CCV добавили свою реализацию, практически не уступающую по производительности указанным выше, но эргономично вписывающуюся в общий API библиотеки для работы над разноплановыми задачами компьютерного зрения. Заинтересованные читатели могут найти более подробную информацию на странице проекта.


Никто не пробовал эту библиотеку по Android собирать? Boofcv SURF/SHIFT работают медленно, а писать свой велосипед не хотелось бы.
Sign up to leave a comment.

Articles