999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ORB算法的坐姿識別綜述

2019-05-22 09:26:08許飛鴻孫林齊鵬王鈺琪胡浩
無線互聯科技 2019年6期

許飛鴻 孫林 齊鵬 王鈺琪 胡浩

摘 要:為滿足現代社會對于減少坐姿引發的健康問題的需求,文章基于ORB算法,應用圖像直方圖,使用Python編程語言和OpenCV庫提出了一種可實現的坐姿識別方法,并對其進行實驗驗證。

關鍵詞:圖像識別;ORB算法;Python OpenCV;直方圖;坐姿識別

現代社會存在一個巨大的群體,出于工作學習的原因,他們需要維持數個小時的靜坐狀態,在這樣的情況下正確坐姿的重要性就凸顯出來。長期不正確的坐姿對人體的健康將產生巨大的影響。計算機的飛速普及,讓人們將越來越多的工作放在計算機上去完成,各行各業,尤其是程序開發人員、文字工作者,在計算機上的工作時間越來越長,這種情況下不良的坐姿對頸肩腰椎都會產生很大影響,容易導致多種疾病的發生。調查顯示肩部腰部疾病的發病率越來越高,發病年齡越來越小,跟長期坐著工作有關。這些問題都說明,坐姿正確與否對健康有很大影響。在這樣的情況下,有效預防不正確坐姿具有重大實際意義。

1 坐姿識別應用前景

要識別坐姿,首先要區分正確坐姿與不正確坐姿。正確的坐姿要求坐下時人身體端正,不左右斜靠,不前后仰躺,頭部略微前傾,頸椎略微彎曲但是彎曲程度不宜過大,腰部保持挺直,身體自然放松,肩部自然下垂。胸部距離書桌邊沿約一拳位置,保持頭、頸、胸的正常生理曲線。如果是使用電腦的情況下,電腦屏幕中間應剛好與下巴呈水平,兩者距離保持約35 cm。如果是閱讀書籍或寫作的情況下正確的坐姿要求書本與眼睛距離在30~35 cm最佳。

不正確的坐姿大致分為6類:頭部傾斜、身體左傾、身體右傾、身體前傾、脊椎前曲、身體后仰[1],這些不正確的坐姿都將對身體健康造成損害,頭部傾斜、脊椎前曲是造成頸椎病,頸椎彎曲的重大原因之一;身體左傾、身體右傾、身體前傾增大腰部負擔,造成腰椎彎曲、腰椎間盤突出、腰部疼痛等多種疾病。在這種情況之下,坐姿識別技術擁有廣泛的應用前景,并有望在預防坐姿不正確引發的各類疾病方面起到重大作用。

坐姿識別技術主要是指通過現代科技力量判斷人們現階段的坐姿情況,從而對不正確的坐姿起到警醒的作用。坐姿識別技術的分類大體與人體動作姿勢的識別方法分類相同。

2 坐姿識別技術概述

人體動作姿態的識別方法可分為3類:基于統計的方法、基于模板的方法和基于語法的方法[2]。其中,基于統計的方法主要是隱馬爾可夫模型(Hidden Markov Model,HMM)和動態貝葉斯網絡(Dynamic Bayesian Network,DBN)兩種方法,基于語法的方法最主要基于圖像序列的相關應用。這兩種方法這里我們不予討論。本文研究的基于快速特征點提取和描述(Oriented FAST and Rotated BRIEF,ORB)算法圖像識別技術屬于基于模板的方法。基于模板的姿態識別方法核心思想就是比較實際檢測對象與標準模板對象的相似程度,以此對人體的姿態情況進行判斷。這種方法應用廣泛且可靠性高,在實際應用中有較高價值。

3 基于ORB算法的坐姿識別過程

3.1 ORB算法介紹

ORB算法是一種快速特征點提取和描述算法,這個算法分為兩部分,分別是特征點提取和特征點描述。特征提取是由FAST算法發展來的,特征點描述是根據BRIEF特征描述算法改進的。ORB特征是將FAST特征點的檢測方法與BRIEF特征描述子結合起來,并在它們原來的基礎上做了改進與優化。ORB算法最大的特點就是計算速度快。這首先得益于使用FAST檢測特征點,FAST的檢測速度非常快。再次是使用BRIEF算法計算描述子,該描述子特有的2進制串的表現形式不僅節約了存儲空間,而且大大縮短了匹配的時間[3]。

3.2 圖像直方圖介紹

