- PVSM.RU - https://www.pvsm.ru -
Авторы: Анатолий Бакшеев, Кирилл Корняков(kirillkornyakov [1]), Андрей Морозов(aod314 [2]), Вадим Писаревский, Олег Скляров(olegsklyarov [3]), Евгений Таланин, Александр Шишков(AlexanderShishkov [4]).
Привет!
Мы рады сообщить, что 2 ноября увидела свет новая версия OpenCV, свободной библиотеки компьютерного зрения. Этот пост написан разработчиками библиотеки, работающими в компании Itseez [5]. Мы перечислим основные нововведения с момента выхода предыдущей версии, стоит отметить, что их достаточно много: новые алгоритмы, ускорение существующих, поддержка новых платформ, обновление процесса разработки, интеграции и тестирования, а так же обновлённая документация. За время подготовки релиза было закрыто более 210 задач на трекере (hackathon [6], release candidate [7], release [8]): патчи, исправления ошибок, расширение существующей функциональности.
Но обо всём по порядку.
У OpenCV наконец-то появился свой дом в сети интернет по адресу opencv.org [9]. На этом сайте вы можете узнать последние события в жизни библиотеки и найти ссылки на все остальные веб-ресурсы, связанные с ней. Для автоматической подписки на новости можно использовать наш публичный RSS [10] канал или твиттер [11].
Более специализированная информация для разработчиков библиотеки сосредоточена на сайте code.opencv.org [12], созданном на оcнове ChiliProject [13]. Здесь вы можете найти всю информацию о расписании следующих релизов библиотеки или о решениях, принимаемых разработчиками во время ежеденельных митингов. Информация создается и редактируется в режиме wiki, поэтому чаще всего является наиболее актуальной. Также здесь живет основной git репозиторий OpenCV (но мы рекомендуем пользоваться зеркалом на гитхабе, об этом — ниже) и баг-трекер. Поэтому, если у вас возникают проблемы с использованием библиотеки, не стесняйтесь сообщить нам через этот ресурс.
Также совсем недавно мы открыли еще один сайт, направленный на поддержку пользователей. Это форум [14], созданный в стиле StackOverflow и посвященный решению проблем при работе с OpenCV и компьютерному зрению вообще. Несмотря на свою короткую историю на ресурсе уже было обсуждено более тысячи вопросов.
Не стоит забывать и про сайт с онлайн-документацией [15] библиотеки, который содержит всю необходимую информацию для последних выпущенных версий.
Теперь писать параллельный код стало удобнее благодаря новому универсальному примитиву parallel_for_, который умеет использовать различные бэкенды:
Таким образом, появилась возможность наслаждаться улучшенной производительностью даже если у вас отсутствует TBB, но поддерживается другой фреймвок из вышеперечисленных. Так, например на
Windows и Mac OSX, вам не потребуется устанавливать что-то дополнительно, поскольку используются стандартные технологии, поставляемые вместе со средой разработки. Ряд алгоритмов OpenCV, использовавших TBB, были приведены к новому parallel_for_ или распараллелены впервые.
В состав библиотеки добавлен экспериментальный модуль ocl, который реализует алгоритмы компьютерного зрения с помощью технологии OpenCL [21]. На текущий момент доступны следующие алгоритмы, запускаемые пока только на GPU:
Для модуля уже доступна документация [22], за подробностями предлагаем обратиться к ней.
В GPU модуль в этот раз добавлено много полезных алгоритмов:
Также в этом релизе мы сделали публичным так называемый “device layer” — набор заголовочных файлов, содержащий шаблонные функции и классы, написанные на CUDA и предназначенные для компилятора nvcc. Это будет полезно разработчикам, которые сами пишут на CUDA. Теперь, комбинируя фукнциональность device layer со своим кодом, пользователю проще реализовывать на CUDA новые алгоритмы обработки изображений.
Команда OpenCV for Android, поддерживаемая NVIDIA, существенно обновила библиотеку, сделав её более удобной и снабдив более полной документацией. Кроме того, платформа Tegra 3 теперь использует ряд оптимизаций, позволяющих существенно повысить производительность конечных приложений.
OpenCV for iOS получила ряд долгожданных нововведений:
В рамках Google Summer of Code 2012 [33] Александр Мордвинцев из Санкт-Петербурга добавил несколько замечательных примеров продвинутого использования Python с OpenCV:
В качестве системы непрерывной интеграции в OpenCV используется Buildbot [41]. Ежедневно собираются более полусотни различных конфигураций: для 32- и 64- битных платформ под Windows, Linux, Mac OS, Android, iOS, с использованием TBB, SSE и GPU оптимизиций. На каждой конфигурации запускаются около пяти тысяч различных тестов. Пятнадцать наиболее популярных конфигураций собираются дважды в сутки. Автоматически собираются tarball, инсталлятор для Windows и фреймворк для iOS, подсчитывается покрытие кода и проверяется бинарная совместимость. Как видите, мы проделали большую работу, чтобы обеспечить высокую стабильность библиотеки :)
Любое изменение, попадающее в репозиторий, вызывает запуск нескольких быстрых сборок. В случае удачного исхода делается достаточно достоверное предположение о том, что и на других конфигурациях код будет компилироваться и проходить большинство тестов.
После выхода OpenCV 2.4.2, как и было обещано, мы сменили систему контроля версий. Теперь наш репозиторий живёт под управлением git. Логичным следствием этого шага стало создание зеркала на github [42], которое позволило привлечь ещё больше сторонних разработчиков к развитию библиотеки. Github предоставляет удобный механизм pull request [43], так что любой пользователь сервиса может стать соавтором OpenCV. Каждый pull request проходит через автоматическую сборку и в случае успеха попадает к разработчику из команды OpenCV на рецензию. Он проверяет код, задаёт необходимые вопросы автору и принимает решение о том, внести или отклонить предлагаемые изменения.
Отметим, что за несколько недель до выхода описываемого релиза все штатные разработчики также вносили свои изменения через pull request, чтобы оценить достоинства и недостатки такой практики с точки зрения сторонних разработчиков. В одном из постов мы планируем подробно рассказать о непрерывной интеграции в проекте OpenCV. Свои вопросы на эту тему вы можете задать в комментариях, а мы постараемся ответить на них как можно подробнее.
Следующий релиз под номером 2.5 ожидается весной 2013 года. По сравнению с 2.4.3 в нём произойдут значительные изменения, и бинарная совместимость будет нарушена с целью модернизации архитектуры и API библиотеки.
Среди запланированных работ выделим следующие:
В конце нам хочется поблагодарить всё сообщество разработчиков, которое внесло вклад в состоявшийся релиз, особенно участников Google Summer of Code 2012. Вместе мы постарались сделать билиотеку по-настоящему удобной и полезной. Присоединяйтесь к процессу разработки, сейчас это стало удобно, как никогда ранее!
Автор: AoD314
Источник [59]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/obrabotka-izobrazhenij/18833
Ссылки в тексте:
[1] kirillkornyakov: http://habrahabr.ru/users/kirillkornyakov/
[2] aod314: http://habrahabr.ru/users/aod314/
[3] olegsklyarov: http://habrahabr.ru/users/olegsklyarov/
[4] AlexanderShishkov: http://habrahabr.ru/users/alexandershishkov/
[5] Itseez: http://itseez.com/
[6] hackathon: http://code.opencv.org/projects/opencv/versions/8
[7] release candidate: http://code.opencv.org/projects/opencv/versions/10
[8] release: http://code.opencv.org/projects/opencv/versions/7
[9] opencv.org: http://opencv.org
[10] RSS: http://opencv.org/feed
[11] твиттер: http://twitter.com/opencvlibrary
[12] code.opencv.org: http://code.opencv.org
[13] ChiliProject: https://www.chiliproject.org
[14] форум: http://answers.opencv.org
[15] онлайн-документацией: http://docs.opencv.org
[16] TBB: http://threadingbuildingblocks.org/
[17] OpenMP: http://openmp.org/wp/openmp-specifications/
[18] Grand Central Dispatch (iOS, Mac OSX): https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html
[19] Concurrency (Visual Studio 2010 или новее): http://msdn.microsoft.com/en-us/library/dd504870.aspx
[20] С=: http://www.hoopoesnest.com/cstripes/cstripes-details.htm
[21] OpenCL: http://www.khronos.org/opencl
[22] документация: http://docs.opencv.org/modules/ocl/doc/ocl.html
[23] ViBe: http://www2.ulg.ac.be/telecom/research/vibe
[24] http://opencv.org/android: http://opencv.org/android
[25] Доклад: http://opencv.org/wp-content/uploads/2012/10/ECCV-2012-OpenCV4Android.pdf
[26] ECCV2012: http://opencv.org/eccv2012.html
[27] Android-туториалы: http://docs.opencv.org/doc/tutorials/introduction/table_of_content_introduction/table_of_content_introduction.html
[28] Javadoc-документация: http://docs.opencv.org/java/
[29] OpenCV Manager: https://docs.google.com/a/itseez.com/presentation/d/1EO_1kijgBg_BsjNp2ymk-aarg-0K279_1VZRcPplSuk/present#slide=id.p
[30] OpenCV Tegra Demo: https://play.google.com/store/apps/details?id=org.opencv.imgdemo
[31] ссылке: http://docs.opencv.org/opencv2refman-tegra.pdf
[32] Tegra Android Development Pack: https://developer.nvidia.com/tegra-android-development-pack
[33] Google Summer of Code 2012: http://www.google-melange.com/gsoc/homepage/google/gsoc2012
[34] armv7s: http://en.wikipedia.org/wiki/Apple_A6
[35] A5: http://en.wikipedia.org/wiki/Apple_A5
[36] A5X: http://en.wikipedia.org/wiki/Apple_A5X
[37] материалы: http://docs.opencv.org/doc/tutorials/ios/table_of_content_ios/table_of_content_ios.html
[38] регистрация изображений при сильных перспективных искажениях с помощью ASIFT: https://github.com/Itseez/opencv/blob/master/samples/python2/asift.py
[39] распознавание рукописных цифр: https://github.com/Itseez/opencv/blob/master/samples/python2/digits.py
[40] Amazon PiCloud: http://www.picloud.com/
[41] Buildbot: http://buildbot.net
[42] зеркала на github: https://github.com/Itseez/opencv
[43] pull request: http://help.github.com/articles/using-pull-requests
[44] CUDA: http://opencv.org/platforms/cuda.html
[45] OpenCV Change Logs: http://code.opencv.org/projects/opencv/wiki/ChangeLog
[46] ночной билд: http://docs.opencv.org/trunk/
[47] 2.4.2: http://docs.opencv.org/2.4.2
[48] 2.4.1: http://docs.opencv.org/2.4.1
[49] 2.4: http://docs.opencv.org/2.4
[50] 2.3: http://docs.opencv.org/2.3
[51] Reference Manual: http://docs.opencv.org/opencv2refman.pdf
[52] Tutorials: http://docs.opencv.org/opencv_tutorials.pdf
[53] User Guide: http://docs.opencv.org/opencv_user.pdf
[54] Cheatsheet: http://docs.opencv.org/trunk/opencv_cheatsheet.pdf
[55] Java API: http://docs.opencv.org/java
[56] Android Manager: http://docs.opencv.org/trunk/opencv2manager.pdf
[57] Система непрерывной интеграции: http://build.opencv.org
[58] Репозиторий на github: http://github.com/Itseez/opencv
[59] Источник: http://habrahabr.ru/post/157281/
Нажмите здесь для печати.