鮑江,席曼曼,劉必晨,張佳寧
(重慶光電技術(shù)研究所,重慶,400060)
光耦是一種以光為媒介,通過“電-光-電”轉(zhuǎn)換,從而實現(xiàn)信號傳輸?shù)钠骷?。光耦具有體積小、壽命長、工作溫度范圍寬、抗干擾能力強等優(yōu)點[1],在航空航天等領(lǐng)域廣泛應(yīng)用。為了保障高可靠性,光耦需在篩選檢驗試驗后開展多次電參數(shù)測試[2],測試時需要將產(chǎn)品編號與測試數(shù)據(jù)一一對應(yīng)記錄,以便進行產(chǎn)品合格判定及后期狀態(tài)追溯。
當(dāng)前,光耦批量化測試時綜合考慮測試準確性和效率,首先采用人工排號的方式,將同一批次的產(chǎn)品依次排好順序存放,例如在一托盤內(nèi)打印多個產(chǎn)品編號,將光耦產(chǎn)品與編號對應(yīng),逐個放在托盤的對應(yīng)區(qū)域,測試時再按照排好的順序一一測試,最后將產(chǎn)品編號和測試數(shù)據(jù)人工整合在一起。隨著廣泛應(yīng)用,光耦朝著多品種、大批量的方向發(fā)展,要求光耦的批量化電參數(shù)測試具有較高的準確性和測試效率。測試準確性一方面要求參數(shù)測試準確,另一方面則是要求產(chǎn)品的測試參數(shù)和產(chǎn)品的編號不交錯、不漏記;測試高效率方面則是要求產(chǎn)品測試時每個批次能夠以最少的時間完成。對于上述要求,原有測試方案存在如下不足:(1)光耦尺寸較小,人工排號的方式效率極低,且容易出現(xiàn)位置放錯的情況;(2)在測試排好序的光耦時,容易造成漏測、錯測等情況,發(fā)生測試數(shù)據(jù)與編號錯位等問題,導(dǎo)致測試準確率降低?;诖耍疚脑O(shè)計了一種編號自動識別的光耦測試系統(tǒng),實現(xiàn)光耦大批量高效率準確測試。
設(shè)計的光耦測試系統(tǒng)主要用于光耦測試時編號自動識別,并自動完成測試數(shù)據(jù)與編號的合并整理,解決批量測試下人工排號效率低、易出錯、占用空間大等問題,縮短光耦整個生產(chǎn)周期,系統(tǒng)主要包含四個方面的設(shè)計:硬件設(shè)計、軟件架構(gòu)設(shè)計、編號識別算法設(shè)計以及校驗算法設(shè)計。
測試系統(tǒng)硬件主要包含光耦測試臺與圖像采集模塊兩部分。光耦測試臺為集成有測試板卡、信號源、示波器的一體化通用工作臺,圖像采集模塊為包含工業(yè)相機、工業(yè)鏡頭、光源、光源控制器以及光學(xué)支架的定制模塊。兩部分通過千兆網(wǎng)線進行信息交互。
結(jié)構(gòu)上,光學(xué)支架位于測試臺左側(cè)載臺處,采用夾持、螺母擠壓的方式固定,該方式既方便測試人員右手操作,又有利于根據(jù)不同測試要求調(diào)整支架位置;工業(yè)相機、工業(yè)鏡頭、光源、測試夾具以及產(chǎn)品由上至下位于一條線上,實現(xiàn)圖像采集和測試位于同一點;控制光源下方距離測試夾具≥15cm,避免影響取放產(chǎn)品,同時又能夠采集清晰的產(chǎn)品編號圖像。設(shè)計效果如圖1 所示。
圖1 測試系統(tǒng)硬件效果示意圖
其中,設(shè)計測試臺為通用光耦測試臺,重點對圖像采集模塊進行分解,具體如下:
(1)工業(yè)相機
工業(yè)相機是采集系統(tǒng)中的一個關(guān)鍵組件,根據(jù)其信號類型、芯片類型、芯片尺寸、分辨率、圖像幀率、數(shù)據(jù)接口和鏡頭接口等在不同使用場景具有不同的配置。光耦產(chǎn)品尺寸在幾毫米到幾厘米之間,產(chǎn)品編號單個字符尺寸最小小于1.5mm×1.5mm,編號和背景對比較大,測試期間產(chǎn)品處于靜止?fàn)顟B(tài),因此,對相機的選擇主要在于使用方便,分辨率達到識別要求,且性價比高,在此基礎(chǔ)上選擇一款Baumer 相機,具體參數(shù)如下:
采用1/2.5〞Aptina MT9P031 CMOS 傳感器;分辨率:2592×1944;幀速度:14fps;數(shù)據(jù)接口:GiGE vision;鏡頭接口:C Mount。
(2)工業(yè)鏡頭
在識別系統(tǒng)中,工業(yè)鏡頭與光源、相機一起構(gòu)成一個完整的圖像采集系統(tǒng),受到整個系統(tǒng)要求的制約,由焦距、光圈、尺寸、接口等參數(shù)共同決定。本系統(tǒng)中,為了硬件采集系統(tǒng)不影響測試操作,采集設(shè)備離產(chǎn)品測試夾具位置高度至少15 厘米,且要求鏡頭畸變小,能夠適應(yīng)相機的要求,通過實際測試選擇一款VST 工業(yè)鏡頭,具體參數(shù)如下:
像面尺寸:2/3〞;焦距:35mm;光圈:F1.8~Close;聚焦范圍:0.25m~∞;調(diào)焦/光圈:手動;畸變:-0.12%;接口:C 口;外形尺寸:Φ295mm×33.5mm。
(3)光源
為了提升采集系統(tǒng)采集的圖像效果,降低環(huán)境光照的干擾,需要采用光源進行效果增強。光耦產(chǎn)品多為方形結(jié)構(gòu),光源必須能夠使得光照均勻,且光源散發(fā)的光不能夠?qū)Σ僮魅藛T造成傷害,在此基礎(chǔ)上設(shè)計采用環(huán)形白光光源,具體參數(shù)如下:
顏色:白色;電壓:DC 24V;功率:6.2W;外徑:90mm。
(4)光源控制器
為了使光源能夠隨環(huán)境調(diào)節(jié),使識別系統(tǒng)更好地工作,需要使用光源控制器,系統(tǒng)采用如下控制器:
驅(qū)動方式:恒壓;調(diào)節(jié)方式:旋鈕調(diào)節(jié);輸入電壓:AC110-240V 50/60Hz;通道:2T;最大輸出電流:單通道1A。
(5)光學(xué)支架
光學(xué)支架作為支撐其他采集硬件的重要部分,主要技術(shù)要求如下:
光學(xué)支架外觀簡潔;可上下移動或隨意旋轉(zhuǎn)相機和光源;重量輕,便于攜帶;具有使用方便,易于安裝、操作;采用鋁合金材質(zhì),堅固耐用。
通常,光耦測試臺軟件由多種開發(fā)平臺如delphi、c++、c#等開發(fā)[3],要實現(xiàn)識別、測試一體化,就需在不同平臺下單獨開發(fā)識別軟硬件,并將識別部分與測試部分整合在一起,該方式耗時耗力,實現(xiàn)難度大。通過設(shè)計一種識別動態(tài)庫調(diào)用方法,將相機控制及圖像識別處理部分算法[4]以動態(tài)庫的形式封裝[5],配以識別校驗算法,以C++實現(xiàn),基于設(shè)計好的動態(tài)庫接口,可被不同測試平臺直接調(diào)用。該方法將采集硬件和識別處理算法模塊化,對于不同測試平臺和不同廠家,只需按照動態(tài)庫輸入輸出接口直接調(diào)用,無需跨專業(yè)進行識別部分二次開發(fā),極大地降低了開發(fā)難度,提高了效率。
基于此,設(shè)計了一種利用動態(tài)庫調(diào)用實現(xiàn)跨平臺識別、測試一體化的軟件架構(gòu)。系統(tǒng)由三個層次構(gòu)成,包括由測試臺軟件形成的開發(fā)應(yīng)用層,由相機控制算法、圖像識別處理算法及資源管理構(gòu)成的動態(tài)庫接口層,以及相機單元構(gòu)成的識別模塊層,如圖2 所示。
圖2 軟件架構(gòu)示意圖
軟件功能上,測試臺軟件集成動態(tài)庫,測試時,測試臺發(fā)出測試命令,控制動態(tài)庫采集前端相機圖像,并完成編號識別,返回測試臺,最后實現(xiàn)編號與測試數(shù)據(jù)同時輸出,具體如圖3 所示。
圖3 軟件功能示意圖
產(chǎn)品編號識別算法是光耦自動測試系統(tǒng)的核心,只有保證識別算法的高質(zhì)量,才能保證測試系統(tǒng)的良好效果。研究如何實現(xiàn)高精度的圖像自動識別算法,是系統(tǒng)整個工作中最復(fù)雜,也是最重要的工作之一。
識別過程中,通過圖像采集模塊獲取到需要識別的產(chǎn)品編號圖像,并將圖像信息傳回測試臺,效果如圖4 所示。
圖4 產(chǎn)品原始編號效果圖
對于獲取的原始圖像,提取出其中的編號部分并將其自動識別出來是算法的最終目的。系統(tǒng)識別時,對要識別的編號圖像,進行了圖像產(chǎn)品定位、圖像編號定位、圖像編號分割、圖像編號識別以及編號輸出等操作,從而實現(xiàn)編號自動識別的目的,主要流程如圖5 所示。
圖5 圖像識別算法主要流程圖
(1)圖像產(chǎn)品定位
首先從圖像采集模塊上采集到圖像,對得到的圖像進行大津法二值化操作,將屬于同一個連通區(qū)域的像素點坐標分別存入不同的集合,對于每一個集合,可以計算出它們的外輪廓(輪廓里的輪廓此時不再計算),求出輪廓的外接矩形,在所有的矩形中,選取矩形面積最大的區(qū)域即為產(chǎn)品區(qū)域。通過以上多步實現(xiàn)了圖像中產(chǎn)品的定位,如圖6 所示。
圖6 圖像產(chǎn)品定位效果圖
(2)圖像編號定位
將原始圖像按第一步得到的區(qū)域進行裁剪,對該圖像重新進行二值化。因某些產(chǎn)品的字符不連續(xù),以及某些小面積噪聲,所以算法中用一個圖像的“閉”操作,即先腐蝕后膨脹對圖像進行形態(tài)學(xué)處理。將圖像的所有連通區(qū)域分別存在不同的集合里,求出它們的外輪廓,計算出它們的外接矩形,將一些明顯不符合要求的矩形剔除掉。按照矩形左上角點的Y 值大小,對所有矩形進行排序。遍歷所有的矩形,將Y 值在一定距離內(nèi)的矩形放入同一集合。對所有的集合元素即每個矩形按左上角點X值的大小進行排序,將相鄰的矩形合并,距離間隔較大的矩形則剔除。對于得到的矩形,選取矩形縱向的1/4,1/2,3/4 處進行橫向的像素跳變分析,分別記錄三行的跳變次數(shù)。其中,實際情況下,光耦產(chǎn)品每行的字符至少有5 個,那么一行的跳變次數(shù)至少會大于10,檢測得到的三行的跳變次數(shù)是否大于10,如果有兩行不滿足,那么剔除該矩形。對于剔除后的矩形,對相應(yīng)圖像區(qū)域進行形狀因子判定,如果不滿足條件,也將剔除該矩形。由于所需的編號為Y 值最低的矩形,所以在上述操作得到的所有矩形中求出Y 值最小的矩形即可。如圖7 所示。
圖7 產(chǎn)品圖像編號定位效果圖
通過上述多步實現(xiàn)了產(chǎn)品編號的定位,再從第一步得到的產(chǎn)品圖像中將該區(qū)域裁剪出來,對該圖像重新進行二值化后得到圖8 所示效果。
圖8 編號圖像二值化效果圖
(3)圖像編號分割
實際情況下,光耦產(chǎn)品編號字體共3 種大小,高和寬之比分別為11:5,5:5,7:5,在編號定位后已經(jīng)得到了矩形的高度,根據(jù)比值可以組合成3 種不同大小的矩形。從小到大的使用每種矩形從左到右去尋找圖中的強種子。所謂強種子,就是當(dāng)對已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)輸入已經(jīng)歸一化后的矩形時,會返回屬于各個類的概率,當(dāng)概率大于0.9 時,就認為是強種子。當(dāng)檢測到有兩個強種子出現(xiàn)時,我們就使用這種大小的矩形。
將已經(jīng)檢測到的強種子區(qū)域全部涂黑,再依次向左右檢測,直至全部檢測完畢。最后會得到若干個強種子區(qū)域,對于間隔較大的兩個強種子,以及個數(shù)未滿的強種子,根據(jù)產(chǎn)品編號字符個數(shù)進行補齊。
歸一化后的圖像如圖9 所示。
圖9 編號圖像歸一化后效果圖
圖10 校驗算法邏輯示意圖
通過上述方式,可以對定位的編號圖像實現(xiàn)分割。
(4)圖像編號識別
對于分割好的單個字符圖像,系統(tǒng)采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練識別的方式完成對字符的識別工作。進行BP 神經(jīng)網(wǎng)絡(luò)識別時,輸入的特征為120 維,10*10 的中間區(qū)域像素加上水平和豎直的投影。通過該方式,可以較好地完成對編號圖像的自動識別。
當(dāng)完成上述各步驟后,即可得到待識別產(chǎn)品的編號信息。將該編號信息通過動態(tài)庫中相應(yīng)算法進行處理,最終回傳給測試臺,實現(xiàn)產(chǎn)品編號信息和測試信息的自動整合。
隨著圖像處理技術(shù)不斷進步,編號識別準確率不斷提高,但仍然難以做到100%準確,基于此,系統(tǒng)引入編號校驗算法,保證識別準確性。校驗算法采用兩種手段:(1)每批次測試前,人工錄入一次本批次產(chǎn)品的編號規(guī)則;(2)在動態(tài)庫模塊中,將每批次識別的產(chǎn)品圖像及編號維護一個數(shù)據(jù)庫。
產(chǎn)品編號識別時,如果識別出的產(chǎn)品編號不滿足編號規(guī)則,則展示待測產(chǎn)品的圖像信息,根據(jù)圖像信息人工判斷并錄入編號作為待測產(chǎn)品編號;如果識別出的產(chǎn)品編號滿足編號規(guī)則,則查詢當(dāng)前識別的產(chǎn)品編號是否與數(shù)據(jù)庫存儲的已有編號重復(fù),不重復(fù)則判定識別的編號正確,返回識別結(jié)果;如果當(dāng)前識別的產(chǎn)品編號與數(shù)據(jù)庫中存儲的某一產(chǎn)品編號重復(fù),則展示待測光耦的圖像信息和已存儲的重復(fù)編號產(chǎn)品的圖像信息,人工進行判斷并錄入正確的產(chǎn)品編號,然后更新數(shù)據(jù)庫中兩只產(chǎn)品的編號信息及圖像信息。
采用上述設(shè)計方案,完成了編號自動識別的光耦測試系統(tǒng)的軟硬件制作,實物如圖11 所示。
圖11 測試系統(tǒng)實物效果圖
選取尺寸從7mm×12mm×2.7mm 到10mm×19mm×3.8mm 的A、B、C、D 四款光耦產(chǎn)品進行測試,系統(tǒng)識別效果如表1 所示。
表1 測試系統(tǒng)識別效果
選取A 型產(chǎn)品1000 只、B 型產(chǎn)品2000 只,分別采用原有測試方式和新設(shè)計的編號自動識別光耦測試系統(tǒng)測試的方式進行測試,具體測試情況如表2 所示。
表2 測試系統(tǒng)測試效果
從表2 可以看出,設(shè)計的光耦測試系統(tǒng)能夠兼容不同的軟件開發(fā)平臺,單批次產(chǎn)品測試耗時提升44.4%以上,在批次數(shù)量增大的情況下,達到了100%的效率提升,在測試準確性方面,使用帶校驗算法的系統(tǒng),測試準確率達到100%,滿足高可靠測試要求,表明設(shè)計的系統(tǒng)能夠滿足生產(chǎn)需要。
本文設(shè)計的編號自動識別的光耦測試系統(tǒng)用于解決光耦測試過程產(chǎn)品編號與測試數(shù)據(jù)一一對應(yīng)記錄低效率、易出錯的問題,系統(tǒng)設(shè)計了硬件模塊、軟件架構(gòu)、編號識別算法以及檢驗算法,根據(jù)設(shè)計制作的測試系統(tǒng)實物通過運行實測,系統(tǒng)能夠明顯提升測試效率,提高測試準確率,有利于大批量光耦測試。