直方圖統計是圖像處理中的一個非常重要的操作。圖像直方圖是反映一個圖像像素分布的統計表,其實橫坐標代表了圖像像素的種類,可以是灰度的,也可以是彩色的。縱坐標代表了每一種顏色值在圖像中的像素總數或者占所有像素個數的百分比。圖像是由像素構成,因為反映像素分布的直方圖往往可以作為圖像一個很重要的特征。在實際工程中,圖像直方圖在特征提取、圖像匹配等方面都有很好的應用[4]。

3.3 姿態檢測原理

將攝像頭拍攝到的一張圖片與標準坐姿圖片進行對比,通過ORB算法對兩張圖片進行特征點匹配,然后根據匹配的特征點坐標確定特征點匹配的對數,再通過設置閾值的方式來判斷兩張圖片姿態的相似度。同時計算兩張圖片的直方圖,通過繪制灰度值曲線來比較兩張圖的相似度,并且輸出兩張圖的相似度,再通過對兩種方法相似度的綜合判斷,來判斷這兩張圖片中人體姿態。即若是兩張方法判斷出來兩張圖片的相似度都很高,那么可以判定兩張圖片中的人體姿態是一致的,也就是說攝像頭拍到的圖片中的人坐姿是標準的,若是兩種方法判斷的圖片相似度都不高或者其中之一不高,則可以判斷圖片中人的坐姿是不標準的[5]。

3.4 方法實現

在實現方法前首先要安裝好Python運行環境并安裝好OpenCV庫,將攝像頭拍攝的人體姿態圖片與標準姿態圖片進行對比,利用ORB算法匹配兩張圖片的特征點,在運用圖像直方圖來比較兩張圖片相似度,若匹配到的特征點對數超過閾值且圖片相似度也很高,則輸出“坐姿標準”[6]。以下為該方法實現用到的主要函數:

(1)實現ORB特征匹配的函數。

def drawMatches(img1, kp1, img2, kp2, matches):

rows1 = img1.shape[0]

cols1 = img1.shape[1]

rows2 = img2.shape[0]

cols2 = img2.shape[1]

out = np.zeros((max([rows1,rows2]),cols1 + cols2, 3),dtype = ‘uint8)

#拼接圖像

out[:rows1, :cols1] = np.dstack([img1, img1,img1])

out[:rows2, cols1:] = np.dstack([img2, img2,img2])

for mat in matches:

img1_idx = mat.queryIdx

img2_idx = mat.trainIdx

(x1,y1) = kp1[img1_idx].pt

(x2,y2) = kp2[img2_idx].pt

#繪制匹配點

cv2.circle(out, (int(x1),int(y1)),4,(255,255,0),1)

cv2.circle(out,(int(x2)+cols1,int(y2)),4,(0,255,255),1)

cv2.line(out,(int(x1),int(y1)),(int(x2)+cols1,int(y2)),(255,0,0),1)

return out

(2)實現圖像直方圖相似度統計的函數。

def classify_gray_hist(image1,image2,size = (256,256)):

#先計算直方圖

image1 = cv2.resize(image1,size)

image2 = cv2.resize(image2,size)

hist1 = cv2.calcHist([image1],[0],None,[256],[0.0,255.0])

hist2 = cv2.calcHist([image2],[0],None,[256],[0.0,255.0])

#比較以下直方圖

plt.plot(range(256),hist1,r)

plt.plot(range(256),hist2,b)

plt.show()

#計算直方圖重合度

degree = 0

for i in range(len(hist1)):

if hist1[i] != hist2[i]:

degree = degree + (1 - abs(hist1[i]-hist2[i])/max(hist1[i],hist2[i]))

else:

degree = degree + 1

degree = degree/len(hist1)

return degree

#計算單通道的直方圖

def calculate(image1,image2):

hist1 = cv2.calcHist(image1,[0],None,[256],range(0.0,255.0))

hist2 = cv2.calcHist(image2,[0],None,[256],range(0.0,255.0))

#計算直方圖的重合度

degree = 0

for i in range(len(hist1)):

if hist1[i] != hist2[i]:

degree = degree + (1 - abs(hist1[i]-hist2[i])/max(hist1[i],hist2[i]))

else:

degree = degree + 1

degree = degree / len(hist1)

return degree

#通過得到每個通道的直方圖來計算相似度

def classify_hist_with_split(image1,image2,size = (256,256)):

#將圖像resize后,分離為三個通道,再計算每個通道的相似值

image1 = cv2.resize(image1,size)

image2 = cv2.resize(image2,size)

sub_image1 = cv2.split(image1)

sub_image2 = cv2.split(image2)

