華為云2020 AI實戰營 第六章 視頻分析 打卡指南

      網友投稿 755 2025-03-31

      一、課程打卡

      課程內容為《6.3 使用OSVOS算法實現視頻物體分割》,打卡的方法如下:

      下載課程中提供的pdf文件。點擊6.4課程打卡后,選擇右邊的“下載文檔”

      打開pdf文件,根據pdf的提示一一執行。關鍵內容是:打開 https://nbviewer.jupyter.org/?網址:

      在url位置貼入pdf中的 .ipynb結尾的文件名,點擊Go。系統會彈出以下操作指導頁面。

      這個文檔非常細致。逐一執行即可。

      一般情況下,按照步驟執行應該能得到預期的結果。但是本節課有點例外,主要是因為ModelArts的免費盤只有5G,但是相關的文件已經非常大,在按照順序執行操作的時候,走到下面的步驟時,系統會報錯:

      報錯內容如下:

      原因是空間不足導致解壓不完整,造成tools 目錄不存在引起的。

      此時,可以將notebook空間的一些大文件刪掉,比如那個第2步生成的400多M的whl文件,重新執行下載和終端命令即可。

      真正的終端執行應該達到以下效果:

      再進一步執行,就會得到課程打卡所要的效果:

      二、作業1打卡

      作業內容為 以《6.2 使用C3D和I3D模型實現視頻作業識別》為基礎,實現一段根據視頻計算得到rgb.npy和flow.npy文件的代碼,并跑通I3D模型對新視頻的動作識別預測,,打卡的方法如下:

      下載作業中提供的pdf文件。點擊6.5作業打卡后,選擇右邊的“下載文檔”;

      下載作業中需要的C3D和I3D的課程pdf文件。點擊6.2后,選擇右邊的“下載文檔”;

      根據第2步下載的文件,打開https://nbviewer.jupyter.org/?,并在打開的鏈接中輸入?https://github.com/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_video_action_recognition/action_recognition.ipynb?,并點擊Go。系統會彈出操作指導頁面。

      下載?https://ai-course-common-26-bj4.obs.cn-north-4.myhuaweicloud.com/video/compute_rgb_flow.py?這個文件。

      根據操作指導頁面逐一執行。其中在執行以下步驟21時:

      增加一個cell(再上圖紅色位置),貼入第四步下載的代碼,并在video path的地方填入視頻文件的路徑 :

      import?os import?cv2 import?time import?numpy?as?np def?get_video_info(video_path): ????_,?ext?=?os.path.splitext(video_path) ????if?not?ext?in?['.avi',?'.mp4']: ????????raise?ValueError('Extension?"%s"?not?supported'?%?ext) ????cap?=?cv2.VideoCapture(video_path) ????if?not?cap.isOpened(): ????????raise?ValueError("Could?not?open?the?file.\n{}".format(video_path)) ????print('視頻分辨率:?%d?x?%d'?%?(cap.get(cv2.CAP_PROP_FRAME_WIDTH),?cap.get(cv2.CAP_PROP_FRAME_HEIGHT))) ????print('視頻幀率:',?cap.get(cv2.CAP_PROP_FPS)) ????print('視頻總幀數:',?cap.get(cv2.CAP_PROP_FRAME_COUNT)) def?compute_rgb(video_path): ????"""Compute?RGB""" ????rgb?=?[] ????vidcap?=?cv2.VideoCapture(video_path) ????count?=?0 ????while?True: ????????success,?frame?=?vidcap.read() ????????if?success?is?True: ????????????count?+=?1 ????????????#?if?count?%?2?==?0: ????????????#?????continue ????????????frame?=?cv2.resize(frame,?(342,?256)) ????????????frame?=?(frame?/?255.)?*?2?-?1 ????????????frame?=?frame[16:240,?59:283] ????????????rgb.append(frame) ????????else: ????????????break ????vidcap.release() ????rgb?=?rgb[:-1] ????rgb?=?np.asarray([np.array(rgb)]).astype(np.float32) ????return?rgb def?compute_TVL1(video_path): ????"""Compute?the?TV-L1?optical?flow.""" ????flow?=?[] ????TVL1?=?cv2.DualTVL1OpticalFlow_create()??#?for?opencv?version:?3.4.2.17 ????vidcap?=?cv2.VideoCapture(video_path) ????success,?frame1?=?vidcap.read() ????prev_frame?=?cv2.cvtColor(frame1,?cv2.COLOR_RGB2GRAY) ????vid_len?=?int(vidcap.get(cv2.CAP_PROP_FRAME_COUNT)) ????bins?=?np.linspace(-20,?20,?num=256) ????for?count?in?range(0,?vid_len?-?1): ????????success,?frame2?=?vidcap.read() ????????count?+=?1 ????????#?if?count?%?2?==?0: ????????#?????continue ????????curr_frame?=?cv2.cvtColor(frame2,?cv2.COLOR_RGB2GRAY) ????????curr_flow?=?TVL1.calc(prev_frame,?curr_frame,?None) ????????assert?(curr_flow.dtype?==?np.float32) ????????#?Truncate?large?motions ????????curr_flow[curr_flow?>=?20]?=?20 ????????curr_flow[curr_flow?<=?-20]?=?-20 ????????#?digitize?and?scale?to?[-1;1] ????????curr_flow?=?np.digitize(curr_flow,?bins) ????????curr_flow?=?(curr_flow?/?255.)?*?2?-?1 ????????#?cropping?the?center ????????curr_flow?=?curr_flow[8:232,?48:272] ????????flow.append(curr_flow) ????????prev_frame?=?curr_frame ????vidcap.release() ????flow?=?np.asarray([np.array(flow)]).astype(np.float32) ????return?flow video_path?=?'/home/ma-user/work/dataset_subset/Bowling/v_Bowling_g05_c01.avi'??#?TODO,填寫視頻所在的路徑 save_dir?=?os.path.dirname(video_path)?+?'_out' if?not?os.path.exists(save_dir): ????os.mkdir(save_dir) get_video_info(video_path) start_time?=?time.time() print('Extract?RGB...') rgb?=?compute_rgb(video_path) print('save?rgb?with?shape?',?rgb.shape) rgb_save_path?=?os.path.join(save_dir,?os.path.basename(video_path).split('.')[0]?+?'_rgb.npy') np.save(rgb_save_path,?rgb) print('Compute?rgb?in?sec:?',?time.time()?-?start_time) start_time?=?time.time() print('Extract?Flow...') flow?=?compute_TVL1(video_path) print('Save?flow?with?shape?',?flow.shape) flow_save_path?=?os.path.join(save_dir,?os.path.basename(video_path).split('.')[0]?+?'_flow.npy') np.save(flow_save_path,?flow) print('Compute?flow?in?sec:?',?time.time()?-?start_time) print('save?rgb?npy?at:',?rgb_save_path) print('save?flow?npy?at:',?flow_save_path) print('Compute?Success')

      這個路徑可以在后臺通過teminal命令看到:

      在以上步驟執行完后,修改下一步的內容,如圖所示:(上一步執行結果的視頻總幀數減一,如115-》114,save rgb npy和save flow npy的路徑也貼入 _SAMPLE_PATHS里面)

      然后繼續執行以下步驟一直到最后。

      作業的結果如下:

      如上圖所示,最后的視頻動作識別結果為bowling。

      三、作業2打卡

      作業內容為 以《6.3 使用OSVOS算法實現視頻物體分割》為基礎,并換成breakdance數據集跑通整個案例。

      仍然按照 課程打卡的方式(第1步和第2步)打開操作指導頁面。

      將步驟第2個cell的 seq_name改為breakdance

      在第4個cell可以看出相關的結果變化:

      測試模型的存儲位置也發生了變化:

      華為云2020 AI實戰營 第六章 視頻分析 打卡指南

      視頻分隔結果也顯示相關變化:

      為避免犯跟課程打卡同樣的錯誤,此時直接刪除大文件:

      然后繼續按照提示繼續執行,在執行到terminal命令的時候,記得把flamingo都換成breakdance:python tools/video_inpaint.py --frame_dir ../OSVOS-PyTorch/DAVIS_2016/JPEGImages/480p/breakdance --MASK_ROOT ../OSVOS-PyTorch/DAVIS_2016/Annotations/480p/breakdance --img_size 512 832 --FlowNet2 --DFC --ResNet101 --Propagation --enlarge_mask

      繼續依次執行,直到出現作業結果:

      希望同學們能圓滿完成以上打卡。感覺GT手表就在眼前。。。

      AI開發平臺ModelArts EI企業智能

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格數據公式不生效如何解決
      下一篇:使用對數刻度坐標軸來減小Excel圖表展現形態上差異性的方法(excel圖表調整垂直坐標軸刻度)
      相關文章
      亚洲制服丝袜在线播放| 久久精品亚洲男人的天堂| 国外亚洲成AV人片在线观看| 色九月亚洲综合网| 亚洲欧美国产日韩av野草社区| 亚洲专区一路线二| 亚洲国产亚洲综合在线尤物| 亚洲国产人成在线观看69网站 | 亚洲日本视频在线观看| 久久精品国产亚洲AV无码娇色| 亚洲av永久无码精品古装片| 国产精品亚洲片在线观看不卡| 亚洲熟妇无码另类久久久| 亚洲中文字幕在线乱码| 亚洲最大av无码网址| 国产成人精品久久亚洲| 亚洲无人区午夜福利码高清完整版| 亚洲天堂在线视频| 久久久久亚洲精品天堂久久久久久 | 久久精品国产精品亚洲精品| 亚洲色成人网站WWW永久| 亚洲区小说区图片区QVOD| 久久91亚洲人成电影网站| 亚洲天堂中文字幕| 亚洲综合激情九月婷婷| 91嫩草亚洲精品| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲AV无码无限在线观看不卡 | 伊人亚洲综合青草青草久热| 亚洲中文字幕久久精品无码喷水| 国产成人精品日本亚洲| 亚洲视频在线观看免费| 亚洲精品亚洲人成在线观看麻豆| 亚洲一区二区免费视频| 亚洲欧美日韩一区二区三区在线| 国产一区二区三区亚洲综合| 国产亚洲精午夜久久久久久| 亚洲AV无码成人专区片在线观看| 久久久久亚洲AV无码观看| 国产精品亚洲片在线va| 国产亚洲精品欧洲在线观看|