【昇騰CANN訓練營第二期】【應用營】第三周作業:使用MindX SDK運行圖像檢測和圖像分類

      網友投稿 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

      把 孔老師代碼倉的代碼下載到本地后,再拖到服務器上去:(像如下的方法拖拉很方便的。。。)

      將上節課編譯好的模型拷貝過去:

      【昇騰CANN訓練營第二期】【應用營】第三周作業:使用MindX SDK運行圖像檢測和圖像分類

      根據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小時內刪除侵權內容。

      上一篇:提升項目管理效率必備,免費渾然天成的Excel項目周進度表模板
      下一篇:excel中用ROUND函數消除計算誤差基礎教程
      相關文章
      精品日韩亚洲AV无码| 亚洲精品国产成人片| 亚洲伦理一区二区| 亚洲一区二区三区香蕉| 亚洲综合色视频在线观看| 午夜在线亚洲男人午在线| 亚洲avav天堂av在线网毛片| 亚洲gay片在线gv网站| 蜜芽亚洲av无码一区二区三区| 亚洲人成网站在线在线观看| 亚洲人成网站免费播放| 亚洲精品GV天堂无码男同| 亚洲高清毛片一区二区| 亚洲av午夜电影在线观看 | 亚洲成AV人片在线观看无| 国产AV无码专区亚洲AVJULIA | 国产偷v国产偷v亚洲高清| 国产亚洲一区二区在线观看| 国产亚洲一区二区在线观看| 亚洲av成人无码久久精品| 亚洲天堂中文字幕| 亚洲最大黄色网址| 亚洲人精品亚洲人成在线| 亚洲第一成年免费网站| mm1313亚洲精品无码又大又粗| 亚洲国产成人久久综合一区77| 国产午夜亚洲精品理论片不卡| 狠狠色伊人亚洲综合成人| 亚洲精品线在线观看| 亚洲欧洲日本国产| 亚洲 日韩经典 中文字幕| 亚洲AV一区二区三区四区| 亚洲人成影院在线观看| 亚洲精品无码久久一线| 亚洲高清视频在线观看| 亚洲国产精品成人精品小说| 亚洲永久网址在线观看| 无码专区一va亚洲v专区在线 | 亚洲一区中文字幕在线电影网| 亚洲午夜无码久久久久小说| MM1313亚洲精品无码久久|