天天看點

3ms完成ResNet50推理,OpenCV 4.7在華為昇騰下超越蘋果M1

作者:IT之家

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 的優異結果。

3ms完成ResNet50推理,OpenCV 4.7在華為昇騰下超越蘋果M1

同時,CANN 後端的推理結果也與預設 CPU 後端的基本保持一緻。使用 OpenCV,使用者隻需下面 7 行 Python 代碼,無需學習 CANN 的 API,就可以簡潔地調用起昇騰 AI 處理器,實作神經網絡加速推理(核心為第三、四行代碼,其餘為常見模型推理邏輯代碼):

import cv2 as cv
net = 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()      

▲ 使用 CANN 後端推理的示例代碼

南方科技大學計算機系的于仕琪老師表示,把 OpenCV 針對 ARM CPU 進行了 winograd conv 等優化,在蘋果标杆 CPU M1 上完成 ResNet50 推理都要跑 20ms 以上,而華為昇騰僅用了 3.29ms。

3ms完成ResNet50推理,OpenCV 4.7在華為昇騰下超越蘋果M1

IT之家了解到,昇騰 CANN(Compute Architecture for Neural Networks)是華為針對 AI 場景推出的異構計算架構。昇騰 CANN 支援昇思 MindSpore,OpenCV DNN,飛槳 Paddle、PyTorch、TensorFlow 等神經網絡推理和訓練架構,并相容多種底層硬體裝置。

3ms完成ResNet50推理,OpenCV 4.7在華為昇騰下超越蘋果M1