方海生 李忠志 費禹瀟 郭繼峰
摘 要: 隨著教育高速發(fā)展,教學演示越來越普遍,但是普通的激光筆已經(jīng)遠遠不能滿足需要,為了讓使用者在教學、演示時最大限度的發(fā)揮肢體語言的優(yōu)勢,徹底解決以往在課堂和會議上使用鼠標的不便,研究一種搭載便攜式激光鍵盤的激光筆設計是有必要的。文章對傳統(tǒng)幾何失真校正算法進行研究,提出一種不同角度的的校正算法,并以此構建一套實驗裝置,實驗表明效果良好。
關鍵詞: 激光筆; 激光鍵盤; 失真校正; STM32
中圖分類號:TP399 文獻標志碼:A 文章編號:1006-8228(2018)03-27-04
Design and realization of laser pen based on STM32 portable laser keyboard
Fang Haisheng, Li Zhongzhi, Fei Yuxiao, Guo Jifeng
(Northeast Forestry University College of Information and Computer Engineering, Harbin, Heilongjiang 150000, China)
Abstract: With the rapid development of education, teaching demonstration is more and more common, but the ordinary laser pointer is far from meeting the needs. In order to let the user maximize the advantages of body language while teaching and presenting, on the inconvenience of using the mouse to study a laser pointer with a portable laser keyboard design is necessary. In this paper, the traditional geometric distortion correction algorithm is studied, and a different angle correction algorithm is proposed. Based on this, a set of experimental apparatus is constructed, and the experiment shows that the effect is good.
Key words: laser pen; laser keyboard; distortion correction; STM32
0 引言
目前投影機在教育、培訓、商務展示行業(yè)遭遇了“應用危機”,問題是在多媒體教學普及的過程中,普遍存在如何引進現(xiàn)代化教學設備和老師們的課堂教學習慣有機結合的問題。基于這種情況,研究一款便攜式搭載激光鍵盤的激光筆的設想成為一種可能。本項目將激光鍵盤進一步改進,提出一種新的幾何失真校正算法,并利用無線傳輸功能將其在STM32處理器為核心的硬件系統(tǒng)上進行設計和實現(xiàn)。
1 總體設計與硬件實現(xiàn)
1.1 總體設計
根據(jù)以上需求特點,本設計的硬件平臺選擇STM32F103芯片作為核心處理器搭建的硬件電路。軟件平臺則選擇編寫控制芯片的下位機固件程序與PC機進行通信和共享。教學激光筆的系統(tǒng)總體結構包括:開發(fā)板部分(STM32F103開發(fā)板),接口電路部分(IIC接口電路),電源模塊??傮w設計框圖如圖1所示。
圖1 總體設計框圖
1.2 硬件設計
參考論文[5],在芯片選型上,考慮到圖像處理算法的使用及較大的數(shù)據(jù)計算任務,選用以Cortex-M3作為內核的STM32F103芯片作為核心處理器,選用OV7670型號的CMOS芯片的攝像頭模塊采集圖片信息.通過SCCB傳輸協(xié)議將拍攝的圖像傳至處理器,由圖像處理算法計算出坐標值,利用NRF24L01無線收發(fā)芯片模塊[4]將坐標信息傳送至另一端無線模塊,數(shù)據(jù)再經(jīng)由有線串口傳輸?shù)絇C端。具體實現(xiàn)無線鍵盤坐標信息的數(shù)據(jù)傳輸,硬件模塊結構如圖2所示。
圖2 硬件結構圖
2 算法設計與分析
2.1 算法思路及描述
本文提出的失真是指攝像頭與拍攝目標成一定角度的傾斜,因此在拍攝時產生失真,導致在實際圖像拍攝和坐標與鍵盤映射上都存在一定的困難,而激光鍵盤較為重要的一點就是能準確地將拍攝的圖像與實際鍵盤進行映射,為此基于三角測距原理[3]提出了一種幾何失真算法的新思路以消除失真所帶來的負面影響。攝像頭以一定的傾斜角放置在高度為h的位置。此時攝像頭所拍攝的圖像頭將會呈現(xiàn)一定的透視失真。具體位置擺放如圖3所示。
圖3 攝像頭擺放位置
如圖3所示,攝像頭以一定高度側拍鍵盤,采集到的圖像是一個不規(guī)則的四邊形,(設置攝像頭豎直投影在水平面的點和虛擬鍵盤的長邊中點連線剛好和長邊垂直),基于這種情況,本文提出了一種新的校正算法。鍵盤的成像圖像是一個梯形,這里,將會得到一個等腰梯形,但是本文的方法是從成像原理方面去進行還原和坐標轉換,所以此校正方法也適用于其他類似的情況。
2.1.1 縱坐標方向校正方法
首先建立坐標系;將整個鍵盤的圖片全部放在第一象限,以圖像鍵盤的左下角建立二維平面直角坐標x軸和y軸。
縱坐標方向上,攝像頭拍攝圖像時沿x軸方向的y方向的切面圖如圖4所示。
圖4 沿X軸方向切面圖
如圖4所示攝像頭拍攝的是一個弧面,但是為了便于計算,將其近似看成一個平面。在圖3中,圖像中y方向的值是y=CN弧面,這里將CN弧面長度近似等于CN弦長度,即y=CN弦。為了求到y(tǒng)'(真實的y方向的值),從A做角CAN的角平分線,從C點做AM的垂線與AM交于M點,交AD于N點。在這里有一個細節(jié)是y=CN大小的值,因為這里是用圖像的像素大小作為最小單位,所以對應的y和y'之間就存在一個倍數(shù)k,其關系為式⑴:
⑴
P為攝像頭在水平面的投影點到鍵盤的最遠距離,就是以投影點為原點的畫圓和鍵盤的相交的最大的一個半徑。q為圖像所能達到的最大的像素距離,這里取640,利用勾股定理得出:
⑵
在等腰三角形ACN中,中線、角平分線和垂線重合易得出:
⑶
⑷
⑸
⑹
⑺
最終得出式⑻:
⑻
2.1.2 橫坐標方向上的校正方法
攝像頭拍攝鍵盤時,沿y軸方向上的x軸的橫切面與上面的縱坐標求法類似,如圖5所示。
圖5 沿X軸方向切面圖
根據(jù)圖5所示,作角BAC的角平分線交BC于點D,過C點作CN垂直于AD于點M,交AB于N點。將CN弦近似等于CN弧;圖中的x軸方向的值就是圖中CN弧,近似看作CN弦,但是由于倍率問題,同縱坐標相同,橫坐標也具有倍數(shù)。其中:
⑼
注:以上兩圖是一個空間圖形的不同方向的切面。
利用三角形的邊和邊的比值做放大,因為隨著縱坐標的增加,AC的距離不斷增加,對應的CM弧也將不斷增大,所以需要同比例給CM放大。
放大后的x即CN弦為:
⑽
由勾股定理
⑾
所以可以得出真實的BC:
⑿
2.2 代碼實現(xiàn)(偽代碼)
2.2.1 x軸方向上的校正
double getx(double h,double l,double ty,double x) {
double z,jiao;
x*=k; /*x第一次放大,像素比例放大*/
z=sqrt(h*h+ty*ty); /*x軸方向的圖中AC的長度*/
x*=z/sqrt(h*h+l*l); /*x第二次放大,對比y軸放大*/
jiao=asin(x/2/z);
jiao*=2;
return z*sin(jiao);
}
2.2.2 y軸方向上的校正
double gety(double h,double l,double y) {
double z,jiao;
y*=k; /*y第一次放大,像素比例放大*/
z=sqrt(h*h+l*l); /*x軸方向的圖中AC長度*/
jiao=asin(y/2/z); /角CAM大小*/
jiao=jiao*2+asin(l/z);
return h*tan(jiao);
}
3 軟件系統(tǒng)設計與實驗驗證[2]
本系統(tǒng)的核心是軟件上的數(shù)據(jù)處理,為了能夠實現(xiàn)手指鍵入動作的判定,軟件分為可分為以下幾個部分,分步驟實現(xiàn)。其中圖6是軟件工作流程圖,圖7是功能實物圖。
[激光鍵盤投影][采集圖像][目標處理與識別][目標確認] [坐標系映射][按鍵功能傳入][執(zhí)行功能][是否繼續(xù)] [結束采集] [否] [是][是][否]
圖6 軟件工作流程圖
圖7 顯示結果及接收芯片的工作圖
4 結束語
在裝置實施方面,本文給出了一個完整的實施方案,構造出一個實際的裝置,基本達到最初的要求。算法方面,本文提出一種從物理的模型結構角度的校正算法,而張金《一種基于虛擬鍵盤圖像坐標變換的幾何失真校正方法》[1]一文也提出一種從圖像的幾何失真去不斷趨近的算法,相比來看,本文提出的算法效率會更高一點。下一步研究,我們可以提高激光筆和激光鍵盤的相容性,加強裝置對于環(huán)境的自適性。在文化普及程度很高的今天,教學演示工具的發(fā)展是必然趨勢,本文研究的帶有激光鍵盤的激光筆在這個領域會有很好的市場前景。
參考文獻(References):
[1] 張金,成媛媛,李洋,劉曉威.一種基于虛擬鍵盤圖像坐標變換
的幾何失真校正方法[J].計算機應用與軟件,2012.29(6):84
[2] 李振偉.基于圖像處理的半虛擬鍵盤的研究[D]. 華南理工大
學碩士學位論文,2013.
[3] 李淑玉,呂爭.基于機器視覺虛擬激光鍵盤的設計[J].寧波職
業(yè)技術學院學報,2015.19(6):79
[4] 王恒,王中訓,杜思良,胡小赫.基于ARM9的USB攝像頭圖
像采集壓縮及無線傳輸[J].器件與應用,2011.35(3):29
[5] 蔡睿研.激光虛擬鍵盤的設計與實現(xiàn)[J].激光與紅外,
2012.42(8):875