OpenCV 是一个跨平台的开源的计算机视觉库,提供了 Python、Ruby、MATLAB 等语言的接口。下一个版本OpenCV 5.0 不仅仅支持常规的图像分类、目标检测、图像分割和风格迁移功能,还引入上百个的CV方向任务。 飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台。飞桨目前官方模型库支持300+个产业级开源算法,覆盖语音、视觉、NLP、推荐等领域大规模应用。 随着人工智能及深度学习视觉技术的快速发展,OpenCV从3.3版本就开始引入DNN模块,通过ONNX等多种格式支持对深度学习模型的加载和推理,并且支持OpenCL加速,非常方便用户使用,后端的推理引擎也支持多种选择。 应广大开发者的要求,飞桨社区和OpenCV社区双方启动合作,在OpenCV DNN模块中增加PaddlePaddle飞桨模型的支持。飞桨一系列特色模型可快速通过OpenCV进行加载和推理,极大方便了应用开发者,大大加速开发流程。 下面详细跟大家介绍OpenCV DNN模块以及如何通过 OpenCV DNN模块进行飞桨PaddlePaddle模型的加载和预测。 什么是DNN模块?OpenCV中的DNN(Deep Neural Network)模块是专门用于实现深度学习预测推理功能的模块,包括目标检测、图像分割任务等。OpenCV可以载入其他深度学习框架(例如PaddlePaddle、PyTorch等等)训练好的模型,并使用该模型进行预测。 为什么要用DNN模块? OpenCV的DNN模块主要有以下三点优势: 1、轻量,由于DNN模块只实现了推理功能,它的代码量、编译运行开销与其他深度学习框架比起来会少很多。 2、方便,DNN模块提供了内建的CPU和GPU加速且无须依赖第三方库。 3、通用,DNN模块支持多种网络模型格式,因此用户无须额外进行网络模型的转换就可以直接使用,同时它还支持多种运算设备和操作系统。
|