OpenCV - OpenCV
эта статья слишком полагается на Рекомендации к основные источники.Ноябрь 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | Корпорация Intel, Willow Garage, Itseez |
---|---|
изначальный выпуск | Июнь 2000 г. |
Стабильный выпуск | 4.5.0 / 12 октября 2020 |
Репозиторий | |
Написано в | C /C ++ |
Операционная система | Кроссплатформенность |
Размер | ~ 200 МБ |
Тип | Библиотека |
Лицензия | Лицензия Apache |
Интернет сайт | opencv |
OpenCV (Библиотека компьютерного зрения с открытым исходным кодом) это библиотека функций программирования в основном нацелены на в реальном времени компьютерное зрение.[1] Первоначально разработан Intel, позже он был поддержан Willow Garage затем Itseez (который позже был приобретен Intel[2]). Библиотека кросс-платформенный и бесплатно для использования под Открытый исходный код Лицензия Apache 2. Начиная с 2011 года, OpenCV поддерживает ускорение графического процессора для операций в реальном времени.[3].
История
Официально запущенный в 1999 году проект OpenCV изначально был Intel Research инициатива по продвижению ЦПУ -интенсивные приложения, часть серии проектов, в том числе в реальном времени трассировка лучей и 3D дисплей стены.[4] Основными участниками проекта были ряд экспертов по оптимизации из Intel в России, а также команда Intel Performance Library. В первые дни OpenCV цели проекта были описаны[5] в качестве:
- Продвигайте исследования видения, предоставляя не только открытые, но и оптимизированный код для базовой инфраструктуры технического зрения. Больше не надо изобретать колесо.
- Распространяйте знания о видении, предоставляя общую инфраструктуру, которую разработчики могли бы использовать, чтобы код был более читабельным и переносимым.
- Продвигайте коммерческие приложения на основе технического зрения, создавая портативный, код, оптимизированный для производительности, доступен бесплатно - с лицензией, которая не требует, чтобы код был открытым или свободным.
Первая альфа-версия OpenCV была выпущена для широкой публики на Конференция IEEE по компьютерному зрению и распознаванию образов в 2000 году, а в период с 2001 по 2005 год было выпущено пять бета-версий. Первая версия 1.0 была выпущена в 2006 году. Предварительная версия 1.1 была выпущена в октябре 2008 года.
Второй крупный выпуск OpenCV состоялся в октябре 2009 года. OpenCV 2 включает в себя основные изменения в C ++ интерфейс, нацеленный на более простые и безопасные по типу шаблоны, новые функции и лучшие реализации существующих с точки зрения производительности (особенно в многоядерных системах). Официальные релизы теперь выходят каждые шесть месяцев.[6] а разработкой теперь занимается независимая российская команда при поддержке коммерческих корпораций.
В августе 2012 года поддержку OpenCV взял на себя некоммерческий фонд OpenCV.org, который поддерживает разработчика[7] и сайт пользователя.[8]
В мае 2016 года Intel подписала соглашение о приобретении Itseez,[9] ведущий разработчик OpenCV.[10]
В июле 2020 года OpenCV объявила и начала кампанию на Kickstarter для Комплект OpenCV AI, серия аппаратных модулей и дополнений к OpenCV, поддерживающих Spatial AI.
Приложения
Области применения OpenCV включают:
- Наборы инструментов для 2D и 3D функций
- Эгомоция оценка
- Система распознавания лиц
- Распознавание жеста
- Взаимодействие человека с компьютером (HCI)
- Мобильная робототехника
- Понимание движения
- Обнаружение объекта
- Сегментация и признание
- Стереопсис стереозрение: восприятие глубины с 2-х камер
- Конструкция из движения (SFM)
- Отслеживание движения
- Дополненная реальность
Для поддержки некоторых из вышеперечисленных областей OpenCV включает статистический машинное обучение библиотека, содержащая:
- Повышение
- Изучение дерева решений
- Повышение градиента деревья
- Алгоритм ожидания-максимизации
- алгоритм k-ближайшего соседа
- Наивный байесовский классификатор
- Искусственные нейронные сети
- Случайный лес
- Машина опорных векторов (SVM)
- Глубокие нейронные сети (DNN)[11]
Язык программирования
OpenCV написан на C ++ и его основной интерфейс находится на C ++, но он по-прежнему сохраняет менее исчерпывающий, но более старый C интерфейс. Все новые разработки и алгоритмы появляются в интерфейсе C ++. Есть привязки в Python, Ява и MATLAB /Октава. API для этих интерфейсов можно найти в онлайн-документации.[12] Оболочки на нескольких языках программирования были разработаны, чтобы способствовать их принятию более широкой аудиторией. В версии 3.4 JavaScript привязки для выбранного подмножества функций OpenCV были выпущены как OpenCV.js для использования на веб-платформах.[13]
Аппаратное ускорение
Если библиотека найдет Intel Интегрированные примитивы производительности в системе он будет использовать эти запатентованные оптимизированные процедуры для своего ускорения.
А CUDA -основан GPU интерфейс находится в разработке с сентября 2010 года.[14]
An OpenCL -основан GPU интерфейс работает с октября 2012 года,[15] документацию для версии 2.4.13.3 можно найти на docs.opencv.org.[16]
Поддержка ОС
OpenCV работает на следующих настольных операционных системах: Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD. OpenCV работает в следующих мобильных операционных системах: Android, iOS, Maemo,[17] BlackBerry 10.[18] Пользователь может получать официальные релизы от SourceForge или возьмите последние источники из GitHub.[19] OpenCV использует CMake.
Смотрите также
- AForge.NET, библиотека компьютерного зрения для общеязыковая среда выполнения (.NET Framework и Мононуклеоз ).
- ROS (операционная система роботов). OpenCV используется в качестве пакета основного зрения в ROS.
- VXL, альтернативная библиотека, написанная на C ++.
- CVIPtools, полная программная среда компьютерного зрения и обработки изображений на основе графического интерфейса пользователя, с библиотеками функций C, DLL на основе COM, а также двумя служебными программами для разработки алгоритмов и пакетной обработки.
- OpenNN, открытый исходный код нейронные сети библиотека написана на C ++.
- Список пакетов бесплатного и открытого программного обеспечения
Рекомендации
- ^ Пулли, Кари; Бакшеев Анатолий; Корняков, Кирилл; Ерухимов Виктор (1 апреля 2012 г.). «Компьютерное зрение в реальном времени с OpenCV». Очередь. 10 (4): 40:40–40:56. Дои:10.1145/2181796.2206309.
- ^ Intel приобретает Itseez: https://opencv.org/intel-acquires-itseez.html
- ^ "CUDA". opencv.org. Получено 2020-10-15.
- ^ Адриан Келер; Гэри Брадски (14 декабря 2016 г.). Изучение OpenCV 3: компьютерное зрение на C ++ с помощью библиотеки OpenCV. O'Reilly Media. стр. 26ff. ISBN 978-1-4919-3800-3.
- ^ Брадски, Гэри; Kaehler, Адриан (2008). Изучение OpenCV: компьютерное зрение с библиотекой OpenCV. O'Reilly Media, Inc. стр. 6.
- ^ Журналы изменений OpenCV: http://code.opencv.org/projects/opencv/wiki/ChangeLog В архиве 2013-01-15 в Wayback Machine
- ^ Сайт разработчика OpenCV: http://code.opencv.org В архиве 2013-01-13 в Archive.today
- ^ Сайт пользователя OpenCV: http://opencv.org/
- ^ «Intel приобретает компьютерное зрение для Интернета вещей в автомобильной промышленности | Intel Newsroom». Отдел новостей Intel. Получено 2018-11-26.
- ^ «Intel приобретает российскую компанию по компьютерному зрению Itseez». Восток-Запад Цифровые новости. 2016-05-31. Получено 2018-11-26.
- ^ OpenCV: http://opencv.org/opencv-3-3.html
- ^ Интерфейс OpenCV C: http://docs.opencv.org
- ^ Введение в OpenCV.js и руководства
- ^ Порт Cuda GPU: http://opencv.org/platforms/cuda.html В архиве 2016-05-21 в Wayback Machine
- ^ Объявление OpenCL: http://opencv.org/opencv-v2-4-3rc-is-under-way.html
- ^ Справочник по API компьютерного зрения с ускорением OpenCL: http://docs.opencv.org/modules/ocl/doc/ocl.html
- ^ Порт Maemo: https://garage.maemo.org/projects/opencv
- ^ BlackBerry 10 (частичный порт): https://github.com/blackberry/OpenCV
- ^ «GitHub - opencv / Opencv: библиотека компьютерного зрения с открытым исходным кодом». 21 мая 2020.