透過香蕉園中的Speed Dome攝影機拍攝,搭配電腦影像處理技術,追蹤香蕉生長情形變化。
此系統為初代版本,需要的輸入為 同一鏡頭定點、旋轉角度、放大倍率。多張不同日期、時間的Speed Dome香蕉園高清影像。
檔名格式:image_日-月-年_時-分-秒_AM(PM).jpg(png)
將預進行邊緣偵測的圖片
放入images/original/:
打開command line,將工作目錄移至專案根目錄下:
cd ./xxxx/Banana_Volume_Estimation/
輸入執行指令:
python3 main
按下enter後,可以看到系統正在處理圖片運算
大約5分鐘後會電腦就會自動跑出香蕉體積趨勢圖
並且會將趨勢圖存在當下目錄,並命名為scatter.png
DexiNed (Dense Extreme Inception Network for Edge Detection)
香蕉結果圖像,產出於 image/edged_img/ 資料夾中。如下圖:
The successive steps of the Canny filter
香蕉結果圖像,如下圖:
參數選擇 cv2.RETR_EXTERNAL,只留下外圍的輪廓。 圖例說明:
香蕉結果圖像,如下圖:
篩選條件:
- 輪廓圍起來的面積 > 前25%位數
- 輪廓圍起來的面積 < 平均+0.25倍的標準差
- 輪廓周長 < 600 pixels
香蕉結果圖像,產出於 image/result_pics/ 資料夾中。如下圖:
我們由 cv2.contourArea() 得到封閉曲線面積。
由於面積 Area (A) 正比於邊長的平方,體積 Volume (V) 正比於邊長的三次方。 故我們將面積 Area (A) 開根號,再乘上三次方,求得體積 Volume (V) 的相對數值。
將所有體積加總後,平均。
由此初代香蕉生長情形變化追蹤系統,可以做到將香蕉園的來源影像 ,透過多層影像處理技術,將單根香蕉的體積估算出來。
並且依據估算的香蕉體積,相對日期時間作圖,得到香蕉成長趨勢圖及其成長回歸曲線。
來源圖片分成白天、晚上兩種影像。晚上的香蕉園影像為紅外線攝 影,顏色對比較明顯,使用本系統/程式運算,可得到相較白天影 像,更準確的香蕉輪廓選取。 故未來需要將白天影像的輪廓選取效果,提升至夜晚影像的輪廓選 取水準。
輪廓的篩選條件尚未最佳化,有時會抓取到背景的雜物;而為了刪 除雜物所設立的篩選條件往往過於嚴苛而無法獲取足夠數量的香蕉 輪廓。如下圖:
每張圖片選取的香蕉輪廓,平均面積大小較不規則。換算體積後, 儘管落點與時間呈現正向成長關係,不過各點與回歸線間的誤差仍 需要被縮小。
可加入使用物件辨識演算法(如:YOLO),自動框選來源圖片中的香蕉串位置。
在香蕉園的拍攝地點,設置比例尺;在作影像面積判定上,可得到 更精確數值,不受鏡頭縮放比例不同影響。
加長香蕉園攝影期間,並縮短擷取影像的時間間隔(更多來源影像),以達到更精確的描點作圖。