靳麗麗 吳平
摘 要:遠(yuǎn)程繪圖系統(tǒng)作為人機交互中的一種方法,有著深遠(yuǎn)的意義。如何充分運用現(xiàn)代的多媒體工具如投影儀、攝像機繪制出精確的圖片效果,成為研究的主要熱點。提出基于ARM-Linux的遠(yuǎn)程繪圖系統(tǒng),是使用USB攝像頭拍攝下平臺1上用戶所繪制的圖像,將采集到的圖像經(jīng)過JPEG的編碼壓縮到較高的壓縮比,再通過網(wǎng)絡(luò)實時傳輸至平臺2,并通過投影儀顯示,投影儀的投影亮度經(jīng)表面反射,進入攝像頭鏡頭,再反饋給平臺1。
關(guān)鍵詞:嵌入式 ARM Linux 攝像頭
中圖分類號:TP277 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-3973(2013)007-109-02
1 引言
隨著計算機技術(shù)的蓬勃發(fā)展,如何讓計算機更好的為人類服務(wù),人與計算機之間如何交互成為一個很重要的研究方向,遠(yuǎn)程繪圖系統(tǒng)就是一種解決遠(yuǎn)程交互的方法。
建設(shè)遠(yuǎn)程繪圖系統(tǒng)有若干種方法。一種方法是使用平板電腦的手寫筆進行繪制,使用電腦顯示器顯示遠(yuǎn)程站點的繪制。但這種系統(tǒng)有一定的弊端,在平板電腦上進行手繪相比使用普通紙筆手繪來說并不自然,陰影和其他效果很難實現(xiàn)。
另一個建立遠(yuǎn)程繪圖系統(tǒng)的方法是使用攝像頭拍攝平臺1的繪圖,并將視頻傳輸?shù)狡脚_2使用投影機顯示,投影儀的投影亮度經(jīng)過表面反射,進入攝像頭鏡頭,再反饋給平臺1。將投影儀與相機結(jié)合到一起,投影儀一相機系統(tǒng)自然應(yīng)運而生。其原理圖如圖1所示。
本文所介紹的是基于ARM920T 內(nèi)核的S3C2440AL開發(fā)板為基礎(chǔ)的遠(yuǎn)程繪圖系統(tǒng)的實現(xiàn),該系統(tǒng)是基于嵌入式硬件平臺和Linux 操作系統(tǒng)下進行的,采用USB 接口的攝像頭來進行數(shù)字圖像采集,利用JPEG視頻壓縮編碼方式,使用投影儀進行顯示。
圖1 系統(tǒng)硬件總體結(jié)構(gòu)
2 系統(tǒng)硬件平臺
2.1 硬件
每個遠(yuǎn)程繪圖系統(tǒng)平臺包含以下組件:
ARM開發(fā)板:CPU: Samsung S3C2440AL-40 400MHz;SDRAM: 32-bit 64Mbyte;2M Nor flash + 64M Nand Flash。
投影儀:魔影MOV269微型投影機,分辨率為640*480。
攝像頭:羅技快看暢想版UVC E1100。
支架:使用輸液架進行改裝。
2.2 幾何標(biāo)定相機與投影關(guān)系
圖像像素M經(jīng)過投影儀,投影到投影面P上,經(jīng)過投影面反射,被相機抓取成像,位置變?yōu)镹。確定投影圖像位置M和相機成像位置N之間的幾何映射關(guān)系,就是投影儀和相機間的幾何標(biāo)定。
計算機視覺研究中,三維空間中的物體到像平面的投影關(guān)系即為成像模型,針孔模型是光學(xué)中透視投影的理想模型。針孔模型假設(shè)物體表面的反射光都經(jīng)過一個針孔而投影到像平面上,即滿足光的直線傳播條件。在本系統(tǒng)中,假設(shè)紙張是平整的,而且投影儀與攝像頭遵循相同的透視投影模型,設(shè)攝像頭坐標(biāo)為(xc,yc),投影儀坐標(biāo)為(xp,yp),則攝像頭坐標(biāo)與投影儀坐標(biāo)關(guān)系為:
(1)
其中:Hpc是一個3X3矩陣,且紙張在同一平面時Hpc不會改變。
3 系統(tǒng)軟件平臺
由于嵌入式系統(tǒng)資源非常有限,包括內(nèi)存資源、CPU處理速度等,因而軟件設(shè)計的目的和思想就是在完成任務(wù)的同時盡可能地節(jié)約系統(tǒng)的資源提高系統(tǒng)的性能,因此本系統(tǒng)選用開源、免費、性能穩(wěn)定、可靠的Linux 操作系統(tǒng)。編譯環(huán)境采用交叉編譯調(diào)試的方式,交叉編譯器為arm-linux-gcc。嵌入式Linux 內(nèi)核Kernel 采用2.6.13版本,根文件系統(tǒng)使用ramdisk。
系統(tǒng)架構(gòu)。系統(tǒng)由4個線程組成:紙張檢測線程,繪圖線程,發(fā)送線程以及接收線程。其中紙張檢測線程檢測捕獲圖像中紙張位置;繪圖線程將顯示圖像填充OpenGL紋理緩沖區(qū);發(fā)送線程將YUV圖像轉(zhuǎn)換為RGB并壓縮傳送;接收線程解壓縮圖像并更新顯示圖像。其軟件系統(tǒng)架構(gòu)如圖2所示。
4 關(guān)鍵技術(shù)
在遠(yuǎn)程繪圖系統(tǒng)中,紙張檢測與圖像扭曲是最為關(guān)鍵的技術(shù)。將捕獲的圖像進行一系列的圖像處理后進行邊緣檢測,然后將邊緣像素進行直線擬合,確定紙張位置。采用仿射變換進行圖像扭曲,為了避免圖像出現(xiàn)間斷,將矩形細(xì)分成若干個小矩形后進行扭曲。
4.1 紙張檢測
將捕獲圖像將捕獲圖像轉(zhuǎn)換為灰度圖像并降低取樣速率在水平方向與垂直方向進行平滑處理后進行邊緣檢測,然后將邊緣像素進行直線擬合,確定紙張位置。
4.1.1 圖像處理
首先將捕獲的圖像進行一系列的處理:將捕獲圖像(640X480 YUV 4:2:2)轉(zhuǎn)換為灰度圖像并降低取樣速率為320X240。然后在水平方向與垂直方向進行平滑處理。
4.1.2 邊緣檢測
圖象的邊緣是指圖象局部區(qū)域亮度變化顯著的部分,該區(qū)域的灰度剖面一般可以看作是一個階躍,既從一個灰度值在很小的緩沖區(qū)域內(nèi)急劇變化到另一個灰度相差較大的灰度值。邊緣檢測的基礎(chǔ)是對梯度幅值設(shè)定閾值,對于捕獲圖像的每一個像素,計算X方向和Y方向的梯度強度。設(shè)I(x,y)表示像素(x,y)的強度,則像素(x,y)的梯度G(x,y)=(,)=(I(x+1,y)-I(x,y),I(x,y+1)-I(x,y)).
閾值的大小G(x,y)采用以下常量
()2+() 2≥C (2)
其中:C是常量,得到邊緣像素Ei:
Ei = (xi,yi, i) (i=1,2,…,n) (3)
(4)
4.1.3 直線擬合
將檢測到的紙張邊緣直線擬合,設(shè)直線方程為方程(5)
aX+bX+c=0 (5)
為了避免重復(fù)進行最小二乘計算,首先估計直線(a,b)邊緣平均角度的斜率,使得直線垂直于邊緣角度:
(6)
然后迭代執(zhí)行以下步驟:
(1)計算邊緣像素的平均坐標(biāo)X和Y。
(2)計算每條邊緣直線的距離。
(3)去除20%最遠(yuǎn)邊緣。
直到平均距離小于閾值。最后通過線性最小二乘法計算直線參數(shù)(a,b,c)。
4.2 圖像扭曲
在兩個空間位態(tài)的變換用矩陣的表示是再簡便不過了,矩陣在圖形圖像中大量使用,這里也利用矩陣來表示兩個圖像的映射關(guān)系。如果坐標(biāo)形式是:
則該變換稱為仿射變換。每一個變換后的坐標(biāo)u和v是原坐標(biāo)x和y的線性函數(shù),且參數(shù)均是由變換類型確定的常數(shù)。仿射變換有普遍的特性,即平行線變換到平行線且有限點變換到有限點。用齊次坐標(biāo)來表示:
系統(tǒng)采用OpenGL進行圖像的扭曲,當(dāng)扭曲一個矩形時,OpenGL會將這個矩形沿對角線分成兩個三角形然后采用仿射變換對這兩個三角形分別進行扭曲,導(dǎo)致扭曲后的四邊形沿對角線出現(xiàn)間斷。為了避免這種現(xiàn)象的產(chǎn)生,將檢測到的紙張圖像細(xì)分成16X16個矩形,然后計算出17X17個頂點坐標(biāo),最后采用OpenGL將16X16個矩形同時扭曲。
5 總結(jié)
本文設(shè)計,開發(fā)了一種基于ARM-LINUX的嵌入式S3C2410A微處理器的遠(yuǎn)程繪圖系統(tǒng)。該系統(tǒng)使用USB攝像頭拍攝一節(jié)點用戶所繪制的圖像,采集完的圖像經(jīng)過JPEG的編碼壓縮得到了較高的壓縮比,再通過網(wǎng)絡(luò)實時傳輸至另一個節(jié)點,并通過投影儀顯示,具有靈活性強和穩(wěn)定可靠等特點,同時加上嵌入式系統(tǒng)體積小、成本低、性價比高等,使人與人可以更好的進行遠(yuǎn)程交互。
參考文獻(xiàn):
[1] 陳雪梅.基于嵌入式系統(tǒng)的服裝CAD繪圖機的開發(fā)[D].天津工業(yè)大學(xué),2004.
[2] 張?zhí)?移動多媒體終端技術(shù)的研究及實現(xiàn)[D].青島理工大學(xué),2008.
[3] 張杰,張勇,黃道穎,等.基于IPv6的網(wǎng)絡(luò)家電遠(yuǎn)程控制系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機信息,2006(31).
[4] 金福輝.基于Intel Xscale270平臺與嵌入式Linux的圖像采集系統(tǒng)設(shè)計[D].山東大學(xué),2007.
[5] 尤曉敏.基于3G技術(shù)的視頻傳輸終端的設(shè)計[D].浙江工業(yè)大學(xué),2010.
[6] 林蕊.基于SIP的流媒體終端設(shè)計與實現(xiàn)[D].電子科技大學(xué),2012.