新四季網

sled怎麼分析(slowfast復現過程)

2023-10-30 10:40:26 1

一、準備環境1.1選擇雲端伺服器

這裡推薦幾個網站,租用這些網站的GPU然後跑代碼,因為普通的筆記本搭建圖像處理的環境會遇到各種各樣的問題。在網站上租用GPU可以使用官方搭建好的鏡像,如果跑代碼或者自己把環境弄亂了,就可以釋放實例,重新再來(約等於自己電腦的重裝系統,但是這個租用的釋放和搭建新鏡像速度非常快)

以下是我推薦的幾個網站:1,極鏈AI雲平臺(我用的就是這個,有50元的白嫖額度,我就是靠這50元的額度跑出來slowfast)2,MistGPU

1.2 搭建鏡像

第一步,打開極鏈AI雲平臺,下面是網址。

登錄 - 極鏈AI雲平臺極鏈AI雲平臺超便宜共享算力平臺,提供彈性、高性能、低價格的GPU租賃服務,幫助開發者快速創建和部署模型。

https://cloud.videojj.com/center/hire第二步,選擇機子,創建自己的實例,根據網絡要求配置環境(在github上所有的網絡都有環境要求,根據系統要求選擇)。

1.選擇GPU個數和機子。

2.實例鏡像,官方給的框架是PyTorch,這裡也就PyTorch,PyTorch的版本官方給的1.3(當時官方發布的時候,PyTorch最高版本就1.3,但是這裡的鏡像沒有1.3,所以選擇一個比它高的1.4版本)。注意,python一定要選3.7版本,python一定要選3.7版本,python一定要選3.7版本,3.6版本我是跑出了問題。CUDA只有10.1可選(這也是官方鏡像的好處,在自己電腦上安裝CUDA很煩的)

​編輯

以下就是創建好的實例,在不用的時候切記關機,開著會花流量。

​編輯

第三步,在Xshell上打開實例,與遠程伺服器相連接。

1.新建項目建立連結。

​編輯

2.名稱位置處填寫自己想寫的名字,主機位置複製實例位置的帳號後半段,埠號填寫複製連結實例位置帳號的前半段的數字。完成後點擊用戶身份驗證,輸入目錄名稱和複製實例中的密碼粘貼上去。

​編輯就是複製登錄指令ssh -p 39988 [email protected](主機是指令@後半段,埠號是指令前半段數字)和複製密碼。

​編輯

如下就是與遠程伺服器連接好的界面。

​編輯

1.3 配置slowfast環境

這裡需要注意,gitHub上是最新的環境,我這裡是跟著視頻弄的。

點擊branches ;

​編輯

選擇第一個是舊版的slowfast。

​編輯

按照官網上的步驟來Installation注意,這裡的opencv-python就不要執行,因為鏡像裡自帶了opencv-python!

按照步驟裝就行,有的比較慢,要等一會。

​編輯

二、裝代碼和調式過程2.1代碼下載

slowfast官方網址

代碼下載:(直接下載到環境裡面了,但是容易找不到在哪)

git clone https://github.com/facebookresearch/slowfast

這裡用的辦法是先打開網頁,下載壓縮包,之後解壓放到桌面上,然後使用Xshell的文件傳輸功能將桌面文件傳輸到遠程伺服器的home文件夾中。如下圖所示:

​編輯

2.2ava.json

在極鏈AI網頁的我的實例下連接實例裡面打開jupyter,在/home/slowfast/demo/AVA目錄下創建特text file文件,將文件名字改為ava.json

​編輯

點開文件,複製下面的代碼

{"bend/bow (at the waist)": 0, "crawl": 1, "crouch/kneel": 2, "dance": 3, "fall down": 4, "get up": 5, "jump/leap": 6, "lie/sleep": 7, "martial art": 8, "run/jog": 9, "sit": 10, "stand": 11, "swim": 12, "walk": 13, "answer phone": 14, "brush teeth": 15, "carry/hold (an object)": 16, "catch (an object)": 17, "chop": 18, "climb (e.g., a mountain)": 19, "clink glass": 20, "close (e.g., a door, a box)": 21, "cook": 22, "cut": 23, "dig": 24, "dress/put on clothing": 25, "drink": 26, "drive (e.g., a car, a truck)": 27, "eat": 28, "enter": 29, "exit": 30, "extract": 31, "fishing": 32, "hit (an object)": 33, "kick (an object)": 34, "lift/pick up": 35, "listen (e.g., to music)": 36, "open (e.g., a window, a car door)": 37, "paint": 38, "play board game": 39, "play musical instrument": 40, "play with pets": 41, "point to (an object)": 42, "press": 43, "pull (an object)": 44, "push (an object)": 45, "put down": 46, "read": 47, "ride (e.g., a bike, a car, a horse)": 48, "row boat": 49, "sail boat": 50, "shoot": 51, "shovel": 52, "smoke": 53, "stir": 54, "take a photo": 55, "text on/look at a cellphone": 56, "throw": 57, "touch (an object)": 58, "turn (e.g., a screwdriver)": 59, "watch (e.g., TV)": 60, "work on a computer": 61, "write": 62, "fight/hit (a person)": 63, "give/serve (an object) to (a person)": 64, "grab (a person)": 65, "hand clap": 66, "hand shake": 67, "hand wave": 68, "hug (a person)": 69, "kick (a person)": 70, "kiss (a person)": 71, "lift (a person)": 72, "listen to (a person)": 73, "play with kids": 74, "push (another person)": 75, "sing to (e.g., self, a person, a group)": 76, "take (an object) from (a person)": 77, "talk to (e.g., self, a person, a group)": 78, "watch (a person)": 79}

