開放原始碼軟體正在加速生物醫學的發展。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 Toolkit 使用者從資料集收集階段開始管理專案,一直到建立可分享和重複使用的分析流程。
他們的 工具箱 現在已開放原始碼。
典型的 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 的陣列處理功能來解決。