c++ 舞伴配對問題_挑戰新物體描述問題,視覺詞表解決方案超越人類表現

fe97a878a0d91476baefc83be5424194.gif

編者按:最近,研究者們發布了?nocaps?挑戰,用以測量在沒有對應的訓練數據的情況下,模型能否準確描述測試圖像中新出現的各種類別的物體。針對挑戰中的問題,微軟?Azure?認知服務團隊和微軟研究院的研究員提出了全新解決方案視覺詞表預訓練?(Visual Vocabulary Pre-training)。該方法在?nocaps?挑戰中取得了新的?SOTA,并首次超越人類表現。

4ec17a5b0c1b9da11f7a7b99992c297d.png

看圖說話“新”問題

圖像描述或看圖說話(Image Captioning)是計算機根據圖片自動生成一句話來描述其中的內容,由于其潛在的應用價值(例如人機交互和圖像語言理解)而受到了廣泛的關注。這項工作既需要視覺系統對圖片中的物體進行識別,也需要語言系統對識別的物體進行描述,因此存在很多復雜且極具挑戰的問題。其中,最具挑戰的一個問題就是新物體描述(Novel object captioning),即描述沒有出現在訓練數據中的新物體。

最近,研究者們發布了 nocaps 挑戰(https://nocaps.org/),以測量在即使沒有對應的訓練數據的情況下,模型能否準確描述測試圖像中新出現的各種類別的物體。在這個挑戰中,雖然沒有配對的圖像和文本描述(caption)進行模型訓練,但是可以借助計算機視覺的技術來識別各類物體。例如在一些之前的工作中,模型可以先生成一個句式模板,然后用識別的物體進行填空。然而,這類方法的表現并不盡如人意。由于只能利用單一模態的圖像或文本數據,所以模型無法充分利用圖像和文字之間的聯系。另一類方法則使用基于 Transformer 的模型進行圖像和文本交互的預訓練(Vision and Language Pre-training)。這類模型在多模態(cross-modal)的特征學習中取得了有效的進展,從而使得后續在圖像描述任務上的微調(fine-tuning)獲益于預訓練中學到的特征向量。但是,這類方法依賴于海量的訓練數據,在這個比賽中無法發揮作用。

針對這些問題,微軟 Azure 認知服務團隊和微軟研究院的研究員們提出了全新的解決方案? Visual Vocabulary Pre-training(視覺詞表預訓練,簡稱VIVO),該方法在沒有文本標注的情況下也能進行圖像和文本的多模態預訓練。這使得訓練不再依賴于配對的圖像和文本標注,而是可以利用大量的計算機視覺數據集

4ec17a5b0c1b9da11f7a7b99992c297d.png

視覺詞表成為解決問題的關鍵

VIVO 方法取得成功的關鍵在于視覺詞表(visual vocabulary)的建立。如圖1所示,研究人員把視覺詞表定義為一個圖像和文字的聯合特征空間(joint embedding space),其中語義相近的詞匯,例如男人和人、手風琴和樂器,會被映射到距離更近的特征向量上。在預訓練學習建立了視覺詞表以后,模型還會在有對應的文本描述的小數據集上進行微調。微調時,訓練數據只需要涵蓋少量的共同物體,例如人、狗、沙發,模型就能學習如何根據圖片和識別到的物體來生成一個通用的句式模板,并且把物體填入模板中相應的位置,例如,“人抱著狗”。在測試階段,即使圖片中出現了微調時沒有見過的物體,例如手風琴,模型依然可以使用微調時學到的句式,加上預訓練建立的視覺詞表進行造句,從而得到了“人抱著手風琴”這句描述。

bddb8cc3e4c6f6c0a05f1fb6934436ef.png

圖1:VIVO 預訓練使用大量的圖片標簽標注來建立視覺詞表,其中語義相近的詞匯與對應的圖像區域特征會被映射到距離相近的向量上。微調使用只涵蓋一部分物體(藍色背景)的少量文本描述標注進行訓練。在測試推理時,模型能夠推廣生成新物體(黃色背景)的語言描述,得益于預訓練時見過的豐富物體類型。

通過這樣的方法,研究員們結合了預訓練中識別圖片物體的能力,以及微調中用自然語言造句的能力,從而做到了在推理測試時舉一反三,使用更豐富的詞匯量來描述圖片中新出現的各種物體。

4ec17a5b0c1b9da11f7a7b99992c297d.png

VIVO 訓練流程aa553fa0ed0d72ee9019e422ff2ed6f3.png

圖2:訓練和推理流程總覽(a)在VIVO 預訓練中,Transformer 模型在圖片標簽的訓練數據上做標簽預測,從而針對豐富的視覺概念進行多模態特征學習。(b)在微調中,模型在有文本描述標注的訓練數據上學習如何基于圖片和識別出來的物體生成一句話。(c)在推理時,對于給定的圖片和識別的物體,模型以自回歸的方式生成一系列字符,從而構成描述新物體的句子。

如圖2所示,VIVO 訓練流程采用了兩階段的訓練。第一階段為預訓練,使用多層的 Transformer 模型進行圖像分類的預測。具體來說,先給定圖片和對應的一些標簽(tag),然后隨機地抹去其中一部分標簽,讓模型來預測這些被抹去的標簽原本是什么。由于這些標簽之間的順序是可以互換的,因此需要使用匈牙利算法(Hungarian matching)來找到預測結果和目標標簽之間的一一對應,然后計算交叉熵損失(cross entropy loss)函數。

預訓練之后,第二階段為微調。Transformer 模型會在有文本描述標注的小數據集上訓練,例如 COCO。微調時使用的物體標簽可以來自數據集本身的標注,也可以由其他已經訓練好的圖像分類或物體識別模型自動生成。

在測試階段,對于給定圖片和識別出來的物體標簽,模型采用了自回歸(auto-regressive)的方式生成字符序列,從而獲得描述圖片的一句話。

4ec17a5b0c1b9da11f7a7b99992c297d.png

SOTA 首次超越人類

研究員們將 VIVO 與 nocaps 挑戰中一些領先的方法,如 UpDown 、 OSCAR 等做了對比(這些方法使用的訓練數據也是 COCO)。另外,遵循之前的方法,添加了使用 SCST 和 Constrained Beam Search (CBS)之后的結果。在 nocaps 的校驗集(validation)和測試集(test)上的結果顯示在表1中。可以看到,相比于之前的方法,VIVO 的結果表現有了顯著的提高。僅僅使用 VIVO 預訓練就取得了遠超過 UpDown+ELMo+CBS 和 OSCAR 的結果。最終,VIVO 方法的結果達到了新的 SOTA,并且首次在 nocaps 挑戰中超過了人類表現的 CIDEr 得分。

20a052744fd5a36273bb0da0b9f6fdeb.png

表1:各種方法在 nocaps 的校驗和測試數據集上的結果

為了進一步理解 VIVO 預訓練中學習視覺詞表所產生的作用,即在圖像和文字的共同特征空間中對準圖像與相應的語義標簽,研究員們展示了如何根據這些新物體的標簽找到它們在圖片中的位置(grounding to image regions)。對于每個圖片區域和每個物體標簽的兩兩配對,VIVO 都計算了它們對應特征向量之間的相似度(cosine similarity)。圖3高亮了其中得分高的配對。可以看出,VIVO 的模型能夠準確地在眾多區域中確定這些物體所在的位置。

97f4a0d838bb87d975d95b26350b801f.png

圖3:模型對 nocaps 圖片的描述結果。B:沒有做 VIVO 預訓練的模型。V:有 VIVO 預訓練的模型。紅色文字顯示了描述中出現的新物體。圖中還顯示了各個圖片區域和描述中出現的新物體對應特征向量之間的相似度,相似度越高的組合顏色亮度越高。

VIVO 展示了視覺詞表對描述圖片中新出現的物體的重要作用。作為第一個不依賴于圖片文本標注(paired image-sentence data)的圖像與文本交互的預訓練(Vision-Language Pre-training)方法,VIVO 成功運用了計算機視覺研究中已經標注的大規模圖片標簽數據(image tagging data)來進行全新模式的圖像與文本交互預訓練。值得注意的是,如果可以利用模型自動給圖片生成標簽,而不需要人工標注文本描述,那么可以在訓練時加入可能無限多的無標注圖片,從而進一步提高模型的表現,微軟的研究人員也將在未來的后續工作中對此進行更多探索。

你也許還想看

e4cbcb250bdf07103ff1822e2fcbeb46.png9d45de794bc8dd1807a5bff47ba81e65.pngf541f2c0a402218cfaf2d8c60e0d00a1.png37ca1286d844e6f1d2f7b40b67aa4e74.gifdd47d17553502dc173e464cc246a00c5.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453714.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453714.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453714.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習之雙線性插值(Bilinear interpolation)

1. 什么是插值 Interpolation is a method of constructing new data points within the range of a discrete set of known data points. Image interpolation refers to the“guess”of intensity values at missing locations. 圖片放大是圖像處理中的一個特別基礎的操作。…

div table 超出了_div包裹的table,table的寬度超出了的寬度,出現的滾動條的在windows下無法拖動...

1.父級div是否設置了寬度,只有設置了寬度且滾動條在div內才是你想要控制的滾動2.僅憑你說的這些屬性不知道滾動條怎么不能動,可以貼一下代碼?3.橫向需要滾動條的話必須設置table的確定寬度做了一個demo:.table{table-layout:fixed; width:…

第二階段站立會議7

昨天:美化頁面 今天:進行項目上傳 問題:阿里云服務器上的mysql出現連接問題轉載于:https://www.cnblogs.com/sdysyhj/p/8301489.html

深度學習之 OHEM (Online Hard Example Mining)

論文 《Training Region-based Object Detectors with Online Hard Example Mining》鏈接 https://arxiv.org/pdf/1604.03540.pdf Astract 摘要主要講了四點: (1) 訓練過程需要進行參數的空間搜索(2) 簡單樣本與難分辨樣本之間的類別不平衡是亟需解決的問題(3) 自…

音視頻 詳解

avi文件格式詳解 AVI是音頻視頻交錯(Audio Video Interleaved)的英文縮寫,它是Microsoft公司開發的一種符合RIFF文件規范的數字音頻與視頻文件格式,原先用于Microsoft Video for Windows (簡稱VFW)環境,現在已被Windows 95/98、OS/2等多數操…

c6011取消對null指針的引用_C++| 函數的指針參數如何傳遞內存?

函數的參數是一個一級指針,可以傳遞內存嗎?如果函數的參數是一個一級指針,不要指望用該指針去申請動態內存。看下面的實例:#include using namespace std;void GetMemory(char *p, int num){p (char *)malloc(sizeof(char) * num…

Servlet執行時要實現的方法

Servlet執行時要實現的方法 public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServletInfo() public void service(ServletRequest request,ServletResponse response) public void destroy() 本文轉自sucre03 5…

axios 設置攔截器 全局設置帶默認參數(發送 token 等)

應用場景:1,每個請求都帶上的參數,比如token,時間戳等。2,對返回的狀態進行判斷,比如token是否過期代碼如下:[javascript] view plain copyaxios.interceptors.request.use( config &g…

深度學習目標檢測之 YOLO v2

論文名:《YOLO9000: Better, Faster, Stronger》原文:https://arxiv.org/pdf/1612.08242v1.pdf代碼:http://pjreddie.com/darknet/yolo/ YOLO v2 斬獲了CVPR 2017 Best Paper Honorable Mention。在這篇文章中,作者首先在YOLOv1的…

tcpmp 編譯 源代碼分析

TCPMP源代碼分析 TCPMP源代碼分析 播放器主要由核心框架模塊(common工程)和解碼器、分離器插件組成。TCPMP的插件非常多,其中主要的插件有:interface插件實現了TCPMP的界面,ffmpeg是系統主要的音視頻解碼模塊&#xff…

使用zerorpc踩的第一個坑:

Server端代碼:注意s.run() 和 s.run的區別,一個括號搞死我了.如果不加括號,服務端服務是不會啟動的,客戶端就會報連接超時的錯誤 Server端在本機所有IP上監聽4242端口的tcp協議 import zerorpcclass HelloRPC(object):   def __…

django存入mysql數據庫_django如何存數據到一個mysql數據表里面

讓我們聊聊這個話題, django如何存數據至mysql數據表里面,你會用什么方法?正常情況下,我們form邏輯處理后,直接form.save(),是,這個方法沒毛病;但有沒有其他的方法呢?假如…

【Luogu】P3343地震后的幻想鄉(對積分概率進行DP)

題目鏈接 神難qwq。配合rqy的博客食用。 首先我們學到有一個概率函數$p(x)$表示某事件發生概率取值小于x的函數。這個函數有什么特點呢? 那就是$\int_{-∞}^{∞}p(x)dx1$ 這個是顯然的 然后我們令p(x)為首次聯通的時間的概率分布函數 這其實等價于生成樹的最大權邊等…

深度學習目標檢測之 YOLO v3

論文名:《YOLOv3: An Incremental Improvement》論文地址 https://pjreddie.com/media/files/papers/YOLOv3.pdfhttps://arxiv.org/abs/1804.02767v1 論文代碼 https://github.com/yjh0410/yolov2-yolov3_PyTorchkeras:https://github.com/qqwweee/keras…

30本pdf完整版的經典Linux學習和開發教程和資料下載 android arm java 資料大全

史上最牛的Linux內核學習方法論 點擊下載我的arm_linux移植筆記 點擊下載S3C2440完全開發流程 點擊下載Linux系統命令及其使用詳解完整版 點擊下載Linux主要shell命令詳解 點擊下載深入理解Linux內核(第三版 pdf英文版) 點擊下載深入分析Linux內核源代碼教程pdf完整版 點擊下…

Fedex Ship Manager Software安裝

本文出自Simmy的個人blog:西米在線 http://simmyonline.com/archives/552.html 這個軟件的安裝頗費了我一番周章,特地Log之。下載:http://www.fedex.com/apac_english/fsmsoftware/ 安裝完后,接著輸入用戶信息,然后連…

mysql5.7.11解壓版安裝_Mysql5.7.11在windows10上的安裝與配置(解壓版)

第一步my-default.ini 添加配置:#綁定IPv4和3306端bind-address 127.0.0.1port 3306# 設置mysql的安裝目basedir E:\mysql# 設置mysql數據庫的數據的存放目datadirE:\mysql\data# 允許最大連接數max_connections200#設置默認字符集為utf8default-character-setutf…

【轉】博客美化(3)為博客添加一個漂亮的分享按鈕

閱讀目錄 1.社會化分享2.選擇一個分享按鈕3.添加到博客園博客博客園美化相關文章目錄:博客園博客美化相關文章目錄 在前2篇博客“博客美化(1)基本后臺設置與樣式設置”與"博客美化(2)自定義博客樣式細節"中詳細介紹了博客樣式設置的相關問題,當…

深度學習目標檢測之 YOLO v4

論文原文:https://arxiv.org/abs/2004.10934代碼 原版c: https://github.com/AlexeyAB/darknetkeras:https://github.com/Ma-Dan/keras-yolo4pytorch:https://github.com/Tianxiaomo/pytorch-YOLOv4 前言 2020年YOLO系列的作者…

[Android] 年年有魚手機主題

自制的年年有魚手機主題,希望大家喜歡!~ 下載地址:https://yunpan.cn/cqauQbiM97idd (提取碼:d272) 本文轉自haiyang45751CTO博客,原文鏈接: http://blog.51cto.com/haiyang457/1…