本發(fā)明涉及坐姿檢測方法,具體是涉及一種基于坐姿深度圖像的坐姿檢測方法。
背景技術:
如今,由于學習和工作的需要,人們每天坐立的時間越來越長,據(jù)統(tǒng)計,如今人們平均每天坐立的時間超過8個小時。在長時間的坐立情況下,由于人們很難一直保持良好的坐立姿態(tài),因此很容易出現(xiàn)離書桌太近、身體傾斜、頭偏等不良坐姿。久而久之,就會很容易患上近視、斜眼、腰椎疾病、頸椎疾病等,嚴重的影響人們的身體健康。因此為了促使人們糾正不良坐姿、養(yǎng)成良好的坐姿習慣、降低患近視、腰椎疾病等疾病的概率,進行坐姿檢測是非常有必要的。
目前,已有很多坐姿檢測、預防近視、糾正坐姿的技術方案。其中,最普遍的方法就是通過傳感器(紅外、壓力、加速度、超聲波等傳感器)實現(xiàn)的。例如:申請?zhí)枮?01510182899.8的中國專利申請“一種具有坐姿糾正功能的智能座椅”通過安裝在椅子上的壓力傳感器判斷人體坐姿是否傾斜;申請?zhí)枮?01610636497.5的中國專利申請“一種學生用防近視眼姿勢防控方法”將距離傳感器與傾斜傳感器套接在用戶頭上,實現(xiàn)近視與身體傾斜的檢測。這種通過傳感器進行坐姿檢測的方式具有測量數(shù)據(jù)準確度高的優(yōu)點,但是其測量數(shù)據(jù)過于單一(例如,壓力傳感器就只能得到壓力數(shù)據(jù)),另外,傳感器需要進行安裝或者讓用戶進行佩戴,這不僅會讓用戶感到不適,而且安裝使用麻煩、成本較高。另外一種方法就是通過圖像進行坐姿監(jiān)測,例如:申請?zhí)枮?00910242665.2的中國專利申請“一種坐姿檢測方法及裝置”用電腦上的攝像頭采集目標用戶圖像,檢測人臉、眼睛、肩部后得到人臉傾斜角度、眼睛區(qū)域面積和頭肩曲線,將所述檢測的結(jié)果與預設的標準值進行比較,進行坐姿判定。申請?zhí)枮?01410134765.4的中國專利申請“一種矯正坐姿的智能書桌及其矯正方法”在書桌上嵌入紅外發(fā)射器、紅外攝像頭與顯示器,通過紅外線發(fā)射器與紅外線攝像頭進行主動式紅外成像,提取結(jié)構(gòu)光的特征點信息,測定特征點的深度信息,復原對象輪廓,完成圖像的三維重建,并根據(jù)對象輪廓信息運用機器學習的方法識別出人眼、胸部、主要關節(jié)、桌面等對象,提取人體脊椎的骨骼模型,計算坐距、視矩,通過骨骼模型與標準的模型進行比較,判斷含胸、歪斜等坐姿。這種通過圖像進行坐姿檢測的方法,由于圖像信息豐富,具有很好的前景。但是目前這些方法還存在一定的缺陷,如彩色圖像容易受到光照,復雜背景的影響;通過雙目攝像頭進行坐姿檢測的方法,深度圖像精度不高,會對坐姿檢測造成誤差;另外通過電腦或者智能課桌里的固定攝像頭進行圖像采集時,設備移動不方便不夠便捷,使用范圍過于局限,而且對設備要求高。
總的來說,現(xiàn)有的坐姿檢測方法或系統(tǒng),存在安裝復雜、不便于攜帶、使用麻煩以及坐姿檢測準確度不高的缺點。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是,克服上述背景技術的不足,提供一種基于坐姿深度圖像的坐姿檢測方法,坐姿檢測準確度高,只需要將手機與深度傳感器連接,就能通過坐姿檢測軟件進行坐姿檢測,使用方便,使用范圍廣泛,具有很好的便攜性與靈活性。
本發(fā)明解決其技術問題采用的技術方案是,一種基于坐姿深度圖像的坐姿檢測方法,包括以下步驟:
(1)通過深度傳感器獲取人體的坐姿深度圖像(本發(fā)明以320*240分辨率的坐姿深度圖像為例。如果是其他分辨率的深度圖像,則相應參數(shù)按比例進行變換)及坐姿深度圖像中所有像素點的深度距離值;
(2)對坐姿深度圖像進行分割,去除外部背景與人體的干擾,得到坐姿分割圖像;
(3)通過坐姿分割圖像求取關鍵點,關鍵點包括頭部頂點、頭部中心點、左肩點、右肩點、肩部中心點、身體中心點;
(4)根據(jù)關鍵點判定坐姿。
進一步,步驟(2)中,對坐姿深度圖像進行分割,去除外部背景與人體的干擾,得到坐姿分割圖像的具體方法如下:
(2-1)在坐姿深度圖像中,選擇兩個固定區(qū)域:第一個區(qū)域為矩形方框e,矩形方框e為坐姿深度圖中心處30*30像素的矩形方框;第二個區(qū)域為矩形方框f,矩形方框f的長為280像素,寬為200像素,以坐姿深度圖像的左下角點為原點,矩形方框f的中心點像素坐標為(160,120);矩形方框f上邊框的縱坐標用boxtop0表示,矩形方框f下邊框的縱坐標用boxbottom0表示,矩形方框f左邊框的橫坐標用boxleft0表示,矩形方框f右邊框的橫坐標用boxright0表示;
(2-2)獲取矩形方框e中所有像素點的平均深度距離值,定義為人體的最遠深度距離值
(2-3)均勻獲取坐姿深度圖像中的像素點,每隔10個像素提取一點,將每個點的深度距離值放入向量a[]中,并運用公式(1)得到所有的背景點;
其中,k為圖像中的像素點,a[k]為像素點的深度距離值;
(2-4)求得所有背景點中最小的深度距離值
(2-5)求取坐姿深度圖像除去矩形方框f的區(qū)域中所有像素點中最小的深度距離值為
(2-6)對坐姿分割圖像進行濾波處理,得到濾波后的坐姿分割圖像,
(2-7)根據(jù)濾波后的坐姿分割圖像,求取人體輪廓的最高點的縱坐標值topi、最低點的縱坐標值bottomi、最左邊點的橫坐標值lefti、最右邊點的橫坐標值righti;
(2-8)對下一幀坐姿深度圖像進行坐姿分割,如果上一幀坐姿分割圖像中不為零的像素點與上一幀坐姿分割圖像中所有像素點的比值大于10%并且小于80%,則令
令boxtopi+1=topi+15,boxbottomi+1=bottomi-15,boxlefti+1=lefti-15,boxrighti+1=righti+15,返回步驟(2-3);
如果上一幀坐姿分割圖像中不為零的像素點與上一幀坐姿分割圖像中所有像素點的比值大于80%或者小于10%,令boxtopi+1=boxtop0,boxbottomi+1=boxbottom0,boxlefti+1=boxleft0,boxrighti+1=boxright0,返回步驟(2-2)。
進一步,步驟(3)中,通過坐姿分割圖求取關鍵點的具體方法如下:
(3-1)從上到下對坐姿分割圖像的每一行進行掃描,得到坐姿分割圖像中每一行的人體寬度width={width1,width2,...,widthn},以及每一行人體寬度的左邊點的橫坐標
(3-2)獲取人體頭部頂點:從上到下找到第一條寬度不為0的所在行,即人體輪廓的頂點,將其作為頭部頂點;
(3-3)根據(jù)頭部頂點,求取頭部頂點以下30行的人體寬度平均值average,如果widthk=2average,則第k行對應肩部所在行,第k行的寬度即為肩部寬度;第k行的人體寬度左邊點即為人體左肩點;第k行的人體寬度右邊點即為人體右肩點;左肩與右肩的中心即為肩部中心點;
(3-4)頭部頂點與肩部之間的人體區(qū)域為頭部區(qū)域,求取頭部區(qū)域像素點的中心,即頭部中心點;
(3-5)肩部以下的人體區(qū)域為身體區(qū)域,求取身體區(qū)域像素點的中心,即身體中心點;
(3-6)運用張正友法進行相機標定,得到每個關鍵點的世界坐標。
進一步,步驟(3-1)中,獲取第m行人體寬度和第m行人體寬度的左邊點橫坐標以及右邊點橫坐標的具體方法如下:
遍歷第m行時,求得該行所有連續(xù)的線段,以及每條連續(xù)線段的左右點,確定最長的線段,并且以最長線段為基準,從左右兩邊分別查詢,如果相鄰線段離最長線段的距離小于10個像素點,就連接為一條線段,依次類推,直到所有的線段都查詢完畢,最后求得該行的最長線段即為人體寬度widthm,以及該最長線段的左邊點橫坐標為
進一步,步驟(4)中,根據(jù)關鍵點判定坐姿的具體方法如下:
如果頭部中心點-肩部中心點連線與水平方向的夾角為75°-105°,同時肩部中心點-身體中心點連線與水平方向的夾角為80°-100°,為正確坐姿;如果頭部頂點深度距離值比頭部中心點的深度距離值大20mm以上時,為仰頭;如果頭部頂點深度距離值比頭部中心點的深度距離值小20mm以上時,為低頭;如果頭部中心點與書桌邊緣前方20cm處的距離小于30cm,為近視姿態(tài);如果頭部中心點-肩部中心點連線與水平方向的夾角>105°,同時肩部中心點-身體中心點連線與水平方向的夾角為80°-100°,為左偏頭;如果頭部中心點-肩部中心點連線與水平方向的夾角<75°,同時肩部中心點-身體中心點連線與水平方向的夾角為80°-100°,為右偏頭;如果肩部中心點-身體中心點連線與水平方向的夾角<80°,為身體左斜;如果肩部中心點-身體中心點連線與水平方向的夾角>100°,為身體右斜;根據(jù)人體輪廓求取輪廓的外接矩形,如果矩形的高寬比小于0.6,為趴下;如果肩部中心點到身體中心點的深度距離值呈遞減趨勢,為后仰;將坐姿分割圖像進行垂直投影得到投影曲線,求取投影曲線最高點,隨后從左、右分別遍歷,如果上升高度超過20個像素點,為舉手;求取坐姿分割圖像的中心點,根據(jù)該中心點將圖像分為上下兩部分,如果上部分的最寬線段大于下部分的最寬線段,為伸展。
進一步,還包括坐姿提醒和坐姿統(tǒng)計。
與現(xiàn)有技術相比,本發(fā)明的優(yōu)點如下:
(1)本發(fā)明只需要將手機與深度傳感器連接,就能通過坐姿檢測軟件進行坐姿檢測,使用方便,使用范圍廣泛,不受環(huán)境、桌子等的影響,具有很好的便攜性與靈活性;
(2)本發(fā)明使用深度傳感器進行圖像采集,圖像信息準確高,圖像處理方便,并且不受光照與背景的影響;
(3)本發(fā)明運用深度傳感器采集人體坐姿深度圖像,通過對坐姿深度圖像的快速分割、坐姿關鍵點的獲取以及坐姿判定標準的制定,實現(xiàn)坐姿的快速、準確的檢測;
(4)本發(fā)明具有坐姿提醒、坐姿情況統(tǒng)計功能,能有助于用戶改正不良坐姿習慣,有效預防近視、腰椎疾病、頸椎疾病等。
附圖說明
圖1是本發(fā)明實施例所示坐姿檢測方法所對應的坐姿檢測系統(tǒng)。
圖2是本發(fā)明實施例所示坐姿檢測方法中的坐姿深度圖像中的矩形方框e和矩形方框f的示意圖。
圖3是本發(fā)明實施例所示坐姿檢測方法中的坐姿分割圖像中關鍵點的示意圖。
圖中,1—書桌,2—深度傳感器,3—手機,a—頭部頂點,b—頭部中心點,c1—左肩點,c2—肩部中心點,c3—右肩點,d—身體中心點,l1—頭部中心點-肩部中心點連線與水平方向的夾角,l2—肩部中心點-身體中心點連線與水平方向的夾角。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進一步詳細描述。
本實施例包括以下步驟:
(1)通過深度傳感器獲取人體的坐姿深度圖像(本實施例以320*240分辨率的坐姿深度圖像為例。如果是其他分辨率的深度圖像,則相應參數(shù)按比例進行變換)及坐姿深度圖像中所有像素點的深度距離值;
(2)對坐姿深度圖像進行分割,去除外部背景與人體的干擾,得到坐姿分割圖像;具體方法如下:
(2-1)參照圖2,在坐姿深度圖像中,選擇兩個固定區(qū)域:第一個區(qū)域為矩形方框e(坐姿深度圖中心處30*30像素的矩形方框);第二個區(qū)域為矩形方框f,矩形方框f的長為280像素,寬為200像素,以坐姿深度圖像的左下角點為原點,矩形方框f的中心點像素坐標為(160,120);矩形方框f上邊框的縱坐標用boxtop0表示,矩形方框f下邊框的縱坐標用boxbottom0表示,矩形方框f左邊框的橫坐標用boxleft0表示,矩形方框f右邊框的橫坐標用boxright0表示;
(2-2)獲取矩形方框e中所有像素點的平均深度距離值,定義為人體的最遠深度距離值
(2-3)均勻獲取坐姿深度圖像中的像素點,每隔10個像素提取一點,將每個點的深度距離值放入向量a[]中,并運用公式(1)得到所有的背景點;
其中,k為圖像中的像素點,a[k]為像素點的深度距離值;
(2-4)求得所有背景點中最小的深度距離值
(2-5)求取坐姿深度圖像除去矩形方框f的區(qū)域中所有像素點中最小的深度距離值為
(2-6)對坐姿分割圖像進行濾波處理,得到濾波后的坐姿分割圖像,
(2-7)根據(jù)濾波后的坐姿分割圖像,求取人體輪廓的最高點的縱坐標值topi、最低點的縱坐標值bottomi、最左邊點的橫坐標值lefti、最右邊點的橫坐標值righti;
(2-8)對下一幀坐姿深度圖像進行坐姿分割,如果上一幀坐姿分割圖像中不為零的像素點與上一幀坐姿分割圖像中所有像素點的比值大于10%并且小于80%,則令
令boxtopi+1=topi+15,boxbottomi+1=bottomi-15,boxlefti+1=lefti-15,boxrighti+1=righti+15,返回步驟(2-3);
如果上一幀坐姿分割圖像中不為零的像素點與上一幀坐姿分割圖像中所有像素點的比值大于80%或者小于10%,令boxtopi+1=boxtop0,boxbottomi+1=boxbottom0,boxlefti+1=boxleft0,boxrighti+1=boxright0,返回步驟(2-2);
(3)通過坐姿分割圖像求取關鍵點,關鍵點包括頭部頂點、頭部中心點、左肩點、右肩點、肩部中心點、身體中心點;具體方法如下:
(3-1)從上到下對坐姿分割圖像的每一行進行掃描,得到坐姿分割圖像中每一行的人體寬度width={width1,width2,...,widthn},以及每一行人體寬度的左邊點的橫坐標
獲取第m行人體寬度和第m行人體寬度的左邊點橫坐標以及右邊點橫坐標的具體方法如下:
遍歷第m行時,求得該行所有連續(xù)的線段,以及每條連續(xù)線段的左右點,隨后,確定最長的線段,并且以最長線段為基準,從左右兩邊分別查詢,如果相鄰線段離最長線段的距離小于10個像素點,就連接為一條線段,依次類推,直到所有的線段都查詢完畢,最后求得該行的最長線段即為人體寬度widthm,以及該最長線段的左邊點橫坐標為
(3-2)參照圖3,獲取頭部頂點a:從上到下找到第一條寬度不為0的所在行,即人體輪廓的頂點,將其作為頭部頂點a;
(3-3)根據(jù)頭部頂點a,求取頭部頂點a以下30行的人體寬度平均值average,如果widthk=2average,則第k行對應肩部所在行,第k行的寬度即為肩部寬度;第k行的人體寬度左邊點即為人體左肩點c1;
第k行的人體寬度右邊點即為人體右肩點c3;左肩與右肩的中心即為肩部中心點c2;
(3-4)頭部頂點a與肩部之間的人體區(qū)域為頭部區(qū)域,求取頭部區(qū)域像素點的中心,即頭部中心點b;
(3-5)肩部以下的人體區(qū)域為身體區(qū)域,求取身體區(qū)域像素點的中心,即身體中心點d;
(3-6)運用張正友法進行相機標定,得到每個關鍵點的世界坐標。
(4)根據(jù)關鍵點判定坐姿;
如果頭部中心點-肩部中心點連線與水平方向的夾角l1為75°-105°,同時肩部中心點-身體中心點連線與水平方向的夾角l2為80°-100°,為正確坐姿;如果頭部頂點深度距離值比頭部中心點的深度距離值大20mm以上時,為仰頭;如果頭部頂點深度距離值比頭部中心點的深度距離值小20mm以上時,為低頭;如果頭部中心點與書桌邊緣前方20cm處的距離小于30cm,為近視姿態(tài);如果頭部中心點-肩部中心點連線與水平方向的夾角l1>105°,同時肩部中心點-身體中心點連線與水平方向的夾角l2為80°-100°,為左偏頭;如果頭部中心點-肩部中心點連線與水平方向的夾角l1<75°,同時肩部中心點-身體中心點連線l2與水平方向的夾角為80°-100°,為右偏頭;如果肩部中心點-身體中心點連線與水平方向的夾角l2<80°,為身體左斜;如果肩部中心點-身體中心點連線與水平方向的夾角l2>100°,為身體右斜;根據(jù)人體輪廓求取輪廓的外接矩形,如果矩形的高寬比小于0.6,為趴下;如果肩部中心點到身體中心點的深度距離值呈遞減趨勢,為后仰;將坐姿分割圖像進行垂直投影得到投影曲線,求取投影曲線最高點,隨后從左、右分別遍歷,如果上升高度超過20個像素點,為舉手;求取坐姿分割圖像的中心點,根據(jù)該中心點將圖像分為上下兩部分,如果上部分的最寬線段大于下部分的最寬線段,為伸展。
(5)坐姿提醒;
對近視、身體左斜、身體右斜、左偏頭與右偏頭這5種不良姿態(tài)分別設定一個計時器,當人處于不良坐姿時,計時器開始工作,如果不良坐姿連續(xù)存在并且超過30s,就進行語音提醒,同時手機振動,促使其糾正坐姿。當其人回歸正確姿態(tài)時計時器清零,當再一次出現(xiàn)不良坐姿時計時器再次運行。
(6)坐姿統(tǒng)計;
對每一次學習工作時的所有坐姿進行統(tǒng)計,統(tǒng)計每種姿態(tài)出現(xiàn)的時間,最后分別與總的學習工作時間相比,得到每種姿態(tài)的百分比,并用餅狀圖的形式顯示,用于分析坐姿情況。
參照圖1,本發(fā)明的坐姿檢測方法設計成相應的坐姿檢測軟件在android平臺上進行實現(xiàn),android平臺為便攜式的手機3,手機與深度傳感器2連接,深度傳感器2安裝在書桌1上,深度傳感器2、手機3以及安裝在手機3內(nèi)的坐姿檢測軟件組成坐姿檢測系統(tǒng)。
本發(fā)明在進行坐姿檢測前,需要對深度傳感器的位置進行調(diào)整。使用時,將深度傳感器正對人體放置,深度傳感器距離桌面高度為40cm左右。由于深度傳感器具有規(guī)定的工作距離,同時考慮坐姿深度圖像應該將人體完全采集進去,最終確定深度傳感器距離人0.8-1.2m為深度傳感器最佳工作距離。深度傳感器開始工作時,首先求取坐姿深度圖像中心區(qū)域的矩形方框e的平均深度距離,當該平均深度距離比最佳工作距離近時,則提醒用戶將深度傳感器往后移動,反之向前移動。直到移動到最佳工作位置(0.8-1.2m之間),并且持續(xù)30s,才開始進行坐姿的檢測。
以學習者學習為例:開始學習前,學習者將深度傳感器擺放在自己的正前方,并通過otg線將深度傳感器與手機連接。隨后,打開手機上的坐姿檢測軟件,學習者根據(jù)坐姿檢測軟件的提示調(diào)整深度傳感器到最佳位置。然后,坐姿檢測軟件就會開始對學習者進行坐姿檢測。學習過程中,坐姿檢測軟件會對學習者的不良坐姿進行提醒。學習完成后,坐姿檢測軟件會顯示學習者整個學習過程中的坐姿餅狀圖,用于學習者了解自身的坐姿情況。
本發(fā)明只需要將手機與深度傳感器連接,就能通過坐姿檢測軟件進行坐姿檢測,使用方便,使用范圍廣泛,不受環(huán)境、桌子等的影響,具有很好的便攜性與靈活性;本發(fā)明使用深度傳感器進行圖像采集,圖像信息準確高,圖像處理方便,并且不受光照與背景的影響;本發(fā)明運用深度傳感器采集人體坐姿深度圖像,通過對坐姿深度圖像的快速分割、坐姿關鍵點的獲取以及坐姿判定標準的制定,實現(xiàn)坐姿的快速、準確的檢測;本發(fā)明具有坐姿提醒、坐姿情況統(tǒng)計功能,能有助于用戶改正不良坐姿習慣,有效預防近視、腰椎疾病、頸椎疾病等。
本領域的技術人員可以對本發(fā)明進行各種修改和變型,倘若這些修改和變型在本發(fā)明權利要求及其等同技術的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護范圍之內(nèi)。
說明書中未詳細描述的內(nèi)容為本領域技術人員公知的現(xiàn)有技術。