這個儲存庫是我們基於 GUI 的應用程式 - MOTHe-GUI 的後端庫
Mothe 是一個 PYPI 庫,用於檢測和追蹤異構環境中的多種動物。 MOTHe 是一個基於 python 的儲存庫,它使用卷積神經網路 (CNN) 架構來執行物件偵測任務。它將數位影像作為輸入並讀取其特徵來分配類別。這些演算法是學習演算法,這意味著它們透過使用大量標記的訓練資料從圖像中提取特徵。一旦 CNN 模型經過訓練,這些模型就可以用於對新資料(圖像)進行分類。 MOTHe 被設計為通用的,即使在自然環境中,使用者也能夠追蹤感興趣的物件。
MOTHe 可以自動執行與物件分類相關的所有任務,並分為 5 種專用於以下任務的方法:
系統配置:系統配置用於在使用者係統上設定 MOTHe。基本詳細信息,例如本地存儲庫的路徑、要處理的視頻的路徑、要裁剪的個體的大小、運行檢測或跟踪時要跳過的幀數(以減少計算時間/運行測試用例)以及檢測階段要繪製的邊界框的大小。
資料集產生:資料集產生是目標偵測和追蹤的關鍵一步。產生所需數量的訓練資料所需的手動工作量龐大。資料生成類別和可執行檔案可讓使用者透過 GUI 上的簡單點擊來裁剪感興趣的區域,並自動將影像保存在適當的資料夾中,從而使流程高度自動化。
訓練卷積神經網路train_model :產生足夠數量的訓練範例後,使用資料來訓練神經網路。神經網路產生一個分類器作為輸出。分類器的準確性取決於網路的訓練程度,而網路的訓練程度又取決於訓練資料的品質和數量(請參閱我需要多少訓練資料? )。網路的各種調整參數是固定的,以使用戶可以輕鬆完成該過程。這個網絡非常適合二元分類 - 感興趣的對象(動物)和背景。此管道不支援多類分類。
物件偵測:此方法執行兩個關鍵任務 - 首先識別影像中可能有動物的區域,稱為定位;然後它對裁剪區域進行分類。此分類是使用小型 CNN(6 個卷積層)完成的。輸出採用.csv檔案形式,其中包含每個畫面中已識別動物的位置。
物件追蹤:物件追蹤是 MOTHe 的最終目標。該模組為檢測到的個體分配唯一的 ID 並產生他們的軌跡。我們將檢測和追蹤模組分開,以便僅對計數資料感興趣的人(例如調查)也可以使用它。這種模組化也為經驗豐富的程式設計師提供了使用更複雜的追蹤演算法的靈活性。我們使用現有程式碼來執行追蹤任務(來自 ref 的 Github 頁面)。該演算法使用卡爾曼濾波器和匈牙利演算法。一旦在上一步中產生檢測結果,就可以執行此腳本。輸出是一個 text{.csv} 文件,其中包含每個幀的單獨 ID 和位置。也會產生帶有每個人的唯一 ID 的視訊輸出。
MOTHe 是一個 python 套件,它使用了其他幾個可能已更新的 python 函式庫。因此,了解我們下載/安裝的版本非常重要。建議的 python 版本是 python3.6 到 python3.7 穩定版本(最新的 Linux LTS 版本(例如:Ubuntu 20.04 Focal Fossa)安裝有與 MOTHe 不相容的庫存 python3.8)。 Python3.8 不支援 MOTHe 工作所需的低於 2.2 版本的 Tensorflow 版本。請注意一些庫的版本修改得相當快,並且最近用於測試 MOTHe: