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