武漢理工大學自動化學院 汪 創
目前的動物精子形態分析主要是通過計算機視覺技術實現的。利用圖像處理技術,計算出每個精子的橢圓度、頭部伸長、中段角、頂體百分率等參數,進而評價精子質量。本系統采用K-means算法對精子圖像進行分割,細化算法對尾部中部進行分割,主動輪廓模型對頂體進行分割,圖像矩進行參數計算;最終,該系統能夠準確、自動地完成精子形態分析任務。它節省了大量人力,提高了效率。
精子細胞的形態學分析在評價精子受精能力和輔助受精中起著重要作用。精子質量檢測可以提高畜牧業生產效率,選擇更好的育種(如家畜的繁殖率分析和馬的繁殖)。一般來說,精子形態學分析是手工進行的,精子質量需要通過一系列的標準和統計數據來確定。這是非常主觀和低效的。因此,分析過程的精確性、簡便性和自動化程度具有重要的意義。隨著計算機視覺技術的發展,越來越復雜的視覺任務交給計算機。該系統是利用計算機技術解決精子形態分析的一種嘗試。精子圖像分析屬于醫學圖像處理領域。主要應用的技術是圖像分割。傳統的圖像分割算法分為5類;第一個是基于閾值的分割算法,其思想是為前景/背景識別標準設置閾值。第二種是基于邊緣檢測的分割算法,該方法主要應用于具有較明顯邊緣信息的圖像,第三種是基于區域的分割方法,最著名的是Meyer提出的分水嶺算法。它的基本思想是把圖像作為測地線的地形,圖像中每個像素的灰度值表示點的高度。每個局部最小灰度值及其影響區域稱為流域,流域邊界形成流域。通過對浸沒過程的模擬,可以說明流域的概念和形成。在每一個局部最小的表面,刺穿一個小洞,然后慢慢地將整個模型浸入水中。隨著浸沒深度的加深,各局部最小值的影響逐漸向外擴展,盆地匯流成壩,即流域的形成。第四是將圖像分割算法與圖論的最小割相結合。目的是去除特定的邊緣,將圖像分割成多個子圖,實現分割。第五個是活動輪廓模型,一個最著名的方法是蛇形分割算法,基本思想是表達目標邊緣使用連續曲線,并定義一個能量函數包括獨立變量的曲線,所以分割處理等于解決能量函數。當函數得到最小值時,曲線能量達到最小,則當前曲線位置為前景輪廓。本系統采用K-means和snake算法,K-means算法是一種無監督的機器學習算法,其思想是選擇N個元素作為裂紋處N聚類的中心。然后根據Eula距離將每個元素劃分為N個聚類中的一個。每次迭代之后,中心將被移動到集群的新中心位置。然后繼續迭代,直到結果到目前為止沒有變化,然后集群就完成了。此外,還使用各種形態學操作,如腐蝕、膨脹、細化。經過大量實驗,完成了一套精確、自動的精子形態分析系統。
圖像預處理的主要目的是獲得整體輪廓。預處理采用K-means聚類分割,原因是傳統的二值化方法將圖像分割成兩幅值圖像,將深度淺雜質染成與精子顏色相似的顏色,我們需要減少雜質數,這樣就更容易將雜質與精子區分開來。在精子質量的參數分析中,精子頂體的百分比是一個非常重要的指標。精子頂體是精子頭部周圍的一層膜,所以精子的頭部至少應該分為兩種顏色。精子的染色過程是一個手工的過程,液體密度很難把握,所以液體被染成不同的顏色。該系統采用K-means聚類算法將圖像分為三種不同的顏色,以達到實際應用的要求。三值分割容易將圖像分為雜質、精子和精子頂體。如圖1所示。

圖1 左邊是使用K-means算法分割的圖像,右邊的是二進制圖像
從K-means得到的圖像中提取最小聚類,形成一個全新的二值圖像。但是我們可以看到圖像中仍然有很多雜質。由于形態學操作者將雜質和精子頂體連接,我們首先刪除過小的輪廓。然后膨脹操作將使精子連接在一起。輪廓完成后,繪制外部輪廓。然后檢測來自雜質和區域、周長和形狀因子的精子。因為在一些圖像中,雜質的面積和周長與精子相似,所以我們同時使用形狀因子。形狀系數的公式4πs / P2。需要設置形狀因子的上下界,如果形狀因子太大,則表示形狀接近圓形。如果形狀因子太小,說明形狀太復雜,兩種情況都是雜質和。最后的輪廓如下圖2所示。

圖2 最后完整的二進制圖像
預處理過程可以總結如下。a)使用中值濾波來濾除干擾。b)利用K-meas算法得到一個三值圖像。c)過濾掉小區域的輪廓。d)連續腐蝕3次,共9*9個元素,然后用相同的時間撥號。e)根據面積、周長和形狀因子消去等高線。f)重繪的外部輪廓。
對于上面得到的大圖,下面的處理和參數計算不是很方便。因此,選擇合適的ROI來將每個精子分割成小圖。為了消除形態學算子對邊界的影響,ROI外存在一定的距離擴展。然后得到一個新的小圖像。如圖3所示。

