陳鎮龍,郝 霞,劉 霖,劉娟秀,葉玉堂,羅 穎,宋昀岑
(電子科技大學 光電信息學院,四川 成都 610054)
基于多線陣CCD的大幅面拼接型高精度一次成像掃描儀的研制一直是國內、外學者及產業界關注的重點領域[1-3],但由于是光、機、電、軟、算綜合型極強的設備,涉及到的研究難點包括精密走紙機構[4]、大容量圖像快速高精度拼接[5]、大容量圖像矢量轉換[6]、光學照明成像[7]等諸多難題,迄今為止,全部關鍵核心技術仍然只被丹麥Contex、日本Graphtec等少數國外研究團隊掌握,國內所使用的基于多線陣CCD的大幅面拼接型高精度一次成像掃描儀全部進口,迄今為止處于空白狀態。
同時,工程圖識別也是一門綜合技術,涉及到模式識別,人工智能,數字圖像處理,CAD技術等,因此受到制約較多,從2009年丹麥Contex團隊報道的情況來看,更大數據容量的處理仍沒有具體的解決辦法,截止目前,還未出現一種非常完善的圖像識別系統和方法。但是,大量的國外頂尖學者仍然進行著相關的研究工作[8],美國Pennsylvania大學和Maryland大學,法國LORIA研究中心,以色列Institute of Technology等著名大學和研究機構在這一領域進行了多年的研究,但開發出的軟件普遍存在精度不高,速度較慢,并且對噪音,缺損較為敏感的問題[9-11]。國內也做了大量研究,清華大學的ANND5.0系統完成了圖像的矢量化處理,但是只能識別基本的圖元,對于復雜圖形可能出現錯誤,其主要的難點在于:在對工程圖進行矢量化階段,未能對細化圖準確跟蹤,對于出現斷點的直線擬合不夠準確。
本文在制作基于多線陣CCD的大幅面拼接型高精度一次性成像掃描儀的基礎上,不僅在硬件上實現了將整個圖像轉化為數字圖像,同時在軟件上將掃描得到的點陣圖成功的轉化為CAD上能夠識別的矢量圖。矢量化實驗及測試結果表明:通過利用數學中直線方程對直線段進行比較,不僅實現了完整的矢量跟蹤,并且解決了直線中的斷線問題。
對點陣圖進行分析、識別、及重建其中元素使之生成CAD能夠識別的文件格式的過程稱為點陣圖的矢量化,預處理更是整個矢量化的關鍵,由于在掃描的過程中可能會產生大量的噪聲,從而使影響矢量化的質量,需要對圖像進行預處理。
對大幅面掃描儀采集得到的大量圖像對比分析發現,圖像中的噪聲基本是顆粒噪聲,對比各種去噪算法的處理效果,最終采用中值濾波的方法來降噪。對于工程圖這樣線性輪廓較長的圖像,我們采用3×3的模板去遍歷整個圖像,處理后的圖像既保持了邊緣的陡峭又去除了干擾。
處理步驟如下:1)用模板去遍歷整個圖像,直到模板中心與圖像中某個像素重合為止;2)讀取模板下個對應像素的灰度值;3)將這些灰度值從小到大排序;4)找出排序后中間位置對應的灰度值;5)將中間位置對應的灰度值賦值給對應模板中心位置的像素。
整體復合閾值法是在全面考察大律法、局部閾值法的基礎上,提出的一種針對基于多線陣CCD的大幅面拼接型高精度一次性成像掃描儀中大容量、高速、高品質、矢量化轉換的新方法,其主要內容是根據每臺設備出廠前的單個相機成像差異,輸入并存儲相應的分布差異參數,在圖像處理時,設定固定閾值,對圖像采取邊遍歷、邊處理、邊保存的方式,從而實現結合成像自身特點,快速矢量的目的,達到高速、高品質、矢量化的需要。
大幅面掃描儀采集到的工程圖線寬約為3-18個像素,所謂細化即將線條的寬度減少到只有一個像素,僅剩下能表征其特征的骨架。基于細化的方法最主要的優點是能夠保持線段的連續性,最主要的缺點是丟失了線寬信息,在交叉區域處容易產生變形及錯誤的分支。在整個矢量化的系統中,針對大幅面掃描儀下采集的工程圖,我們采用Hilditch經典細化算法的思想:每次掃描刪除圖像中目標的輪廓像素(這些像素滿足一定的條件),直到圖像上不存在可刪除的輪廓像素為止。
本文將根據細化后單像素線條的特征,將圖像劃分為交叉點域和連通域,通過提取出交叉點后對連通段進行跟蹤擬合,之后對不同直線方程中斜率和截距的比較,從而實現整個圖形的完整矢量化。
如圖1所示,與圖像中任意像素P相鄰的8個像素P0,P1,P2,P3,P4,P5,P6,P7 稱為 P 的 8 鄰域, 用 Pk 表示。 當 P的八鄰域內的像素個數大于2時,我們認為P為交叉點。

