OpenCV - OpenCV
Автор (ы) оригинала | Корпорация Intel , Willow Garage , Итзее |
---|---|
Первый выпуск | Июнь 2000 г . |
Стабильный выпуск | 4.5.4 / 9 октября 2021 г .
|
Репозиторий | |
Написано в | C / C ++ |
Операционная система | Кроссплатформенность |
Размер | ~ 200 МБ |
Тип | Библиотека |
Лицензия | Лицензия Apache |
Веб-сайт | OpenCV |
OpenCV ( Open Source Computer Vision Library ) - это библиотека функций программирования, в основном предназначенная для компьютерного зрения в реальном времени . Первоначально разработанный Intel , позже он был поддержан Willow Garage, а затем Itseez (который позже был приобретен Intel). Библиотека кроссплатформенна и бесплатна для использования под лицензией Apache 2 с открытым исходным кодом . Начиная с 2011 года, OpenCV поддерживает ускорение графического процессора для операций в реальном времени.
История
Официально запущенный в 1999 году проект OpenCV изначально был инициативой Intel Research по развитию приложений с интенсивным использованием ЦП , частью серии проектов, включая трассировку лучей в реальном времени и трехмерные видеостены . Основными участниками проекта были ряд экспертов по оптимизации из Intel в России, а также команда Intel Performance Library. На заре OpenCV цели проекта описывались как:
- Продвигайте исследования в области технического зрения, предоставляя не только открытый, но и оптимизированный код для базовой инфраструктуры технического зрения. Больше не нужно изобретать велосипед .
- Распространяйте знания о видении, предоставляя общую инфраструктуру, которую разработчики могли бы использовать, чтобы код был более читабельным и переносимым.
- Усовершенствуйте коммерческие приложения на основе технического зрения, сделав переносимый , оптимизированный по производительности код доступным бесплатно - с лицензией, которая не требует, чтобы код был открытым или свободным.
Первая альфа-версия OpenCV была представлена публике на конференции IEEE по компьютерному зрению и распознаванию образов в 2000 году, а в период с 2001 по 2005 год было выпущено пять бета-версий. Первая версия 1.0 была выпущена в 2006 году. Предварительный выпуск версии 1.1 " "был выпущен в октябре 2008 года.
Второй крупный выпуск OpenCV был выпущен в октябре 2009 года. OpenCV 2 включает в себя серьезные изменения в интерфейсе C ++ , направленные на упрощение и безопасность типов, новые функции и лучшие реализации существующих с точки зрения производительности (особенно на мульти- основные системы). Официальные релизы теперь выпускаются каждые шесть месяцев, и теперь разработкой занимается независимая российская команда при поддержке коммерческих корпораций.
В августе 2012 года поддержку OpenCV взял на себя некоммерческий фонд OpenCV.org, который поддерживает сайт разработчика и пользователя.
В мае 2016 года Intel подписала соглашение о приобретении Itseez, ведущего разработчика OpenCV.
В июле 2020 года OpenCV объявила и начала кампанию на Kickstarter для OpenCV AI Kit , серии аппаратных модулей и дополнений к OpenCV, поддерживающих Spatial AI.
Приложения
Области применения OpenCV включают:
- Наборы инструментов для 2D и 3D функций
- Оценка эмоций
- Система распознавания лиц
- Распознавание жеста
- Человеко-компьютерное взаимодействие (HCI)
- Мобильная робототехника
- Понимание движения
- Обнаружение объекта
- Сегментация и признание
- Стереозрение : восприятие глубины с 2-х камер
- Конструкция из движения (SFM)
- Отслеживание движения
- Дополненная реальность
Для поддержки некоторых из вышеперечисленных областей OpenCV включает библиотеку статистического машинного обучения, которая содержит:
- Повышение
- Обучение дереву решений
- Деревья с градиентным усилением
- Алгоритм ожидания-максимизации
- алгоритм k-ближайшего соседа
- Наивный байесовский классификатор
- Искусственные нейронные сети
- Случайный лес
- Машина опорных векторов (SVM)
- Глубокие нейронные сети (DNN)
Язык программирования
OpenCV написана на C ++ и его основной интерфейс в C ++, но он по- прежнему сохраняет менее всеобъемлющий , хотя обширный старший интерфейс C . Все новые разработки и алгоритмы появляются в интерфейсе C ++. Есть привязки в Python , Java и MATLAB / OCTAVE . API для этих интерфейсов можно найти в онлайн-документации. Оболочки на нескольких языках программирования были разработаны, чтобы способствовать их принятию более широкой аудиторией. В версии 3.4 привязки JavaScript для выбранного подмножества функций OpenCV были выпущены как OpenCV.js для использования на веб-платформах.
Аппаратное ускорение
Если библиотека обнаружит в системе примитивы Intel Integrated Performance Primitives , она будет использовать эти запатентованные оптимизированные процедуры для своего ускорения.
CUDA основанного GPU интерфейс ведется с сентября 2010 года.
OpenCL основанного GPU интерфейс ведется с октября 2012 года , документацию для версии 2.4.13.3 можно найти на docs.opencv.org.
Поддержка ОС
OpenCV работает на следующих настольных операционных системах: Windows , Linux , macOS , FreeBSD , NetBSD , OpenBSD . OpenCV работает на следующих мобильных операционных системах: Android , iOS , Maemo , BlackBerry 10 . Пользователь может получить официальные выпуски из SourceForge или взять последние исходные коды из GitHub . OpenCV использует CMake .
Смотрите также
- AForge.NET , библиотека компьютерного зрения для среды CLR ( .NET Framework и Mono ).
- ROS (операционная система роботов) . OpenCV используется в качестве пакета основного зрения в ROS.
- VXL , альтернативная библиотека, написанная на C ++.
- CVIPtools , полная программная среда компьютерного зрения и обработки изображений на основе графического интерфейса пользователя, с библиотеками функций C, DLL на основе COM, а также двумя служебными программами для разработки алгоритмов и пакетной обработки.
- OpenNN , библиотека нейронных сетей с открытым исходным кодом, написанная на C ++.
- Список пакетов бесплатного программного обеспечения и программного обеспечения с открытым исходным кодом