国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenCV的手勢(shì)識(shí)別算法研究與應(yīng)用

2024-01-07 05:31:44廖學(xué)成宋燕燕
無(wú)線互聯(lián)科技 2023年22期
關(guān)鍵詞:手勢(shì)輪廓灰度

廖學(xué)成,宋燕燕

(南京傳媒學(xué)院,江蘇 南京 211172)

0 引言

計(jì)算機(jī)領(lǐng)域,經(jīng)過(guò)處理的數(shù)字圖像可以被運(yùn)用在不同的行業(yè)當(dāng)中,例如,在影視處理領(lǐng)域中,可以通過(guò)對(duì)數(shù)字圖像進(jìn)行處理從而得到驚艷的特效;在醫(yī)療影像領(lǐng)域中,圖像處理常常被用來(lái)識(shí)別病灶;在衛(wèi)星遙感領(lǐng)域中,圖像處理經(jīng)常被用來(lái)切割各種衛(wèi)星遙感地圖,從而提取出有價(jià)值的信息等。

1 算法基礎(chǔ)

1.1 神經(jīng)網(wǎng)絡(luò)

傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)由神經(jīng)元和計(jì)算關(guān)系組成,不同的神經(jīng)元之間有著極為復(fù)雜的計(jì)算關(guān)系,這些不同計(jì)算關(guān)系都有一個(gè)權(quán)重,并在進(jìn)行模型訓(xùn)練的過(guò)程中不斷地調(diào)整這些權(quán)重[1]。如圖1所示為傳統(tǒng)意義上的神經(jīng)網(wǎng)絡(luò),每層節(jié)點(diǎn)都和上一層節(jié)點(diǎn)相連接,構(gòu)成全連接網(wǎng)絡(luò),其缺點(diǎn)為參數(shù)眾多、冗余度大、難以訓(xùn)練。

圖1 神經(jīng)網(wǎng)絡(luò)

假設(shè)輸入一張像素為100×100的圖像,全連接層的每個(gè)神經(jīng)元都有將近10 000個(gè)權(quán)重參數(shù),極易產(chǎn)生過(guò)擬合[2]。為了解決這一問(wèn)題,通常在該神經(jīng)網(wǎng)絡(luò)上添加卷積運(yùn)算,構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)[3]。

1.2 卷積神經(jīng)網(wǎng)絡(luò)特征提取

卷積運(yùn)算公式為

(1)

其中,t為全局時(shí)間變量。卷積函數(shù)不僅可以是連續(xù)的曲線[4],還可以是離散的形式。因此公式(1)可以改寫(xiě)為:

(2)

卷積神經(jīng)網(wǎng)絡(luò)由輸入層、卷積層、激活函數(shù)、池化層、全連接層組成[5],如圖2所示。

圖2 卷積神經(jīng)網(wǎng)絡(luò)

1.3 傅里葉描述子

傅里葉描述子的作用是用來(lái)對(duì)特定物體創(chuàng)造一個(gè)特征圖像的,即只截取符合特征值的圖像[6]。從線性代數(shù)的角度思考,傅里葉描述子其實(shí)就是用一個(gè)高維的向量去描述一個(gè)物體。其計(jì)算公式為

z(t)=x(t)+μy(t)

(3)

其中,u為復(fù)數(shù)表示法;函數(shù)z為一個(gè)經(jīng)過(guò)處理只有輪廓圖的圖像,并且將所得圖像通過(guò)復(fù)變函數(shù)表達(dá)。

1.4 定義損失函數(shù)

一般來(lái)講,在實(shí)驗(yàn)的過(guò)程中,理想的輪廓提取和實(shí)際的輪廓提取總會(huì)產(chǎn)生一定的差距。為了很好地解決這些差距,通常會(huì)定義一個(gè)損失函數(shù)來(lái)度量模型預(yù)測(cè)的輪廓與實(shí)際輪廓之間的差距[7]。本文通過(guò)計(jì)算點(diǎn)到輪廓的距離來(lái)定義損失函數(shù)。

假設(shè)在讀取的手勢(shì)圖像中有2點(diǎn)P1(x1,y1)和P2(x2,y2),為了計(jì)算這2點(diǎn)的歐幾里得空間中的直線距離,其計(jì)算公式如下:

(4)

