摘要:借助人工智能技術,可以一定程度上幫助老照片還原原來色彩,還記得之前火熱的“老北京視頻上色”嗎?就是采用類似的技術,
本文分享自華為云社區《基于MindX SDK在Ascend 310上的黑白影像上色初體驗隨筆》,作者:Tianyi_Li ,
前言
在智能手機越來越普及的今天,拍攝一張色彩鮮艷、清晰的照片輕而易舉,但是老照片沒有如此“幸運”,大多為黑白,借助人工智能技術,可以一定程度上幫助老照片還原原來色彩,還記得之前火熱的“老北京視頻上色”嗎?就是采用類似的技術啊,
這次介紹的是黑白影像上色應用,旨在華為自研的Ascend 310推理芯片上實作輸入黑白影像,自動對黑白影像進行上色,還原彩色影像,
該應用案例整體流程如下圖所示:
簡單來說分為以下部分:
- 影像前處理:將輸入的黑白影像通過opencv轉換為Lab圖,并抽取其中的L通道進行前處理;
- Colorization模型推理:將處理后的L通道傳入模型進行推理,獲得預測結果的a,b通道;
- 模型后處理:拼接原始L通道和預測得的a,b通道獲得新的Lab圖,
環境
AI加速型 | ai1s.large.4 | 2vCPUs | 8GiB
MindStudio5.0.RC1_CANN5.1.RC1
Ubuntu 18.04 server 64bit
操作流程
假設我們已經收到代金券,并通過官方共享的鏡像購買了ECS,
1. 登錄環境
我使用的是MobaXterm,登陸界面如圖所示:
2. 獲取代碼
2.1 切換到普通用戶
默認登錄是root用戶,權限太大了,開發不太安全,我們先切換到普通用戶,命令如下:
su - HwHiAiUser
切換成功后,終端的提示符會變成$,我的當前目錄如下圖所示:
2.2 獲取代碼
我使用的是官方案例,執行如下命令下載:
git clone https://gitee.com/ascend/mindxsdk-referenceapps.git
運行成功截圖如下:
注意,這里是下載的完整倉庫,下面選擇具體案例,我先選擇Colorization來試試吧,先將這里案例拷貝出來一份到我的作業目錄,我們下載的就當備份,開發切記要常備份,有備無患,詳細資訊截圖如下,
2.3 運行
2.3.1 模型轉換
本工程原模型是caffee模型,需要使用atc工具轉換為om模型,模型和所需權重檔案已上傳,請使用以下命令下載并解壓:
mkdir model cd model wget https://mindx.sdk.obs.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Colorization/model.zip --no-check-certificate unzip model.zip
下載完成并成功解壓的截圖:
下載并解壓完畢后,進入scripts目錄執行模型轉換腳本
cd ../scripts
bash atc_run.sh
運行報錯了,如下所示:
回頭看看該案例之前的環境要求,如下所示,考慮到該案例最早的更新也是6個月前了,推測是CANN版本不匹配或其他軟體驅動問題或者是我們目前登錄的用戶與安裝的用戶不一致,也就是說我們登陸的用戶沒有安裝CANN和配套軟體,這里就不深究了,直接來實際操作驗證一下,
下面我們切換到root用戶下試試,執行如下命令:
su root
bash atc_run.sh
模型轉換成功了,如下圖所示,看來是使用的用戶不對,還得使用root用戶,
2.3.2 獲取測驗圖片
將待上色圖片移動至data目錄,本樣例使用圖片方式獲取如下
cd ../ mkdir data cd data wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/colorization_picture-python/dog.png --no-check-certificate
上述命令運行成功的截圖如下:
2.3.3 運行推理工程
進入scripts目錄,修改run.sh檔案中INPUT_PIC變數為輸入圖片的路徑,本示例為"…/data/dog.png",這個可以保持默認,暫時不做修改,
此外,還要修改MX_SDK_HOME環境變數為SDK實際安裝路徑,如果你不知道或不確定的話,我們下來查看一下,執行如下命令,即可查看當前的環境變數:
export
執行后得到的結果截圖如下,我們可以找到MX_SDK_HOME了,那么直接用來修改run.sh就好了,
修改后的run.sh截圖:
修改完成后,按照如下命令執行腳本:
cd .. # 回到Colorization目錄下 mkdir out cd ../scripts bash run.sh
這時,可能會報錯,如下圖所示,這是沒安裝OpenCV,其實前面的環境約束已經說了要安裝OpenCV依賴的,我們來安裝一下,執行如下命令:
pip3 install opencv-python --user -i https://pypi.tuna.tsinghua.edu.cn/simple
之后再執行腳本,啟動程式,就能運行成功了,部分運行截圖如下所示:

輸出結果保存在out目錄下,下載至本地查看圖片上色是否合理,下面給大家展示一下前后效果:
總的來說,除了狗的左側耳朵的顏色有點問題外,效果還是很不錯的,顏色比較自然,符合人類認知,感覺和拍攝得到的自然圖片沒什么區別哈,
好了,到此這個案例基本就體驗完成了,還是很不錯的,感興趣的同學,可以將圖片換成自己想要的圖片來試試上色效果哦,注意修改圖片名稱和可能要修改的尺寸引數哦,
2.4 基于MindStudio的運行
2.4.1 啟動MindStudio
官方提供的鏡像中有MindStudio的安裝包,但是ECS默認是root用戶登錄,而在root用戶下啟動失敗,應該是要HwHiAiUser才可以,但是HwHiAiUser用戶在/root目錄下無權限,無法啟動存放在此的MindStudio,有點尷尬,
所以,我要將MindStudio拷貝到HwHiAiUser的目錄下,授予權限來使用,具體命令如下,注意以下命令是在root用戶下操作:
cp /root/MindStudio_5.0.RC1_linux.tar.gz /home/HwHiAiUser/ cd /home/HwHiAiUser/ chown HwHiAiUser:HwHiAiUser MindStudio_5.0.RC1_linux.tar.gz
切換到HwHiAiUser用戶,再來執行:
tar -zxvf MindStudio_5.0.RC1_linux.tar.gz
解壓完成的截圖如下所示:
下面來啟動MindStudio了,執行如下命令:
cd MindStudio/bin
./MindStudio.sh
初次啟動可能有點慢,這也與當時網路狀況有關,稍作等待即可,啟動成功截圖如下:
還記得我們之前成功運行的黑白影像上色的工程嗎?現在來打開看看,
注意,MindStudio的圖形界面和我們的操作都是通過ssh來連接和傳輸的,因此網路質量還是有較大影響的,如果網路狀況好那就事半功倍了,
在開發或運行前,先來熟悉下操作,那就先看看輸入影像,雙擊打開,如下圖所示:
很不錯,和我們平時在PyCharm或IDEA上看的界面基本一致,如上圖右上角所示,還顯示了該影像的具體大小,尺寸和格式等,很詳細,
2.4.2 配置環境變數
如果使用的是官方提供的鏡像,則可按照下圖說明配置:
配置好后會提示自動重啟MindStudio,在整個MindStudio運行期間,CPU利用率在50%-70%波動,有時達到100%,可見還是很耗CPU資源的,也可能是我的ECS的雙核有點拉跨了,不過我覺得ssh遠程連接還要用圖形界面來開發,這有點相悖,圖形界面本身就消耗較大資源,這就失去了ssh遠程連接小巧輕便的優勢,
之后按照下圖轉為基于mxVision的Ascend APP即可:
建議
1.關于色域轉換的問題
我觀察到目前一些應用案例涉及的色域轉換,比如將 YUV 格式影像轉換為 RGB(具體鏈接鏈接見下方),呼叫的是OpenCV,我的理解是這使用 CPU(ARM或x86)通過軟體的方式來實作,但根據我之前的經驗,即使用C++也是比較慢的,特別是在處理的影像尺寸較大(1080P,甚至4K,現在人們對解析度的要求越來越高)的時候,可能很難滿足實時(指30FPS)的要求(因時間關系,并未對這里提到的應用案例做測驗,抱歉),如果是這樣,那么應用性就不是很大了,可能更多是趣味性,但這可能不符合Ascend 310和配套軟體的定位了,
應用案例鏈接:https://www.hiascend.com/zh/developer/mindx-sdk/case-studies/60172271
2. 關于后處理的問題
這里問題之前在論壇看到有人提過,這里簡單說一下:在目標檢測或目標跟蹤的后處理階段,我們可能需要根據決議得到的坐標框在輸入影像上繪制出來以達到較好的可視化效果,目前看到的更多是呼叫OpenCV的API來實作,但這是純軟體的實作,消耗的是CPU資源,如果目標框很多的情況下,耗時很大,以致于成為整個流程中的性能瓶頸,暫時未看到昇騰給出的相關硬體方案,期待能夠加速的解決方法,
3. 對網路質量要求高
我在僅僅ssh連接操作時,還是很流暢的,也能夠滿足開發和除錯需要,但是使用MindStudio后,在MindStudio中操作延遲很高,每次操作都要等一會才行,可能是我本地網路不太好或者ECS的CPU負載太高,但是用戶網路不好或ECS規格較低這都是可能的情況,從這個角度來說,還不如不用MindStudio的圖形界面,直接在終端開發,可能更熟悉,更方便,
感覺MindStudio還是適合在本地配置較高的電腦端使用,在ECS上遠程連接使用還是不太行,
我這里使用實在是太卡了,就先這樣吧,
4. 配置復雜
安裝了MindStudio后,還需要進行繁瑣的配置,配置CANN、mindx_sdk等等,而且這些需要用戶自行去做,MindStudio自身不會有任何提示和幫助,這和我用其他IDE,比如IDEA之類的不同,IDEA會根據當前電腦的情況,提供選擇給用戶,仿佛是掃描了一遍電腦,找到了用戶安裝的JDK之類的,并根據版本的不同,呈現給用戶以供選擇,而MindStudio卻沒有類似的幫助和支持,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/509184.html
標籤:其他
上一篇:《Spatial-Spectral T ransformer for Hyperspectral Image Classification》論文筆記
