日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备

發(fā)布時(shí)間:2025/3/11 编程问答 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 前言
  • 一,數(shù)據(jù)文件結(jié)構(gòu)
    • 1.1 myava
    • 1.2 annotations
    • 1.3 annotations文件處理
    • 1.4 frame_lists
    • 1.5 frames
  • 二,預(yù)訓(xùn)練模型
  • 四,配置文件
    • 4.1 創(chuàng)建新的yaml文件
    • 4.2 yaml文件解釋
  • 五,訓(xùn)練
  • 六,結(jié)果查看

前言

b站講解
ava的數(shù)據(jù)集非常大,訓(xùn)練起來(lái)非常慢,這次我就把a(bǔ)va的數(shù)據(jù)集縮小到2個(gè)視頻(原本有299個(gè)視頻),這樣做的目的是觀察slowfast是如何訓(xùn)練ava數(shù)據(jù)集的。也為我后面制作自己的數(shù)據(jù)集做下鋪墊。

一,數(shù)據(jù)文件結(jié)構(gòu)

首先需要把原有的數(shù)據(jù)文件的內(nèi)容進(jìn)行修改,原來(lái)的數(shù)據(jù)文件針對(duì)的是299個(gè)視頻圖片,這次只針對(duì)2個(gè)視頻圖片。

1.1 myava

新建一個(gè)文件夾myava,這里存放下圖顯示的文件夾:annotations、frame_lists、frames。

1.2 annotations

在annotations文件下,有如下文件,這些文件是從官網(wǎng)下載的

這里不要使用官網(wǎng)的默認(rèn)版本,采用最新的2.2版本,官網(wǎng)有一個(gè)下載的鏈接:https://dl.fbaipublicfiles.com/pyslowfast/annotation/ava/ava_annotations.tar

下載后,解壓(我是在ubuntu下解壓的),使用tree查看其結(jié)構(gòu):

├── ava_annotations │ ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt │ ├── ava_action_list_v2.2_for_activitynet_2019.pbtxt │ ├── ava_action_list_v2.2.pbtxt │ ├── ava_included_timestamps_v2.2.txt │ ├── ava_test_excluded_timestamps_v2.1.csv │ ├── ava_test_excluded_timestamps_v2.2.csv │ ├── ava_test_v2.2.csv │ ├── ava_train_excluded_timestamps_v2.1.csv │ ├── ava_train_excluded_timestamps_v2.2.csv │ ├── ava_train_v2.1.csv │ ├── ava_train_v2.2.csv │ ├── ava_val_excluded_timestamps_v2.1.csv │ ├── ava_val_excluded_timestamps_v2.2.csv │ ├── ava_val_v2.1.csv │ ├── ava_val_v2.2.csv │ ├── person_box_67091280_iou75 │ │ ├── ava_detection_test_boxes_and_labels.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.1.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.2.csv │ │ ├── ava_detection_val_boxes_and_labels.csv │ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative.csv │ │ └── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.2.csv │ ├── person_box_67091280_iou90 │ │ ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt │ │ ├── ava_detection_test_boxes_and_labels.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.1.csv │ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.2.csv │ │ ├── ava_detection_val_boxes_and_labels.csv │ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative.csv │ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.1.csv │ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.2.csv │ │ ├── ava_train_predicted_boxes.csv │ │ ├── ava_train_v2.1.csv │ │ ├── ava_val_excluded_timestamps_v2.1.csv │ │ ├── ava_val_predicted_boxes.csv -> ava_detection_val_boxes_and_labels.csv │ │ ├── ava_val_v2.1.csv │ │ ├── test.csv │ │ ├── train.csv │ │ └── val.csv │ ├── test.csv │ ├── train.csv │ └── val.csv └── ava_annotations.tar

這些文件不能全要,只去我們所需的,因?yàn)槲覀冇玫拿恳粋€(gè)都是需要進(jìn)行修改的。

下面是需要的文件:
annotations
—person_box_67091280_iou90
------ava_detection_train_boxes_and_labels_include_negative_v2.2.csv
------ava_detection_val_boxes_and_labels.csv
—ava_action_list_v2.2_for_activitynet_2019.pbtxt
—ava_detection_val_boxes_and_labels.csv
—ava_train_v2.1.csv
—ava_train_v2.2.csv
—ava_val_excluded_timestamps_v2.2.csv
—ava_val_v2.2.csv

