【5G科普】華為碼chine姐姐聊5G 第6期:NSA&SA是個啥
896
2025-03-31
CANN訓練營第二期 應用營第三周作業鏈接:
https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=139269&fromuid=446160
實操作業為:
1、成功運行目標檢測案例截圖,需要包含命令行輸出的檢測結果、輸出的圖片、帶時間日期。(15分) 2、圖像分類作業: https://gitee.com/kongchibin/ascend_camp/tree/master/%E4%BD%9C%E4%B8%9A/week3 打分細則: 能正常跑通程序并截圖提交到作業貼,截圖需要包含命令行輸出的分類結果,帶時間日期:5分 能自行轉換resnet50模型的,并將轉換指令提交到作業貼:5分 能把分類結果標記到圖片并保存到本地,相關可視化代碼片段提交至作業貼:5分
第三周的作業需要在第二周的作業基礎上完成。第二周作業實操鏈接為:https://bbs.huaweicloud.com/blogs/285668
作業1:
1、成功運行目標檢測案例截圖,需要包含命令行輸出的檢測結果、輸出的圖片、帶時間日期。(15分)
參考鏈接:https://gitee.com/kongchibin/ascend_camp/tree/master/%E4%BD%9C%E4%B8%9A/week3
先看看AI1S服務器上有沒有裝cv2:
沒有,那就裝opencv2吧:
pip3.7 install opencv-python -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
把 孔老師代碼倉的代碼下載到本地后,再拖到服務器上去:(像如下的方法拖拉很方便的。。。)
將上節課編譯好的模型拷貝過去:
根據week3的鏈接 里面“配置環境變量”一段,貼到命令行執行:
這里需要注意,
第一個作業目標檢測,需要傳到服務器上的是孔老師 “課程”目錄下的內容:
因為這里都是yoloV3的東西。
然后繼續執行python main.py:
...
眼尖的張小白看出前面有個failed,不過應該是沒事的吧。
我們把生成的result.jpg下載下來:
打開一看:
果然貓被檢測到了,用藍色框框住了。
我們再來做第二個作業:
2、圖像分類作業:
https://gitee.com/kongchibin/ascend_camp/tree/master/%E4%BD%9C%E4%B8%9A/week3
打分細則:
能正常跑通程序并截圖提交到作業貼,截圖需要包含命令行輸出的分類結果,帶時間日期:5分
能自行轉換resnet50模型的,并將轉換指令提交到作業貼:5分
能把分類結果標記到圖片并保存到本地,相關可視化代碼片段提交至作業貼:5分
先建個resnet50的目錄:/home/HwHiAiUser/MindX/resnet50
將作業的代碼傳上去:
(注意這里的模型目錄是model不是yolo3的models)
按照readme的方式下載resnet50的模型:
或者去百度網盤下載老師準備好的模型:
上傳到model目錄:
檢查test.pipeline代碼是否使用了這個om文件:
其他兩個文件好像剛才也上傳了。
所以開始進行推理試試(先不疊加最后的圖)
。。。
這里有個分類結果:Egyptian Cat(埃及艷后的貓??)
Zhanghui_china:result--------------------------------- {'MxpiClass': [{'classId': 286, 'className': 'Egyptian cat', 'confidence': 0.500488281}]}
對比下yoloV3的返回結果:
{"MxpiObject":[{"classVec":[{"classId":15,"className":"cat","confidence":0.97992199999999996,"headerVec":[]}],"x0":35.598979900000003,"x1":453.298157,"y0":100.41439099999999,"y1":322.18307499999997}]}
我們參考yoloV3的代碼改寫下模型推理返回后的處理的相關代碼代碼:
由于兩個地方都要讀一個文件,那么在前面就把名字確定了:
(為了方便,將 貓的jpg改為 test-cat.jpg)
img_path = "test-cat.jpg" #img_path = "test-dog.jpg" with open(img_path, 'rb') as f: dataInput.data = f.read()
然后根據實際的返回讀取className:
results = json.loads(infer_result.data.decode()) print('Zhanghui_china:result---------------------------------') print(results) bboxes = [] for bbox in results['MxpiClass']: bboxes = { 'classId': int(bbox['classId']), 'className': bbox['className'], 'confidence': round(bbox['confidence'],9)}
然后將className(加個中括號醒目一點吧!)寫到圖片中:
img = cv2.imread(img_path) #可視化代碼填寫處 #從results取數據,獲取分類的className,并利用opencv把標簽名標記到圖片 #className = 'class:' +bboxes['className'] className = '[' +bboxes['className'] + ']' print(className) cv2.putText(img, className, (50,50),cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 255, 255), 1) # 圖像,文字內容, 坐標 ,字體,大小,顏色,字體厚度 #cv2.imwrite("./result-dog.jpg", img) cv2.imwrite("./result-cat.jpg", img)
我們來試一下:
下載圖片看結果:
換只狗試試:
代碼的文件名也改一下:
運行結果:
圖片下載后:
張小白還以為為啥不是dog...因為resnet的推理失效了呢。。。。
實際上:
Zhanghui_china:result--------------------------------- {'MxpiClass': [{'classId': 264, 'className': 'Pembroke, Pembroke Welsh corgi', 'confidence': 0.933105469}]} [Pembroke, Pembroke Welsh corgi]
Pembroke Welsh corgi美 [?p?m?bro?k wel? ?k??rɡi]
潘布魯克威爾士柯基犬;彭布羅克柯基犬;彭布羅克威爾士柯基犬;彭布洛克威爾士科基犬;潘布魯克威爾斯柯基犬
嗯,確實好像真的是條狗。。。
現在那應該只差模型沒有做轉換了。。。
回頭看看第二周的應用營作業
https://gitee.com/kongchibin/ascend_camp/tree/master/%E8%AF%BE%E7%A8%8B/week2
這里面講的atc轉換的幾個必要點:
要有aipp文件,這個第三周作業鏈接孔老師已經準備好了。
然后轉換模型是以下一些參數:(yoloV3的例子)
atc --model=./yolov3_tf.pb --framework=3 --output=./yolov3_tf_bs1_fp16 \ --soc_version=Ascend310 --insert_op_conf=./aipp_yolov3_416_416.aippconfig \ --input_shape="input/input_data:1,416,416,3" \ --out_nodes="conv_lbbox/BiasAdd:0;conv_mbbox/BiasAdd:0;conv_sbbox/BiasAdd:0"
pb文件,已經有了:
input_shape
從論文解讀(https://zhuanlan.zhihu.com/p/353235794 )上來看,應該是(3,224,224)
其他參數到底怎么寫,好像也不清楚。
在 @花溪 女俠的提示下,張小白做了嘗試:
atc --model=./resnet50_v1.5.pb --framework=3 --output=resnet50_zhanghui_china --output_type=FP32 --soc_version=Ascend310 --input_shape=input_tensor:1,224,224,3 --insert_op_conf=./aipp_resnet50_224_224.aippconfig
然后再修改test.pipeline:
推理一下吧:
好像用自己的轉換后的模型推理也成功了:
上傳一張鱷魚的(送入test-eyu.jpg,返回result-eyu.jpg)
好像真的沒問題。。。
嗯,終于可以刪除服務器走人了。。。
這就完成了第三周的作業了。
(全文完,謝謝閱讀)
CANN訓練營第二期 高玩賽即將開啟,請點擊:https://bbs.huaweicloud.com/forum/thread-129524-1-1.html
添加下方工作人員微信,添加備注:CANN訓練營~ 邀請進群~
API/SDK 昇騰 機器學習 深度學習 神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。