開放原始碼軟體正在加速生物醫學發展。 DeepLabCut 透過深度學習實現動物行為的自動化影片分析。
—Alexander Mathis,洛桑聯邦理工學院助理教授 (EPFL)
DeepLabCut 是一個開放原始碼工具箱,讓全球數百個機構的研究人員能夠以極少的訓練數據,達到人類等級的準確度來追蹤實驗動物的行為。 透過 DeepLabCut 技術,科學家可以更深入地研究跨動物物種和時間尺度的運動控制和行為的科學理解。
包括神經科學、醫學和生物力學在內的多個研究領域,都使用來自動物運動追蹤的數據。 DeepLabCut 透過解析影片中記錄的動作,幫助理解人類和其他動物正在做什麼。 DeepLabCut 將繁瑣的標記和監控任務自動化,並結合基於深度神經網路的數據分析,使得涉及觀察動物(如靈長類動物、小鼠、魚類、果蠅等)的科學研究變得更快、更準確。
DeepLabCut 透過提取動物的姿態來進行非侵入性動物行為追蹤,這對於生物力學、遺傳學、動物行為學和神經科學等領域的科學研究至關重要。 從影片中非侵入性地測量動物的姿態(無需標記)在動態變化的背景下,在技術上以及資源需求和所需訓練數據方面都具有計算上的挑戰性。
DeepLabCut 讓研究人員能夠估計受試者的姿態,有效地透過基於 Python 的軟體工具包來量化行為。 透過 DeepLabCut,研究人員可以從影片中識別出不同的影格,使用客製化的 GUI 在少數影格中以數位方式標記特定的身體部位,然後 DeepLabCut 中基於深度學習的姿態估計架構會學習如何在影片的其餘部分以及其他類似的動物影片中挑選出相同的特徵。 它適用於各種動物物種,從常見的實驗室動物(如果蠅和小鼠)到更不常見的動物,如 獵豹。
DeepLabCut 使用一種稱為 遷移學習 的原理,這大大減少了所需的訓練數據量,並加快了訓練週期的收斂速度。 根據需求,使用者可以選擇不同的網路架構,以提供更快的推論速度(例如 MobileNetV2),這也可以與即時實驗回饋相結合。 DeepLabCut 最初使用了來自頂級人類姿態估計架構(稱為 DeeperCut)的特徵檢測器,這啟發了這個名稱。 該套件現在已進行重大更改,包括額外的架構、擴增方法和完整的前端使用者體驗。 此外,為了支援大規模的生物實驗,DeepLabCut 提供了主動學習功能,以便使用者可以隨著時間的推移增加訓練集,以涵蓋邊緣案例,並使其姿態估計演算法在特定情境中更穩健。
最近,推出了 DeepLabCut 模型動物園,其中提供了適用於各種物種和實驗條件的預訓練模型,從靈長類動物的面部分析到狗的姿勢。 這可以例如在雲端中運行,而無需標記任何新數據、神經網路訓練,並且不需要任何程式設計經驗。
動物姿態分析的自動化,用於科學研究
DeepLabCut 技術的主要目標是測量和追蹤各種環境中動物的姿勢。 例如,這些數據可用於神經科學研究,以了解大腦如何控制運動,或闡明動物如何進行社會互動。 研究人員觀察到 DeepLabCut 帶來了 十倍的效能提升。 姿勢可以離線推斷,速度高達每秒 1200 影格 (FPS)。
創建一個易於使用的 Python 工具包,用於姿態估計
DeepLabCut 希望以易於使用的工具形式分享他們的動物姿態估計技術,以便研究人員可以輕鬆採用。 因此,他們創建了一個完整的、易於使用的 Python 工具箱,並具有專案管理功能。 這些功能不僅可以實現姿態估計的自動化,還可以透過協助 DeepLabCut 工具包使用者從數據集收集階段到創建可共享和可重複使用的分析流程,來端到端地管理專案。
他們的 工具包 現在以開放原始碼形式提供。
典型的 DeepLabCut 工作流程包括
速度
快速處理動物行為影片,以便測量牠們的行為,同時使科學實驗更有效率、更準確。 在動態變化的背景下,為實驗室實驗提取詳細的動物姿態(無需標記)可能具有挑戰性,無論是在技術上,還是在資源需求和所需訓練數據方面。 開發一種易於使用的工具,無需電腦視覺專業知識等技能,使科學家能夠在更真實的世界情境中進行研究,這是一個非同小可的問題。
組合學
組合學涉及將多個肢體的運動組裝和整合到個別動物行為中。 將關鍵點及其連接組裝成個別動物運動,並在時間上連結它們,是一個複雜的過程,需要大量的數值分析,尤其是在實驗影片中進行多動物運動追蹤的情況下。
數據處理
最後但並非最不重要的是,陣列操作 - 處理對應於各種圖像、目標張量和關鍵點的大量陣列堆疊是相當具有挑戰性的。
NumPy 滿足了 DeepLabCut 技術對行為分析高速數值計算的核心需求。 除了 NumPy 之外,DeepLabCut 還使用了各種核心採用 NumPy 的 Python 軟體,例如 SciPy、Pandas、matplotlib、Tensorpack、imgaug、scikit-learn、scikit-image 和 Tensorflow。
NumPy 的以下功能在解決 DeepLabCut 姿態估計演算法中的圖像處理、組合學需求和對快速計算的需求方面發揮了關鍵作用
DeepLabCut 在工具包提供的工作流程中廣泛使用 NumPy 的陣列功能。 特別是,NumPy 用於採樣不同的影格以進行人工註解標記,以及用於編寫、編輯和處理註解數據。 在 TensorFlow 內部,神經網路由 DeepLabCut 技術經過數千次迭代訓練,以預測來自影格的真實註解。 為此,創建目標密度(分數圖)以將姿態估計轉換為圖像到圖像的轉換問題。 為了使神經網路穩健,採用了數據擴增,這需要計算受各種幾何和圖像處理步驟影響的目標分數圖。 為了加快訓練速度,利用了 NumPy 的向量化功能。 對於推論,需要從目標分數圖中提取最可能的預測,並且需要有效地「連結預測以組裝個別動物」。
觀察和有效描述行為是現代動物行為學、神經科學、醫學和技術的核心原則。 DeepLabCut 讓研究人員能夠估計受試者的姿態,有效地使他們能夠量化行為。 僅需一小組訓練圖像,DeepLabCut Python 工具箱即可訓練神經網路達到人類等級的標記準確度,從而將其應用範圍擴展到不僅限於實驗室中的行為分析,還可能擴展到運動、步態分析、醫學和復健研究。 DeepLabCut 演算法面臨的複雜組合學、數據處理挑戰,可透過使用 NumPy 的陣列操作功能來解決。