鄒 盛,趙立宏
(南華大學(xué)機(jī)械工程學(xué)院,湖南 衡陽(yáng) 421001)
微生物培養(yǎng)在生物、醫(yī)藥、食品、污水處理等領(lǐng)域具有重要的意義,是微生物學(xué)研究、生物制藥、食品檢測(cè)、水質(zhì)檢測(cè)等操作過(guò)程中的基本技術(shù)之一。由于微生物的種類(lèi)繁多且微生物培養(yǎng)的過(guò)程十分繁雜,需要多步操作處理,故將微生物培養(yǎng)過(guò)程中的某些重復(fù)且容易失誤的操作步驟自動(dòng)化,是行業(yè)的迫切需求。這可以減少大量人力、物力和財(cái)力的投入。
基于上述情況,要實(shí)現(xiàn)微生物自動(dòng)化培養(yǎng),首先要完成菌體生長(zhǎng)的自動(dòng)識(shí)別。本課題在微生物培養(yǎng)過(guò)程中,在酶標(biāo)(enzyme linked immunosorbent assay,ELISA)板上進(jìn)行菌落培養(yǎng)時(shí)自動(dòng)通過(guò)機(jī)器視覺(jué)輸入[1-2],并對(duì)攝像頭捕捉到的圖像進(jìn)行實(shí)時(shí)處理,從而實(shí)現(xiàn)對(duì)培養(yǎng)孔菌體生長(zhǎng)時(shí)顏色變化的特征提取[3-4],為之后符合要求的菌體自動(dòng)篩選和選取提供依據(jù)。
本研究采用的圖像采集設(shè)備為羅技的C270i型號(hào)攝像頭,最大分辨率為1 280×960。針對(duì)采集的圖像,對(duì)微生物培養(yǎng)的自動(dòng)化的需求進(jìn)行分析,完成對(duì)酶標(biāo)板孔區(qū)域定位。根據(jù)孔中微生物生長(zhǎng)時(shí)的顏色變化進(jìn)行篩選的要求,該研究主要有兩個(gè)難點(diǎn)。其一是酶標(biāo)板位置矯正進(jìn)行孔位的準(zhǔn)確定位;其二是攝像頭目標(biāo)圖像采集時(shí),酶標(biāo)板培養(yǎng)孔會(huì)發(fā)生變形。在進(jìn)行孔位顏色特征提取時(shí),要選取合適的孔區(qū)域。顏色提取算法流程如圖1所示。
圖1 顏色提取算法流程圖
根據(jù)圖1,首先要采集酶標(biāo)板圖像。但通過(guò)攝像頭采集到的原始圖像區(qū)域范圍比較大,無(wú)法準(zhǔn)確計(jì)算并定位酶標(biāo)板每個(gè)培養(yǎng)孔的孔位,因此需要識(shí)別原圖片中的酶標(biāo)板區(qū)域,從而分割出酶標(biāo)板區(qū)域。攝像頭在某一場(chǎng)景采集到的圖像信息,會(huì)因?yàn)榄h(huán)境、采集設(shè)備、大小等因素造成分辨率低、光照不均等問(wèn)題。這些問(wèn)題將會(huì)影響后期圖像識(shí)別的各個(gè)流程。因此,在對(duì)攝像頭采集到圖像進(jìn)行識(shí)別處理之前,需對(duì)圖像進(jìn)行必要的預(yù)處理,從而提高定位和識(shí)別的正確率。
邊緣檢測(cè)是通過(guò)標(biāo)記數(shù)字圖像中亮度變化明顯的點(diǎn),提取出文字的邊緣,在文字識(shí)別中起著重要作用。本方法采用Canny算子[5],對(duì)經(jīng)過(guò)灰度化和高斯濾波預(yù)處理的圖像進(jìn)行邊緣檢測(cè),剔除了與識(shí)別不相關(guān)的信息,通過(guò)大幅度減少數(shù)據(jù)量來(lái)節(jié)省識(shí)別時(shí)間;保留了圖像重要的結(jié)構(gòu)屬性,提升了對(duì)酶標(biāo)板外圍輪廓檢測(cè)的效率。酶標(biāo)板外圍輪廓識(shí)別圖如圖2所示。
圖2 酶標(biāo)板外圍輪廓識(shí)別圖
由于最終需求是準(zhǔn)確定位每個(gè)孔位區(qū)域,故首先要在整個(gè)圖像上找到酶標(biāo)板區(qū)域,并進(jìn)行酶標(biāo)板目標(biāo)區(qū)域的選取。在實(shí)際的培養(yǎng)過(guò)程中,酶標(biāo)板在培養(yǎng)箱的位置可能會(huì)產(chǎn)生有一定的傾斜。在這種情況下,必須將其位置矯正為水平垂直方向,才能準(zhǔn)確定位培養(yǎng)孔。本次試驗(yàn)主要通過(guò)圖像的凸包檢測(cè)、尋找外圍輪廓、尋找最小包圍矩形、仿射變換、感興趣區(qū)域選取等關(guān)鍵步驟,準(zhǔn)確獲取酶標(biāo)板區(qū)域。
2.2.1 凸包檢測(cè)及尋找外圍輪廓
凸包是幾何學(xué)中一個(gè)常見(jiàn)的圖形概念,通俗來(lái)講就是在二維平面上通過(guò)給定的點(diǎn)集數(shù)據(jù),將圖像輪廓最外層的點(diǎn)都連接起來(lái),形成一個(gè)凸多邊形。凸包包含了輪廓點(diǎn)集上的所有點(diǎn)。利用凸包檢測(cè),可以將Canny邊緣檢測(cè)的圖像在最外層用一個(gè)封閉的多邊形進(jìn)行包圍,形成一層外圍輪廓,為下一步尋找真正的外層輪廓作準(zhǔn)備。利用OpenCV的findContours()函數(shù)完成對(duì)圖像中酶標(biāo)板外圍輪廓檢測(cè),通過(guò)對(duì)函數(shù)參數(shù)的設(shè)置,可以只檢測(cè)圖像的最外層輪廓。但這要求原圖的邊緣圖像輪廓為封閉的圖像,否則就會(huì)識(shí)別出很多不是最外層的輪廓。試驗(yàn)證明,利用凸包檢測(cè)后的圖像尋找圖像的外圍輪廓,可以有效識(shí)別物體的外圍輪廓[6]。
2.2.2 尋找輪廓的最小包圍矩形
此前獲得的外圍輪廓只是酶標(biāo)板的大概外圍輪廓,是由一些線(xiàn)段連接起來(lái)的,會(huì)有一些誤差,并不能真正確定酶標(biāo)板的矩形區(qū)域。對(duì)此,需要在得到的外圍輪廓外面尋找一個(gè)最小的包圍矩形,通過(guò)這個(gè)矩形確定酶標(biāo)板的具體位置,并由OpenCV的minAreaRect()函數(shù)求出這個(gè)輪廓的最小的外接矩形。該函數(shù)的返回值是RotatedRect類(lèi)矩形對(duì)象,其主要數(shù)據(jù)成員有center、size、 angle、points,因此可以得到這個(gè)外接矩形的的質(zhì)心坐標(biāo)、大小及傾斜角度。
當(dāng)?shù)玫降淖钚⊥饨泳匦斡幸欢▋A角時(shí),可以通過(guò)仿射變換使目標(biāo)區(qū)域旋轉(zhuǎn)到水平和垂直方向。仿射變換就是一個(gè)向量空間乘以一個(gè)矩陣 (線(xiàn)性變換),再加上一個(gè)向量 (平移),從而變換到另一個(gè)向量空間的過(guò)程。其代表兩副圖片之間的關(guān)系。它的變化包括旋轉(zhuǎn)、平移、伸縮。
通常使用 2×3 矩陣M來(lái)表示仿射變換。
在攝像頭對(duì)目標(biāo)區(qū)域進(jìn)行采集的過(guò)程中,酶標(biāo)板傾斜可能會(huì)出現(xiàn)兩種情況,傾斜矯正情況如圖3所示。在OpenCV中,設(shè)width與x軸的夾角為θ。第一種情況如圖3(a)所示,為繞c點(diǎn)逆時(shí)針旋轉(zhuǎn)(90-|θ|)。第二種情況如圖3(b)所示,為繞B點(diǎn)順時(shí)針旋轉(zhuǎn)|θ|。這樣就可以保證得到的是方向相同的、處于水平和垂直的酶標(biāo)板圖像。
圖3 酶標(biāo)板傾斜矯正示意圖
2.2.3 酶標(biāo)板培養(yǎng)孔區(qū)域定位與選取
在利用機(jī)器視覺(jué)進(jìn)行外部圖像數(shù)據(jù)采集的過(guò)程中,常常需要對(duì)所采集圖像的特定區(qū)域進(jìn)行處理,從而簡(jiǎn)化操作處理過(guò)程。將這個(gè)區(qū)域選定為感興趣區(qū)域,便可對(duì)圖像數(shù)據(jù)進(jìn)行下一階段的處理。通過(guò)獲取的最小包圍矩形得到的頂點(diǎn)坐標(biāo)及矩形的width和height,即可使用RIO函數(shù)圈定想要處理的酶標(biāo)板區(qū)域。在確定酶標(biāo)板區(qū)域后,可以通過(guò)像素和實(shí)際尺寸的比例關(guān)系,準(zhǔn)確計(jì)算并定位到各個(gè)培養(yǎng)孔的實(shí)際圓心位置。
酶標(biāo)板的每個(gè)孔里都培養(yǎng)了一種菌體,這就要求根據(jù)酶標(biāo)板的孔位進(jìn)行分割[7],提取出每個(gè)不同的區(qū)域進(jìn)行單獨(dú)顏色識(shí)別。本試驗(yàn)矩形區(qū)域采用RIO函數(shù)進(jìn)行感興趣區(qū)域選取,圓孔區(qū)域采用mask掩膜的方法進(jìn)行區(qū)域分割提取。
圖像掩膜指的是使用選定的圖像、圖形或物體,對(duì)處理圖片的全部或局部進(jìn)行遮擋,來(lái)控制和選取圖像處理的區(qū)域。掩膜可以提取圖片中任意形狀的區(qū)域。其具體實(shí)現(xiàn)原理是用預(yù)先制作、想要截取處理圖片形狀的掩膜與待處理圖像進(jìn)行運(yùn)算,得到特定形狀區(qū)域的圖像。選取區(qū)域內(nèi)圖像的像素值保持不變,而區(qū)外圖像值都為0(即為純黑色)。
顏色空間的用途是在某些標(biāo)準(zhǔn)下用通??山邮艿姆绞綄?duì)彩色加以說(shuō)明。常用的顏色空間有 RGB、CMY、HSV、HSI等[8]。RGB是最基本的顏色空間,主要由紅色、綠色、藍(lán)色三種基本原色描述其他顏色,常用于顯示領(lǐng)域。HSV中:H代表色調(diào),通常用來(lái)區(qū)分顏色種類(lèi);S代表純度,用來(lái)表示和描述彩色的純潔特性和色調(diào)的深淺程;V代表明度,一般用來(lái)描述色彩的明暗、深淺程度。HSV[9]是一種更直觀(guān)且符合人眼視覺(jué)特性的顏色模型。本試驗(yàn)采用普通攝像頭讀入 RGB 顏色,記錄圖片每個(gè)像素點(diǎn)的 RGB 值,并在算法中將RGB轉(zhuǎn)換到HSV。由RGB向HSV的轉(zhuǎn)換公式為:
V=max(R,G,B)
(1)
(2)
(3)
在不同光線(xiàn)條件下,物體本身的顏色會(huì)發(fā)生變化。而相對(duì)于人眼而言,電子設(shè)備自身并不能根據(jù)光線(xiàn)的改變進(jìn)行自我修正,輸出的圖像可能會(huì)出現(xiàn)色彩失真,圖像偏紅或偏藍(lán)。對(duì)此,引入了圖像的白平衡處理。圖像白平衡是針對(duì)偏色圖像進(jìn)行校正的主要處理方法。本文使用基于白點(diǎn)檢測(cè)的自動(dòng)白平衡算法實(shí)現(xiàn)白平衡處理[10]。
本文使用的白平衡處理算法需要以下三個(gè)操作步驟:①色溫估計(jì),把圖像從RGB轉(zhuǎn)為YCbCr,估計(jì)圖像在YCbCr的平均色差;②增益計(jì)算,計(jì)算圖像R和B通道的增益u、v;③色溫校正,將圖像每個(gè)像素的R和B通道分別與校正因子u、v相乘,實(shí)現(xiàn)白平衡。
色溫估計(jì)最常用的方法就是計(jì)算圖像的平均色差。為了減少計(jì)算量,基于白點(diǎn)檢測(cè)的色溫估計(jì)通過(guò)約束條件Y-|Cb|-|Cr|>phi挑選白色像素,提高色差計(jì)算的精度。phi在文獻(xiàn)[9] 給定的值為180。在圖像色溫估計(jì)的基礎(chǔ)上,通過(guò)迭代的方法得到校正因子;然后,在圖像的紅藍(lán)通道上乘以各自的校正因子,來(lái)調(diào)節(jié)RGB三通道顏色的比例;最后,達(dá)到圖像顏色校正的目的。
提取的每個(gè)孔位區(qū)域保留了原有孔位區(qū)域的H、S、V值,每個(gè)像素點(diǎn)都對(duì)應(yīng)一個(gè)H、S、V值,具體到本試驗(yàn)就是要利用最小包圍矩形獲取圓心坐標(biāo)和半徑,并制作掩膜來(lái)提取每一個(gè)特定圓孔區(qū)域。由于對(duì)細(xì)菌整體生長(zhǎng)情況進(jìn)行篩選時(shí),需要觀(guān)察整個(gè)區(qū)域且要求具備較高的自動(dòng)化水平,所以本次試驗(yàn)采用提取每個(gè)截取圓形區(qū)域的HSV平均值A(chǔ)VG_H、AVG_V、AVG_S作為判定依據(jù)。
對(duì)每個(gè)酶標(biāo)板的孔位用移液槍滴入等量20 mL的同顏色液體進(jìn)行多次試驗(yàn),如圖4所示。采用獲取圓孔的最大內(nèi)接圓和獲取孔的最大內(nèi)接正方形這兩種方式,計(jì)算每一個(gè)孔位區(qū)域的AVG_H、AVG_V、AVG_S顏色平均值,如圖4(a)和圖4(b)所示??紤]到攝像頭在垂直方向拍攝時(shí)酶標(biāo)板四周的孔位區(qū)域會(huì)發(fā)生變型,如果選取整個(gè)區(qū)域就會(huì)造成結(jié)果出現(xiàn)更大的誤差,所以本試驗(yàn)在方案一和方法二的基礎(chǔ)上進(jìn)行了組合,提出了如圖4(c)所示的方案三。采用這三種方案分別計(jì)算代表酶標(biāo)板96個(gè)孔位區(qū)域的AVG_H、AVG_V、AVG_S值,以及三種方案96孔位區(qū)域HSV三通道顏色值標(biāo)準(zhǔn)誤差。多次試驗(yàn)的三通道顏色誤差平均值結(jié)果如表1所示。
圖4 酶標(biāo)板孔位區(qū)域選取方案
表1 三種方案酶標(biāo)板培養(yǎng)孔HSV顏色分量誤差
由以上試驗(yàn)結(jié)果可知,該試驗(yàn)方法可以對(duì)酶標(biāo)板孔位顏色特征進(jìn)行提取。綜合了方案一和方案二的方案三的測(cè)得96孔位的HSV平均值波動(dòng)性更小,能更準(zhǔn)確地得到酶標(biāo)板培養(yǎng)孔的顏色特征值,為培養(yǎng)孔菌體的篩選提供更準(zhǔn)確的判斷。
本研究方法實(shí)現(xiàn)了在OpenCV平臺(tái)上,對(duì)攝像頭輸入目標(biāo)圖像酶標(biāo)板區(qū)域的準(zhǔn)確識(shí)別和送取 ,以及對(duì)酶標(biāo)板孔位定位和孔位區(qū)域合理的選??;計(jì)算了每個(gè)區(qū)域的HSV平均值,為顏色的識(shí)別提供了數(shù)據(jù),為細(xì)菌生長(zhǎng)的篩選提供了依據(jù),為后續(xù)對(duì)生長(zhǎng)狀況符合要求的細(xì)菌的轉(zhuǎn)移奠定了基礎(chǔ)。此外,如果要更好地將此識(shí)別系統(tǒng)應(yīng)用于微生物生產(chǎn)實(shí)踐中,還需要更快的識(shí)別速度和更高的識(shí)別精度,這都有待于進(jìn)一步研究。