其中,d為歐式距離;(x1,y1)和(x2,y2)分別為2個(gè)點(diǎn)的坐標(biāo)。公式(4)中的平方根運(yùn)算表示計(jì)算2個(gè)點(diǎn)在坐標(biāo)軸上的距離差的平方和的平方根。

公式(4)可以推廣到更高維度的歐幾里得空間中,其中每個(gè)點(diǎn)可以有更多的坐標(biāo)值。在三維空間中,公式會(huì)進(jìn)一步擴(kuò)展為:

(5)

2 手勢(shì)識(shí)別的流程

首先獲取實(shí)時(shí)手勢(shì)圖像,然后進(jìn)行圖像預(yù)處理,包括圖像增強(qiáng)、圖像銳化等提高圖像清晰度[8]。接著計(jì)算手勢(shì)特征值提取輪廓,采用 YCrCb 顏色空間中的Cr分量并結(jié)合閾值分割算法進(jìn)行二值化,輸出切割圖像。最終確定當(dāng)前手勢(shì),獲取手勢(shì)信息?;?OpenCV 的手勢(shì)識(shí)別流程如圖3所示。

圖3 手勢(shì)識(shí)別流程

2.1 預(yù)處理

從攝像頭或視頻中獲取手部圖像幀,將圖像轉(zhuǎn)換為灰度圖像進(jìn)而調(diào)整對(duì)比度。轉(zhuǎn)換的實(shí)現(xiàn)過(guò)程是使用OpenCV中的“cv2.cvtColor()”函數(shù),并將轉(zhuǎn)換方式設(shè)置為“cv2.COLOR_BGR2GRAY( )”函數(shù)。其具體實(shí)現(xiàn)代碼如下:

image=cv2.imread('image.jpg')

gray_image=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

上述代碼中,“cv2.cvtColor()”函數(shù)將彩色圖像轉(zhuǎn)換為灰度圖像。第一個(gè)參數(shù)是輸入圖像,第二個(gè)參數(shù)是轉(zhuǎn)換的方式,使用cv2.COLOR_BGR2GRAY指定轉(zhuǎn)換為灰度圖像。轉(zhuǎn)換后的灰度圖像將存儲(chǔ)在新的變量“gray_image”中。

這里需要注意的是,灰度圖像只有一個(gè)顏色通道,而彩色圖像有3個(gè)顏色通道。因此使用灰度圖像存儲(chǔ)可以大大節(jié)省內(nèi)存和計(jì)算資源。

2.2 計(jì)算特征值

特征圖像的創(chuàng)建過(guò)程如下:

(1)創(chuàng)建一個(gè)空白圖像,將描述子的每個(gè)元素作為像素值填充到圖像中對(duì)應(yīng)的位置。

(2)調(diào)整圖像的大小和尺度,從而適應(yīng)特定的應(yīng)用場(chǎng)景。

(3)使用諸如調(diào)色板、平滑濾波器、邊緣檢測(cè)等圖像處理技術(shù),從而突出顯示特征。

(4)將特征圖像與原始曲線圖像進(jìn)行疊加顯示。

如下代碼為創(chuàng)建特征圖像的核心算法:

def create_feature_image(descriptors):

feature_image=np.zeros((100, 100), dtype=np.uint8)

fori,descriptorin enumerate(descriptors):

x=int(descriptor[0]*50)++50

y=int(descriptor[1]*50)++50

feature_image[y,x]=255

feature_image=cv2.applyColorMap(feature_image,cv2.COLORMAP_JET)

returnfeature_image

descriptors=np.array([[1.2,0.8],[-0.5,0.2],[0.9,-0.7]])

feature_image=create_feature_image

構(gòu)建好描述子之后,可以進(jìn)行各種手勢(shì)特征提取,這些特征包括手指數(shù)量、手指的位置和彎曲度、手的方向、手掌的位置等。

2.3 膚色檢測(cè)

膚色檢測(cè)流程如圖4所示。

圖4 膚色預(yù)測(cè)流程

