成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

打架識別,基于循環神經網絡RNN的視頻分類任務

人工智能
對于視頻分類任務,不需要Decoder?網絡,用多頭自注意力模型?搭建一個 Encoder網絡即可。

哈嘍,大家好。

今天給大家分享AI項目——打架識別。

圖片

使用的技術跟我們上次分享的摔倒識別不同,摔倒識別使用的是基于骨骼點的時空卷積神經網絡,適用于人體骨骼行為,而這次分享的打架識別使用的是循環神經網絡RNN,可以實現更通用的視頻分類任務。

當然也可以用Vision Transformer,文中也有介紹。

代碼已經打包好了,獲取方式見評論區。

1. 整體思路

視頻其實就是某種行為的連續序列,因此要使用序列模型處理,循環神經網絡RNN就是序列模型。

RNN最初應用在自然語言處理中,如:根據輸入詞,判斷下一次詞的概率

圖片

模型為了讀懂每個詞代表的含義,模型會把每個詞用n維向量表示,這個過程  其實就是word embedding。

按照這個思路,一段視頻其實就是一句話,視頻里每張畫面就是一個詞,同樣地,我們也可以用卷機神經網絡將每張圖映射成n維向量。

所以,我們就可以訓練一個RNN模型,將表示視頻的n維向量送入RNN模型,讓他輸出視頻類別的概率。

現在比較流行的RNN模型有LSTM、GRU,本文使用的是GRU。

2. 數據集

打架的開源數據集有很多,如:fight-detection-surv-dataset、A-Dataset-for-Automatic-Violence-Detection-in-Videos和UBI_FIGHTS等等。

我使用的是fight-detection-surv-dataset數據集,包括 150 個打架視頻和 150 個正常視頻。

數據集很小,訓練的時候很容易過擬合,精度只有 70%。但思路和代碼都是可以復用的。

大家做的時候可以換成大的數據集,比如:ucf數據,包含很多動作視頻

圖片

ucf50數據集

我用這個數據集訓練過 GRU 和 Transformer模型,效果還可以。

3. 提取視頻特征

接下來,我們要做的就是提取視頻特征,將視頻中每張畫面映射成n維向量。

使用InceptionResNetV2網絡,輸入一張圖片,輸出的是 1536 維向量。

def video_feat_extractor():
inception_resnetv2 = InceptionResNetV2(
include_top=False,
weights='imagenet',
pooling='avg',
input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3))

inputs = tf.keras.Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3))
inputs_preprocessed = preprocess_input(inputs)
outputs = inception_resnetv2(inputs_preprocessed)

return tf.keras.Model(inputs, outputs, name='video_feat_extractor')

這樣,詞向量就已經有了。然后再抽取每個視頻的前20幀,組成一個句子。

MAX_FRAMES = 20
video_feat_extractor_model = video_feat_extractor()

# 取前MAX_FRAMES幀
frames = frames[:MAX_FRAMES]
# 計算視頻特征
video_feat = video_feat_extractor_model(frames)
dataset_feats.append(video_feat)

dataset_feats是20 * 1536的向量。

這樣,我們就將一個視頻用向量形式表示出來了。

4. 循環神經網絡

GRU是LSTM的一個變種

圖片

模型搭建也比較簡單。

model = keras.Sequential([
layers.InputLayer(input_shape=(MAX_FRAMES, FRAME_FEAT_LEN)),

layers.GRU(4, return_sequences=False),
layers.Dropout(0.1),
layers.Dense(class_num, activatinotallow='softmax')
])

GRU超參數 4 代表 4 個 unit,即:模型輸出向量長度是 4,大家如果做其他分類任務,可以嘗試調整該值。

圖片

編譯模型

model.compile(optimizer=optimizers.Adam(0.0001), 
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

這是個多分類任務,因此損失函數使用sparse_categorical_crossentropy。

接著就可以訓練模型了,模型在訓練集和測試集精度如下:

圖片

5. vision transformer

同樣的,我們也可以用流行的Transformer來訓練視頻分類模型

圖片

對于視頻分類任務,不需要Decoder網絡,用多頭自注意力模型搭建一個 Encoder網絡即可。

關于vision transformer后續有機會的話我會專門分享一個項目,這次代碼以GRU為主。

責任編輯:武曉燕 來源: 渡碼
相關推薦

2022-04-22 12:36:11

RNN神經網絡)機器學習

2022-10-19 07:42:41

圖像識別神經網絡

2022-06-16 10:29:33

神經網絡圖像分類算法

2017-06-19 15:12:30

Uber神經網絡事件預測

2017-11-29 13:55:55

神經網絡循環神經網絡RNN

2020-12-19 11:05:57

循環神經網絡PyTorch神經網絡

2018-07-04 15:17:07

CNNNLP模型

2020-09-09 09:51:41

神經網絡DA技術感知器

2022-10-11 23:35:28

神經網絡VGGNetAlexNet

2018-07-29 06:46:07

神經網絡RNN循環神經網絡

2019-10-25 16:18:34

機器學習人工智能計算機

2017-12-14 21:17:24

2018-12-20 11:38:37

神經元神經網絡語言

2017-11-29 14:41:48

神經網絡遞歸神經網絡RNN

2017-04-26 09:30:53

卷積神經網絡實戰

2017-08-28 21:31:37

TensorFlow深度學習神經網絡

2021-06-21 10:43:25

Python神經網絡深度學習

2018-07-03 16:10:04

神經網絡生物神經網絡人工神經網絡

2018-02-09 09:59:12

神經網絡算法識別

2023-02-28 08:00:00

深度學習神經網絡人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 密室大逃脱第六季大神版在线观看 | 久久亚洲一区二区三 | 在线观看中文视频 | 亚洲精品一区二区三区在线 | 天天夜碰日日摸日日澡 | 国产黄色大片 | 人人看人人干 | 插插插干干干 | 91在线看片 | 国产福利在线视频 | 国产乱性 | 久久精品欧美电影 | 色综合久久天天综合网 | 午夜国产一级 | 国产精品美女久久久久aⅴ国产馆 | 国产精品久久久久aaaa | av看看 | 国产精品一区二区免费 | 国产一级一级 | 欧美一区二区三区在线看 | 久色网 | 亚洲综合资源 | 羞羞网站免费观看 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 午夜成人在线视频 | 国产精品视频观看 | 中文字幕亚洲一区二区三区 | 欧美精品一区二区三区蜜桃视频 | 奇米视频777 | 夜夜草导航 | 欧美一区 | 国产精品久久久久久久久久久久午夜片 | 99国内精品久久久久久久 | 久久一区精品 | 欧美精品一区二区在线观看 | 成人三级视频在线观看 | 精品国产欧美 | 黄色一级电影免费观看 | 精品国产乱码久久久久久闺蜜 | 欧美午夜剧场 | 国产一级电影在线观看 |