一個可以識別一切物體的模型
我們經常在使用 sam 或者 sam2 打掩碼之後,可能會遇到需要 label 的問題。這個時候,可能你需要自己再去訓一個 resnet 或者是說再去通過訓練一個別的模型,用監督學習的方法來完成自己的工作。
但是這樣非常地費時費力。光是打 label 就會耗費大量時間了。
那麼這幾天,我發現了一個這個模型,它叫 recognize anything,字面意思,就是說它可以識別任何物體。
https://arxiv.org/pdf/2306.03514
我們一起來看一看這項技術有什麼用,怎麼用,以及它的核心方法是什麼吧。
我們首先來詳細來說一說它都有什麼用,能夠被用在哪些地方。
一、有何價值
1、強大的圖像標註能力
RAM 的主要作用就是實現強大的圖像標註。它可以精準地識別出圖像裏各種各樣的物體、場景、屬性和動作,並給它們貼上合適的標籤。
比如,一張熱鬧的公園照片,裏面有嬉戲的孩子、盛開的花朵、鬱鬱蔥蔥的樹木和長椅,RAM 能快速識別出這些元素,標註出 “公園”“孩子”“花朵”“樹木”“長椅” 等標籤,而且識別精度超高,標籤覆蓋範圍也特別廣。
這在實際應用中可太有用了,不管是大規模圖像數據的分類整理,還是智能圖像搜索,RAM 都能大顯身手。
比如說,在一個擁有海量圖片的數據庫裏,使用 RAM 就能快速給圖片標註,方便用戶根據標籤搜索到自己想要的圖片,大大提高了圖像管理和檢索的效率。
2、zero-shot 的學習能力
RAM 擁有超強的零樣本學習能力,這意味着即使它沒見過某些特定類別的圖像,也能憑藉強大的模型架構和學習能力,準確地識別並標註出來。
就好比一個沒見過袋鼠的人,通過學習各種動物的特徵和描述,當看到袋鼠的圖片時,也能猜出這是一種類似有袋動物的生物。RAM 也是如此,它通過從大規模的圖像 - 文本對中學習豐富的語義信息,構建了一個強大的知識體系。
這樣一來,在遇到新的、沒見過的類別時,它能利用這些知識進行推理和判斷,實現準確標註。
**這種能力打破了傳統模型需要大量標註數據才能學習特定類別標籤的限制,極大地拓展了圖像標註的應用範圍。**例如,在一些新興的、數據稀缺的領域,或者遇到罕見的圖像類別時,RAM 的零樣本學習能力就能發揮巨大作用,讓圖像標註不再受限於數據不足的問題。
3、醫療領域,與 SAM 等其他模型結合
由於 RAM 強大的標註能力和零樣本學習特性,它在衆多領域都有廣泛的應用前景。
**在自動駕駛領域,車輛需要快速準確地識別道路上的各種物體,像行人、其他車輛、交通標誌等。**RAM 可以實時對車載攝像頭拍攝的圖像進行標註,幫助自動駕駛系統做出正確的決策,保障行車安全。
在醫療影像分析中,醫生可以藉助 RAM 對 X 光、CT 等影像進行標註,輔助診斷疾病,提高診斷效率和準確性。
在智能安防領域,監控攝像頭拍攝的大量圖像可以通過 RAM 進行實時標註,快速識別異常行爲和目標物體,實現智能監控和預警。
而且,RAM 還能和其他模型(如 Grounding DINO 和 SAM)結合,形成一套更強大的視覺語義分析流程,進一步拓展其在不同領域的應用。
二、核心方法
那說完了它的核心價值,我們就來說說它的方法,也就是說它到底是通過什麼樣的方式來去實現這件事情的。
1、構建統一的標籤系統
RAM 的第一步是打造一個超厲害的通用統一標籤系統。這個標籤系統可不是隨便拼湊的,它融合了好多熱門學術數據集(像分類、檢測、分割相關的數據集)裏的類別,還有商業標註產品(比如 Google、Microsoft、Apple 的標註)中的標籤。
研究人員把所有公開的標籤和文本里常見的標籤合併在一起,經過篩選和整理,最終得到了一個包含 6449 個標籤的系統。
下面這個是一個類似於雲圖的東西,展示了 Tag 的來源分佈:
這個數量適中的標籤系統能覆蓋大部分常見的標籤,而且每個標籤都很有代表性。
比如說,在描述一張家庭聚會的照片時,標籤系統裏不僅有常見的 “人”“桌子”“食物”,還會包含像 “聚會”“歡笑” 這類能描述場景和氛圍的標籤。對於那些系統裏沒有的開放詞彙標籤,RAM 可以通過開放集識別技術來處理,進一步擴大了標籤的覆蓋範圍,讓模型能夠應對各種複雜多樣的圖像標註需求。
2、利用大規模圖像 - 文本對進行訓練
爲了解決大規模高質量標註數據稀缺的問題,RAM 借鑑了 CLIP 和 ALIGN 的思路,利用公開的大規模圖像 - 文本對來訓練模型。
具體做法是,通過自動文本語義解析技術,從這些圖像 - 文本對的文本中提取出圖像標籤。
打個比方,對於 “一隻貓在沙發上睡覺” 這句話,經過解析就能得到 “貓”“沙發”“睡覺” 這些圖像標籤。這樣,就可以在不需要大量人工標註的情況下,獲得豐富多樣的無標註圖像標籤。
而且,這些從大量文本中提取的標籤包含了豐富的語義信息和上下文信息,有助於模型學習到更廣泛、更準確的圖像特徵和標籤關係。與傳統的人工標註方式相比,這種方法不僅節省了大量的人力和時間成本,還能獲取到更全面、更具多樣性的標註數據,爲訓練強大的圖像標註模型奠定了堅實的基礎。
3、設計數據引擎優化標註質量
**從網上收集的圖像 - 文本對數據往往存在很多問題,比如標籤缺失、錯誤等。**爲了提高標註質量,RAM 設計了一個智能的數據引擎。
這個數據引擎主要有兩個方式:生成和清洗。
在生成方面,先訓練一個基線模型,利用它的生成和標註能力,爲原始的圖像 - 文本對補充更多的標籤和描述。
比如說,對於一張只有簡單描述 “一隻狗” 的圖片,基線模型可能會補充出 “寵物”“玩耍”“草地” 等標籤,讓標註信息更加豐富。
**在清洗方面,首先使用 Grounding - Dino 模型來定位圖像中特定類別的區域。然後用 K - Means++ 聚類算法對這些區域進行聚類分析,把那些偏離正常聚類的異常區域對應的標籤去掉,同時去除基線模型預測不準確的標籤。**這樣一來,經過數據引擎處理的數據更加準確、乾淨,大大提高了訓練數據的質量,讓模型在訓練過程中能夠學習到更可靠的圖像 - 標籤關係,從而提升標註性能。
Gounding - Dino 檢測效果示意:
4、獨特的模型架構設計
RAM 的模型架構和 Tag2Text 有些相似,但又有自己獨特的創新之處。
它主要由三個關鍵模塊組成:圖像編碼器、圖像 - 標籤識別解碼器和文本生成編碼器 - 解碼器。
圖像編碼器負責提取圖像的特徵,就像是給圖像做了一個 “特徵畫像”。圖像 - 標籤識別解碼器用於根據圖像特徵預測標籤,它通過交叉注意力層與圖像特徵進行交互,實現圖像到標籤的轉換。
文本生成編碼器 - 解碼器則用於生成圖像的描述文本,在訓練過程中,它和圖像 - 標籤識別解碼器聯合訓練,互相促進。和 Tag2Text 相比,RAM 的核心突破在於引入了開放詞彙識別能力。
它利用現成的文本編碼器,將標籤列表中的單個標籤編碼成具有豐富語義上下文的文本標籤查詢。
這樣,在訓練階段,即使遇到沒見過的類別,模型也能通過這些語義豐富的查詢進行推理和識別,大大增強了模型的泛化能力,讓 RAM 能夠識別任何常見的類別,而不僅僅侷限於訓練時見過的類別。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/mzzN9qxlIr9aqKOFjO7DUQ