IT之家 1 月 18 日消息,英特爾開源計(jì)算機(jī)視覺庫(kù) OpenCV 4.7 于去年 12 月正式發(fā)布。新版本帶來了全新的 ONNX 層,大大提高了 DNN 代碼的卷積性能,還為 DNN 模塊提供了華為昇騰 CANN 后端支持。
根據(jù) OpenCV 中國(guó)團(tuán)隊(duì)的最新測(cè)試,基于昇騰異構(gòu)計(jì)算架構(gòu) CANN 的加速能力,用 OpenCV Zoo 中的 PP-ResNet50、MobileNet 和 YOLOX 對(duì) CANN 后端進(jìn)行了測(cè)試,發(fā)現(xiàn)三個(gè)模型在 CANN 后端下分別達(dá)到了 3.29ms,1.21ms,12.80ms 的優(yōu)異結(jié)果。

同時(shí),CANN 后端的推理結(jié)果也與默認(rèn) CPU 后端的基本保持一致。使用 OpenCV,用戶只需下面 7 行 Python 代碼,無需學(xué)習(xí) CANN 的 API,就可以簡(jiǎn)潔地調(diào)用起昇騰 AI 處理器,實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)加速推理(核心為第三、四行代碼,其余為常見模型推理邏輯代碼):
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()南方科技大學(xué)計(jì)算機(jī)系的于仕琪老師表示,即使 OpenCV 針對(duì) ARM CPU 進(jìn)行了 winograd conv 等優(yōu)化,在蘋果標(biāo)桿 CPU M1 上完成 ResNet50 推理都要跑 20ms 以上,而華為昇騰僅用了 3.29ms。

IT之家了解到,昇騰 CANN(Compute Architecture for Neural Networks)是華為針對(duì) AI 場(chǎng)景推出的異構(gòu)計(jì)算架構(gòu)。昇騰 CANN 支持昇思 MindSpore,OpenCV DNN,飛槳 Paddle、PyTorch、TensorFlow 等神經(jīng)網(wǎng)絡(luò)推理和訓(xùn)練框架,并兼容多種底層硬件設(shè)備。

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。