1.3 annotations文件處理

每一個(gè)文件都需要處理,下面開(kāi)始處理:
1,/annotations/person_box_67091280_iou90/ava_detection_train_boxes_and_labels_include_negative_v2.2.csv:
如下圖所示,只要第一列名為: -5KQ66BBWC4的所有行

2,/annotations/person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv
如下圖所示,只要第一列為:1j20qq1JyX4 的所有行

3,/annotations/ava_action_list_v2.2_for_activitynet_2019.pbtxt:
這個(gè)文件不改,這是用來(lái)記錄行為種類的,共有80個(gè)

4,annotations/ava_detection_val_boxes_and_labels.csv

如下圖所示,只要第一列為:1j20qq1JyX4 的所有行

5,/annotations/ava_train_v2.1.csv, /annotations/ava_train_v2.2csv
這兩個(gè)文件非常類似,處理方法也一樣

如下圖所示,只要第一列名為: -5KQ66BBWC4的所有行

6,/annotations/ava_val_excluded_timestamps_v2.2.csv
這個(gè)是空文件,因?yàn)樵谖覀兯x的視頻中,沒(méi)有需要排除的幀。

7,/annotations/ava_val_v2.2.csv

如下圖所示,只要第一列為:1j20qq1JyX4 的所有行

1.4 frame_lists

在frame_lists目錄下,這里只存放了兩個(gè)文件:train.csv、val.csv
下載地址:train.csv、val.csv

同樣需要修改,同上一小節(jié)講的。

1,frame_lists/train.csv

如下圖所示,只要第一列名為: -5KQ66BBWC4的所有行

2,frame_lists/val.csv

如下圖所示,只要第一列為:1j20qq1JyX4 的所有行

1.5 frames

/frames下有兩個(gè)文件夾:-5KQ66BBWC4,1j20qq1JyX4
這兩個(gè)文件夾里存放的就是ava剪輯后的圖片,制作過(guò)程參考官網(wǎng)

二,預(yù)訓(xùn)練模型

最好使用預(yù)訓(xùn)練模型,這樣可以縮短訓(xùn)練的一個(gè)時(shí)間,我用的預(yù)訓(xùn)練模型如下圖

模型下載官網(wǎng),預(yù)訓(xùn)練模型下載鏈接

下載下來(lái)后,放在文件夾/SlowFast/configs/AVA/c2/下面,如下圖(由于下載的預(yù)訓(xùn)練模型和之前一個(gè)模型重名,所以我在預(yù)訓(xùn)練模型后面加了個(gè)ss)

四,配置文件

4.1 創(chuàng)建新的yaml文件

在/SlowFast/configs/AVA/下創(chuàng)建一個(gè)新的yaml文件:SLOWFAST_32x2_R50_SHORT4.yaml,如下圖

代碼如下:

TRAIN:ENABLE: TrueDATASET: avaBATCH_SIZE: 2 #64EVAL_PERIOD: 5CHECKPOINT_PERIOD: 1AUTO_RESUME: TrueCHECKPOINT_FILE_PATH: '/home/lxn/0yangfan/Slowfast2/SlowFast-master/configs/AVA/c2/SLOWFAST_32x2_R101_50_50ss.pkl' #path to pretrain modelCHECKPOINT_TYPE: caffe2 DATA:NUM_FRAMES: 32SAMPLING_RATE: 2TRAIN_JITTER_SCALES: [256, 320]TRAIN_CROP_SIZE: 224TEST_CROP_SIZE: 224INPUT_CHANNEL_NUM: [3, 3]PATH_TO_DATA_DIR: '/disk6T/ava' DETECTION:ENABLE: TrueALIGNED: True AVA:FRAME_DIR: '/disk6T/myava/frames'FRAME_LIST_DIR: '/disk6T/myava/frame_lists'ANNOTATION_DIR: '/disk6T/myava/annotations'#LABEL_MAP_FILE: 'ava_action_list_v2.1_for_activitynet_2018.pbtxt'#0GROUNDTRUTH_FILE: 'ava_val_v2.1.csv'#TRAIN_GT_BOX_LISTS: ['ava_train_v2.1.csv']DETECTION_SCORE_THRESH: 0.8TRAIN_PREDICT_BOX_LISTS: ["ava_train_v2.2.csv","person_box_67091280_iou90/ava_detection_train_boxes_and_labels_include_negative_v2.2.csv",]#TRAIN_PREDICT_BOX_LISTS: ["ava_train_predicted_boxes.csv"]TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]#TEST_PREDICT_BOX_LISTS: ["ava_test_predicted_boxes.csv"]#EXCLUSION_FILE: "ava_train_excluded_timestamps_v2.1.csv"SLOWFAST:ALPHA: 4BETA_INV: 8FUSION_CONV_CHANNEL_RATIO: 2FUSION_KERNEL_SZ: 7 RESNET:ZERO_INIT_FINAL_BN: TrueWIDTH_PER_GROUP: 64NUM_GROUPS: 1DEPTH: 50TRANS_FUNC: bottleneck_transformSTRIDE_1X1: FalseNUM_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: [[[], []], [[], []], [[], []], [[], []]]GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]INSTANTIATION: dot_productPOOL: [[[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]]] BN:USE_PRECISE_STATS: FalseNUM_BATCHES_PRECISE: 200 SOLVER:BASE_LR: 0.1LR_POLICY: steps_with_relative_lrsSTEPS: [0, 10, 15, 20]LRS: [1, 0.1, 0.01, 0.001]MAX_EPOCH: 20MOMENTUM: 0.9WEIGHT_DECAY: 1e-7WARMUP_EPOCHS: 5.0WARMUP_START_LR: 0.000125OPTIMIZING_METHOD: sgd MODEL:NUM_CLASSES: 80ARCH: slowfastMODEL_NAME: SlowFastLOSS_FUNC: bceDROPOUT_RATE: 0.5HEAD_ACT: sigmoid TEST:ENABLE: FalseDATASET: avaBATCH_SIZE: 8 DATA_LOADER:NUM_WORKERS: 2PIN_MEMORY: True NUM_GPUS: 1 NUM_SHARDS: 1 RNG_SEED: 0 OUTPUT_DIR: .

4.2 yaml文件解釋

  • TRAIN
    1.1. ENABLE: True。這里將TRAIN設(shè)置為TRUE,同樣的,也要TEST.ENABLE設(shè)置為False(我們只需要訓(xùn)練的過(guò)程)
    1.2 BATCH_SIZE: 2 #64.這里batch_size是由于我的電腦顯存不夠,只能設(shè)置為2,如果大家的顯存夠大,可以把這個(gè)batch_size設(shè)置的大一些。
    1.3 CHECKPOINT_FILE_PATH: ‘/home/lxn/0yangfan/Slowfast2/SlowFast-master/configs/AVA/c2/SLOWFAST_32x2_R101_50_50ss.pkl’ 這里放的是預(yù)訓(xùn)練模型的位置
  • DATA
    2.1 PATH_TO_DATA_DIR: ‘/disk6T/ava’ 這里是ava文件的位置
  • 其他也比較簡(jiǎn)單,大家就自己理解了。

    五,訓(xùn)練

    python tools/run_net.py --cfg configs/AVA/SLOWFAST_32x2_R50_SHORT4.yaml

    六,結(jié)果查看

    這里就要參考之前的博客進(jìn)行結(jié)果的查看:
    【SlowFast復(fù)現(xiàn)】SlowFast Networks for Video Recognition復(fù)現(xiàn)代碼 使用自己的視頻進(jìn)行demo檢測(cè)

    使用訓(xùn)練后的權(quán)重,對(duì)我們的視頻進(jìn)行檢測(cè),會(huì)發(fā)現(xiàn)檢測(cè)結(jié)果很糟糕。畢竟只是用了1個(gè)訓(xùn)練視頻和1個(gè)驗(yàn)證視頻

    最后檢驗(yàn)的視頻會(huì)上傳到B站中。

    總結(jié)

    以上是生活随笔為你收集整理的【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。