首先需要進(jìn)行合適的顏色空間轉(zhuǎn)換[9]。常見(jiàn)的顏色空間轉(zhuǎn)換是將圖像從RGB空間轉(zhuǎn)換到Y(jié)UV、HSV或Lab。將圖像從RGB空間轉(zhuǎn)換到Y(jié)UV空間的實(shí)現(xiàn)代碼為:yuv_image=cv2.cvtColor(image, cv2.COLOR_BGR2YUV),將圖像從RGB空間轉(zhuǎn)換到HSV空間的實(shí)現(xiàn)代碼為:hsv_image=cv2.cvtColor(image, cv2.COLOR_BGR2HSV),將圖像從RGB空間轉(zhuǎn)換到Lab空間的實(shí)現(xiàn)代碼為:lab_image=cv2.cvtColor(image, cv2.COLOR_BGR2Lab)?!癱v2.cvtColor()”函數(shù)用于執(zhí)行顏色空間轉(zhuǎn)換。第一個(gè)參數(shù)是輸入圖像,第二個(gè)參數(shù)是轉(zhuǎn)換方式,可以通過(guò)使用預(yù)定義的常量(如cv2.COLOR_BGR2YUV、cv2.COLOR_BGR2HSV、cv2.COLOR_BGR2Lab)來(lái)指定所需的轉(zhuǎn)換。不過(guò),使用YCrCb顏色空間可以最大化地對(duì)RGB圖像進(jìn)行顯示,其從RGB空間到Y(jié)CrCb空間的轉(zhuǎn)換公式如下:

(6)

對(duì)于手部輪廓的提取,使用的是簡(jiǎn)單的自適應(yīng)閾值方法,在OpenCV中的表示代碼為:ret,threshold=cv2.threshold(gray_image, thresh, maxval, threshold_type),其中“gray_image”代表輸入的灰度圖像;“thresh”代表閾值,用于將像素分為目標(biāo)和背景;“maxval”代表像素大于閾值時(shí),所設(shè)置的像素值;“threshold_type”代表閾值分割的類型,例如“cv2.THRESH_BINARY”表示二值化閾值分割。

3 實(shí)驗(yàn)結(jié)果

對(duì)于上述算法在手勢(shì)輪廓提取的應(yīng)用實(shí)驗(yàn)結(jié)果如圖5所示。

圖5 手勢(shì)輪廓

進(jìn)行膚色檢測(cè)和分割處理后的實(shí)驗(yàn)結(jié)果如圖6所示。

圖6 原始圖像及分割后的圖像

基于提取的手勢(shì)特征進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練,在文中使用的模型為KNN。訓(xùn)練完成后識(shí)別的結(jié)果如圖7所示。

圖7 手勢(shì)識(shí)別

4 結(jié)語(yǔ)

隨著人機(jī)交互技術(shù)的日益發(fā)展,手勢(shì)識(shí)別算法愈來(lái)愈成熟。本文主要是對(duì)手勢(shì)的識(shí)別先導(dǎo)思想如神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等進(jìn)行分析,并通過(guò)圖像預(yù)處理、特征值提取、膚色預(yù)測(cè)等步驟實(shí)現(xiàn)人體手勢(shì)識(shí)別。后續(xù)對(duì)于本課題還有很大的改進(jìn)空間;例如是否可以從二維的角度進(jìn)而升級(jí)從三維的角度進(jìn)行處理,從而把本課題實(shí)現(xiàn)的二維模型建成三維模型,這樣不僅可以獲得更多的特征值,還可以極大地提高識(shí)別的成功率。

猜你喜歡
手勢(shì)輪廓灰度
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
基于灰度拉伸的圖像水位識(shí)別方法研究
OPENCV輪廓識(shí)別研究與實(shí)踐
基于實(shí)時(shí)輪廓誤差估算的數(shù)控系統(tǒng)輪廓控制
挑戰(zhàn)!神秘手勢(shì)
V字手勢(shì)的由來(lái)
勝利的手勢(shì)
基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
在線學(xué)習(xí)機(jī)制下的Snake輪廓跟蹤
宣城市| 乌审旗| 沙湾县| 鄂尔多斯市| 泽库县| 航空| 富蕴县| 滨海县| 河北区| 普兰县| 沂水县| 石林| 龙泉市| 文昌市| 绩溪县| 会东县| 太白县| 潞西市| 永丰县| 老河口市| 阿坝| 维西| 乌海市| 辽宁省| 黑山县| 沽源县| 张家川| 商南县| 邵东县| 石台县| 贺兰县| 鹤庆县| 高阳县| 甘孜县| 姚安县| 昔阳县| 云浮市| 财经| 周宁县| 博爱县| 普定县|