MindSpore21天實戰(zhàn)營(4)使用ModelArts和YoloV3-DarkNet50預(yù)訓(xùn)練模型實現(xiàn)籃球檢測

      網(wǎng)友投稿 881 2022-05-30

      2020年初,科比意外去世,

      讓我們回到20年前。。。

      2000年,喬丹體育注冊。

      2003年,喬丹退役。

      2012年,喬丹起訴喬丹體育失敗;

      2016年,喬丹體育的喬丹商標被撤銷,QIAODAN商標允許繼續(xù)使用。。。

      -------------------以上都是插曲,我們這節(jié)實戰(zhàn)營的主角是Yolo。

      yolo算法堪稱目標檢測史上的巨作。。。我們來隨便搜篇評價。。。。

      所以無論是基于ModelArts的 2020 AI實戰(zhàn)營,還是張小白自制的 Atlas 200DK實踐教程(好像聽起來有點高大上),還是這次的MindSpore 21天培訓(xùn),玩轉(zhuǎn)Yolo是少不了的。

      張小白的那篇文字:??Atlas 200DK系統(tǒng)折騰紀實:(3)強大的yolo3物體檢測——你想看的內(nèi)容已被系統(tǒng)提取 ?講述了Atlas 200DK的用戶如何使用yolo識別出小姐姐(下圖1),以及小姐姐寧可在什么上哭的那個豪車的(下圖2)。

      既然能識別PC(Person & Car),那么識別籃球比賽中的選手應(yīng)該也沒啥問題吧。。讓我們實際來感受一下吧。。。

      一、體驗作業(yè)

      體驗作業(yè)的內(nèi)容是使用yolo算法對一張籃球比賽的圖片進行推理,分析出圖片中的籃球隊員及其動作(可能是進攻、防守、走路、跑步、蓋帽、摔跤。。。之類的動作吧)

      先去?體驗作業(yè)一鍵下載包

      在obs現(xiàn)有的?mindspore-21day-tutorials 桶上建立yoloV3目錄(關(guān)于OBS桶的購買和創(chuàng)建方法恕不贅述,可自行看文檔)

      將一鍵下載包解壓,上傳到自建的yoloV3目錄下。

      耐心等待470M的多個文件傳輸完畢。。其中:

      ckpt_files 存放預(yù)訓(xùn)練模型

      log存放日志

      yolov3存放python腳本

      basketball-dataset存放數(shù)據(jù)集(目前只有測試的一張圖片,因為我們下面會直接進行推理訓(xùn)練。。)

      output存放推理的結(jié)果圖片

      待測試的圖片如下:

      我們來具體操作吧。。。

      進入ModelArts控制臺的訓(xùn)練作業(yè)菜單?https://console.huaweicloud.com/modelarts/?region=cn-north-4#/trainingJobs

      創(chuàng)建推理的訓(xùn)練作業(yè):

      其中checkpoint_path設(shè)置為?s3:///mindspore-21day-tutorials/yoloV3/ckpt_files/yolov3-320_168000.ckpt

      其他都按照圖例錄入就好。

      點擊下一步,

      確認后提交訓(xùn)練作業(yè)。

      經(jīng)過1分33秒后(也許還要加上排隊的時間)訓(xùn)練成功,從下圖的日志可以看出它已經(jīng)上傳了推理的結(jié)果文件。

      將obs的輸出目錄output的結(jié)果文件下載到本地。

      下載并打開這個文件:

      可見籃球隊員都已被標注(包括其動作——站立還是行走。。)

      二、進階作業(yè)

      進階作業(yè)要求找一段籃球比賽的視頻,將其轉(zhuǎn)成帶以上標注的視頻(你就想象成給視頻加個字幕啥的。。。)

      張小白對此做了一點分析:其實進階作業(yè)和體驗作業(yè)的區(qū)別,就是一頭一尾加了東西。

      頭上,輸入 input.mp4,調(diào)用opencv將該視頻文件轉(zhuǎn)為 圖片。

      尾上,輸入 解析好的各個圖片,調(diào)用opencv將圖片序列轉(zhuǎn)成MP4視頻——output.mp4

      這個可以有幾種做法,張小白用自以為最簡單的做法——全部在自己的筆記本電腦上完成視頻的頭尾轉(zhuǎn)換(視頻-》圖片,圖片-》視頻)

      這樣子中間的照片序列全部上傳OBS,就可以使用體驗作業(yè)的方法完成每張籃球比賽圖片的推理任務(wù)就可以了。

      這樣的做法,至少可以保證不是每次視頻轉(zhuǎn)換失敗后,都要重跑推理任務(wù)。

      先準備籃球比賽,有朋友說用抓屏軟件EVCapture什么的,其實我們有手機啊。。手機拍視頻不是最拿手嗎?(當然也可以用手機截屏軟件直接錄體育視頻)

      將拍好的視頻發(fā)給微信朋友,另一邊使用PC版微信另存為,就可以獲得input.mp4這個文件了。

      張小白錄了30秒的喬丹視頻。。

      視頻搞定。

      第二件事情就是將視頻轉(zhuǎn)換為圖片,參考 進階作業(yè) 的要求。。。

      使用PyCharm在本地運行 video2jpg.py文件:

      此時input.mp4存入跟py文件相同的目錄下。并新建一個images的目錄存放解析后的圖片序列。

      """從視頻逐幀讀取圖片""" import?glob import?cv2 import?numpy?as?np cv2.__version__ #?讀取視頻文件 cap?=?cv2.VideoCapture('./input.mp4') #?獲取視頻幀率(30p/60p) frame_rate?=?round(cap.get(5)) #?獲取視頻幀數(shù) frame_num?=?cap.get(7) #?type(frame_num) #?由于frame_num是foat型,需要int()轉(zhuǎn)換 #?逐幀獲取圖片 for?i?in?range(int(frame_num)): ????ret,?frame?=?cap.read() ????cv2.imwrite('images\match_snapshot%d.jpg'?%?i,?frame) np.shape(frame) cap.release() cv2.destroyAllWindows()

      執(zhí)行上述python腳本:python video2jpg.py

      可以看到圖片已經(jīng)生成:從match_snapshot0.jpg到match_snapshot912.jpg ,30秒的文件居然有 913張之多。。

      我們把這些文件上傳到 原來體驗作業(yè)的 test數(shù)據(jù)集的目錄下。

      然后重新跑原來的推理訓(xùn)練作業(yè)——打開原來的yolo推理訓(xùn)練作業(yè):

      點擊上圖箭頭所指的”修改“:

      確認下數(shù)據(jù)來源的位置,直接點確定。。訓(xùn)練作業(yè)將重新開展。(不過輸出的圖片文件應(yīng)該放在了 output的V0002目錄下,這是增加了一個版本號的目錄。)

      推理訓(xùn)練成功了,花了39秒。。。

      但是太快了,總覺得哪里不對。

      是的,去OBS一看,只處理了一個圖片,生成了一個output.jpg,就結(jié)束了。

      看來還是得修改推理的python代碼:/mindspore-21day-tutorials/yoloV3/yolov3/predict.py

      我們還是在本地PyCharm下看一下predict.py是怎么處理的吧。先將這個名字改為?predict_multi.py

      其中這里參考了 @胡琦 大大的??[干貨分享] MindSpore21天實戰(zhàn)營(4):基于YOLOv3實現(xiàn)籃球檢測模型實戰(zhàn)??https://bbs.huaweicloud.com/forum/thread-86386-1-1.html?的處理:

      在原來處理單個圖片的流程中,加個for循環(huán)遍歷該路徑下的所有圖片文件就可以了。。

      將predict_multi.py傳到OBS中的 源代碼yolov3目錄下。

      再次重新編輯前面的推理訓(xùn)練作業(yè):將啟動文件改為新傳的文件predict_multi.py

      確定后運行作業(yè),執(zhí)行腳本。。

      看到start inference...就知道在推理了。。

      張小白在前面鏈接的博客中提到的。yoloV3就是416X416.。。

      說明在跑了。。。有913個推理要跑呢。。。花了22分25秒。圖片推理結(jié)束了。。。

      OBS的output桶里面也放滿了輸出的圖片:

      MindSpore21天實戰(zhàn)營(4)使用ModelArts和YoloV3-DarkNet50預(yù)訓(xùn)練模型實現(xiàn)籃球檢測

      將OBS的輸出的目錄下載,并拷貝到python工程目錄的images-out目錄下。(區(qū)分 image的原圖片)

      (貌似推理得也不是非常精確。。有的人推到了,有的人沒推到。。。)

      接著編寫 合成視頻的python腳本 jpg2video.py。

      #?要轉(zhuǎn)換的圖片的保存地址,按順序排好,后面會一張一張按順序讀取。 import?glob import?cv2 #?import?numpy?as?np #?cv2.__version__ convert_image_path?=?'images-out' frame_rate?=?30 #?幀率(fps),尺寸(size),size為圖片的大小,本文轉(zhuǎn)換的圖片大小為1920×1080, #?即寬為1920,高為1080,要根據(jù)自己的情況修改圖片大小。 size?=?(960,?544) fourcc?=?cv2.VideoWriter_fourcc('M',?'P',?'4',?'V')?#?mp4 #?cv2.VideoWriter_fourcc('I',?'4',?'2',?'0') videoWriter?=?cv2.VideoWriter('output.mp4',?fourcc, ??????????????????????????????frame_rate,?size) for?img?in?glob.glob(convert_image_path?+?"/*.jpg"): ????read_img?=?cv2.imread(img) ????videoWriter.write(read_img) videoWriter.release()

      這里frame_rate要取當時 video2jpg時的 fps,所以張小白還特意重新在 view2jpg.py中加了代碼,然后重run了腳本。。發(fā)現(xiàn)fps=30.

      一開始使用這個腳本,執(zhí)行的時候報如下錯誤:

      查了下,原來參數(shù) I420有誤,改為 MP4V。。。就成功轉(zhuǎn)換成output.mp4了。。

      這是輸出mp4的截屏:

      從上圖可以看出,還是有很多圖片是無法識別出人(可能是因為視頻轉(zhuǎn)圖片的時候圖片就比較糊),或者有可能出現(xiàn)密集框識別的情況。

      這可能需要調(diào)參才能優(yōu)化。不過張小白急著交作業(yè),這塊就暫時沒搞了。等有時間,可以好好做個優(yōu)化。(如果自己能學(xué)會怎么優(yōu)化的話)。

      (全文完,謝謝閱讀)

      EI企業(yè)智能 AI開發(fā)平臺ModelArts 昇騰 Python MindSpore

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:按這些知識點來全面快速復(fù)習(xí)Java面試題
      下一篇:記憶存儲、聲音還原、性格模仿……AI可以讓人類永生嗎?
      相關(guān)文章
      中文字幕亚洲免费无线观看日本| 亚洲国产V高清在线观看| 久久久亚洲精品蜜桃臀| 亚洲av成人中文无码专区| 亚洲男人天堂2018av| 亚洲国产视频网站| 亚洲成AV人片久久| 亚洲一区中文字幕| 亚洲中文字幕无码av在线| 亚洲国产美女精品久久久久| 亚洲国产美女在线观看| 亚洲综合激情另类小说区| 亚洲精品国产手机| 亚洲一区二区三区久久久久| 亚洲制服丝袜在线播放| 亚洲一区二区三区深夜天堂| 日韩亚洲国产高清免费视频| 中文字幕在线观看亚洲日韩| 亚洲人成网站色7799| 噜噜综合亚洲AV中文无码| 国产亚洲蜜芽精品久久| 亚洲精品国产电影| 超清首页国产亚洲丝袜| 亚洲国产另类久久久精品黑人| 久久精品视频亚洲| 亚洲一区二区在线视频| 亚洲福利一区二区精品秒拍| 亚洲videos| 亚洲成av人片在线天堂无| jjzz亚洲亚洲女人| 亚洲综合色区在线观看| 亚洲国产精品无码久久一区二区| 亚洲av丰满熟妇在线播放| 亚洲男人天堂av| 亚洲制服丝袜精品久久| 亚洲精品永久在线观看| 亚洲?V乱码久久精品蜜桃| 中文字幕亚洲天堂| 久久99国产亚洲精品观看| 亚洲熟妇av一区| 亚洲欧美综合精品成人导航|