圖1 3×3的矩陣窗口Fig.1 3×3 matrix window
1)采用自上而下,自左向右的掃描順序遍歷圖像,設定交叉點滿足的條件,從而提取圖像中的交叉點像素,并將交叉點像素置為0。
2)第一次遍歷結束后,圖像中僅剩連通段,再次對整個圖像采用自上而下,自左向右的掃描順序進行遍歷,將掃描到的第一個黑色像素點P的八鄰域進行判斷,若八鄰域內僅有一個像素點,則P作為起始點;若P的八鄰域內有兩個像素點,則沿著這兩個像素的方向繼續遍歷,直到找到八鄰域內僅有一個像素的點,才可以作為終止點。
3)若在P的八鄰域內找不到黑色像素點,則可能是跟蹤到斷線的位置,或者是跟蹤到交叉點處,此時記錄下該點的坐標為Pf,根據尋找起點的規則遍歷圖紙,當找到起點時記錄下起點的坐標為Pi。繼續跟蹤,為了防止對連通段的重復跟蹤,將掃描過的像素點置0,直到圖像中不再有黑色像素點為止。
4)讀取記錄的Pf,Pi圖像信息,對圖中斷線或交叉點處,利用數學直線方程進行擬合。
若 Pi和 Pf的坐標分別為(xi,yi),(xf,yf),則直線 PiPf的兩點式方程為:

又直線的一般方程為

則

令 k=-A/B,b=-C/B,建立一個二維數組,將計算得到的k,b的值進行存儲。 之后,將(k,b)按照 k從小到大排序,同時,程序中令所有直線存儲在變量allLines中,建立一個由vector<vector<pair<int,int> > >表示的對象 lines, 存儲最終合并后的直線。
首先allLines中第一條直線存入lines,然后取第二條直線將其斜率和截距與第一條進行比較,設定閾值ε(ε>0),按如下規則判斷直線是否進行合并及相應處理:
1)若|Δk|<ε,且|Δb|<ε,則認為兩條直線是一條直線,應進行合并,記錄下這4個坐標點中最大與最小的坐標點,從而擬合出完整的直線;
2)若不滿足上述條件,則不是同一條直線,作為一條新直線存入lines。
對于allLines中第i條直線,將其斜率與lines中最后一條直線比較,按上述規則判斷處理,直到遍歷完allLines中所有直線。
對比圖3,圖4可以看出,采用本文所提出的直線矢量化方法,能夠有效的解決交叉點畸變的問題,對矢量化跟蹤的效果較好。

圖2 細化圖Fig.2 Thinning image

圖3 去除交叉點的細化圖Fig.3 Remove cross point

圖4 矢量化后的效果圖Fig.4 Vector image
由于在本文的算法中僅進行了直線的矢量化,還需要對直線線寬進行恢復,恢復方法如下:設直線線寬為w,其斜率為k=tanθ,l為該圖像內直線水平掃描段的線寬,則直線的線寬為:w=l×sinθ,這里對于水平長直線和豎直長直線,w=l,l即為直線的線寬。
提出了利用直線方程對直線進行合并的方法,成功實現了工程圖中直線的矢量化,制作了首臺基于多線陣CCD的大幅面拼接型高精度一次性成像掃描儀。
實驗分析及最后的編程測試結果表明:通過對直線的斜率和截距的比較,可以很好的將直線進行合并,不僅處理了交叉點的節點畸變問題,而且解決了細化后直線的斷線問題,成功地對斷線進行了修補。從而使大容量圖像條件下,高速、高品質矢量化轉換得以有效實現。
本實驗驗證采用PC配置條件如下:Intel酷睿i3及以上處理器,8GB DDR3 1066內存,500GB以上硬盤、主板配有兩個及以上PCI-E X1插槽。在VS2008上編程測試,目前整個軟件基本達到實用價值。但實現更高速度和精度的矢量轉換依然是我們的研究重點,接下來的工作將對每一步進行不斷的改進,使之成為更加實用的矢量轉換軟件。
[1]Hyuck C,Garmire D,Demmel J,et al.Simple Fabrication Process for Self-Aligned High-Performance Microscanners-Demonstrated Use to Generate a 2-D Ablation Pattern[J].Microelectro mechanical Systems,2007,16(2):260-268.
[2]WANG Jin-he.A Topology Set Method for Vectorization[C]//Eighth ACIS International Conference on Software Engineering,2007:229-234.
[3]Tao Hu,Ya-nan Chen.Design of the linear array CCD acquisition system that line frequency and integration time adjustable[C]//2011 International Conference on Electronics and Optoelectronics (ICEOE),2011:253-256.
[4]Stache N C,Stollenwerk A,Gedicke J,et al.Automatic calibration of a scanner-based laser welding system[J].Journal of Laser Applications,2009(21):10-15.
[5]Ben-Ezra M.High resolution large format tile-scan camera:Design,calibration, and extended depth of field[C]//2010 IEEE International Conference on Computational Photography(ICCP),2011:1-8.
[6]WANG Jin-he.A Topology Set Method for Vectorization[C]//Eighth ACIS International Conference on,2007:229-234.
[7]Kopf J,Uyttendaele M,Deussen O,et al.Capturing and viewing gigapixel images[J].ACM Transactions on Graphics,2007,26(3):93.
[8]Kumpulainen T,Latokartano J,Vihinen J,et al.Scanner test pattern for evaluation of beam manipulation accuracy[C]//2011 IEEE International Symposium on Assembly and Manufacturing (ISAM),2011:1-5.
[9]Al-Khaffaf H S M,Talib A Z,Salam R A.Enhancing saltand-pepper noise removal in binary images of engineering drawing[J].IEICE Transactions on Information and Systems,2009, E92-D(4):689-704.
[10]ZHAO Hua,YUAN Wen-jun,WANG Zhi-jian.A new watermarking Scheme for CAD engineering drawings[C]//Computer-Aided Industrial Design and Conceptual Design,2008:518-522.
[11]ZHOU Chang-yin,NayarS K. Computationalcameras:convergence of optics and processing[J].Image Processing,2011,20(12):3322-3340.