基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別

關(guān)鍵詞:手部關(guān)鍵點(diǎn),手語(yǔ)識(shí)別、LSTM、實(shí)時(shí)檢測(cè)

一、引言

自大流行爆發(fā)以來(lái),電子學(xué)習(xí)(e-learning)的使用呈現(xiàn)急劇增長(zhǎng)態(tài)勢(shì)。據(jù)預(yù)測(cè),到 2026 年,電子學(xué)習(xí)行業(yè)規(guī)模將至少達(dá)到 4000 億美元。隨著這一新興教育模式的蓬勃發(fā)展,確保所有兒童都能跟上教育步伐,不被落下,成為至關(guān)重要的議題。然而,對(duì)于患有聽(tīng)力損失殘疾的兒童而言,其在獲取屏幕上的講座內(nèi)容時(shí)面臨著顯著障礙,處于相對(duì)不利地位。此外,那些無(wú)法說(shuō)話的聽(tīng)力障礙兒童,由于難以依據(jù)講師的回應(yīng)進(jìn)行交流,其學(xué)習(xí)過(guò)程也受到極大限制。

為了使這些特殊兒童能夠順利接受教育,美國(guó)手語(yǔ)(ASL)應(yīng)運(yùn)而生,其意義不僅局限于助力他們獲取教育知識(shí),更在于為他們的日常生活提供便利。鑒于此,本研究提出了一種基于深度學(xué)習(xí)的實(shí)時(shí)手語(yǔ)檢測(cè)模型,旨在幫助學(xué)生通過(guò)攝像頭做出 ASL 手勢(shì),并借助攝像頭識(shí)別手勢(shì),進(jìn)而為學(xué)生提供關(guān)于所識(shí)別語(yǔ)言的反饋。在技術(shù)實(shí)現(xiàn)方面,本研究采用 OpenCV 和 Mediapipe Holistic 來(lái)精準(zhǔn)識(shí)別姿勢(shì)的關(guān)鍵標(biāo)記以及收集相關(guān)數(shù)據(jù),隨后依據(jù)長(zhǎng)短期記憶(LSTM)架構(gòu)進(jìn)行模型訓(xùn)練。

本研究的實(shí)時(shí)手語(yǔ)檢測(cè)項(xiàng)目,以 LSTM 神經(jīng)網(wǎng)絡(luò)架構(gòu)為核心,致力于從視頻源中高效學(xué)習(xí)并精準(zhǔn)分類手語(yǔ)手勢(shì),從而實(shí)現(xiàn)實(shí)時(shí)識(shí)別與解釋手語(yǔ)手勢(shì)的功能。該系統(tǒng)通過(guò)用戶友好的界面設(shè)計(jì),使用戶能夠在攝像頭前執(zhí)行手語(yǔ)手勢(shì),系統(tǒng)隨即快速檢測(cè)并解釋這些手勢(shì),可作為聽(tīng)力障礙人士實(shí)現(xiàn)有效溝通的有力輔助技術(shù)。該系統(tǒng)的主要功能涵蓋實(shí)時(shí)手勢(shì)檢測(cè)、高識(shí)別準(zhǔn)確性以及添加和訓(xùn)練新手語(yǔ)手勢(shì)的能力。系統(tǒng)構(gòu)建基于 Python、TensorFlow、OpenCV 和 Numpy 等技術(shù),具備良好的可訪問(wèn)性和可定制性。通過(guò)本研究的實(shí)時(shí)手語(yǔ)檢測(cè)項(xiàng)目,我們期望能夠有效彌合溝通鴻溝,為聽(tīng)力障礙者賦能,助力其更好地融入社會(huì)與教育環(huán)境。

  1. 方法

2.1 程序的初始步驟及關(guān)鍵點(diǎn)識(shí)別

在本項(xiàng)目中,程序的首要步驟是精準(zhǔn)識(shí)別用戶身體的關(guān)鍵點(diǎn)。為此,本研究采用了由 Mediapipe 提供的 MP Holistic API。該 API 是一種先進(jìn)的工具,能夠通過(guò)識(shí)別整體關(guān)鍵點(diǎn)來(lái)準(zhǔn)確定位人體的各個(gè)部位。

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖1