(上面這段代碼是ava的訓練集,有80個行為)

2.3SLOWFAST_32x2_R101_50_50.yaml

在目錄:/home/slowfast/demo/AVA中打開SLOWFAST_32x2_R101_50_50.yaml內容改為如下:

主要改的代碼是70行以後的。

TRAIN: ENABLE: False DATASET: ava BATCH_SIZE: 16 EVAL_PERIOD: 1 CHECKPOINT_PERIOD: 1 AUTO_RESUME: True CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl' #path to pretrain model CHECKPOINT_TYPE: pytorchDATA: NUM_FRAMES: 32 SAMPLING_RATE: 2 TRAIN_JITTER_SCALES: [256, 320] TRAIN_CROP_SIZE: 224 TEST_CROP_SIZE: 256 INPUT_CHANNEL_NUM: [3, 3]DETECTION: ENABLE: True ALIGNED: FalseAVA: BGR: False DETECTION_SCORE_THRESH: 0.8 TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]SLOWFAST: ALPHA: 4 BETA_INV: 8 FUSION_CONV_CHANNEL_RATIO: 2 FUSION_KERNEL_SZ: 5RESNET: ZERO_INIT_FINAL_BN: True WIDTH_PER_GROUP: 64 NUM_GROUPS: 1 DEPTH: 101 TRANS_FUNC: bottleneck_transform STRIDE_1X1: False NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]] SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]] SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]NONLOCAL: LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]] GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]] INSTANTIATION: dot_product POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]BN: USE_PRECISE_STATS: False NUM_BATCHES_PRECISE: 200SOLVER: MOMENTUM: 0.9 WEIGHT_DECAY: 1e-7 OPTIMIZING_METHOD: sgdMODEL: NUM_CLASSES: 80 ARCH: slowfast MODEL_NAME: SlowFast LOSS_FUNC: bce DROPOUT_RATE: 0.5 HEAD_ACT: sigmoidTEST: ENABLE: False DATASET: ava BATCH_SIZE: 8DATA_LOADER: NUM_WORKERS: 2 PIN_MEMORY: TrueNUM_GPUS: 1NUM_SHARDS: 1RNG_SEED: 0OUTPUT_DIR: .#TENSORBOARD:# MODEL_VIS:# TOPK: 2DEMO: ENABLE: True LABEL_FILE_PATH: "/home/slowfast/demo/AVA/ava.json" INPUT_VIDEO: "/home/slowfast/Vinput/1.mp4" OUTPUT_FILE: "/home/slowfast/Voutput/1.mp4" DETECTRON2_CFG: "COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml" #預訓練模型 DETECTRON2_WEIGHTS: detectron2://COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl

下面這一行代碼存放的是輸入視頻的位置,當然Vinput這個文件夾是我自己建的,位置在/home/slowfast/裡面,通過jupyter創建,(輸入文件夾,創建好後,可以通過Xshell的傳輸功能把視頻傳進去,但注意需要將視頻名字改成與下面代碼相同)

INPUT_VIDEO: "/home/slowfast/Vinput/1.mp4"

下面這一行代碼存放的是檢測後視頻的位置,當然Voutput這個文件夾是我自己建的,與上面的相同,測試好的視頻可在上面的文件中找到。

2.4 SLOWFAST_32x2_R101_50_50 .pkl

打開下面的頁面

SlowFast/MODEL_ZOO.md at main · facebookresearch/SlowFast · GitHubPySlowFast: video understanding codebase from FAIR for reproducing state-of-the-art video models. - SlowFast/MODEL_ZOO.md at main · facebookresearch/SlowFast

https://github.com/facebookresearch/SlowFast/blob/main/MODEL_ZOO.md下載模型SLOWFAST_32x2_R101_50_50 .pkl 到/home/slowfast/configs/AVA/c2目錄下(可以下載下之後通過Xshell傳輸到指定位置)

​編輯

然後在目錄:/home/slowfast/demo/AVA下文件SLOWFAST_32x2_R101_50_50.yaml裡修改如下:(這裡用juyputer)就改倒數第二行的路徑。

TRAIN: ENABLE: False DATASET: ava BATCH_SIZE: 16 EVAL_PERIOD: 1 CHECKPOINT_PERIOD: 1 AUTO_RESUME: True CHECKPOINT_FILE_PATH: '/home/slowfast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50.pkl' #path to pretrain model CHECKPOINT_TYPE: pytorch

三,代碼運行

在xShell終端中,跳轉到以下目錄

cd /home/slowfast/

輸入運行命令

python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

3.1出現錯誤

第一次可能會出現錯誤

解決方案:運行下面的代碼:

conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge

在輸入命令

python tools/run_net.py --cfg demo/AVA/SLOWFAST_32x2_R101_50_50.yaml

就可以在輸出文件夾中看結果了。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了