朱嘉林,張佳宇,鄧 君,譚凱元,孫振忠
(東莞理工學院機械工程學院,廣東東莞 523000)
近些年來青少年近視問題越來越嚴重,據國家衛健委最新數據,2020年我國兒童青少年總體近視率是52.7%,幼兒園近視率達14.3%,小學階段35.6%,初中階段71.1%,而高中階段達80.5%[1]。閱讀時姿勢不正確是引起青少年近視的原因之一,而成年人則可能因為懶散而沒有保持正確坐姿,這些習慣會對身體健康造成長期損害,例如引起駝背、頸痛、斜視、擾亂睡眠、背疼等問題[2]。
針對不良讀書坐姿問題,目前國內外的研究方向多為穿戴式矯正方式[3-4],如以壓力傳感器的方式[5]對坐姿分類識別,并未能將壽命更長,成本更低的機器視覺技術與產品結合。目前有關機器視覺坐姿識別算法的研究可歸納為兩類:單攝像頭的方法[6-7]和多攝像頭的方法,單攝像頭的模型大多數要求整個人在畫面中可見,這為在閱讀支架上的使用增加了難度。若能使用單一攝像頭識別出使用者的坐姿,將更加節省成本[8]。因此如果設計一款糾正不良坐姿的單一USB攝像頭閱讀支架,將有助于解決上述問題。
該款閱讀支架基于樹莓派平臺,使用由Google Research開發并開源的多媒體機器學習模型應用框架進行坐姿識別,并搭載WS2812彩燈、8歐揚聲器音頻模塊和光敏電阻傳感器模塊等,除了實現主要功能分類矯正坐姿外,還能實現臺燈自適應調光、放置不同大小厚度的書籍、播放眼保健操等功能[9]。
本文設計的閱讀支架是一種置于臥室書桌上便于輕松閱讀大、中、小各種規格的書籍的支架,它由箱底座、LED燈、伸縮機構等模塊組成,各模塊大小合理,工作協調,為使用者提供一個舒適的閱讀體驗。
本設計的閱讀支架除了實現矯正坐姿的主要功能外,也滿足了作為閱讀支架的基本功能[10]。設計了實現擋位自由調節的機構,可選擇合適自己的閱讀角度;獨特的伸縮夾書機構,可放置不同大小,不同厚度的書籍,同時也能輕松翻書,提高效率;結構模型如圖1所示。
圖1 閱讀支架模型
箱底座主要由6塊亞克力板組合而成,考慮到該閱讀支架的語音提示功能,前面的亞克力板鏤空安裝一個揚聲器,為了更好地檢測使用者周圍的光線亮度,在前面的亞克力板安裝一個光敏電阻傳感器;底部的亞克力板與桌面接觸,添加4個橡膠片,增大摩擦,使閱讀支架更加穩定的擺放;后面的亞克力板設計了與蛇形管連接的端口,以及留了幾個散熱口;上方的亞克力板則設計了幾個縱向整齊排列的突起結構,與支持件共同工作,使閱讀支架可在不同擋位調整高度。箱底座內部用于放置樹莓派、Arduino Mega2560控制板、電池、Micro SD卡模塊各種電子元器件,同時起到保護作用。
底座后部伸出一根蛇形管,上端連接一個圓環led燈模塊,可以調整蛇形管改變led燈的照射方向、照射高度,同時蛇形管也可有效地保護電線不被破環。
考慮到閱讀支架的放置范圍為書桌等位置,占用面積不會太大,但是又考慮到書籍的大小有不同規格,因此設計體積較小且可夾持不同大小書籍的伸縮機構,使用者可以通過調節伸縮機構,放置自己想讀的書籍,可以靈活調節,適應性強。伸縮機構由10個伸縮構件組裝而成,中間兩個伸縮構件通過一顆螺絲與亞克力板安裝在一起,其他伸縮構件通過M5螺栓連接,再通過引導槽限制其上下移動,使伸縮結構只能左右伸縮。圖書夾用于夾持書籍,同時不會遮擋到書籍內容,可靠實用。
上位機采用樹莓派4B平臺,樹莓派4B的BCM2711芯片采用四核Cortex A72架構,28 nm工藝,主頻1.5 GHz,GPU 500 MHz,是一臺計算能力強大的嵌入式微型工控機。下位機采用Arduino Mega 2560單片機,Arduino Mega 2560是基于ATmega2560的微控制板,有54路數字輸入/輸出端口(其中15個可以作為PWM輸出),16路模擬輸入端口,4路UART串口,16 MHz的晶振,USB連接口,電池接口,ICSP頭和復位按鈕。簡單地用USB連接電腦或者用交直流變壓器就能使用。其沒用FTDI USB-to-serial驅動芯片,而是用ATmega16U2編程作為USB-to-serial傳輸器(V1版本使用8U2)[11]。上位機樹莓派接收攝像頭傳來數據后輸送給下位機Arduino,實現相應功能。
系統啟動后,樹莓派運行OpenCV調用攝像頭開始收集圖像數據,如果畫面中檢測不到人物,臺燈及其他元件保持關閉狀態。人物圖像數據經過Media Pipe處理后得到姿勢地標模型數據,數據經過機器學習模型后得到相應的坐姿類別,最后使用語音模塊提醒矯正。整個閱讀支架運行算法系統流程如圖2所示。
圖2 控制系統流程
臺燈裝置包括WS2812燈環和光敏電阻傳感器兩部分。通過光敏電阻傳感器采集光照亮度后輸出的PWM脈沖寬度經過Arduino單片機數據轉換,由WS2812模塊運用Fast LED庫控制臺燈亮度的變化,實現根據環境光照的強度自動調節臺燈的亮度[12]。同時根據攝像頭判斷如若當前區域無人,自動關閉臺燈裝置。起到環保以及保護眼睛的作用。
Fast LED是一款功能強大、快速高效、簡單易用的控制WS2812、LPD8806、Neopixel等LED光帶的實用工具。此外,Fast LED還支持完整的HSV顏色模型和經典的RGB顏色系統,以高效的計算效率實現對LED燈的控制。
光敏傳感器(電路圖如圖3所示)的原理是隨著光照強度的升高,電阻值迅速降低,由于光照產生的載流子都參與導電,在外電場的作用下作漂移運動,電子奔向電源的正極,空穴奔向電源的負極,從而使光敏電阻器的阻值迅速下降。其在無光照時,幾乎呈高阻狀態,暗電阻很大。
圖3 光敏電阻電路
語音裝置包括8歐揚聲器音頻模塊、Micro SD卡模塊、SD卡、BD139三極管和100μF電解電容。Micro SD卡模塊可以將SD卡中已經轉換好的WAV格式的PCM音頻輸入到單片機中,經過100μF電容后在8歐揚聲器模塊輸出。實現錯誤坐姿提醒和播放眼保健操。
BD139三極管主要用來控制電流的大小,起到電流放大作用。其實質是能以基極電流微小的變化量來控制集電極電流較大的變化量。集電極電流隨基極電流的變化而變化,并且基極電流很小的變化可以引起集電極電流很大的變化。
坐姿識別方案是一種基于Media Pipe的機器視覺模型,與大多數的坐姿識別模型不同,該方案無需要求整體可見,適合在閱讀支架上使用。
Media Pipe的核心框架由C++實現,并提供Java以及Objective C等語言的支持。Media Pipe的主要概念包括數據包、數據流、計算單元、圖以及子圖。數據包是最基礎的數據單位,一個數據包代表了在某一特定時間節點的數據,例如一幀圖像或一小段音頻信號;數據流是由按時間順序升序排列的多個數據包組成,一個數據流的某一特定時間戳只允許至多一個數據包的存在;而數據流則是在多個計算單元構成的圖中流動。Media Pipe圖是有向的——數據包從數據源流入圖直至在匯聚結點離開[13]。
具體方案為采用OpenCV調取USB攝像頭采集姿勢地標模型數據,將采集到的22種數據和66個數據特征在樹莓派中逐一進行分類整合。一旦圖形已經被初始化,就可以開始處理數據,并且可以處理分組的流,直到每個流是封閉的或圖形被取消。然后圖形可以被銷毀或重新啟動。之后針對坐姿分為6類:正常坐姿、左傾、右傾、前傾、后仰、托手。使用USB攝像頭實時檢測用戶坐姿如圖4所示,并通過語音播放裝置提醒。
圖4 實時檢測坐姿
模型使用了檢測器,管道首先在幀內定位人/姿勢感興趣區域(ROI)。跟蹤器隨后使用ROI裁剪幀作為輸入來預測ROI內的姿勢標志和分割掩碼。處理發生在一個圖中,它定義了節點之間的數據包流路徑。圖可以有任意數量的輸入和輸出,數據流可以分支和合并。通常數據向前流動,但反向循環也是可能的[14]。
為了驗證該閱讀支架的實際使用效果,項目團隊制作了實物(圖5),并選擇中午12點和晚上9點兩個時間點在不同房間以及對不同使用者進行實驗。此外,還在實驗中增加了一些額外因素,例如多人出現在鏡頭前方、光線不足等情況。
圖5 閱讀支架實物
經過多次實驗驗證,閱讀支架矯正坐姿的準確率能達到理想要求,某一位使用者的姿勢地標數據如圖6所示。除此之外,本樣品也能滿足大部分使用者的閱讀需求,可放置不同大小厚度的書籍。對于光線不足的情況,LED燈自動調節的亮度能夠滿足閱讀需求。
圖6 姿勢地標數據集
本文主要完成了一種基于機器視覺的閱讀姿態矯正系統的總體功能設計,在結構設計上滿足了閱讀支架的基本需求,并通過樹莓派與USB攝像頭連接后實時檢測當前區域人物的姿勢地標數據,經過機器視覺模型分類后由語音播放模塊提醒矯正。經過實驗驗證,該閱讀支架具有較高的坐姿分類準確率和較好的讀書使用體驗,在結構上需要繼續優化設計,往成本更低,占用面積更小方向研究發展。
在當今社會,保持日常閱讀習慣有助于身心健康發展。該作品將坐姿識別技術與閱讀支架結合,能夠滿足人們對閱讀習慣培養的需要,具有實際的效益。