圖像處理最佳實(shí)踐
您可以通過函數(shù)計(jì)算控制臺(tái)、SDK或Serverless Devs來體驗(yàn)GPU實(shí)例的最佳實(shí)踐。本文以Python語言為例,說明如何通過控制臺(tái),將原始圖像經(jīng)過函數(shù)代碼處理,實(shí)現(xiàn)邊緣檢測。
應(yīng)用場景與優(yōu)勢
在不同的應(yīng)用場景下,函數(shù)計(jì)算提供的GPU實(shí)例與CPU相比所具備的優(yōu)勢如下。
實(shí)時(shí)、準(zhǔn)實(shí)時(shí)的應(yīng)用場景
提供數(shù)倍于CPU的圖形圖像處理效率,從而快速將生產(chǎn)內(nèi)容推向終端用戶。
成本優(yōu)先的圖像處理場景
提供彈性預(yù)留模式,從而按需為客戶保留GPU工作實(shí)例,對比自建GPU集群擁有較大成本優(yōu)勢。
提供GPU共享虛擬化,支持以1/2、獨(dú)占方式使用GPU,允許業(yè)務(wù)以更精細(xì)化的方式配置GPU實(shí)例。
效率優(yōu)先的圖像處理場景
屏蔽運(yùn)維GPU集群的繁重負(fù)擔(dān)(驅(qū)動(dòng)/CUDA版本管理、機(jī)器運(yùn)行管理、GPU壞卡管理),使得開發(fā)者專注于代碼開發(fā)、聚焦業(yè)務(wù)目標(biāo)的達(dá)成。
GPU實(shí)例的更多信息,請參見實(shí)例類型及使用模式。
教程示例說明
如下表所示,左列為原圖,右列是經(jīng)過部署在函數(shù)計(jì)算的邊緣檢測函數(shù)代碼處理后,所生成的圖片。
原始圖像 | 邊緣檢測結(jié)果 |
準(zhǔn)備工作
OpenCV需要自行編譯以使用GPU加速,編譯方式如下:
(推薦)通過Docker使用已編譯好的OpenCV。下載地址:opencv-cuda-docker或cuda-opencv
自行編譯。具體步驟,請參見官網(wǎng)編譯手冊。
- 將需處理的音視頻資源上傳至在GPU實(shí)例所在地域的OSS Bucket中,且您對該Bucket中的文件有讀寫權(quán)限。具體步驟,請參見控制臺(tái)上傳文件。權(quán)限相關(guān)說明,請參見修改存儲(chǔ)空間讀寫權(quán)限。
通過函數(shù)計(jì)算控制臺(tái)部署GPU應(yīng)用
- 部署鏡像。
- 建容器鏡像服務(wù)的企業(yè)版實(shí)例或個(gè)人版實(shí)例。推薦您創(chuàng)建企業(yè)版實(shí)例。具體操作步驟,請參見創(chuàng)建企業(yè)版實(shí)例。
- 創(chuàng)建命名空間和鏡像倉庫。具體操作步驟,請參見步驟二:創(chuàng)建命名空間和步驟三:創(chuàng)建鏡像倉庫。
- 在容器鏡像服務(wù)控制臺(tái),根據(jù)界面提示完成Docker相關(guān)操作步驟。然后將上述示例app.py和Dockerfile推送至實(shí)例鏡像倉庫,文件信息,請參見通過ServerlessDevs部署GPU應(yīng)用時(shí)/code目錄中的app.py和Dockerfile。
- 建容器鏡像服務(wù)的企業(yè)版實(shí)例或個(gè)人版實(shí)例。
創(chuàng)建GPU函數(shù)。具體操作步驟,請參見創(chuàng)建Custom Container函數(shù)。
修改函數(shù)的執(zhí)行超時(shí)時(shí)間。
在目標(biāo)函數(shù)的配置頁簽,在左側(cè)導(dǎo)航欄,選擇運(yùn)行時(shí),然后單擊運(yùn)行時(shí)右側(cè)的編輯。
在運(yùn)行時(shí)面板,修改執(zhí)行超時(shí)時(shí)間,然后單擊確定。
說明CPU轉(zhuǎn)碼耗時(shí)會(huì)超過默認(rèn)的60s,因此建議您修改執(zhí)行超時(shí)時(shí)間為較大的值。
配置GPU預(yù)留實(shí)例。關(guān)于配置預(yù)留實(shí)例的具體操作,請參見配置預(yù)留實(shí)例。
配置完成后,您可以在規(guī)則列表查看預(yù)留的GPU實(shí)例是否就緒。即當(dāng)前預(yù)留實(shí)例數(shù)是否為設(shè)置的預(yù)留實(shí)例數(shù)。
使用cURL測試函數(shù)。
- 在函數(shù)詳情頁面,單擊觸發(fā)器管理頁簽,查看觸發(fā)器的配置信息,獲取觸發(fā)器的訪問地址。
在命令行執(zhí)行如下命令,調(diào)用GPU函數(shù)。
查看線上函數(shù)版本
curl "https://tgpu-op-console-tgpu-op-console-ajezokddpx.cn-shenzhen.fcapp.run" {"function": "opencv_edge_canny"}
執(zhí)行圖片邊緣檢測
curl "https://tgpu-op-console-tgpu-op-console-ajezokddpx.cn-shenzhen.fcapp.run" -H "RUN-MODE: normal" {"result": "CUDA-capable device supported | process image ok!"}
執(zhí)行結(jié)果
您可通過在瀏覽器中訪問以下域名,查看經(jīng)過邊緣檢測處理后的圖片:
https://cri-zfen7xhpsx******-registry.oss-cn-shenzhen.aliyuncs.com/cats2.png
本域名僅為示例,需以實(shí)際情況為準(zhǔn)。