最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

分割一切-CV領(lǐng)域的基礎(chǔ)模型

2023-06-15 20:03 作者:人工智能大講堂  | 我要投稿

人工智能中的基礎(chǔ)模型變得越來越重要。該技術(shù)一開始是在自然語言處理領(lǐng)域獲得快速發(fā)展,現(xiàn)在,隨著“Segment Anything”模型的出現(xiàn),它們也逐漸進入了計算機視覺領(lǐng)域。Segment Anything是Meta(臉書)公司的一個項目,旨在構(gòu)建圖像分割基礎(chǔ)模型的起點。在本文中,我們將了解Segment Anything項目的最核心組成部分,包括數(shù)據(jù)集和模型。

除了使用Segment Anything模型和數(shù)據(jù)集外,我們還將使用官方預(yù)訓(xùn)練權(quán)重進行推斷。

通過上面的介紹,大家可能對SAM還是很陌生,這里給大家做個簡單的介紹,我是從事醫(yī)療影像AI算法研發(fā)的,在此之前,如果我想通過AI來分割肝臟,我首先需要收集大量腹部的訓(xùn)練數(shù)據(jù),而且要保證訓(xùn)練數(shù)據(jù)和未來要預(yù)測的數(shù)據(jù)分布要一致。然后對數(shù)據(jù)進行標注,訓(xùn)練完成后,我的模型只能分割肝臟,如果想要分割肺部,那需要重新收集數(shù)據(jù),標注和訓(xùn)練,也就是說我訓(xùn)練的模型只能完成單一任務(wù)。

但今天要講的Segment Anything就不一樣了,從他的名字就可以看出來,它不是針對某個特定分割任務(wù)的,你可以輸入任何圖像,然后像NLP大模型那樣,提供提示詞,例如,你可以在你想要分割器官上畫一個點或者邊框,或者直接輸入本文,模型就能按照你的提示進行分割。

官方網(wǎng)址:https://segment-anything.com

論文地址:https://arxiv.org/abs/2304.02643

源碼:https://github.com/facebookresearch/segment-anything

其官方網(wǎng)址還提供了在線演示Demo,見下面視頻,為了驗證分割效果,我特意上傳了不同領(lǐng)域的圖片,效果驚人!


有了Segment Anything模型,我們現(xiàn)在擁有了一個泛化能力強且可提示的圖像分割模型,可以從圖像中摳出幾乎任何東西。

接下來讓我們簡單分析一下論文。

該項目主要分為三個部分,第一個是基于提示詞的分割任務(wù),第二個是SAM模型,第三個是數(shù)據(jù)標注引擎。

其中,SAM模型是最重要的,它主要分為三部分,第一部分圖像編碼器,圖像編碼器將輸入圖像映射成Image Embedding,通俗的講就是將輸入空間映射到特征空間,因為SAM是基于Transformer的,模型會在大量數(shù)據(jù)(1100萬張圖像中的10億個標注)上進行訓(xùn)練,可以認為特征空間包含了注意力信息。也就是說,你給模型一個提示點,注意力機制就能找到與該點最相關(guān)的其他點。第二部分是提示詞編碼器,它將提示信息(點,邊框,蒙版,文本)映射成prompt?Embedding。

注意:如果提示信息是文本,則需要借助CLIP對文本進行編碼。

第三部分是解碼器,它將prompt?Embedding和Image?Embedding解碼成分割結(jié)果Mask。


由于編碼器參數(shù)量遠大于解碼器,編碼器執(zhí)行非常耗時和占內(nèi)存,同一張圖像的Image Embedding是不變的,所以為了避免對于同一張圖像重復(fù)執(zhí)行編碼操作,其官方源碼實現(xiàn)中編碼器和解碼器是分開的,對于一張圖像,只需要經(jīng)過一次編碼器處理,就可以針對不同提示信息執(zhí)行不同的分割任務(wù)。


可以用SAM做什么?

增強現(xiàn)實

SAM最大的成就之一是識別日常物品。再加上增強現(xiàn)實和AR眼鏡,它可以幫助用戶提醒和給出指示。


不僅如此,在AR/VR中,用戶可以通過凝視就能在虛擬世界中分割和提起物體。

,時長00:12

生物醫(yī)學(xué)圖像分割

醫(yī)學(xué)圖像分割和細胞顯微鏡是一些最難處理的領(lǐng)域。但是,SAM可以在不需要重新訓(xùn)練的情況下直接協(xié)助分割細胞顯微鏡圖像。

另外,也可以用它制作全自動圖像標注工具。

如果你想自己訓(xùn)練一個NLP大模型,或者把NLP的一些預(yù)訓(xùn)練模型部署到本地,這個很難實現(xiàn),因為預(yù)訓(xùn)練模型很大,千億級別的參數(shù)量,訓(xùn)練也需要大量的數(shù)據(jù),更需要龐大的服務(wù)器和硬件設(shè)備,這是普通人無法承擔的,與NLP領(lǐng)域的大模型不同,SAM官方發(fā)布了不同大小的預(yù)訓(xùn)練模型,其最大的模型Vit-H SAM也不過2G,你即可以基于官方發(fā)布的預(yù)訓(xùn)練模型繼續(xù)訓(xùn)練,也可以本地部署。


SAM是基于Pytorch開發(fā)的,官方發(fā)布的推理源碼是基于Python的,下面是官方GIthub源碼中加載預(yù)訓(xùn)練模型進行預(yù)測的例子。

https://github.com/facebookresearch/segment-anything/tree/main/notebooks

如果你想在其他平臺加載預(yù)訓(xùn)練模型進行推理,例如C++,C#或者JS,可以將預(yù)訓(xùn)練模型轉(zhuǎn)換為ONNX格式,然后通過ONNXruntime就可以在不同平臺加載預(yù)訓(xùn)練模型進行預(yù)測。

前面我們說過,SAM模型解碼器和編碼器是分開的,官方提供的預(yù)訓(xùn)練模型是放在一起的,且官方源碼只提供了解碼器的ONNX轉(zhuǎn)換代碼,如果大家想要編碼器的轉(zhuǎn)換代碼或者直接想要編碼器和解碼器轉(zhuǎn)換后的ONNX格式模型文件,歡迎后臺聯(lián)系我。

另外,我自己也實現(xiàn)了通過C#代碼加載模型進行預(yù)測。如果想要源碼也可以聯(lián)系我。

參考資料:

Segment Anything – A Foundation Model for Image Segmentation (learnopencv.com)


分割一切-CV領(lǐng)域的基礎(chǔ)模型的評論 (共 條)

分享到微博請遵守國家法律
新绛县| 洱源县| 睢宁县| 高雄市| 韶关市| 阳泉市| 军事| 兰州市| 固阳县| 余姚市| 彝良县| 高平市| 韩城市| 彰化市| 辉南县| 松桃| 太谷县| 阆中市| 长顺县| 肥乡县| 攀枝花市| 临沭县| 交城县| 郑州市| 历史| 承德市| 裕民县| 自治县| 化德县| 丰城市| 平塘县| 东乌| 石家庄市| 南江县| 中江县| 阿拉善右旗| 会同县| 古丈县| 东方市| 东丰县| 丰城市|