IT之家 1 月 18 日消息,英特尔开源计算机视觉库 OpenCV 4.7 于去年 12 月正式发布。新版本带来了全新的 ONNX 层,大大提高了 DNN 代码的卷积性能,还为 DNN 模块提供了华为昇腾 CANN 后端支持。
根据 OpenCV 中国团队的最新测试,基于昇腾异构计算架构 CANN 的加速能力,用 OpenCV Zoo 中的 PP-ResNet50、MobileNet 和 YOLOX 对 CANN 后端进行了测试,发现三个模型在 CANN 后端下分别达到了 3.29ms,1.21ms,12.80ms 的优异结果。
同时,CANN 后端的推理结果也与默认 CPU 后端的基本保持一致。使用 OpenCV,用户只需下面 7 行 Python 代码,无需学习 CANN 的 API,就可以简洁地调用起昇腾 AI 处理器,实现神经网络加速推理(核心为第三、四行代码,其余为常见模型推理逻辑代码):
import cv2 as cvnet = cv.dnn.readNet("/path/to/model.onnx")net.setPreferableBackend(cv.dnn.DNN_BACKEND_CANN)net.setPreferableTarget(cv.dnn.DNN_TARGET_NPU)input = cv.imread("/path/to/image.jpg")net.setInput(cv.dnn.blobFromImage(input))out = net.forward()
南方科技大学计算机系的于仕琪老师表示,即使 OpenCV 针对 ARM CPU 进行了 winograd conv 等优化,在苹果标杆 CPU M1 上完成 ResNet50 推理都要跑 20ms 以上,而华为昇腾仅用了 3.29ms。
IT之家了解到,昇腾 CANN(Compute Architecture for Neural Networks)是华为针对 AI 场景推出的异构计算架构。昇腾 CANN 支持昇思 MindSpore,OpenCV DNN,飞桨 Paddle、PyTorch、TensorFlow 等神经网络推理和训练框架,并兼容多种底层硬件设备。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。