• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于機(jī)器視覺(jué)和激光投射技術(shù)的虛擬鍵盤設(shè)計(jì)

      2020-06-10 07:43:00
      沿海企業(yè)與科技 2020年2期
      關(guān)鍵詞:按鍵鍵盤攝像頭

      肖 峰

      一、引 言

      隨著計(jì)算機(jī)技術(shù)的廣泛普及,人們對(duì)鍵盤這一重要的計(jì)算機(jī)輸入設(shè)備日益重視。傳統(tǒng)的機(jī)械鍵盤雖然在物理反饋機(jī)制上優(yōu)勢(shì)明顯,但卻存在體積較大、質(zhì)量較大等問(wèn)題,越來(lái)越不能滿足用戶希望輸入設(shè)備輕便小巧、攜帶方便的剛性需求。虛擬鍵盤能夠有效解決這一問(wèn)題。

      近年來(lái),國(guó)內(nèi)外眾多學(xué)者對(duì)虛擬鍵盤進(jìn)行了廣泛且深入的研究。王久鵬等人結(jié)合嵌入式技術(shù)和圖像處理技術(shù),研究設(shè)計(jì)了一套激光投影虛擬鍵盤設(shè)備[1]。杜曉東等人通過(guò)創(chuàng)建字庫(kù)、設(shè)置接口并結(jié)合數(shù)據(jù)庫(kù)查詢的方法,設(shè)計(jì)實(shí)現(xiàn)了在多平臺(tái)下跨越QT版本限制的虛擬鍵盤[2]。張?jiān)频热颂岢銮度胧郊軜?gòu)設(shè)計(jì)方案并實(shí)現(xiàn)了具有高度擴(kuò)展性和實(shí)時(shí)性的虛擬軟鍵盤[3]。李攀等人對(duì)一種利用拇指控制的觸屏手機(jī)虛擬鍵盤按鍵提取方法進(jìn)行了研究[4]。吳邊等人對(duì)基于P300電位的新型BCI中文輸入虛擬鍵盤系統(tǒng)進(jìn)行了研究[5]。張琪等人將現(xiàn)有和弦虛擬鍵盤分為一般和弦虛擬鍵盤和基于布萊葉點(diǎn)字法的和弦虛擬鍵盤兩大類,并對(duì)其未來(lái)的研究、應(yīng)用進(jìn)行了展望[6]。李振偉等人對(duì)離線建模法在虛擬鍵盤中的應(yīng)用進(jìn)行了研究,為開發(fā)能高精度定位鍵盤位置的虛擬鍵盤提供了新的設(shè)計(jì)方法[7]。欒祿祥基于GPRS和激光虛擬鍵盤設(shè)計(jì)了一款智能電子門鎖系統(tǒng),探究了虛擬鍵盤在智能電子門鎖系統(tǒng)上的應(yīng)用[8]。陳瑋君創(chuàng)新地提出家電通用遙控技術(shù)方案,研究了虛擬鍵盤在家電通用遙控方面的應(yīng)用[9]。

      本文基于機(jī)器視覺(jué)和激光投射技術(shù),利用Open Source Computer Vision Library平臺(tái)設(shè)計(jì)了一款實(shí)用性較強(qiáng)的虛擬鍵盤。其不僅精度較高,且成本低廉、制作簡(jiǎn)單、使用方便,可廣泛適用于家庭、辦公室、醫(yī)療設(shè)備、教室等多種場(chǎng)所。

      二、虛擬鍵盤的設(shè)計(jì)及工作原理

      (一)鍵盤畫面的產(chǎn)生

      在市面上已有的或已設(shè)計(jì)的虛擬鍵盤系統(tǒng)中[10—12],部分虛擬鍵盤系統(tǒng)的鍵盤畫面是通過(guò)激光加上高速光學(xué)偏鏡的方法產(chǎn)生的,這種方法在實(shí)際生產(chǎn)制作過(guò)程中面臨著需要采用精密機(jī)械部件而導(dǎo)致其成本高昂、不夠輕便等問(wèn)題。本文設(shè)計(jì)的基于機(jī)器視覺(jué)和激光投射技術(shù)的虛擬鍵盤采用全息投影技術(shù),激光器通過(guò)照射預(yù)先保存有鍵盤畫面的全息鏡片,進(jìn)而在目標(biāo)平面上產(chǎn)生相應(yīng)畫面的方法產(chǎn)生鍵盤畫面。

      1.激光投射

      紅外激光是波長(zhǎng)比紅光長(zhǎng)的非可見(jiàn)光,是激光的一種,其發(fā)光波長(zhǎng)為760nm—1mm[13]。由于激光具有功耗較低、集成度效果好、發(fā)光頻率專一、人眼覺(jué)察不到等優(yōu)點(diǎn),同時(shí)考慮到使用者的人身安全和鍵盤是一個(gè)平面的特點(diǎn),本文設(shè)計(jì)的基于機(jī)器視覺(jué)和激光投射技術(shù)的虛擬鍵盤采用線角度為120°、30mW、980nm的一字形紅外激光作為信號(hào)檢測(cè)光源。

      (二)鍵盤輸入的檢測(cè)

      鍵盤畫面可以投射在任意表面上,因此需要非接觸的手段實(shí)現(xiàn)鍵盤輸入的檢測(cè)。在市面上已有的或已設(shè)計(jì)的虛擬鍵盤系統(tǒng)中,實(shí)現(xiàn)鍵盤輸入的檢測(cè)主要有兩種方法。一是通過(guò)檢測(cè)按鍵發(fā)出的聲音來(lái)進(jìn)行判斷[14]。假定使用者按鍵過(guò)程中在鍵盤投射面會(huì)產(chǎn)生一定的敲擊聲,通過(guò)檢測(cè)該聲音傳播時(shí)間等信息進(jìn)行定位,從而判斷出鍵盤輸入的事件。二是通過(guò)超聲波雷達(dá)手段進(jìn)行判斷[15][16]。發(fā)射超聲波并檢測(cè)反射波的傳播時(shí)間差來(lái)檢測(cè)目標(biāo)物體的位置,繼而判斷出鍵盤輸入的事件。

      基于對(duì)系統(tǒng)軟硬件需求的綜合考慮,本文采用機(jī)器視覺(jué)的方式,讓攝像頭捕捉鍵盤區(qū)域的畫面并通過(guò)圖像來(lái)進(jìn)行識(shí)別分析,進(jìn)而判斷出鍵盤輸入的事件。

      1.機(jī)器視覺(jué)的實(shí)現(xiàn)方法

      在市面上已有的或已設(shè)計(jì)的虛擬鍵盤系統(tǒng)中,部分虛擬鍵盤系統(tǒng)采用微軟的KINECT深度傳感器或采用雙攝像頭做雙目視覺(jué)處理(如圖1所示)。通過(guò)設(shè)計(jì)視覺(jué)處理算法,在一幅畫面中找出每根手指相對(duì)畫面的位置(x,y),以及手指距離桌面的高度z,得到手指的三維空間坐標(biāo)(x,y,z)。本文考慮到這樣的處理比較消耗處理資源,且校正過(guò)程比較復(fù)雜,因此采用與基于三角測(cè)距原理的激光測(cè)距儀一致的方法,通過(guò)主動(dòng)投射激光來(lái)實(shí)現(xiàn)目標(biāo)物體的三維坐標(biāo)檢測(cè)。也有學(xué)者研究使用一束線性激光照射目標(biāo)物體,在目標(biāo)物體的反射光被攝像頭捕捉到后,利用三角測(cè)距原理,通過(guò)三角關(guān)系,求出目標(biāo)物體中被線性激光照亮部分的坐標(biāo)信息[17][18]。

      圖1 RoboPeak團(tuán)隊(duì)的雙目視覺(jué)深度提取實(shí)驗(yàn)

      2.攝像頭捕捉

      攝像頭(Camera)是一種視頻輸入設(shè)備,它能夠把光信號(hào)轉(zhuǎn)變成電信號(hào)[19]。根據(jù)攝像頭的圖形傳感器在集成材料上的不同,可以分為兩類,一類是CCD(電荷耦合器件),還有一類是CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)[20][21]。本設(shè)計(jì)使用的是CCD感光元件。CCD感光元件一般由硅構(gòu)成,由于硅的紅外敏感度較高,因此能用此類攝像頭檢測(cè)紅外線。其系統(tǒng)結(jié)構(gòu)框圖及按鍵輸入檢測(cè)如圖2所示。

      圖2 系統(tǒng)結(jié)構(gòu)框圖及按鍵輸入檢測(cè)

      3.方法優(yōu)勢(shì)

      采用類似于LLP方式多點(diǎn)觸控技術(shù)(如圖3所示)的方法,具有很多無(wú)可比擬的優(yōu)勢(shì)。當(dāng)手指遮擋激光平面后產(chǎn)生了反射,因此會(huì)在攝像頭畫面中出現(xiàn)較為明亮的光斑,通過(guò)簡(jiǎn)單的視覺(jué)算法提取并檢測(cè)指尖位置,從而準(zhǔn)確判斷出鍵盤輸入事件。同時(shí),由于只有當(dāng)手指靠近或者觸碰到桌面時(shí)才會(huì)遮擋住激光并產(chǎn)生反射光,而在距離桌面較高的位置則不會(huì)被檢測(cè)算法察覺(jué),因此檢測(cè)按鍵事件時(shí)只要檢測(cè)算法檢測(cè)到手指反光,則可以認(rèn)為出現(xiàn)了按鍵事件,且可直接用當(dāng)前檢測(cè)到的坐標(biāo)來(lái)進(jìn)行后續(xù)處理,而不需要通過(guò)檢測(cè)手指距離桌面的高度來(lái)進(jìn)行判斷。

      圖3 LLP方式多點(diǎn)觸控技術(shù)

      (三)具體判斷并產(chǎn)生對(duì)應(yīng)的按鍵事件

      在GUI系統(tǒng)進(jìn)行UI元素碰撞判斷中(如圖4所示),圖形系統(tǒng)里所有UI元素均保存有其相對(duì)于屏幕的坐標(biāo)值[22]。GUI系統(tǒng)不停地判斷當(dāng)前鼠標(biāo)指針位置是否落入了某一個(gè)按鈕或者選擇框的坐標(biāo)范圍內(nèi)[23]。

      圖4 GUI對(duì)比判斷系統(tǒng)

      圖5 映射按鍵判斷

      與GUI系統(tǒng)類似,本設(shè)計(jì)建立如圖5所示的映射按鍵判斷機(jī)制。首先建立投射鍵盤圖案中每個(gè)按鍵的坐標(biāo)信息,以激光發(fā)射器為原點(diǎn)的指尖坐標(biāo)p(x,y)映射到以鍵盤圖案左上角為原點(diǎn)坐標(biāo)的平面內(nèi),得到映射點(diǎn) p’(x,y),然后將映射點(diǎn) p’(x,y)與事先記錄的每個(gè)按鍵的坐標(biāo)值對(duì)比,求得當(dāng)前對(duì)應(yīng)按下的按鍵值[22]。最終通過(guò)操作系統(tǒng)觸發(fā)一個(gè)對(duì)應(yīng)鍵值的按鍵事件。為提高系統(tǒng)性能,本文使用由Martin F.Krafft開發(fā)的基于C++模板的Kd-tree實(shí)現(xiàn)libkdtree++,進(jìn)而通過(guò)快速查找的方式實(shí)現(xiàn)對(duì)比。

      三、虛擬鍵盤的制作及性能測(cè)試

      (一)使用的器材

      虛擬鍵盤制作使用的器材如表1所示。

      表1 系統(tǒng)硬件器材及參數(shù)規(guī)格

      (二)硬件的制作

      1.拆除廣角鏡頭上的紅外光截止濾光片,并在鏡頭頭部安裝紅外帶通濾光片。

      2.攝像頭使用一條USB電纜,系統(tǒng)直接通過(guò)USB 5V供電驅(qū)動(dòng)另外2個(gè)激光器。電路通過(guò)使用3.3V的LEO芯片控制。

      3.紅外一字線性激光器安裝在設(shè)備的最底部,以保證產(chǎn)生的激光平面能夠盡可能地靠近投影面平面。在激光器上方安裝投射鍵盤圖案的激光模組,高度由能夠投射出與常規(guī)鍵盤尺寸大小類似的圖案決定。在最頂端安裝攝像頭,使其能完整拍攝到整個(gè)鍵盤畫面(映射高低差異如圖6所示)。

      圖6 映射高低差異示意

      (三)視覺(jué)處理

      視覺(jué)處理在PC上進(jìn)行,使用OpenCV庫(kù)進(jìn)行視覺(jué)運(yùn)算代碼的開發(fā)。在進(jìn)行指尖提取和坐標(biāo)求解前,需要對(duì)攝像頭捕獲的原始畫面做一些前期處理,以方便后續(xù)的計(jì)算。

      1.鏡頭扭曲校正

      為增大拍攝圖像面積,本制作使用廣角鏡頭,但廣角攝像頭拍攝到的畫面存在比較明顯的扭曲。而這種扭曲變換是非線性的,難以直接進(jìn)行處理計(jì)算出后續(xù)需要的坐標(biāo)信息。因此,在將鏡頭上的紅外光截止濾光片拆除并在鏡頭頭部安裝紅外帶通濾光片之前,采用比OpenCV函數(shù)校正效果更好的如圖7所示的matlab攝像頭校正工具對(duì)攝像頭鏡頭進(jìn)行鏡頭扭曲校正。在使用Chessboard完成圖案校正后,再使用OpenCV的cvRemap函數(shù)通過(guò)校正數(shù)據(jù)將扭曲的畫面重新修正,修正前后的效果如圖8所示。此后使用OpenCV中對(duì)應(yīng)的函數(shù)依次進(jìn)行灰度化、高斯濾波、閾值化、形態(tài)學(xué)濾波處理(如圖9所示)。各類濾波處理后的效果如圖10所示。

      圖7 Matlab中的Camera Calibration Toolbox

      圖8 鏡頭扭曲校正

      圖9 紅外帶通濾光片過(guò)濾可見(jiàn)光干擾

      2.興趣點(diǎn)提取

      得到光斑畫面后,使用OpenCV中的cvFind-Contours工具提取輪廓,進(jìn)而求解每個(gè)光斑區(qū)域在圖像中的位置,其整體流程如圖11所示,使用輪廓提取手段提取手指區(qū)域坐標(biāo)效果如圖12所示。同時(shí)利用質(zhì)心法并以光斑亮度作為權(quán)重,大致求解出每個(gè)指尖中心的大致坐標(biāo)。

      圖11 興趣點(diǎn)提取流程

      圖12 使用輪廓提取手段提取手指區(qū)域坐標(biāo)

      3.坐標(biāo)計(jì)算和校對(duì)

      在得到手指光斑中心點(diǎn)相對(duì)于畫面的坐標(biāo)后,可以通過(guò)三角測(cè)距的方法,求出手指在桌面平面內(nèi)的坐標(biāo) p(x,y)。

      4.按鍵映射和校正

      將手指放在鍵盤圖案的某幾個(gè)“按鍵”上,然后將當(dāng)前的坐標(biāo) p(x,y)與所“按”“按鍵”在鍵盤圖案的坐標(biāo)進(jìn)行對(duì)比[22]。理想狀態(tài)下,每個(gè) p(x,y)與對(duì)應(yīng)的理論值都偏移了一個(gè)固定的位移量D。但因校正過(guò)程中引進(jìn)的誤差,每次測(cè)量時(shí)的偏差量D’與理想的位移量都存在一個(gè)誤差偏移Derror(如圖13所示)。本設(shè)計(jì)通過(guò)采用多次測(cè)量進(jìn)行最小二乘擬合的方式消除誤差Derror(如圖14所示),得到一個(gè)近似于D的校正值,并將按鍵坐標(biāo)等信息保存在一維數(shù)組中(如圖15所示),標(biāo)定參數(shù)輸出。

      圖13 重投影誤差分析

      圖14 標(biāo)定圖片3D重現(xiàn)

      圖15 使用一維數(shù)組保存每個(gè)按鍵信息

      (四)按鍵事件模擬注入

      Windows系統(tǒng)提供的SendInput API允許應(yīng)用程序向整個(gè)系統(tǒng)注入任意的鍵盤事件,且在實(shí)際效果上已經(jīng)和編寫驅(qū)動(dòng)程序的效果沒(méi)有區(qū)別,系統(tǒng)輸入法等特性也可以很好的支持,因此設(shè)計(jì)的基于機(jī)器視覺(jué)和激光投射技術(shù)虛擬鍵盤采用Windows系統(tǒng)提供的SendInput API在模擬組合鍵和連發(fā)事件后向系統(tǒng)注入鍵盤事件。通過(guò)此方式,保證了所有的處理程序都在用戶態(tài)模式運(yùn)行,可以很容易地把代碼移植到MacOS或者Linux系統(tǒng)下運(yùn)行,大大增強(qiáng)了虛擬鍵盤的適用范圍和實(shí)用性。

      (五)界面反饋

      通過(guò)OpenCV的繪圖功能,繪制一個(gè)如圖16所示的簡(jiǎn)單程序界面,讓每個(gè)處理狀態(tài)都實(shí)時(shí)顯示在界面中。

      圖16 處理狀態(tài)顯示界面

      四、總 結(jié)

      依托機(jī)器視覺(jué)和激光投射技術(shù)設(shè)計(jì)的虛擬鍵盤,整體基于測(cè)距算法的優(yōu)勢(shì),可以識(shí)別出0.1mm的細(xì)微手指移動(dòng),并且通過(guò)校正達(dá)到2mm的最大誤差水平,支持任意多個(gè)按鍵的同時(shí)輸入,最快響應(yīng)頻率為30Hz。

      另外,本設(shè)計(jì)在考慮采用更高fps的USB攝像頭、更大視角的攝像頭鏡頭、將算法移植到嵌入式DSP或者ARM芯片、加裝WIFI或藍(lán)牙實(shí)現(xiàn)無(wú)線傳輸、編寫鍵盤容錯(cuò)算法處理和輔助按鍵輸入功能等情況下,可進(jìn)一步增大響應(yīng)頻率、縮小整體裝置的體積,增強(qiáng)裝置的便攜性和實(shí)用性,提高實(shí)際使用價(jià)值。

      總的來(lái)說(shuō),本文設(shè)計(jì)的虛擬鍵盤在便捷性等方面有一定優(yōu)勢(shì),性能足以滿足日常使用,具有一定的實(shí)用價(jià)值和推廣價(jià)值。

      猜你喜歡
      按鍵鍵盤攝像頭
      浙江首試公路非現(xiàn)場(chǎng)執(zhí)法新型攝像頭
      你知道手機(jī)撥號(hào)鍵盤上為什么要有*和#嗎?
      攝像頭連接器可提供360°視角圖像
      鍵盤貓
      基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
      電子制作(2021年3期)2021-06-16 03:14:26
      Cлово месяца
      ikbc R300機(jī)械鍵盤
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
      電子制作(2016年1期)2016-11-07 08:43:05
      奔馳360°攝像頭系統(tǒng)介紹
      按鍵的多種狀態(tài)檢測(cè)及消抖處理方法
      家電科技(2013年4期)2013-07-09 10:55:08
      醴陵市| 门源| 从化市| 金寨县| 英超| 平南县| 江阴市| 田阳县| 西昌市| 荥经县| 沅江市| 阿图什市| 出国| 石狮市| 岳池县| 太仓市| 绵竹市| 横山县| 弥勒县| 融水| 龙川县| 美姑县| 沾化县| 永靖县| 石河子市| 轮台县| 沅陵县| 赣榆县| 桂林市| 巨鹿县| 电白县| 东莞市| 阿合奇县| 梨树县| 枣阳市| 东乡族自治县| 仁布县| 海林市| 防城港市| 拜泉县| 霍州市|