Авторы: Анатолий Бакшеев, Кирилл Корняков( Кириллкорняков ), Андрей Морозов( aod314 ), Вадим Писаревский, Олег Скляров ( Олегскляров ), Евгений Таланин, Александр Шишков ( Александр Шишков ).
Привет, Хабр!
Мы рады сообщить, что 2 ноября вышла новая версия OpenCV — бесплатной библиотеки компьютерного зрения.
Этот пост написали разработчики библиотеки, работающие в компании Итсиз .
Перечислим основные нововведения с момента выхода предыдущей версии, стоит отметить, что их довольно много: новые алгоритмы, ускорение существующих, поддержка новых платформ, обновление процесса разработки, интеграция и тестирование, так как а также обновленную документацию.
За время подготовки релиза было закрыто более 210 задач на трекере( хакатон , релиз-кандидат , выпускать ): патчи, исправления ошибок, расширение существующего функционала.
Но обо всем по порядку.
Веб-ресурсы
OpenCV наконец-то обрел свой дом в Интернете по адресу opencv.org .На этом сайте вы можете узнать о последних событиях в жизни библиотеки и найти ссылки на все другие веб-ресурсы, связанные с ней.
Для автоматической подписки на новости вы можете воспользоваться нашим пабликом RSS канал или Твиттер .
На сайте сосредоточена более специализированная информация для разработчиков библиотек.
code.opencv.org , созданный на основе ЧилиПроект .
Здесь вы можете найти всю информацию о графике следующих выпусков библиотеки или о решениях, принятых разработчиками во время еженедельных встреч.
Информация создается и редактируется в режиме вики, поэтому зачастую является самой актуальной.
Также здесь находится основной git-репозиторий OpenCV (но мы рекомендуем использовать зеркало на Github, об этом ниже) и трекер ошибок.
Так что если у вас возникли проблемы с использованием библиотеки, сообщите нам об этом через этот ресурс.
Недавно мы также открыли еще один сайт, предназначенный для поддержки пользователей.
Этот Форум , созданный в стиле StackOverflow и посвященный решению проблем при работе с OpenCV и компьютерным зрением в целом.
Несмотря на свою короткую историю, на ресурсе уже обсуждалось более тысячи вопросов.
Не забывайте про сайт с онлайн-документация библиотека, содержащая всю необходимую информацию для последних выпущенных версий.
Интегрированная поддержка многопоточности.
Теперь писать параллельный код стало удобнее благодаря новому универсальному примитиву параллельно_для_ , который может использовать различные бэкэнды: TBB ; OpenMP ; Grand Central Dispatch (iOS, Mac OSX) ; Параллелизм (Visual Studio 2010 или более поздняя версия) ; С= .
Таким образом, можно наслаждаться улучшенной производительностью, даже если у вас нет TBB, но поддерживается другая платформа из вышеперечисленных.
Так, например на Windows и Mac OSX, вам не потребуется ничего дополнительно устанавливать, поскольку используются стандартные технологии, поставляемые со средой разработки.
Ряд алгоритмов OpenCV, использовавших TBB, были перенесены в новый формат. параллельно_для_ или распараллелено впервые.
OpenCL
В библиотеку добавлен экспериментальный модуль окл , который реализует алгоритмы компьютерного зрения с использованием технологии OpenCL .В настоящее время доступны следующие алгоритмы, которые пока работают только на графическом процессоре: арифметические операции; различные фильтры (Sobel, Scharr, GaussianBlur, boxFilter, двусторонний фильтр); различные виды геометрических преобразований (изменение размера, переназначение и т. д.); каскадный классификатор (в первую очередь для распознавания лиц); алгоритм оптического потока (пирамидальный метод Лукаса-Канаде).
Уже доступно для модуля документация , предлагаем связаться с ней для уточнения деталей.
CUDA/ГП
На этот раз в модуль GPU добавлено множество полезных алгоритмов: Уменьшите шум на изображениях: Двусторонний фильтр; Non Local Means Brute Force — реализация не быстрая, но полностью соответствует оригинальной статье; Fast Non Local Means — в этой реализации опущено гауссово взвешивание, что позволило использовать подход скользящей суммы и ускорить работу алгоритма в десятки раз.Алгоритмы выбора фона: Атмосфера , ГМГ, ФГД, МОГ (смесь гауссиан).
В каскадный классификатор добавлена поддержка каскадов с функциями LBP (Local Binary Patterns), которые уже давно присутствуют на процессорах;
Линии Хафа, круги Хафа и обобщенное преобразование Хафа;
Маркировка подключенных компонентов / Обобщенный плавающий диапазон FloodFill.
Также в этом релизе мы обнародовали так называемый «уровень устройства» — набор заголовочных файлов, содержащих шаблонные функции и классы, написанные на CUDA и предназначенные для компилятора nvcc. Это будет полезно разработчикам, которые сами пишут на CUDA. Теперь, объединив функциональность уровня устройства с вашим кодом, пользователю будет проще реализовать новые алгоритмы обработки изображений на CUDA.
Андроид
Команда OpenCV для Android при поддержке NVIDIA существенно обновила библиотеку, сделав ее более удобной и предоставив более полную документацию.Кроме того, платформа Tegra 3 теперь включает в себя ряд оптимизаций, позволяющих существенно повысить производительность конечных приложений.
Опубликован ряд материалов, касающихся OpenCV для Android. Среди них: Создана официальная страница проекта: http://opencv.org/android .
Отчет на главной европейской конференции по компьютерному зрению ЕСКВ2012 .
Значительно улучшено Руководства по Android для начинающих разработчиков.
Обновлено Javadoc-документация для библиотеки Java API. В новой версии OpenCV-менеджер требует гораздо меньше кликов от конечного пользователя, а также не требует перезапуска приложений, зависящих от OpenCV. Теперь OpenCV Manager поставляется с динамическими библиотеками, поэтому мы избавились от установки дополнительных бинарных пакетов из Google Play. По соображениям совместимости старые пакеты останутся в Google Play до выхода версии 2.5, но разработчикам Android рекомендуется перейти на OpenCV версии 2.4.3; Последняя версия Android Jelly Bean теперь включена в список поддерживаемых.
Камера OpenCV, работающая на собственном уровне ОС, теперь поддерживает больше устройств; Новый фреймворк для Java-приложений.
Мы рекомендуем ознакомиться с новой архитектурой и обновленными примерами приложений.
Новый фреймворк обеспечивает единую базу для приложений компьютерного зрения, включая: Java и нативную камеру, код для визуализации изображений на экране устройства, простую инициализацию OpenCV Manager, правильную обработку событий: пауза, продолжение, поворот и т. д.; Была проделана большая работа по оптимизации производительности платформы NVIDIA Tegra 3. Вы можете убедиться в этом сами, скачав приложение Демо-версия OpenCV Tegra из Google Play. Полный список оптимизаций доступен в документе на связь , Глава 17. OpenCV для Tegra, включенный в пакет NVIDIA Пакет разработки Tegra для Android , поэтому если вы только начинаете разработку под Android, рекомендуем вам использовать его, так как он избавит вас от длительной установки всех необходимых пакетов.
iOS
OpenCV для iOS получил ряд долгожданных нововведений: Благодаря работе Эдуарда Фейчо внутри Google Лето кода 2012 Существенно изменился код работы с видеокамерой.Теперь это часть модуля высокий гуй и доступен как класс CvVideoCamera; Скрипты создания фреймворка OpenCV для iOS претерпели изменения, поэтому теперь OpenCV поддерживает iOS 6.0 и новую архитектуру.
Armv7s (айфон 5); При сборке OpenCV для iOS включен «забытый» ключ оптимизации «O3» в версии 2.4.2, поэтому ваши приложения будут работать еще быстрее; Благодаря новому многопоточному механизму, поддерживающему НОД , несколько важных алгоритмов работают быстрее на двухъядерных чипах ( А5 , А5Х , …); Кроме того, мы добавили образовательные материалы об основах использования OpenCV для мобильных устройств Apple и провел подробное обучение всем нововведениям для iOS в рамках ЕСКВ2012 .
Питон
В пределах Google Лето кода 2012 Александр Мордвинцев из Санкт-Петербурга добавил несколько отличных примеров расширенного использования Python с OpenCV: регистрация изображений с сильными перспективными искажениями с помощью ASIFT ; распознавание рукописных цифр ; компенсация размытия при движении камеры; Применение Amazon PiCloud .
Строительныйбот
OpenCV используется как система непрерывной интеграции.Ежедневно собирается более пятидесяти различных конфигураций: для 32- и 64-битных платформ под Windows, Linux, Mac OS, Android, iOS с использованием оптимизаций TBB, SSE и GPU. На каждой конфигурации проводится около пяти тысяч различных тестов.
Пятнадцать самых популярных конфигураций собираются дважды в день.
Автоматически компилируются тарбол, установщик для Windows и фреймворк для iOS, рассчитывается покрытие кода и проверяется бинарная совместимость.
Как видите, мы проделали большую работу для обеспечения высокой стабильности библиотеки :) Любое изменение, попадающее в репозиторий, запускает несколько быстрых сборок.
Если результат окажется успешным, делается достаточно надежное предположение, что код скомпилируется и пройдет большинство тестов на других конфигурациях.
После выхода OpenCV 2.4.2, как и было обещано, мы изменили систему контроля версий.
Теперь наш репозиторий находится под контролем git. Логическим следствием этого шага стало создание зеркала на github , что позволило привлечь к разработке библиотеки еще больше сторонних разработчиков.
Github предоставляет удобный механизм запрос на вытягивание , так что любой пользователь сервиса может стать соавтором OpenCV. Каждый пул-реквест проходит автоматическую сборку и в случае успеха отправляется на проверку разработчику из команды OpenCV. Он проверяет код, задает необходимые вопросы автору и решает, внести или отклонить предложенные изменения.
Отметим, что за несколько недель до выхода описываемого релиза все штатные разработчики также вносили свои изменения через пул-реквест, чтобы оценить преимущества и недостатки такой практики с точки зрения сторонних разработчиков.
В одном из постов мы планируем подробно рассказать о непрерывной интеграции в проекте OpenCV. Свои вопросы по этой теме вы можете задавать в комментариях, и мы постараемся ответить на них максимально подробно.
Планы
Следующий выпуск, номер 2.5, ожидается весной 2013 года.По сравнению с 2.4.3 будут существенные изменения и нарушена бинарная совместимость с целью модернизации архитектуры и API библиотеки.
Среди запланированных работ отметим следующие: разбиение функциональности на «микромодули», поддержка пользовательских микромодулей;
удаление устаревшего кода (перенос в отдельные неподдерживаемые модули);
продолжение работ по распараллеливанию и оптимизации;
новые алгоритмы работы с Kinect, 3D-восстановления, компьютерной фотографии, трекинга и т. д.;
Улучшена документация и навигация по примерам использования OpenCV.
Заключение
Наконец, мы хотели бы поблагодарить все сообщество разработчиков, внесшее вклад в этот выпуск, особенно участников Google Summer of Code 2012. Вместе мы постарались сделать библиотеку по-настоящему удобной и полезной.
Присоединяйтесь к процессу разработки, теперь это стало удобнее, чем когда-либо!
Полезные ссылки
Главный сайт Андроид КУДА Форум в стиле StackOverflow Журналы изменений OpenCV Документация: HTML-версия , ночная постройка , предыдущие выпуски ( 2.4.2 , 2.4.1 , 2.4 , 2.3 ) Справочное руководство (pdf) Учебники (pdf) Гид пользователя (pdf) Шпаргалка (pdf) Java API , Android-менеджер (pdf) Ресурсы для разработчиков: Баг трекер Система непрерывной интеграции Репозиторий на github Теги: #OpenCV #обработка изображений #компьютерное зрение #itseez #обработка изображений-
Спектр
19 Oct, 24 -
Открылись Две Новые Русские Википедии
19 Oct, 24 -
Идея Стартапа. Бесплатно_2
19 Oct, 24