openCV

简介

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

编程语言

OpenCV用C语言编写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby的支持。

所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。

操作系统

OpenCV可以在Windows,Android,Maemo,FreeBSD,OpenBSD,iOS,Linux 和Mac OS等平台上运行。使用者可以在 SourceForge 获得官方版本,或者从 SVN 获得开发版本。OpenCV也是用CMake。

在Windows上编译OpenCV中与摄像输入有关部分时,需要DirectShow SDK中的一些基类。该SDK可以从预先编译的Microsoft Platform SDK(or DirectX SDK 8.0 to 9.0c / DirectX Media SDK prior to 6.0)的子目录Samples\Multimedia\DirectShow\BaseClasses获得。

TorchCV

简介

TorchCV是基于PyTorch开发的计算机视觉深度学习开源框架。该库提供了基于深度学习的大部分 CV 问题研究的源代码,对于使用者来说,调用最常用、最为先进的计算机模型从此可以变得更加容易。TorchCV 的作者 Donny You 来自北京大学,是机器感知与智能教育部重点实验室的一名研三学生。

包含模型

TorchCV 支持图像分类、语义分割、目标检测、姿态检测、实例分割、生成对抗网络等任务中的多个常见模型,列表如下:

图像分类

  • VGG: Very Deep Convolutional Networks for Large-Scale Image Recognition
  • ResNet: Deep Residual Learning for Image Recognition
  • DenseNet: Densely Connected Convolutional Networks
  • ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
  • ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design
  • Partial Order Pruning: for Best Speed/Accuracy Trade-off in Neural Architecture Search

语义分割

  • DeepLabV3: Rethinking Atrous Convolution for Semantic Image Segmentation
  • PSPNet: Pyramid Scene Parsing Network
  • DenseASPP: DenseASPP for Semantic Segmentation in Street Scenes
  • Asymmetric Non-local Neural Networks for Semantic Segmentation

目标检测

  • SSD: Single Shot MultiBox Detector
  • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  • YOLOv3: An Incremental Improvement
  • FPN: Feature Pyramid Networks for Object Detection

姿态检测

  • CPM: Convolutional Pose Machines
  • OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

实例分割

  • Mask R-CNN

生成对抗网络

  • Pix2pix: Image-to-Image Translation with Conditional Adversarial Nets
  • CycleGAN: Unpaired Image-to-Image Translation using Cycle-Consistent

SimpleCV

简介

SimpleCV是一个开源框架,用于在Python中方便快速的构建计算机视觉方面的应用程序。SimpleCV封装了若干强大的计算机视觉库(目前仅封装了OpenCV),简化了用户对这些库的使用难度,如无需了解位深、文件格式、颜色空间、缓冲区管理等内容,降低了学习成本。可以用于在Python下快速开发计算机视觉的原型程序。

MMCV

简介

mmcv 是用于计算机视觉研究的基础 Python 库,支持 MMLAB 中的许多研究项目,例如 mmdetection。该库主要分为两个部分,一部分是与深度学习框架无关的工具函数,比如 IO/Image/Video 相关的一些操作,另一部分是为 PyTorch 写的一套训练工具,可以大大减少用户需要写的代码量,同时让整个流程的定制变得容易。

功能

MMCV 是一个面向计算机视觉的基础库,它支持了很多开源项目,例如:

  • MIM: OpenMMLab 项目、算法、模型的统一入口
  • MMClassification: OpenMMLab 图像分类工具箱与测试基准
  • MMDetection: OpenMMLab 检测工具箱与测试基准
  • MMDetection3D: OpenMMLab 新一代通用3D目标检测平台
  • MMSegmentation: OpenMMLab 语义分割工具箱与测试基准
  • MMAction2: OpenMMLab 新一代视频理解工具箱与测试基准
  • MMTracking: OpenMMLab 一体化视频目标感知平台
  • MMPose: OpenMMLab 姿态估计工具箱与测试基准
  • MMEditing: OpenMMLab 图像视频编辑工具箱
  • MMOCR: OpenMMLab 全流程文字检测识别理解工具包
  • MMGeneration: OpenMMLab 新一代生成模型工具箱
  • MMFlow: OpenMMLab 光流估计工具箱与测试基准
  • MMFewShot: OpenMMLab 少样本学习工具箱与测试基准
  • MMHuman3D: OpenMMLab 人体参数化模型工具箱与测试基准
  • MMSelfSup: OpenMMLab 自监督学习工具箱与测试基准
  • MMRazor: OpenMMLab 模型压缩工具箱与测试基准
  • MMDeploy: OpenMMLab 模型部署框架

MMCV 提供了如下众多功能:

  • 通用的 IO 接口
  • 图像和视频处理
  • 图像和标注结果可视化
  • 常用小工具(进度条,计时器等)
  • 基于 PyTorch 的通用训练框架
  • 多种 CNN 网络结构
  • 高质量实现的常见 CUDA 算子

语言要求

MMCV 需要 Python 3.6 以上版本。

cv开源框架与国产操作系统兼容性

国产操作系统多为以Linux为基础二次开发的操作系统。而openCV作为最主流CV开源框架,也支持liunx操作系统的使用,所以openCV等CV开源框架与国产操作系统的兼容的。