上述代碼片段中,第一行代碼調(diào)用了 Holistic API,用于實(shí)現(xiàn)關(guān)鍵點(diǎn)的識(shí)別功能;第二行代碼則調(diào)用了 drawing_utils 工具,用于在圖像上繪制識(shí)別出的關(guān)鍵點(diǎn)。draw_landmarks(image, results):此函數(shù)用于在用戶圖像上繪制識(shí)別出的關(guān)鍵點(diǎn),以便直觀展示關(guān)鍵點(diǎn)的位置。draw_styled_landmarks(image, results):通過(guò)添加幾行額外代碼,該函數(shù)能夠?qū)﹃P(guān)鍵點(diǎn)進(jìn)行顏色編碼。這種顏色編碼方式有助于觀眾更清晰地識(shí)別和區(qū)分人體的不同部位,從而增強(qiáng)視覺(jué)效果

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖2

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖3

圖1 關(guān)鍵點(diǎn)進(jìn)行顏色編碼,以便查看者識(shí)別人體的不同部分

2.2 關(guān)鍵點(diǎn)數(shù)據(jù)的收集與存儲(chǔ)

在定義 Mediapipe 模型后,為了后續(xù)的模型訓(xùn)練,必須對(duì)識(shí)別出的關(guān)鍵點(diǎn)進(jìn)行收集并妥善存儲(chǔ)。為此,本研究設(shè)計(jì)了以下函數(shù):

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖4

該函數(shù)的作用是從視頻流中提取關(guān)鍵點(diǎn)數(shù)據(jù),并將這些關(guān)鍵點(diǎn)的坐標(biāo)值整合為一個(gè) NumPy 數(shù)組。通過(guò)這種方式,能夠高效地組織和存儲(chǔ)關(guān)鍵點(diǎn)數(shù)據(jù),便于后續(xù)的處理與分析。

在數(shù)據(jù)收集過(guò)程中,本研究選取了三個(gè)基礎(chǔ)手語(yǔ)詞匯:“Hello”(你好)、“Thanks”(感謝)和“I Love You”(我愛(ài)你)。為了確保數(shù)據(jù)的多樣性和豐富性,用戶針對(duì)每個(gè)詞匯分別擺出姿勢(shì),每個(gè)詞匯采集 30 個(gè)序列,每個(gè)序列包含 30 幀圖像,從而總共收集到 90 個(gè)序列的數(shù)據(jù)。

這些識(shí)別出的關(guān)鍵點(diǎn)數(shù)據(jù)被存儲(chǔ)在名為 MP_Data 的文件夾中,每個(gè)序列的數(shù)據(jù)均以 .npy 格式保存在其對(duì)應(yīng)的子文件夾內(nèi)。這種存儲(chǔ)方式不僅便于數(shù)據(jù)的管理和檢索,也有利于后續(xù)模型訓(xùn)練過(guò)程中的數(shù)據(jù)加載與處理。通過(guò)這種方式,能夠確保數(shù)據(jù)的完整性和可用性,為構(gòu)建高效準(zhǔn)確的手語(yǔ)識(shí)別模型奠定堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)。

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖5

圖2 關(guān)鍵點(diǎn)數(shù)據(jù)收集

2.3 訓(xùn)練長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM

為了實(shí)現(xiàn)高效且準(zhǔn)確的手語(yǔ)手勢(shì)識(shí)別,本研究選擇了一個(gè)基于長(zhǎng)短期記憶(LSTM)的深度學(xué)習(xí)模型架構(gòu)。具體而言,所選用的模型為 Sequential 模型,其結(jié)構(gòu)包括 3 個(gè) LSTM 層和 2 個(gè)密集層。這種架構(gòu)設(shè)計(jì)旨在充分利用 LSTM 的時(shí)間序列建模能力,同時(shí)通過(guò)密集層進(jìn)行高效的特征提取和分類。

由于手語(yǔ)手勢(shì)識(shí)別屬于多分類問(wèn)題,因此模型的編譯配置如下:

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖6

優(yōu)化器:選用 Adam 優(yōu)化器,其自適應(yīng)學(xué)習(xí)率的特性能夠有效加速模型的收斂過(guò)程。

損失函數(shù):采用 categorical_crossentropy,適用于多分類問(wèn)題,能夠衡量模型輸出與真實(shí)標(biāo)簽之間的差異。

評(píng)估指標(biāo):使用 categorical_accuracy,以直觀反映模型在分類任務(wù)中的準(zhǔn)確率。