sub_data = 0

for im1,im2 in zip(sub_image1,sub_image2):

sub_data += calculate(im1,im2)

sub_data = sub_data/3

return sub_data

3.5 方法論證

以某個被測人的100張不同姿態照片與該被測人的標準姿態照片進行測試,隨機選取10組識別結果。經過測試可看到10組中識別準確的組別有8組,識別準確率達到80%,因此該方法可正確的識別姿態標準程度[7]。

4 結語

本文提出了基于ORB算法進行人體坐姿識別的一種方法,ORB圖像識別算法在人臉識別、坐姿識別領域的應用較少,拓寬了ORB圖像識別算法的應用領域,同時將ORB圖像識別和直方圖統計相結合解決人體坐姿識別相關問題,提高了圖像識別的準確性。同時,對于上班族久坐且坐姿不正確導致的各種健康問題,本文提出了一種有效的預防方法,通過ORB算法對不正確的坐姿進行識別并且發出提醒,從而起到不斷提醒人們關注自己的坐姿,及時改正錯誤坐姿的作用。

[參考文獻]

[1]謝紅莉,謝作揩,葉景,等.我國青少年近視現患率及相關因素分析[J].中華醫學雜志,2010(7):15.

[2]王春陽.基于圖像技術的人體坐姿監測研究[D].西安:西安電子科技大學,2013.

[3]黃國范,李亞.人體動作姿態識別綜述[J].電腦知識與技術,2013(1):133-135.

[4]張宇.基于人臉檢測與膚色統計的坐姿行為監測[J].計算機與網絡,2017(7):73-76.

[5]高強,潘俊.基于ORB的圖像特征提取與匹配研究[J].福建電腦,2019(1):21-22.

[6]范新南,顧亞飛,倪建軍.改進ORB算法在圖像匹配中的應用[J].計算機與現代化,2019(2):1-6,14.

[7]李樂鵬,孫水發,夏沖,等.直方圖均衡技術綜述[J].計算機系統應用,2014(3):1-8.

主站蜘蛛池模板: 久久国产精品夜色| 青青青伊人色综合久久| 久久婷婷综合色一区二区| 久久综合亚洲鲁鲁九月天| 国产区免费精品视频| 国产性生大片免费观看性欧美| 亚洲国产精品不卡在线 | 国产精品男人的天堂| 青草精品视频| 亚洲美女一区二区三区| 久草青青在线视频| 白浆免费视频国产精品视频| 国产av一码二码三码无码| 91亚洲精品第一| 午夜无码一区二区三区| 黄色国产在线| 精品视频一区在线观看| 欧美久久网| 成人一级免费视频| 日韩精品无码不卡无码| 中字无码精油按摩中出视频| 国产午夜精品鲁丝片| 亚洲人视频在线观看| 午夜综合网| 成人国产精品视频频| 9久久伊人精品综合| 97国产在线观看| 日本国产一区在线观看| 久久久久人妻一区精品| AV在线天堂进入| 亚洲欧美精品日韩欧美| 91久久大香线蕉| 欧美在线综合视频| 久久6免费视频| 午夜视频日本| 日韩精品久久久久久久电影蜜臀| 日韩福利视频导航| 五月天天天色| 97se亚洲综合| 青青极品在线| 操国产美女| 狠狠色综合网| 久久www视频| 亚洲av成人无码网站在线观看| 国产欧美高清| 58av国产精品| 女人毛片a级大学毛片免费| 久久不卡国产精品无码| 国产精品无码久久久久久| 国产精品成人AⅤ在线一二三四| 激情网址在线观看| 亚洲高清免费在线观看| 午夜国产精品视频| 1024国产在线| AV片亚洲国产男人的天堂| 色综合天天综合| 蜜臀AV在线播放| 亚洲第七页| 亚洲一本大道在线| 成年A级毛片| 国模极品一区二区三区| 欧美午夜网| 99视频在线观看免费| 国产青榴视频| 亚洲精品动漫| 欧美色亚洲| 免费看a级毛片| 91av成人日本不卡三区| 国产精品专区第1页| 久久午夜夜伦鲁鲁片不卡| 日韩无码精品人妻| 久精品色妇丰满人妻| 试看120秒男女啪啪免费| 69av在线| 亚洲天堂视频在线免费观看| 伊人久久综在合线亚洲91| 婷婷六月在线| 日本久久久久久免费网络| 亚洲精品无码av中文字幕| 一级毛片免费高清视频| 尤物国产在线| 狠狠色狠狠色综合久久第一次|