曾祥潘 廣東省廣州市白云區(qū)景泰小學(xué)
孫麗君 山東省淄博第二中學(xué)
吳俊杰 北京師范大學(xué)物理系
種植活動是勞動教育的重要組成部分,育種則是種植的開端。在育種過程中,土壤pH是影響種子萌發(fā)的重要因素之一,pH發(fā)生變化,引起農(nóng)業(yè)減產(chǎn)。在不同pH條件下種子萌發(fā)的差異怎樣判斷呢?這就需要進(jìn)行檢驗(yàn)。通過種子萌發(fā)實(shí)驗(yàn),取得實(shí)驗(yàn)數(shù)據(jù);對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析檢驗(yàn)就可以獲知不同pH條件下種子萌發(fā)有沒有存在差異。
本實(shí)驗(yàn)研究采用對照實(shí)驗(yàn),選取兩組不同pH條件下的種子進(jìn)行萌發(fā)實(shí)驗(yàn),實(shí)驗(yàn)過程定時(shí)拍照記錄;再利用深度學(xué)習(xí)目標(biāo)檢測算法識別照片中的發(fā)芽種子,取得實(shí)驗(yàn)數(shù)據(jù);最后使用R語言對兩組數(shù)據(jù)進(jìn)行檢驗(yàn),讓學(xué)生體驗(yàn)用深度學(xué)習(xí)解決實(shí)際問題的過程。
本實(shí)驗(yàn)以不同pH條件下萌發(fā)綠豆種子為實(shí)驗(yàn)樣本,通過深度學(xué)習(xí)的目標(biāo)檢測算法識別種子發(fā)芽,獲取種子萌發(fā)數(shù)據(jù)。實(shí)驗(yàn)過程經(jīng)歷目標(biāo)檢測數(shù)據(jù)集制作、模型訓(xùn)練、使用模型預(yù)測等一系列步驟,最后使用R語言工具進(jìn)行數(shù)據(jù)檢驗(yàn)。
目標(biāo)檢測是深度學(xué)習(xí)重要的應(yīng)用領(lǐng)域之一,其中出現(xiàn)了許多先進(jìn)的算法,如R-CNN、SSD、YOLO等。本實(shí)驗(yàn)選用目前最新的YOLOv5(v6.1),其特點(diǎn)是識別準(zhǔn)確率高、速度快。
此外,實(shí)驗(yàn)過程中拍攝的種子培養(yǎng)皿照片,通??蛇_(dá)數(shù)百萬像素。種子在整張照片中所占比例很小,屬于小目標(biāo),如果將這些照片直接識別,YOLOv5會按比例將照片長邊縮小為640像素,照片中的小目標(biāo)將丟失許多圖像細(xì)節(jié),導(dǎo)致識別效果很差,甚至出現(xiàn)無法識別的情況,因此,需要采取輔助手段提高識別效果。經(jīng)過查詢發(fā)現(xiàn),已有多種解決方案可實(shí)現(xiàn)提高識別效果。本實(shí)驗(yàn)選用SAHI(Slicing Aided Hyper Inference)輔助識別發(fā)芽種子,SAHI支持使用YOLOv5模型識別,省去其他工具需要轉(zhuǎn)換模型文件的操作,使用更簡便,其工作原理是將原始圖像切割成若干張,再進(jìn)行識別,識別完成后,將識別結(jié)果融合輸出。
在市場購買綠豆,選取籽粒飽滿、大小勻稱的種子作為實(shí)驗(yàn)材料。為了降低實(shí)驗(yàn)難度、提高實(shí)驗(yàn)的易操作性,只選取兩組樣本進(jìn)行對照實(shí)驗(yàn),每組配備100顆種子。其中實(shí)驗(yàn)組在堿性條件萌發(fā),對照組在中性環(huán)境萌發(fā)。堿性條件使用碳酸氫鈉兌純凈水,pH值調(diào)整為7.5;中性環(huán)境使用純凈水,pH值為7。準(zhǔn)備拍照用手機(jī)、安裝YOLOv5及R語言等軟件的計(jì)算機(jī)。
高質(zhì)量的訓(xùn)練樣本是人工智能模型訓(xùn)練的首要條件。在購買綠豆種子后先嘗試萌發(fā),這樣既可以檢驗(yàn)種子能否成活,還能采集到樣本照片。種子用溫水浸泡2小時(shí),然后將其均勻放置在平鋪了三層吸水紙的培養(yǎng)皿中,吸水紙保持濕潤。24小時(shí)后有部分種子發(fā)芽,開始拍攝照片,旋轉(zhuǎn)培養(yǎng)皿從不同角度拍攝。12小時(shí)后重復(fù)拍攝一遍。
原始照片要用圖片處理軟件裁切成若干張640×640像素圖片,每張圖片含有5~10顆種子。用Labelimg對裁切后的圖片進(jìn)行標(biāo)注,設(shè)置yolo標(biāo)簽格式,用標(biāo)記框把已發(fā)芽的種子框選,注意控制選擇范圍,要把種子和種芽框選在內(nèi)。要取得較好的模型訓(xùn)練效果,樣本數(shù)量應(yīng)在300以上。
使用YOLOv5訓(xùn)練模型的指令如下:
python train.py --data data/(訓(xùn)練樣本yaml配置文件) --cfg models/yolov5s.yaml --workers 0 --batch-size 4 --epochs 50
訓(xùn)練時(shí)間因不同計(jì)算機(jī)配置和訓(xùn)練次數(shù)從幾小時(shí)到十幾小時(shí)不等。在訓(xùn)練完成后對模型進(jìn)行測試,看能否識別出發(fā)芽的種子,指令如下:
python detect.py --source=“data/(發(fā)芽種子jpg文件路徑)” --weights=“runs/train/exp/weights/best.pt”
模型訓(xùn)練和預(yù)測過程如圖1所示。
圖1 模型訓(xùn)練與測試
將兩組種子分別放入pH7.5碳酸氫鈉和pH7純凈水中,浸泡2小時(shí)后瀝干,均勻放置在鋪有吸水紙的培養(yǎng)皿中。每隔2小時(shí)拍攝一次照片,連續(xù)拍攝48小時(shí)。超過48小時(shí)長出胚葉會增加實(shí)驗(yàn)的復(fù)雜性,暫不記錄。
拍攝完成后取得兩組實(shí)驗(yàn)照片,每組25張。用SAHI對兩組照片進(jìn)行預(yù)測,識別出發(fā)芽的種子,取得發(fā)芽數(shù)據(jù)。SAHI操作指令如下:
sahi predict --source data/(圖片文件夾路徑) --model_type yolov5 --model_path weights/(模型文件路徑) --model_device cpu --export_pickle --project resources
將識別結(jié)果保存在resources文件夾中,效果如圖2所示。
圖2 SAHI識別結(jié)果
將識別數(shù)據(jù)進(jìn)行整理,把置信度達(dá)到0.5或以上的識別結(jié)果視為種子發(fā)芽,將每張圖片的發(fā)芽數(shù)量記錄到電子表格中。
比較兩組實(shí)驗(yàn)數(shù)據(jù)是否存在差異,可以使用R語言進(jìn)行檢驗(yàn)。在進(jìn)行差異檢驗(yàn)之前要先對數(shù)據(jù)進(jìn)行正態(tài)性檢驗(yàn),再根據(jù)檢驗(yàn)結(jié)果選擇適當(dāng)?shù)牟町悪z驗(yàn)方法。
(1)正態(tài)性檢驗(yàn)
由于每組實(shí)驗(yàn)數(shù)據(jù)為25個(gè),屬于小樣本,因此正態(tài)性檢驗(yàn)選擇了適合小樣本的SW檢驗(yàn)。檢驗(yàn)指令和結(jié)果如圖3所示。
圖3 SW正態(tài)性檢驗(yàn)結(jié)果
從檢驗(yàn)結(jié)果可知,兩組數(shù)據(jù)的p-value均小于0.05,說明兩組數(shù)據(jù)都不符合正態(tài)分布。
(2)差異性檢驗(yàn)
由于兩組實(shí)驗(yàn)數(shù)據(jù)都不符合正態(tài)分布,兩者屬于獨(dú)立的小樣本,因此檢驗(yàn)這兩組數(shù)據(jù)差異應(yīng)采用兩獨(dú)立樣本非參數(shù)檢驗(yàn)。針對兩獨(dú)立樣本非參數(shù)檢驗(yàn),R語言提供了wilcoxon秩和檢驗(yàn)。檢驗(yàn)指令和結(jié)果如圖4所示。
圖4 wilcoxon秩和檢驗(yàn)
從計(jì)算結(jié)果得知,p-value=0.2715,顯著性水平α=0.05,p-value大于顯著性水平,說明拒絕原假設(shè)(原假設(shè)是兩組樣本數(shù)據(jù)有明顯差異),因此兩組實(shí)驗(yàn)數(shù)據(jù)并沒有明顯差異。
從實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),兩組實(shí)驗(yàn)綠豆種子浸泡了不同pH值液體,對發(fā)芽率并沒有影響,這跟其他專家實(shí)驗(yàn)結(jié)果不一致。究其原因可能是使用的液體pH相差太小,沒有使用pH8或者以上的液體進(jìn)行浸泡,或者浸泡時(shí)間太短等。這還有待于今后進(jìn)一步實(shí)驗(yàn)驗(yàn)證。
本實(shí)驗(yàn)采用了YOLOv5及SAHI深度學(xué)習(xí)工具,完成了模型的訓(xùn)練和預(yù)測,對發(fā)芽種子進(jìn)行識別,最后用R語言工具進(jìn)行數(shù)據(jù)分析。這一方法還可以在各種實(shí)驗(yàn)項(xiàng)目中使用,如在細(xì)胞實(shí)驗(yàn)中對不同細(xì)胞種類識別和計(jì)數(shù)等。