郭玉彬,曾曉銀,吳少乾,李西明,王璇
(華南農業(yè)大學,廣州 510642)
微孔板是一種多用途的檢測試驗板,在臨床實驗、化學試驗、獸醫(yī)的試劑檢測等方面均有廣泛的應用。而隨著人工智能的發(fā)展,臨床實驗的工作人員對智能化自動化的實驗需求越來越高。實現(xiàn)微孔板智能化識別可以加快臨床實驗的人工智能化,大大解放實驗工作人員的勞動力,推動社會的發(fā)展。進一步地,精確定位微孔板的孔圓心可以快速提取圓孔內的實驗試劑,將實驗數(shù)字化,便于機器的學習及機器的智能識別,使臨床實驗的智能化自動化成為可能。
對微孔板的微孔圓心的定位,實際上就是一種特殊的前景與背景的圖像分割(前景是指圓孔,而背景是非圓孔)。在圖像分割方面,國內外的研究大多數(shù)都是基于機器學習算法的圖像分割,例如汪粼波、郭延文、夏天辰等人提出的樣本驅動的半自動圖像集前背景分割方法[6],通過手動分割樣本的前景和背景,利用SVM訓練分類,從而實現(xiàn)半自動圖像集的前背景分割;覃曉、梁偉、元昌安等人提出的基于遺傳優(yōu)化譜聚類的圖形分割方法[7],通過對譜聚類算法的優(yōu)化,將遺傳算法應用于譜聚類算法以提高譜聚類的圖像分割質量;許雪梅、黃征宇、李麗嫻等人提出的一種基于HSV顏色分割和模糊級聯(lián)分類器的人臉檢測技術[8],通過對圖像選擇性光線補償,并利用HSV進行膚色檢測,在形態(tài)學處理及特征比例篩選后通過模糊級聯(lián)分類器進行分割人臉與圖像的背景,從而實現(xiàn)人臉檢測。但是利用機器學習需要大量樣本作為訓練,而微孔板的使用是一次性,因此通過機器學習算法來定位圓孔中心不是很好的方法。另外,微孔板圓孔的背景包括實驗臺及微孔板,而微孔板本身的特征和圓孔的特征相似,這些方法都很難從相似的背景(微孔板)中分割出圓孔。為了解決這一難題,以及提高識別圓孔的精度,本文以一種全新的思路,充分利用已知的微孔板與圓孔之間的比例不變的關系,提出了一種自然拍照的微孔板圖片中微孔中心的精確定位方法。
如圖1所示,由于圓孔在微孔中的位置都是固定的,因此,通過計算出圓孔半徑與微孔板邊長的比例,以及各個圓孔的圓心位置在整個微孔板中相對比例,則便可在一張標準的微孔板圖片中標出各個圓孔的中心了。
圖1 模具示意圖
本算法就是充分利用微孔板的圓孔與微孔板之間的比例不變關系,將要解決的問題即如何精確定位微孔板的各個孔中心轉換為如何精確定位微孔板的矩形邊界(這大大降低了問題的復雜度,使算法的效率大大提高)。如果矩形邊界精確定位后,則可將矩形的圖像,即整個微孔板通過標準透視變換提取出來,再根據(jù)微孔板的相應比例通過數(shù)學簡單計算便可直接標出微孔板的孔中心,從而實現(xiàn)自然拍照的微孔板圖片中微孔中心的精確定位。
在定位矩形邊界這個問題上,可以根據(jù)前人的研究[1-5],利用圖像處理技術與直線擬合檢測的方法進行矩形邊界的定位,通過對圖像進行預處理并除去相關噪點,再利用直線擬合找到微孔板矩形的邊界,從而實現(xiàn)矩形的邊界定位。
如圖2所示,該算法主要由圖像預處理、直線擬合檢測矩形、計算并標出孔坐標這三大部分構成。最終,可通過該算法精準地獲取矩形微孔板的邊界線,并定位好微孔板中心區(qū)域各孔位置,繼而提取出各個圓孔內的樣品溶液圖片。
圖像預處理主要是將圖像簡化并刪除圖像中的噪點,突出圖像的特征信息。如圖3所示,圖像預處理包括讀取圖像、轉換灰度圖、二值化處理及除去噪點四步:
(1)讀取圖像:讀取一幅圖像。
(2)轉換灰度圖:將讀取的圖像轉換為灰度圖。
(3)二值化處理:先對灰度圖進行高斯低通濾波處理,再使用Canny算子對邊緣進行二值化處理。
(4)除去噪點:計算并對圖像的連通區(qū)域進行面積大小排序,將80%~90%的小連通域毛刺刪除掉,只保留主連通域。
圖2 算法主流程圖
圖3 圖像預處理流程圖
計算直線求交點是孔定位當中至關重要的一步,如果邊界線定位不精確,那么便會導致定位的微孔板圓心也會出現(xiàn)偏差。但上一階段的圖像預處理大大地刪除了噪點,為這一步的直線擬合的準確性做了大大的保證。因此,通過簡單的隔點擬合直線的方法便可精確地求出邊界線了。如圖4所示,隔點擬合直線主要分為以下四步:
(1)獲取基準點:從上下左右四個方向分別做像素點檢測,遇到像素為1的像素點則停止檢測,并記錄該位置,繼續(xù)下一個像素點的獲取,這樣便可獲得四組基準點。
(2)隔點連線:由于考慮到相鄰兩點所做的直線偏差過大,因此各組分別提取每相隔5個點的兩點來擬合出多條直線,但各組只保留直線上點數(shù)最多的一條作為該組的邊界線,從而得出矩形的四條邊界線。
(3)求出矩形頂點:對這四條邊界線進行相鄰組合成方程組,求出這兩條直線的交點,即頂點。
圖4 直線擬合檢測矩形流程圖
基于上一階段的矩形定位,可通過透視變換對矩形進行標準矯正,即可提取出標準微孔板圖片。通過微孔板的標準比例即可計算出圓孔坐標。如圖5所示,計算孔坐標可以分為以下3個步驟實現(xiàn):
(1)透視變換:利用標準微孔板的長寬比例,將上一階段識別的矩形圖像透視變換成符合相應比例的微孔板圖像。
(2)求出孔坐標:根據(jù)標準微孔板的比例關系,求出微孔板圖像中各個圓孔的半徑長度及中心坐標。
(3)霍夫檢測:(此步驟可省略)此步驟是對矩形邊界識別不準確的一種保障方法,霍夫檢測可以降低由于矩形邊界識別不準確導致計算的坐標誤差,提高本算法的精確度及靈活性,減少對矩形邊界的依賴性。
圖5 計算孔坐標流程圖
(1)測試硬件環(huán)境:PC C4 1.7G,內存4G,機械硬盤500G
(2)測試軟件環(huán)境:Windows7 系統(tǒng),.NET Framework 3.5,MATLAB2017a,OpenCV3.20
(3)結果:為了驗證本算法的正確性和高效性,自然拍攝獸醫(yī)學院的120張實驗微孔板圖片作為樣本測試,其中準確定位出微孔板矩形的有100張圖片,準確定位出各個圓孔圓心的有117張,可見微孔板矩形的準確率為83%,圓孔圓心的準確率98%,在矩形偏差情況下成功通過霍夫變換糾正圓孔圓心的矯正率為85%,其中霍夫變換可以將圓心的準確率大約提高15%。另外,測試完120張圖片一共花費了50秒,平均定位一張圖片大概為416毫秒。
如圖6所示,它是預處理后的圖像。從這張圖中,可以發(fā)現(xiàn)預處理效果是非常好的,基本上把微孔板的邊界的特征都完好保留下來。
圖6 預處理效果圖
如圖7所示,它是定位微孔板矩形邊界的其中一張效果圖(其中微孔板邊界用白色虛線標注)。從這幅圖中,可以發(fā)現(xiàn)微孔板矩形邊界的定位是相當精準的,在測試的120張圖片中,只有20張識別不準(大部分圖片是由于微孔板過于偏斜導致,有兩三張是由于拍攝的圖片噪點過多,導致直線擬合失?。?,其他的都相當精準。
圖7 識別矩形邊界效果圖
如圖 8(a)、8(b)所示,8(a)表示矯正后的標準微孔板圖,8(b)表示在標準微孔板中所計算出的微孔中心坐標的效果圖(圖中白色的實線圓圈所示)。從圖8(a)的結果展示,可以發(fā)現(xiàn)矯正后的矩形可以使微孔板的圓孔定位變得非常簡單,另外從定位的效果圖可以看出所定位出的半徑及圓心是相當準確的。
本算法利用微孔板的固定比例,將定位圓孔轉換為定位微孔板的矩形邊界,從而簡化了問題,提高了圓孔與非圓孔圖像分割的準確率,同時也為分割一個位置相對固定的子圖像提供一種比例方法的提取思路。但從效果上看,本算法還存在一點毛刺,例如這種簡單的矩形檢測只能適用于這種背景簡單的檢測,對于復雜或圖片質量很差的微孔板的邊界檢測效果就會變差了,雖然霍夫變換可以提高準確率,但那也是得在偏差很小的情況下才能矯正。因此,如果要保證圓心定位的準確率達到99%,甚至100%,那么就要保證微孔板矩形邊界識別的準確率至少達到95%以上,這也是下一步要研究的方向,即如何精準識別微孔板的矩形邊界。
圖8