sponsored links

教你一招!如何用技術實現時序羽毛球動作預測

作者 | 李秋鍵

出品 | AI科技大本營(ID:rgznai100)

引言:隨著計算機視覺領域中影片動作識別技術的發展,體育動作識別研究在統計運動動作特點、運動學研究、體育教學展示等方面的應用越來越廣泛。對於各種球類比賽,依據比賽型別, 可以將它們的結構特徵分為時間和比分兩種型別。時間型別的體育專案如籃球、足球和橄欖球等,在比賽過程中沒有屬於某一方球員專門的區域,雙方球員在位置上處於混合交錯狀態,在一定時間間隔內透過團隊合作來取得比賽的勝利。比分型別的專案包括網球、羽毛球、乒乓球等,比賽時雙方球員始終在屬於自己的區域內運動,和對手在位置上處於對峙狀態,這種型別通常是球員經過自身水平的發揮來贏取比賽。觀看該類比賽時,觀眾往往會關注球員的動作特點。

在羽毛球比賽中,運動員的動作姿態資訊可為理解比賽過程、發現球員動作特點提供重要線索。羽毛球運動與排球、網球和乒乓球運動特點相似,均滿足馬爾可夫過程條件,比賽中運動員的每次擊球動作在瞬間完成。為了更好地輔助教練或觀眾理解並把握羽毛球影片中球員動作等關鍵資訊,實現對羽毛球運動員的動作智慧識別是有意義的。

目前計算機視覺技術在影片動作識別方向的相關研究已經取得重大突破,但大多是針對不同日常動作的廣義性動作識別,缺乏針對羽毛球影片動作識別的相關研究。若能對羽毛球影片中的擊球動作進行時序定位並且能比較準確地判斷出羽毛球影片中的擊球動作型別,則可為觀眾提供各類擊球動作型別的影片集錦。此外,在體育影片分析領域中,也可根據羽毛球的動作分類遷移至網球等專案,因它們的比賽形式與羽毛球有許多相同之處,更容易進行運動特徵的遷移。

故今天我們將使用torch搭建LSTM實現對羽毛球動作的實時訓練並預測,本文將其分為資料集製作、資料處理、模型搭建以及視覺化幾個步驟,模型在訓練2000輪實現效果如下如下(左側為當前動作,右側為預測出的未來10幀後的羽毛球動作):

教你一招!如何用技術實現時序羽毛球動作預測

羽毛球動作識別發展介紹

針對羽毛球的擊球動作識別,Chu 等人採用了基於姿態識別的方法,從球員的邊界框提取方向梯度直方圖 HOG,並在 HOG 基礎上基於支援向量機 SVM對擊球動作進行分類,但其使用的訓練和測試資料是擊球瞬間的單個影象,而對於擊球姿態十分相似的不同擊球動作很可能會混淆,如殺球與高遠球,平抽與吊球。Careelmont對壓縮羽毛球影片的鏡頭進行分類,並透過檢測羽毛球的移動軌跡來識別擊球動作。Ramasinghe 等提出了一種基於密集軌跡和軌跡對齊的 HOG 特徵的羽毛球影片動作識別方法,將球員擊球動作分為正手擊球、反手擊球、殺球和其他型別,但 HOG 本身不具有尺度不變性,且由於梯度的性質,HOG 對噪點相當敏感。楊靜等人在體育影片時常具有畫素品質欠佳、非靜態影片及影象的解析度較低的問題背景下,提出一種基於光流的運動描述符,並透過檢測關鍵音訊元素捕獲球員的揮拍擊球影象,最後採用支援向量機,對運動員的三種典型揮拍動作——上揮拍、左揮拍、右揮拍進行分類。Wang 等提出了一種基於身體感測器網路的雙層隱馬爾可夫模型分類演算法來識別羽毛球擊球型別,但其針對於感測器捕獲的擊球狀態資料,並不適用於對影片中的羽毛球動作進行有效識別。Rahmad 等人比較了 AlexNet、GoogLeNet、VggNet-16 和 VggNet-19 四種不同的深度卷積預訓練模型在對羽毛球比賽影象進行分類時的表現,以識別運動員的不同動作,最終表明 GoogLeNet 的分類準確率最高,但其針對的仍是羽毛球比賽擊球瞬間的靜態影象,未能對羽毛球動作元影片進行動作分類識別。

羽毛球動作預測搭建

為了更好的研究對羽毛球影片動作識別,我們這裡實現對羽毛球影片球員擊球動作進行時域定位。

這裡程式的設計分為以下幾個步驟,分別為資料集製作、資料處理、模型搭建以及視覺化幾個步驟。

2.1 骨骼資料集提取

