陳亞梅
摘要:本文是利用USB2.0芯片CY7C68013和圖像傳感器OV9650實現(xiàn)圖像采集的硬件電路,在Windows 2000下編寫驅(qū)動程序?qū)崿F(xiàn)數(shù)字圖像的采集,然后在VC++6.0開發(fā)環(huán)境下利用Intel的機器視覺庫實現(xiàn)數(shù)字圖像的處理與檢測。
關(guān)鍵詞:USB2.0、OV9650、數(shù)字圖像處理
為了實現(xiàn)工業(yè)檢測自動化,減輕由人工檢測元器件的勞動強度,可以將數(shù)字圖像處理系統(tǒng)應(yīng)用于大批量生產(chǎn)過程中的檢測與辨識,如:零件裝配完整性,裝配尺寸精度,零件加工精度,位置/角度測量等。其應(yīng)用如:對汽車儀表盤加工精度的檢查,膠囊生產(chǎn)中對膠囊壁厚和外觀缺陷的檢查,食品包裝上面對生產(chǎn)日期的辨識,等等。
鑒于工程需要,要對一些元器件的外徑進行測量,精度和速度要求不是很高,傳統(tǒng)的基于PC的機器視覺系統(tǒng)用視頻采集卡對視頻信號進行采集,但是由于這種方案板卡成本太高,鑒于經(jīng)濟方面和開發(fā)周期的考慮,本文采用USB2.0接口的芯片CY7C68013與PC機實現(xiàn)了高分辨率、快速、全數(shù)字圖像的實時采集系統(tǒng),然后利用實時采集到的圖像對元器件的外徑進行測量。
一、數(shù)字圖像的實時采集原理
數(shù)字圖像的實時采集原理如圖1所示。在采集速度滿足的前提下,選取圖像分辨率相對較高的圖像芯片,根據(jù)項目和研究需要,在此選擇了Omnivision technologies公司的OV9650芯片作為圖像采集芯片,CMOS 彩色圖像傳感器OV9650將CMOS光感應(yīng)核與外圍支持電路集成在一起,具有可編程控制與視頻模/數(shù)混合輸出等功能,能夠消除噪聲、燈光閃爍等光電干 擾,輸出清晰、穩(wěn)定的彩色圖像。OV9650的功能特點包括:單芯片1/4寸鏡頭,最大1280×1024像素分辨;標準SCCB接口;開窗功能,局部圖像輸出;輸出RGB/RawRGB/YCbCr視頻信號;自動曝光控制/自動白平衡/自動增益控制/自動亮度控制;圖像質(zhì)量控制,包括顏色飽和 度、銳度、伽馬校正等。
為了取得好的圖像,鏡頭和光源系統(tǒng)是至關(guān)重要的,鑒于項目的需要,選用Computar工業(yè)自動化(FA)鏡頭0814-MP,焦距:8mm;工作距離:100mm-300mm;低變形率(低于1.0%),光源在日常光照下即可。
數(shù)字圖像實時采集與傳輸模塊,采用了Cypress公司的CY7C68013的USB2.0接口芯片,該芯片的主要特點是在一塊芯片上集成了USB2.0內(nèi)核和引擎、一個增強型的51系列微處理器,及可編程外圍接口芯片,提供了高效率的時序解決方案,在這種有獨創(chuàng)性的結(jié)構(gòu)下,仍然使用低價位的51系列的微處理器,其數(shù)據(jù)傳輸速度可以達到56MB/s,可以提供USB2.0的最大帶寬。因此,本系統(tǒng)的CPU控制和USB2.0接口芯片選擇了上述芯片。圖像傳感器芯片(OV9650)工作在24MHZ頻率下,在 CY7C68013內(nèi)部程序控制下,通過CY7C68013的FIFO緩沖區(qū)以及USB電纜線傳送到PC機上。
二、圖像采集系統(tǒng)的實現(xiàn)
(一)硬件系統(tǒng)實現(xiàn)原理
硬件系統(tǒng)的連接原理,圖像采集處理芯片用 OV9650,時鐘頻率為24MHz,像素時鐘為24MHz;CPU控制和USB2.0接口芯片用CY7C68013,時鐘頻率為24MHz, 通過對CY7C68013內(nèi)部的CPUCS寄存器進行修改,使其工作在24MHz方式下。將OV9650的像素時鐘PCLK接到CY7C68013的IFCLK上; OV9650的HREF、VSYNC分別接到CY7C68013的RDY0、RDY1上;將OV9650的VSYNC分別接到CY7C68013的INT0上。將CY7C68013的PA1、PA2接在OV9650的SCCB的接口上。因為OV9650芯片的控制接口采用SCCB協(xié)議,與I2C相似,但卻有些小的差別,所以用PA1和PA2兩個IO口來模擬SCCB BUS時序,完成對圖像芯片的初始化、顯示窗口大小、數(shù)據(jù)格式、顯示幀數(shù)等工作。
(二)固件程序設(shè)計
從程序到USB2.0芯片初始化到初始化圖像傳感器OV9650到開啟中斷判定有無中斷,如中斷及轉(zhuǎn)入中斷處理程序如無中斷再重新判定。
固件程序:
(1) USB2.0芯片的初始化程序,通過對CPUCS 寄存器進行設(shè)定,工作在頻率24MHz下,對USBCS寄存器設(shè)定,使其USB內(nèi)核工作在 USB2.0方式下,同時通過對IFCONFIG寄存器設(shè)定,使其工作在通用編程接口方式下,控制端點0用來傳輸用戶命令,圖像傳感器的初始化程序,通過對圖像芯片進行初始化、顯示窗口大小、數(shù)據(jù)格式、顯示幀數(shù)等參數(shù)。
(2) 通用編程接口程序,利用GPIF Designer工具軟件設(shè)計,然后導(dǎo)出GPIF接口程序。
(3) USB2.0批量傳輸程序設(shè)計,本段程序主要完成USB2.0的批量傳輸功能,利用批量傳輸和中斷方法完成大批量圖像數(shù)據(jù)的實時傳輸。
(三)系統(tǒng)軟件的設(shè)計
1.USB2.0驅(qū)動與接口程序
利用通用驅(qū)動程序源碼,在此基礎(chǔ)上進行修改然后在Win2000的DDK下重新編譯,再利用VC++6.0對驅(qū)動程序的操作函數(shù)進行封裝,這樣應(yīng)用程序的可以像調(diào)用其他的函數(shù)一樣去調(diào)用函數(shù)來完成USB接口的初始化、讀取整幀圖像、CMOS寄存器設(shè)置等等。
系統(tǒng)程序主要有以下幾個模塊組成:
(1) USB2.0初始化模塊
首先將圖像采集的硬件設(shè)備通過USB電纜連接到PC上,然后利用寫好的函數(shù)探測USB2.0設(shè)備,進而初始化各種變量,分配內(nèi)存。
(2) 圖像傳感器器設(shè)置模塊
通過USB2.0設(shè)備的端點0對圖像芯片的窗口大小、數(shù)據(jù)格式、顯示幀數(shù)等進行初始化。
(3) 數(shù)字圖像采集模塊
利用USB的批量傳輸技術(shù)和終端技術(shù)實現(xiàn)圖像數(shù)據(jù)的實時采集,然后可以將采集到的圖像進行處理和顯示。
(4) 數(shù)字圖像顯示模塊
利用VC6.0技術(shù)實現(xiàn)圖像實時顯示。
(5) 圖像檢測處理模塊
通過網(wǎng)絡(luò)下載開放源代碼的機器視覺庫OpenCV,利用其中的圖像處理函數(shù)實現(xiàn)元器件的外徑測量,詳細描述參考圖像處理與檢測部分。
(6) 數(shù)據(jù)存儲模塊
通過運用各種算法對圖象數(shù)據(jù)進行處理運算, 計算出待檢測元器件的外徑參數(shù), 最后與預(yù)置的標準尺寸相比較判斷其是否合格,然后將檢測結(jié)果計算機存儲到數(shù)據(jù)庫系統(tǒng),并自動統(tǒng)計生成報表。
三、圖像處理與檢測
開放源代碼的計算機視覺類庫,主要包括以下部分
(1) CXCORE 定義基本的數(shù)據(jù)結(jié)構(gòu)和操作函數(shù);
(2) CV包含了幾乎所有涉及到的圖像處理函數(shù);
(3) HighGUI包括圖像顯示、保存部分。
四、結(jié)論
通過系統(tǒng)調(diào)試實驗,利用USB2.0圖像采集系統(tǒng)可以實時地獲取圖像數(shù)據(jù),采集速率為1~12幀/秒,基本可以滿足實時檢測需要,然后利用Intel的開放源代碼的機器視覺庫,可以對采集到的圖像進行實時地處理,然后將處理結(jié)果存入檢測數(shù)據(jù)庫。
此系統(tǒng)還需進一步改進,如圖像處理方面的進一步應(yīng)用、提高對高速運動物體的檢測性能等等。
參考文獻
[1]《圖像處理、分析與機器視覺》興軍亮譯 清華大學(xué)出版社 2016年06月
[2]《計算機視覺特征提取與圖像處理》艾海舟譯 電子工業(yè)出版社 2014年11月
[3]《USB 2.0設(shè)備的設(shè)計與開發(fā)》 邊海龍,賈少華 人民郵電出版社2011年10月endprint