
如何免費調用有道翻譯API實現多語言翻譯
第二受歡迎的數據集包含來自附在衣服上的攝像機的記錄:
但這只是其中很小的一部分。還有“動作分類”、“視頻分類”和“自監督動作識別”等任務(這些是部分重疊的任務 1、2、3)。有帶骨架的數據集;有帶烹飪過程的數據集:
在某些數據集中,它是短視頻;無關緊要的是長視頻。
什么是動作?動作是可以在視頻上標記的事件,并且事先知道它可以在那里發生。人、機器、動物或其他東西可以產生事件。為什么我更喜歡這個定義?通常,在實踐中(99% 的時間),動作識別用于某些確定性過程。確定發生了需要計數/說明/控制的某些事件。
對于實際的 ComputerVision 任務,這個定義通常是正確的,但對于需要“通用定義”的學術研究來說,它并不那么好。它也不適用于所有視頻流和內容分析系統。
它有什么不同?什么是“現實世界的任務”?實際任務通常具有有限的數據、攝像機位置和情況。例如,我從未見過需要從任何角度找到 400 種不同動作的任務。相反,現實世界的問題可能是這樣的:
這只是其中很小的一部分。但仍然:
我將描述的方案通常適用于許多任務。我將從比學術方法簡單得多的方法開始。并以更具實驗性和學術性的方法結束。
為了清楚起見,在大多數例子中,我將使用人作為參考,從側面某處看。
我不會在這里寫。相同的算法用于視頻分析任務。我相信 Youtube 和 Netflix 有很多動作識別和視頻分類。
好的,讓我們從一個基本想法開始。假設你想識別某人何時按門鈴。你將如何做?
在這種情況下,你能做的最后一件事是從 Papers With Code 的首選開始運行訓練。畢竟,從以下內容檢測某些東西要容易得多:
你不需要火箭科學。一個訓練有素的檢測器和良好的定位相機就可以工作。工作結果將得到保證和可解釋。例如,如果沒有檢測到手,你可以了解原因 – 并嘗試重新訓練它(手套/奇怪的光線等)。
所以。物體檢測->檢查工作區域->檢查相關條件工作非常出色:
基本思路是,你不需要行動;你需要了解發生了什么。
方法大致相同,其中動作描述是對象。當然,“在一般情況下”,你手中的煎鍋并不意味著什么。但是,了解攝像頭安裝的環境,它可能是在廚房里“做飯”,在商店里“賣東西”,或者在 PUBG 中“打架”。
通過結合“位置”和“對象”之間的邏輯,你可以組合長動作或動作序列。
對象可以是任何東西??蚣苤械囊路?產品/汽車等。
讓我們繼續討論處理視頻片段的方法。在這里,我會立即將“一段視頻”的概念分成兩種:
有什么區別?當你需要處理視頻時,神經網絡非常不方便。最好有更高的性能、更復雜的數據集和更苛刻的訓練。一種擺脫處理視頻的方法是預先檢測骨架并使用它。這可能是:
人物骨骼
動物骨骼
手臂骨骼
臉部點模型
物體的骨架模型(汽車、沙發等)。當然,更有趣的是那些可以動態的模型,例如挖掘機/機器人/等
骨骼動畫會丟失可能至關重要的紋理信息:衣服、與之交互的物體和面部表情……
也可以將兩個領域的某些內容結合起來。例如,將骨骼用于可以從骨骼中識別出的部分動作。以及不能使用紋理信息的方法。
這里有一個很好的實現經典分類的方法集合:
MMAction 是一個基于 MMCV 和 PyTorch 的開發但粗糙的框架。它變得越來越好。但還遠遠不夠完美。
PyTorchVideo 是 Facebook 嘗試制作一個模擬,但它仍然很弱。但原生的 PyTorch。
從全局來看,任務是按原樣設置的,現在仍然是。“輸入一堆幀”(或骨架),輸出動作。一切都始于 2D 卷積:
然后的發展對應于經典的“骨干,衰減”
將所有內容移至 TimesFormer(所有軸上的transformer)
現在他們甚至把 RL 放在了它之上
2023年最流行的是超大型預訓練網絡(我們稍后會談到它們)。
注意:此外,所有基準測試通常都在不同的數據集上,因此您無法進行比較。
可能需要注意的是,所有方法都存在相同的問題:
關于“使用整個視頻”與“使用裁剪視頻”的工作。選擇算法時不要忘記這一點,并正確選擇它。你可以一次識別整個視頻,也可以識別人物的區域(預先檢測和跟蹤)。在第一種情況下,幀中有許多人時會出現問題。但是,當幀中有大量信息來幫助識別動作時,它會很好地工作。
此外,關于骨骼動畫分類的幾句話:那里沒有什么魔法。文章很少。最好的作品是 PoseC3D,它屬于上述 MMAction。這些作品的主要區別在于精確使用卷積網絡,而不是在點陣列上工作的經典方法:
但是,如你所見,該模型對于 2021 年來說足夠簡單。并且它有很多地方使用:
許多網絡都在處理點陣列。但是,由于速度快,我更經常使用它們。
Papers with code中的 Zero-shot 帶代碼。自監督也在那里。
我能擺脫一些問題嗎?是的。你可以擺脫數據集收集和訓練。當然,這有利于準確性。
當前頂級方法使用類似 CLIP 的神經網絡 + 一些技巧。例如,蒙版視頻編碼器(或其他一些技巧)。
一般來說,大多數方法都是基于創建一些表征動作的“嵌入”向量。
但當然,主要問題是一樣的。訓練數據集與你將使用的數據集有多遠?
另一種流行的方法是自監督。當我們在數據集 A 上進行訓練,用這個網絡標記數據集 B,并在這個“自動標記”的數據上進行訓練時。有時可以使用這種方法(當數據集很大但不容易標記時)。
這在近年來準確率如何進步的圖像中??也很明顯,關于錯誤我們稍后會討論。
隨著最新的大型數據集預訓練模型的發布,事情將變得相當簡單。
以下是幾個示例。這里許多動作都被骨骼成功識別(我與這家公司合作過很多次):
對于某些動作,1-2 個示例足以進行訓練。但你必須非常小心選擇實施的位置。
以下是有關該主題的一些學術論文和排序,以幫助構建邏輯。
當然,每個人都通過嵌入來實現這一點,但神奇之處在于如何創建它。
幾年前在 ODS Data Fest 上,來自 Yandex 的人對人臉模型(68 分)說了類似的話(骨架嵌入),形成嵌入并使用它們來設置數據集/分類動作:
但視頻是俄語的。
有幾個項目為手生成了嵌入。其中一個是這樣的:
我覺得應該有人在產品中使用它來識別/記住手勢。我們已經使用了類似的方法進行時間手部過濾和咀嚼速度計算。
計算簡單,易于訓練(你不必在另一個數據集上進行訓練),邏輯簡單。如果將其與傳統方法進行比較,錯誤也有所不同!
近年來的一個趨勢是出現了強大的預訓練網絡。近年來最有趣的網絡是 InterVideo。但到目前為止,只有一些聲明的功能出現在開源中。它看起來很神奇:
并非所有事情都令人興奮。這樣的網絡只需訓練一次,因為要只教授網絡的一部分,你需要 128 個 A100 持續兩周。
在 Inter Video 的情況下,它是兩個編碼器的訓練:
在此之后,對下游任務進行transformer訓練。
未來幾年,這一領域可能會取得重大進展。當前的實現將變得更快,使用調整的成本也更低。
然而,我描述了監督和無監督方法。哪一個更容易/更快/更方便?哪一個在哪里使用?
同樣,這個問題沒有明確的答案:
正如我之前提到的,在 OneShot 視頻數據集上,錯誤率相差三倍。而在 OneShot 骨架和骨架之間的數據集上,錯誤率相差三倍,等等。
但在這里,你必須明白錯誤率并不統一。有些動作幾乎可以完美地被 OneShot 識別。這些主要是與紋理沒有交互的短動作。最好是沒有變化的活動。例如,你可以用一百種方式“摔倒”。但“從地板上撿起盒子”可能只有一種正確方式,而有兩三種方式是錯誤的。對于某些算法來說,角度至關重要。
容聯云【AI視覺】提供視頻采集+海量識別算法+智能檢測+統計分析,深耕行業解決方案,包括 1、智慧營業廳——超柜代客檢測、加鈔間檢測、箱包交接檢測等相關算法 2、智慧加油站——卸油流程檢測、加油區檢測、便利店檢測等
人體骨骼關鍵點 API 能夠精確檢測人體各部位的關鍵點及其位置,其中涵蓋了頭、頸、肩、肘、手、臀、膝、腳等多個部位。它可以幫助實現對人體姿態的準確分析和識別,在諸多領域都有重要應用價值。
識別圖片中的手勢類型,返回手勢名稱、手勢矩形框、置信度等信息,可識別常見手勢,適用于手勢特效、智能家居手勢交互等場景。識別質量受拍攝距離、圖片質量影響,建議針對近距離單個手勢進行識別,效果最佳。
人體分析-騰佑科技 API 服務,專注于人體分析領域。它能進行人體檢測與追蹤,精確實現關鍵點定位,還可準確進行人流量統計以及屬性識別等多種檢測,為相關應用場景提供強大的技術支持和精準的數據服務。
原文鏈接:http://www.bimant.com/blog/action-recognition-comprehensive-guide/