這裡我們將準備好的影片素材放置專案檔案下,使用data_deal.py提取骨骼點儲存。針對2.mp4影片檔案使用openpose逐幀提取骨骼資料並存入txt檔案中。程式碼如下:

parser = argparse.ArgumentParser(description='Action Recognition by OpenPose')
parser.add_argument('--video', help='Path to video file.')
args = parser.parse_args()
# 匯入相關模型
estimator = load_pretrain_model('VGG_origin')
# 引數初始化
realtime_fps = '0.0000'
start_time = time.time()
fps_interval = 1
fps_count = 0
run_timer = 0
frame_count = 0
# 讀寫影片檔案
cap =cv.VideoCapture("2.mp4")
#video_writer = set_video_writer(cap, write_fps=int(7.0))
# 儲存關節資料的txt檔案,用於訓練過程(for training)
f = open('origin_data.txt', 'a+')
num=0
while cv.waitKey(1) < 0:
    has_frame, show = cap.read()
    if has_frame:
        fps_count += 1
        frame_count += 1
        # pose estimation
        humans = estimator.inference(show)
        # get pose info
        pose = TfPoseVisualizer.draw_pose_rgb(show, humans)  # return frame, joints, bboxes, xcenter
        #video_writer.write(show)
        if len(pose[-1])==36:
            num+=1
            print(num)
            # 採集資料,用於訓練過程(for training)
            joints_norm_per_frame = np.array(pose[-1]).astype(np.str)
            f.write(' '.join(joints_norm_per_frame))
            f.write('\n')
        cv.imshow("tets",show)
        cv.waitKey(1)
    else:
        break
cap.release()
f.close()

教你一招!如何用技術實現時序羽毛球動作預測

2.2 資料處理

透過對資料觀察發現,由於拍攝的影片遮擋較多,部分肢體提取為0會較大的影響模型效果,這裡將這幾個部位去除。程式碼如下:

f=open('origin_data.txt')
text=f.read()
f.close()
datasets=[]
text=text.split("\n")
for i in text:
    temp=i.split(" ")
    temp1=[]
    state=True
    for j in range(len(temp)):
        try:
            temp1.append(float(temp[j]))
        except:
            pass
    if len(temp1) == 36:
        temp1.pop(28)
        temp1.pop(28)
        temp1.pop(30)
        temp1.pop(30)
        for t in temp1:
            if t==0.:
                state=False
        if state:
            datasets.append(temp1)
flap=30#
x_data = datasets[:-1-flap]
y_data=datasets[flap:-1]
n=len(x_data)

2.3 LSTM模型搭建和訓練

這裡設定LSTM層神經元64,設定損失函式為為MSE誤差函式,最佳化器為adam最佳化器,迭代次數為100輪,並將其損失圖動態繪製。程式碼如下:

times=[]
losss=[]
nums=0
Epoch=100
correct=0
for k in range(Epoch):
    for i in range(n):
        x_np=np.array(x_data[i],dtype='float32')#此時x的維度為1維
        y_np=np.array(y_data[i],dtype='float32')
        #需要把x維度擴充到三個維度,[batch,time_step,input_size]
        x=variable(torch.from_numpy(x_np[np.newaxis,:,np.newaxis]))
        y=variable(torch.from_numpy(y_np[np.newaxis,:,np.newaxis]))
        prediction=rnn(x)
        if prediction.flatten().data.numpy().any==y.flatten().data.numpy().any:
            correct+=1
        loss=loss_func(prediction,y)
        optim.zero_grad()
        loss.backward()
        optim.step()
        nums += 1
        accuracy=float(correct/nums)
print("|Epoch:",k,"|step:",nums,"|loss:",loss.data.numpy(),"|accuracy:%.4f"%accuracy)
        times.append(nums)
        losss.append(float(loss.data))
        plt.plot(times,losss)
        plt.pause(0.05)

教你一招!如何用技術實現時序羽毛球動作預測

2.4 模型視覺化

根據預測出的骨骼座標,定義基本骨骼連線方法和顏色,同時這裡還要考慮到已經去除的骨骼,最終程式碼如下:

import cv2
def draw(test):
    back=cv2.imread("back.jpg")
    image_h, image_w ,c= back.shape
    centers = {}
    CocoColors = [[255, 0, 0], [255, 85, 0], [255, 170, 0], [255, 255, 0], [170, 255, 0], [85, 255, 0], [0, 255, 0],
                  [0, 255, 85], [0, 255, 170], [0, 255, 255], [0, 170, 255], [0, 85, 255], [0, 0, 255], [85, 0, 255],
                  [170, 0, 255], [255, 0, 255], [255, 0, 170], [255, 0, 85], [255, 0, 85]]
    CocoPairs = [
        (1, 2), (1, 5), (2, 3), (3, 4), (5, 6), (6, 7), (1, 8), (8, 9), (9, 10), (1, 11),
        (11, 12), (12, 13), (1, 0), (0, 14), (14, 15),  (5, 15)
    ]#修改了
    for pos in range(0,16):
        center = (int((test[2*pos] * (image_w//2) + 0.5)), int((test[2*pos+1] * (image_h//2) )))
        centers[pos] = center
        cv2.circle(back, center, 3, CocoColors[pos], thickness=3, lineType=8, shift=0)
    for pair_order, pair in enumerate(CocoPairs):
        cv2.line(back, centers[pair[0]], centers[pair[1]], CocoColors[pair_order], 3)

教你一招!如何用技術實現時序羽毛球動作預測

完整程式碼:

https://download.csdn.net/download/qq_42279468/72398200

李秋鍵,CSDN部落格專家,CSDN達人課作者。碩士在讀於中國礦業大學,開發有taptap競賽獲獎等。

分類: 科學
時間: 2022-01-06

相關文章

信達生物申報國內首款CD47-SIRPα單抗 目前共有21款CD47藥物進入臨床或獲批臨床
每經記者:金喆 每經編輯:魏官紅 近日,信達生物(01801,HK)的新型抗CD47-SIRP-alpha抗體IBI397臨床試驗申請獲受理.這是信達生物在靶向通路佈局的第三款產品. <每日經濟 ...

新高考下,生涯規劃教育已成大勢所趨,一篇文章教你科學規劃

新高考下,生涯規劃教育已成大勢所趨,一篇文章教你科學規劃
導語:新高考改革正在如火如荼地進行中.近日,繼河北.江蘇.遼寧等省份實施"3+1+2"的新高考模式後,安徽.吉林.甘肅.黑龍江.江西.貴州.廣西7個省份也加入了這種新高考的模式.也 ...

《柳葉刀》:晚期胃癌的一線治療終見光明!III期臨床試驗結果表明,納武利尤單抗聯合化療可降低29%死亡風險丨臨床大發現

《柳葉刀》:晚期胃癌的一線治療終見光明!III期臨床試驗結果表明,納武利尤單抗聯合化療可降低29%死亡風險丨臨床大發現
胃癌,一個聽起來讓我們感到熟悉又害怕的病症.我們熟悉是因為它在我國的發病率較高,而害怕的原因在於它位列全球範圍內癌症死因的第四位[1].對於這樣的疾病,怎樣的治療方案最有效呢? 前不久,來自日本國立癌 ...

美國徹底瞞不住了,SARS爆發前就申請了專利,這一切就說得通了

美國徹底瞞不住了,SARS爆發前就申請了專利,這一切就說得通了
新冠疫情好不容易才有了停止傳播的趨勢,現在又傳出下一場疫情很可能就要出現了.這其實和美國種種奇怪的舉動有一些關係,不少人聯想到了2003年的非典,也是如同這般恐怖.許多人為了活命,到超市搶購大量的板藍 ...

有助大腦健康的3種食物,您是否常吃呢?

有助大腦健康的3種食物,您是否常吃呢?
一提到補腦,很多朋友首先想到的是保健品.的確,作為一種特殊食品,保健品應該具有一定的保健功效. 但是,保健功效的確認是要靠臨床驗證的,而不是說因為裡面含有一種什麼物質,這種物質有哪些功效,所以含這種物 ...

鈷價一年半漲60% 10家鈷上市公司價值需重估
<電鰻快報>文/尹秋彤 隨著原材料漲價潮起,疊加下游需求的增加,金屬"鈷"漲勢更歡.與此同時,鈷概念上市公司風生水起. 鈷價一年半漲60% 資料顯示,截至10月8日,國 ...

天境生物(IMAB.US)宣佈旗下在研治療多發性骨髓瘤新藥,已完成3期臨床試驗全部患者入組
智通財經APP獲悉,天境生物(IMAB.US)今天宣佈,其在研新藥CD38抗體菲澤妥單抗聯合來那度胺作為二線療法治療多發性骨髓瘤的3期註冊臨床試驗已完成全部患者入組. 據瞭解,該3期臨床研究資料將支援 ...

君實生物新冠抗體適應症擴大;華潤醫藥引進永泰生物細胞免疫療法
德爾塔肆虐之際,FDA不僅恢復了禮來/君實生物新冠中和抗體的緊急使用授權,並且擴大了使用範圍.9月17日,君實生物宣佈,新冠中和抗體療法被批准用於特定人群的暴露後預防. 國內藥企的合作更加頻繁.9月1 ...

首款口服小分子抗新冠藥物有望問世;默沙東發起115億美元收購案
隨著醫學界持續努力,越來越多對抗疫情的有效藥物陸續登場.國慶期間,最令人振奮的訊息無疑是,全球首款口服小分子抗新冠藥物有望問世. 10月1日,默沙東與Ridgeback Biotherapeutics ...

抗癲癇除了關注疾病本身,更要走進患者的內心世界

抗癲癇除了關注疾病本身,更要走進患者的內心世界
在中國,三分之一到一半的癲癇患者有明確的癲癇發作原因.腦外傷.腦血管疾病.神經系統感染是已明確的最常見的危險因素.圍產期的損傷是兒童患者的首要危險因素,而神經系統感染和腦外傷則是青少年和成人患者最常見 ...

精準診療 診斷在先——生物標誌物在疾病精準診療中的應用丨NCN2021

精準診療 診斷在先——生物標誌物在疾病精準診療中的應用丨NCN2021
2021年中華醫學會第二十四次全國神經病學學術會議正火熱進行中,9月24日的"渤健神經科學高峰論壇--診斷專場"受到參會專家的廣泛關注,本次學術專場誠邀首都醫科大學宣武醫院陳彪教授 ...

冰洲石生物AC0682宣佈IND獲批,首個AI研發乳腺癌新藥進入臨床

冰洲石生物AC0682宣佈IND獲批,首個AI研發乳腺癌新藥進入臨床
"後續將有更多針對不同腫瘤適應症的藥物快速進入到臨床階段." 本文為IPO早知道原創 作者|Stone Jin 據IPO早知道訊息,Accutar Biotechnology, I ...

高質量抗老名單中,誰才是永遠的神?

高質量抗老名單中,誰才是永遠的神?
晚上好呀,各位護膚人~ 前幾期文章,我們聊到了「煙醯胺」.「藍銅胜肽」熱門護膚成分,但說起護膚,抗衰老一直是每個女人的需求,最先被熟知的即是胜肽類成分,被廣泛應用於精華.眼霜產品中.雅詩蘭黛的明星成分 ...

博安生物度拉糖肽注射液BA5101在華獲批進入臨床
來源:煙臺日報-大小新聞 綠葉製藥集團宣佈,其控股子公司博安生物自主開發的度拉糖肽注射液(BA5101)已獲得中國國家藥品監督管理局藥品審評中心批准開展臨床試驗.博安生物致力於構建具有差異化的多樣性產 ...

打破國外壟斷!發現中國首個長效抗糖藥物!華理科研團隊獲教育部自然科學獎

打破國外壟斷!發現中國首個長效抗糖藥物!華理科研團隊獲教育部自然科學獎
作為藥物研究的源頭創新技術,藥物靶標的發現和識別對創新藥物研發具有決定作用,可為快速高效地發現新型藥物提供重要契機.日前,華東理工大學藥學院李洪林/蔣華良老師團隊所做的"藥物潛在作用靶標預測 ...

中醫生物養生療法在腫瘤治療過程中的定位在哪?

中醫生物養生療法在腫瘤治療過程中的定位在哪?
全程參與 中醫生物養生治療應全程參與腫瘤治療的全過程.腫瘤一旦發病,其體內正常的內環境已遭受不同程度的破壞.機體自然抗癌能力減弱,非一朝一夕形成,也非一朝一夕恢復,無論是否採用手術和其他治療,治療後的 ...

公司|通用型免疫細胞療法——賽元生物

公司|通用型免疫細胞療法——賽元生物
關注公司| 通用型免疫細胞療法--賽元生物,獲取最新行業資訊. 1 公司簡介 公司致力於工程化多能幹細胞(iPSC, ESC)分化免疫細胞(如巨噬細胞.NK細胞)的研發及轉化,擁有國際首創的自主智慧財 ...

四公司試水科創板詢價新規:有效報價區間擴大 買賣雙方博弈更趨均衡
10月10日晚間,中自科技.凱爾達.匯宇製藥三單科創板IPO專案披露完成詢價定價,加上9月28日首單按照新規則詢價的高鐵電氣,目前在規則調整後科創板已有4單IPO完成了詢價定價. 市場觀察人士認為,從 ...

我國科技抗疫實踐得到《自然》雜誌高度評價
光明日報北京10月12日電(記者張亞雄)"在中國資訊化.數字化驅動健康醫療領域的科技創新與模式變革下,中國學者透過資訊與醫學交叉合作,在'科技抗疫'及'慢性病遠端防治'中取得了一系列世界矚目 ...

36氪首發 | 佈局DNA高通量合成與測序,「聯川生物」獲近億元新一輪融資
36氪獲悉,杭州聯川生物技術股份有限公司(以下簡稱:聯川生物)已完成近億元新一輪融資.本輪融資由華睿投資領投,海邦投資.錦聚投資.海越投資跟投.本次融資將加速聯川生物探索DNA合成技術平臺的商業化應用 ...