劉榮鵬,金 杰,蘇寒松
(天津大學(xué)電子信息工程學(xué)院,天津 300072)
目前,國外的巴布劑技術(shù)已經(jīng)比較成熟,國內(nèi)的巴布劑技術(shù)起步較晚,生產(chǎn)體系還不夠先進。國內(nèi)巴布劑成品質(zhì)量檢測大多通過感官評價,對其質(zhì)量的評估分析帶有一定的主觀性,很難用統(tǒng)一的規(guī)格化標(biāo)準(zhǔn)去判定[1]。本設(shè)計以Altera 公司的DE2 板為開發(fā)平臺,采用數(shù)字圖像采集及處理將問題轉(zhuǎn)化為數(shù)字信號處理問題,由于質(zhì)量有缺陷的巴布劑其圖像特征表現(xiàn)為有瑕點,導(dǎo)致每個位置的像素RGB信號數(shù)據(jù)有明顯差異,提取其中的B 信號作為在線檢測的判定對象,根據(jù)一定的數(shù)學(xué)方法識別圖像特征,判定巴布劑涂布質(zhì)量合格與否,并將結(jié)果反饋給系統(tǒng)主控制部分,對相關(guān)的設(shè)備進行相應(yīng)的調(diào)整,實現(xiàn)對巴布劑涂布質(zhì)量的在線檢測。
本設(shè)計系統(tǒng)采用Altera 公司的FPGA 芯片作為整個系統(tǒng)的核心芯片,外圍設(shè)備主要包括CCD 攝像頭、ADV7181B 圖像編解碼器、SDRAM 存儲器、LED指示燈、反饋電路等,其結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
設(shè)計前端采用CCD 攝像頭對巴布涂劑進行掃描后得到圖像,該圖像為模擬視頻信號,然后輸入至ADV7181B 中進行模數(shù)轉(zhuǎn)化、編解碼,輸出數(shù)字圖像信號。由于數(shù)字信號的數(shù)據(jù)量較大,須外置一個SDRAM存儲器作為緩存,待整幀圖像的數(shù)據(jù)緩存完畢后再對其進行提取、處理及判斷識別,將判定結(jié)果在LED 指示燈顯示,方便直觀的觀察,并且將此判定結(jié)果通過連接電路傳給PLC 控制端,驅(qū)動生產(chǎn)線上相應(yīng)的馬達(dá)做出步進式調(diào)整,從而實現(xiàn)對巴布劑質(zhì)量的在線檢測。
本設(shè)計系統(tǒng)采用的是Sony HAD CCD 攝像頭,分辨率為640×480,輸入電壓為12 V。由攝像頭輸出的模擬視頻信號包括圖像信息、行消隱與場消隱信號、行同步與場同步等。
ADV7181B 是一款高性能集成視頻解碼器,支持多種格式模擬視頻信號的輸入,它接收來自CCD攝像頭的模擬視頻信號,并將其轉(zhuǎn)化輸出為與CCIR656 標(biāo)準(zhǔn) 相兼容的YCrCb 4∶2 2數(shù)字視頻信號。ADV7181B 可以并行輸出16 bit或8 bit 數(shù)據(jù)信息,同時包括場同步信號VS、行同步信號HS、場識別信號、中斷請求信號等。
ADV7181B 內(nèi)部共有240個控制寄存器,寄存器的值不同所實現(xiàn)的功能便不同,可以根據(jù)自己的需要配置這些寄存器。本設(shè)計用QuartusⅡ9.0 編寫ADV7181B 的配置程序,并通過I2C 總線將配置數(shù)據(jù)傳輸?shù)紸DV7181B[2]。在QuartusⅡ9.0 中建立寄存器配置模塊,將寄存器地址及數(shù)據(jù)信息通過數(shù)據(jù)總線(SDA)和時鐘總線(SCL)寫入到ADV7181B,就可以接收來自CCD 的模擬視頻信號,并以27MHz的頻率進行模數(shù)轉(zhuǎn)換,輸出為16 bit 的YUV 數(shù)字視頻信號。
SDRAM 是多Bank 結(jié)構(gòu),Bank 之間并行工作,比如其中一個Bank 在進行預(yù)充電期間,另一個Bank 是可以被讀取的,當(dāng)一次讀取后結(jié)束后,再去讀取已經(jīng)預(yù)充電結(jié)束的Bank 中的數(shù)據(jù)。這種多Bank 結(jié)構(gòu)的優(yōu)點是:不用等待,可以連續(xù)讀取每個Bank 中的數(shù)據(jù),很大程度上提高了SDRAM 的訪問速度。SDRAM 上電后要對其進行初始化,主要過程為:上電等待、預(yù)充電、空操作、自刷新等,而后才能進行其他操作。SDRAM 內(nèi)部操作是一個復(fù)雜的狀態(tài)機[3-4],如圖2所示,在各個狀態(tài)之間切換時,列地址選擇、行地址選擇和讀寫選擇信號會產(chǎn)生相應(yīng)的變化,在QuartusⅡ9.0 中用狀態(tài)機控制SDRAM,使其在各個狀態(tài)改變RAS、CAS、WE 的值,從而控制SDRAM 的刷新、空操作、數(shù)據(jù)讀取:
圖2 SDRAM 內(nèi)部狀態(tài)轉(zhuǎn)移圖當(dāng)SDRAM
SDRAM 的引腳主要分為以下幾類:
(1)控制信號:片選(CS)、同步時鐘(CLK)、時鐘有效(CLKEN)、讀寫選擇(WE)、數(shù)據(jù)有效(DQM)等;
(2)地址選擇信號:行地址選擇(RAS)、列地址選擇(CAS)、行/列地址線(SA)、Bank 塊地址線(BA);
(3)數(shù)據(jù)信號:包括雙向數(shù)據(jù)端口(DQ)、接收數(shù)據(jù)有效信號(DQM)控制等。DQM為低時,寫入/讀出有效。
本設(shè)計中采用的SDRAM 容量為8 Mbyte,結(jié)構(gòu)為:1 M×16 Bit×4 Banks。與SDRAM 相連的信號除了時鐘信號CLK 以外都來自FPGA。FPGA 與SDRAM 信號的接口設(shè)置如圖3所示。
圖3 SDRAM 信號的接口設(shè)置
2.4.1 在線檢測原理
在線檢測主要是對巴布涂劑的圖像是否有黑色斑點(藥物攪拌不均勻)或白色斑點(上藥過程中出現(xiàn)氣泡)等作出識別。
在線拍攝的巴布涂劑的部分圖像如圖4所示。
圖4
根據(jù)圖4 中正常的巴布劑與瑕疵點處像素RGB值的差異來判別巴布劑的質(zhì)量。截取部分圖像,用Matlab 對其進行分析處理,得到圖像每像素點的R、G、B值,每個值都存放為一個二維矩陣,對應(yīng)圖像相應(yīng)位置的像素點。觀察得到的數(shù)據(jù)并與圖像對比,得出B 信號在圖像變化時數(shù)據(jù)跳躍最大,有更明顯的變化,所以選用B值作為判定信號,使其更易判別。
此設(shè)計選用攝像頭的分辨率為640×480,實際拍攝的巴布劑大小為420 mm×300 mm,單位像素點大小為0.656 mm×0.635 mm。當(dāng)斑點小于單位像素點時,B值會因斑點大小與單位像素點的比例而不同,比例越高越偏離正常B值的范圍,越接近不合格范圍。經(jīng)多次Matlab 數(shù)據(jù)分析并提取數(shù)據(jù),巴布劑圖像B 信號B0為80~130(B 信號為8 bit)可判定為正常范圍,B1 大于190 可判定為白斑,B2 小于60 可判定為黑斑。圖5為Matlab 得出的正常和黑斑處像素點的B值。
圖5 Matlab 得出的正常和黑斑處像素點的B值
系統(tǒng)工作時,每當(dāng)時鐘CLK 上升沿到來,F(xiàn)PGA逐像素點從SDRAM 中提取圖像信息[6],并轉(zhuǎn)為RGB 格式。同時,使得到的B 信號與平均信號B0做對比,若其值大于平均值B0 一定范圍(平均值B0的浮動)則計數(shù)器cont 累加1,否則計數(shù)器不變。同理用cont2 統(tǒng)計B 信號值小于平均值B0 的像素點個數(shù)。在QuartusⅡ9.0 中用Veilog 語言實現(xiàn):
一幅圖像結(jié)束后,將統(tǒng)計結(jié)果與像素點總數(shù)對比求概率,若其在誤差允許范圍之內(nèi)則判定巴布劑質(zhì)量合格,否則判定其為不合格。并將此結(jié)果通過高低電平的形式傳到PLC,驅(qū)動系統(tǒng)馬達(dá)做出相應(yīng)調(diào)整。
2.4.2 圖像預(yù)處理
在CCD 攝錄端得到的圖像中存在周圍的設(shè)備的圖像,在做圖像檢測的時候需要濾除巴布劑之外的圖像[5.6]。對此本設(shè)計對原來的行同步HS和場同步VS 與實際進行比對并計算,得到HS1、VS1,將周圍的景象切除。原圖像一行有800個像素點,其中有效像素點為640,行消隱部分為160,而圖像需要檢測的部分其實是有效像素點中間的500 像素點。在程序中設(shè)一個計數(shù)器,消隱結(jié)束后繼續(xù)累積70個時鐘上升沿,此時HS1 置高,這部分便是數(shù)據(jù)判定的有效部分,如圖6所示HS 在切邊前后的變化。同樣方法,得到場同步VS1,對圖像進行切邊后才是實際數(shù)據(jù)檢測的部分。
圖6 圖像切邊前后的HS 變化
本設(shè)計系統(tǒng)提出了一種在線檢測巴布劑質(zhì)量的方法,從巴布劑的數(shù)字圖像特征入手,將原來的問題轉(zhuǎn)化為圖像處理問題。在線檢測時,正常巴布劑的B值范圍可根據(jù)不同的標(biāo)準(zhǔn)自行修改設(shè)定,使判定結(jié)果與觀察判定結(jié)果接近一致。
[1]龐武耀,李明亞,謝清春.巴布劑的研究現(xiàn)狀[J].亞太傳統(tǒng)醫(yī)藥,2008,4(12):133,135.
[2]袁海林.ADV7181 的I2C 配置接口的SOPC 實現(xiàn)[J].湖北民族學(xué)院學(xué)報(自然科學(xué)版),2007,25(3):319-320.
[3]吳皓,劉鵬,蔡鐘,王維東.視頻采集系統(tǒng)SDRAM 控制器的FPGA 實現(xiàn)[J].中國有線電視,2003(22):58-60.
[4]段曉晨,何小剛,程永強.實時視頻SDRAM 控制器的FPGA 設(shè)計與實現(xiàn)[J].太原理工大學(xué)學(xué)報,2006,5(37):6.
[5]朱奕丹,方怡冰.基于FPGA 的圖像采集與VGA 顯示系統(tǒng)[J].計算機應(yīng)用,2011,31(5):1260.
[6]郭祥東.基于FPGA 的視頻圖像采集系統(tǒng)的設(shè)計[J].九江學(xué)院學(xué)報,2009(6):16-19.