為了確保模型能夠充分學(xué)習(xí)數(shù)據(jù)中的特征并達(dá)到良好的泛化能力,模型在 2000 個(gè)訓(xùn)練周期(epoch)上進(jìn)行訓(xùn)練。這一訓(xùn)練過(guò)程旨在通過(guò)大量的迭代優(yōu)化,使模型能夠精準(zhǔn)地識(shí)別和分類各種手語(yǔ)手勢(shì),從而為實(shí)時(shí)手語(yǔ)檢測(cè)系統(tǒng)提供強(qiáng)大的技術(shù)支持。

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖7

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖8

圖3 LSTM網(wǎng)絡(luò)

2.4 系統(tǒng)功能與優(yōu)勢(shì)

本研究開(kāi)發(fā)的實(shí)時(shí)手語(yǔ)檢測(cè)系統(tǒng)具備以下核心功能與顯著優(yōu)勢(shì):

實(shí)時(shí)性:系統(tǒng)能夠?qū)崟r(shí)檢測(cè)和解釋手語(yǔ)手勢(shì),為用戶提供即時(shí)結(jié)果,確保溝通的流暢性與高效性。

高準(zhǔn)確率:基于長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)架構(gòu)的模型,能夠精準(zhǔn)識(shí)別各種復(fù)雜的手語(yǔ)手勢(shì),顯著提升了識(shí)別的準(zhǔn)確率。

多手勢(shì)支持:系統(tǒng)支持多種手語(yǔ)手勢(shì)的識(shí)別與解釋,涵蓋了豐富的手語(yǔ)詞匯,從而實(shí)現(xiàn)有效的溝通。

易于集成:項(xiàng)目提供了詳細(xì)的代碼片段和示例,便于開(kāi)發(fā)者將該系統(tǒng)無(wú)縫集成到其他應(yīng)用程序或項(xiàng)目中,具有良好的擴(kuò)展性。

輔助功能改進(jìn):通過(guò)“使用 LSTM 模型進(jìn)行實(shí)時(shí)手語(yǔ)檢測(cè)”項(xiàng)目,能夠顯著增強(qiáng)聾人和聽(tīng)力障礙社區(qū)的通信輔助功能,為他們提供更便捷的交流工具。

自定義選項(xiàng):系統(tǒng)支持用戶根據(jù)自身特定需求添加和訓(xùn)練新手語(yǔ)手勢(shì),提供了高度的自定義靈活性。

語(yǔ)言靈活性:該模型具備跨語(yǔ)言的適應(yīng)性,可以被訓(xùn)練為識(shí)別來(lái)自不同語(yǔ)言的手語(yǔ)手勢(shì),適用于多種語(yǔ)言環(huán)境下的溝通需求。

用戶友好的界面:項(xiàng)目配備了一個(gè)直觀且易于操作的用戶界面,簡(jiǎn)化了用戶與系統(tǒng)的交互過(guò)程,確保了流暢的用戶體驗(yàn)。

開(kāi)源性:作為開(kāi)源項(xiàng)目,使用 LSTM 模型進(jìn)行實(shí)時(shí)手語(yǔ)檢測(cè)旨在鼓勵(lì)全球開(kāi)發(fā)者社區(qū)的廣泛參與和貢獻(xiàn),促進(jìn)技術(shù)的持續(xù)改進(jìn)與創(chuàng)新。

  1. 實(shí)時(shí)測(cè)試結(jié)果

這些是使用 MP Holistic 在 LSTM 架構(gòu)上訓(xùn)練數(shù)據(jù)后,項(xiàng)目實(shí)時(shí)的測(cè)試結(jié)果。此外,設(shè)計(jì)顏色編碼概率查看器,這是一個(gè)概率條,顯示測(cè)試中識(shí)別最多的手勢(shì)。條形會(huì)隨著它最能識(shí)別的手勢(shì)而上升。每個(gè)條形的顏色如下所示:藍(lán)色/Hello;綠色/感謝;橙子/我愛(ài)你。

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖9

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖10

基于Python的LSTM進(jìn)行實(shí)時(shí)手語(yǔ)識(shí)別的圖11

圖3 實(shí)時(shí)檢測(cè)結(jié)果

最后,歡迎大家通過(guò)公眾號(hào)“320科技工作室”與我們聯(lián)絡(luò)。

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP