Выпуск библиотеки компьютерного зрения OpenCV 4.0
Представлен релиз свободной библиотеки OpenCV 4.0 (Open Source Computer Vision Library), предоставляющей средства для обработки и анализа содержимого изображений. OpenCV предоставляет более 2500 алгоритмов, как классических, так и отражающих последние достижения в области компьютерного зрения и систем машинного обучения. Код библиотеки написан на языке С++ и распространяется под лицензией BSD. Биндинги подготовлены для различных языков программирования, включая Python, MATLAB и Java.
Библиотека может применяться для распознавания объектов на фотографиях и видео (например, распознавание лиц и фигур людей, текста и т. п.), отслеживания движения объектов и камеры, классификации действий на видео, преобразования изображений, извлечения 3D-моделей, формирования 3D-пространства из изображения от стереокамер, создания высококачественных изображений через объединение изображений более низкого качества, поиска на изображении объектов, похожих на представленный набор элементов, применения методов машинного обучения, расстановки маркеров, выявления общих элементов на разных изображениях, автоматического устранения дефектов, таких как эффект красных глаз.
В новом выпуске:
- Осуществлен переход на C++11 в качестве основного языка для разработки библиотеки. Соответственно, для сборки теперь требуется наличие компилятора, поддерживающего стандарт C++11. Повышены требования к сборочному инструментарию, для сборки теперь необходимо наличие CMake 3.5.1 или более нового выпуска;
- Проведена чистка C API, удалены многие устаревшие выховы OpenCV 1.x;
- В основных модулях с языка Си на Си++ полностью переписан код для хранения и чтения структурированных данных в форматах XML, YAML и JSON);
- Представлен новый модуль G-API, выполняющий функции движка для эффективной обработки изображений с использованием алгоритмов на основе графов;
- В модуль dnn (Deep Neural Network) с реализацией алгоритмов машинного обучения на основе нейронных сетей добавлен экспериментальный бэкенд для использования графического API Vulkan, а также добавлена поддержка формата ONNX (Open Neural Network Exchange) для представления моделей машинного обучения;
- Реализован алгоритм Kinect Fusion для построения 3D-моделей реальных объектов. Реализация оптимизирована для CPU и GPU (OpenCL);
- В модуль objdetect добавлены детектор и декодировщик QR-кодов;
- Эффективный и высококачественный алгоритм отслеживания движения объектов DIS (Dense Inverse Search) перемещен из модуля opencv_contrib в модуль video.