圖3 一個精子的ROI
A.頭部的分割
其他動物精子的尾巴比人類精子的尾巴大。一般的形態學操作可用于人類精子分析,但不適用于動物。此外,顯微鏡的放大倍數也可以導致不同的結果。連續腐蝕和膨脹的很難得到一個共同的值,系統充分考慮了這種通用性,我的策略如下,相對于精子上的尾部和雜質連接,頭部面積較大。輸入圖像的過程是一個完整的輪廓,在連續侵蝕的過程中,圖像不可避免地會出現一些輪廓,最終只會出現一個輪廓。當只有一個輪廓時,侵蝕停止,記錄侵蝕的次數,膨脹相同的次數。如圖4所示。

圖4 頭部輪廓
B.尾巴的細化
在精子形態分析中,尾巴中部是否彎曲是一個非常重要的參數。在實驗過程中,我發現不同的動物精子中段有不同的厚度。不同的圖像特征很難確定。人類精子中段可以通過閉運算獲得,但動物尾巴厚度的變化不明顯,因此本系統采用圖像細化算法提取尾巴骨架。細化算法采用Zhang和Susen的算法。細化的原則是獲得一個最終代表圖像骨架結構的單一輪廓,準確地反映出曲率、長度、骨架結構等。下面是第一步:a)相鄰點的像素個數大于或等于2,小于或等于6。b) p -P9-P2像素在0- 1計算中的累積個數,達到2。c) p2 *P4*P6 = 0,這三個位置等于0。d) p4 *P6*P8 = 0,這三個位置等于0。如圖5所示。

圖5 細化算法示意圖
第一步和第二步基本上是一樣的。第三步是P2*P4*P8=0。第四個步驟是P2*P6*P8=0。重復兩步,直到不再改變。下面是骨架結構的圖像。如圖6所示。

圖6 細化算法后是的尾部圖像
C.頂體的分割精子頂體是頭部周圍的一層膜,是衡量精子質量的重要指標。頭部有一個非常明顯的白環,就是頂體的位置。主動輪廓模型蛇算法是最好的分割算法,其結果可以接近梯度方向的頂部收縮。
1)蛇形理論
snake模型的思想非常簡單,以一些控制點為模板,通過模板本身的彈性變形,通過局部圖像特征匹配調和,即最小化一定的能量函數,完成圖像分割。Kass提出的snake模型具有一組控制點V (s), =[x (s), y (s)],x和y表示圖像上每個控制點的位置。能量函數的定義如下:

第一個是彈力曲線,第二個是彎曲能量,前兩個統稱為內力曲線,以保證曲線的連續性和平滑性,最后一個是外力(像梯度力)。計算這個公式的值。每次迭代都將點向公式的方向移動到0,迭代N次。
2)初始輪廓提取
蛇形模型對初始輪廓的要求很高,如果初始輪廓點迭代設置為head。最后的結果不太可能會收縮到頂位,所以這個系統使用K-means算法得到的兩個值圖像,與完整的輪廓相比較,二進制映射有一個明顯的漏洞,這個洞是由頂體引起的,如下圖所示。計算孔的中心,畫一條垂直于中心長軸的直線,直線和頭部輪廓的上半部分形成初始輪廓。參數設置為0.8,參數設置為0.2。經過50次迭代,得到的輪廓基本收斂到頂體,如圖7所示。

圖7 從左到右,從上到下的圖像是原始的二值圖像,RGB圖像中的初始輪廓,初始輪廓的二值圖像,最終的頂體輪廓
上述圖像分割是為了方便參數的計算,然后將數據發送給專業技術人員判斷精子是否合格。頭部的七個主要參數為:橢圓率、褶皺、伸展度、對稱度、頂體百分數、中間寬度和夾角等參數。
A.基本參數的計算
基本參數包括頭部的長軸、小軸、面積和周長。如上所述,討論了長軸的計算方法。短軸由長軸兩側與長軸垂直的兩點組成。面積和周長是最簡單的圖像矩參數。面積公式如下:

B.頭部參數的計算
這里我們用L表示長軸,W表示小軸,S表示面積,P表示周長。除此之外,我們還需要計算其他參數。這些參數的計算是基于前面的基本參數和圖像的分割部分。頭參數:橢圓率= L / W,褶皺=4πs / P2,伸長= L - W / L + W,對稱度=πLW / 4 s。頂體百分比=S(頂體)/ S(頭)。它們很容易計算。
C .尾部參數的計算尾部參數包括中段寬度及其長軸之間的夾角。根據經驗,精子的長度和頭部的長度是一樣的,所以把尾巴上的長軸的長度和精子的中間部分一樣。我想直線l是頭頂點和中間頂點之間的連接。角參數是指l與長軸之間的角,用來確定尾巴是否彎曲。通過變換距離計算寬度,圖像的距離變換是前景點到最近的背景聲點的距離。計算骨架點到等高線距離的平均值作為寬度,可以客觀地表示中間寬度。
本系統使用帶有win64編譯環境的OpenCV庫進行開發,實驗對象為豬精子,實驗圖像中有6個精子。其中一個是無效的精子。實驗數據如圖8所示。

圖8 參數結果表
第二個精子的伸展度是不夠的。其他精子參數在正常范圍內。其他種類動物精子參數的標準需要由相關人員提供。
該系統考慮了不同動物精子形態的多樣性。使用K-means作為整體分割,蛇算法作為整體分割。最后,我完成了簡單版的系統,可以解決簡單的情況。有一些情況是這個系統無法解決的。在預處理步驟中,忽略復雜的細胞交叉情況。當雜質和頭部連接在一起時,我們不能輕易區分它們,這種情況會導致錯誤的結果。這個系統將來需要在這些方向上進行改進。