如何讓電腦成為看圖說話的高手?計算機視覺頂會ICCV論文解讀

ICCV,被譽為計算機視覺領域三大頂級會議之一。作為計算機視覺領域最高級別的會議之一,其論文集代表了計算機視覺領域最新的發展方向和水平。阿里巴巴在今年的大會上有多篇論文入選,本篇所解讀的論文是阿里iDST與多家機構合作的入選論文之一,目標是教會機器讀懂圖片并盡量完整表達出來。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

精準描述商品:計算機視覺和自然語言處理的聯合

近年來,隨著深度學習技術的快速發展, 人們開始嘗試將計算機視覺(Vision)和自然語言處理(Language)兩個相對獨立的領域聯合起來進行研究,實現一些在過去看來非常困難的任務,例如“視覺-語義聯合嵌入(Visual-SemanticEmbedding)”。該任務需要將圖像及語句表示成一個固定長度的向量,進而嵌入到同一個矢量空間中。這樣,通過該空間中的近鄰搜索可以實現圖像和語句的匹配、檢索等。

視覺語義聯合嵌入的一個典型應用就是圖像標題生成(Image Captioning):對于任意輸入的一張圖像, 在空間中找到最匹配的一句話, 實現圖像內容的描述。在電商場景下, 淘寶賣家在發布一件商品時, 該算法可以根據賣家上傳得圖片, 自動生成一段描述性文字, 供賣家編輯發布使用。再比如,視覺語義聯合嵌入還可以應用于“跨模態檢索(Cross-mediaRetrieval)”:當用戶在電商搜索引擎中輸入一段描述性文字(如“夏季寬松波希米亞大擺沙灘裙”、“文藝小清新娃娃領飛飛袖碎花A字裙”等), 通過文字-圖像聯合分析, 從商品圖像數據庫中找到最相關的商品圖像返回給用戶。

之前的不足:只能嵌入較短的語句簡單描述圖片

以往的視覺語義聯合嵌入方法往往只能對比較短的句子進行嵌入,進而只能對圖像做簡單而粗略的描述,然而在實際應用中,人們更希望得到對圖像(或圖像顯著區域)更為細致精確的描述。如圖1所示,我們不僅想知道誰在干什么,還想知道人物的外表,周圍的物體,背景,時間地點等。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

圖1 現有方法的問題

現有方法:“A girl is playing a guitar.

我們提出的方法:“a young girl sitting on a benchis playing a guitar with a black and white dog nearby.

為了實現這個目標,我們提出一個框架:第一步從圖像中找出一些顯著性區域,并用具有描述性的短語描述每個區域;第二步將這些短語組合成一個非常長的具有描述性的句子,如圖2所示。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖2 我們的提出的框架

為此,我們在訓練視覺語義聯合嵌入模型時不僅需要將整個句子嵌入空間,更應該將句子中的各種描述性短語也嵌入空間。然而,以往的視覺語義聯合嵌入方法通常采用循環神經網絡模型(如LSTM(Long short-term memory)模型)來表示語句。標準的LSTM模型有一個鏈式結構(Chain structure):每一個單元對應一個單詞,這些單詞按出現順序排成一列,信息從第一個單詞沿該鏈從前傳到最后,最后一個節點包含了所有的信息,往往用于表示整個句子。顯然,標準的LSTM模型只適合表示整個句子,無法表示一句話中包含的短語,如圖所示。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖3 鏈式結構的問題

論文創新方法:提出層次化的LSTM模型

本文提出一種多模態、層次化的LSTM模型(Hierarchical Multimodal LSTM)。該方法可以將整個句子、句子中的短語、整幅圖像、及圖像中的顯著區域同時嵌入語義空間中,并且自動學習出“句子-圖像”及“短語-圖像區域”間的對應關系。這樣一來,我們生成了一個更為稠密的語義空間,該空間包含了大量的描述性的短語,進而可以對圖像或圖像區域進行更詳細和生動的描述,如圖所示。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖4 本文提出的多模態層次結構

本文方法的創新性在于提出了一個層次化的LSTM模型,根節點對應整句話或整幅圖像,葉子節點對應單詞,中間節點對應短語或圖象中的區域。該模型可以對圖像、語句、圖像區域、短語進行聯合嵌入(Joint embedding),并且通過樹型結構可以充分挖掘和利用短語間的關系(父子短語關系)。其具體網絡結構如下圖所示

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖5 網絡結構

其中為每一個短語和對應的圖像區域都引入一個損失函數,用于最小化二者的距離,通過基于結構的反向傳播算法進行網絡參數學習。

在圖像-語句數據集上的比較

88fdb68362845a15be36da8743c2c4775dd9f4ab

圖 6在Flickr30K數據集上的對比?

06c214819e6db31774a684dc6d4131b5dc46b1b9

圖 7在MS-COCO數據集上的對比

可見本文方法在幾個公開數據集上都獲得了很好的效果

在圖像區域-短語數據集上的對比

我們提供了一個帶有標注的圖像區域-短語數據集MS-COCO-region,其中人工標定了一些顯著性物體,并在這些物體和短語之間建立了聯系。

840f4569057269fe56488e737c53b4cf1904b2ef

圖 8在MS-COCO-region數據集上的對比

下圖是我們方法的可視化結果,可見我們的短語具有很強的描述性

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

此外,我們可以學習出圖像區域和短語的對應關系,如下

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


原文發布時間為:2017-10-25

本文來自云棲社區合作伙伴“阿里技術”,了解相關信息可以關注“阿里技術”微信公眾號

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

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

相關文章

canvas繪制線條1像素的問題

http://jo2.org/html5-canvas%E7%94%BB%E5%9B%BE3%EF%BC%9A1px%E7%BA%BF%E6%9D%A1%E6%A8%A1%E7%B3%8A%E9%97%AE%E9%A2%98/轉載于:https://www.cnblogs.com/XIE7654/p/7493315.html

php汽車找車位,遭遇到車多車位少 教你如何快速找到停車位

[摘要]車主們大多時間會穿梭在市區,到了目的地后那就先找停車位,現在市區寸土寸金,一個停車位面積要占幾平米呢,所以停車位基本是不夠用的。下面和大家聊聊怎么找合適的停車位。車主們大多時間會穿梭在市區,去商場購物…

Python 框架 之 Scrapy 爬蟲(二)

Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘,信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取 (更確切來說, 網絡抓取)所設計的, 也可以應用在獲取API所返回的數據(例如 Amazon Ass…

十六進制透明度參照表

00%FF(不透明) 5%F2 10%E5 15%D8 20%CC 25%BF 30%B2 35%A5 40%99 45%8c 50%7F 55%72 60%66 65%59 70%4c 75%3F 80%33 85%21 90%19 95%0c 100%00(全透明)轉載于:http…

lamp和php,[LAMP]Apache和PHP的結合

在LAMP架構中,Apache通過PHP模塊與Mysql建立連接,讀寫數據。那么配置Apache和PHP結合的步驟是怎么操作的呢?1、修改http.conf文件[rootjuispan ~]# cat /usr/local/apache2.4/conf/httpd.conf......#ServerName......AllowOverride noneRequi…

Day-5: Python高級特性

python的理念是:簡單、優雅。所以,在Python中集成了許多經常要使用的高級特性,以此來簡化代碼。 切片:對于一個list或者tuple,取其中一段的元素,稱為切片(Slice)。 L[start:end]表示…

前端之 XMLHttpRequest

XMLHttpRequest 和AJAX的愛恨情仇 AJAX 是 asynchronous javascript and XML 的簡寫,中文翻譯是異步的 javascript 和 XML,這一技術能夠向服務器請求額外的數據而無須卸載頁面,會帶來更好的用戶體驗。雖然名字中包含 XML ,但 AJAX…

makefile——小試牛刀

//a.h,包含頭文件stdio.h,并且定義一個函數print #include<stdio.h> void print();//b.c&#xff0c;包含頭文件a.h&#xff0c;然后就可以寫print函數的內容了 #include"a.h" void print(){ printf("who are you\n"); }//c.c&#xff0c;包含頭文件…

云電腦是什么_云電腦和我們現在平時用的電腦有什么區別?

&#x1f340;溫馨提示&#x1f340;公眾號推送改版&#xff0c;為了不讓您錯過【掌中IT發燒友圈】每天的精彩推送&#xff0c;切記將本號設置星標哦&#xff01;~01云電腦&#xff0c;是5G云服務時代的電腦新概念&#xff0c;是電腦的新的一種形態。從具體操作使用上來講&…

PHP如何用while實現循環,PHP 循環 -

PHP 循環 - While 循環循環執行代碼塊指定的次數&#xff0c;或者當指定的條件為真時循環執行代碼塊。PHP 循環在您編寫代碼時&#xff0c;您經常需要讓相同的代碼塊一次又一次地重復運行。我們可以在代碼中使用循環語句來完成這個任務。在 PHP 中&#xff0c;提供了下列循環語…

比較全的C語言面試題

1. static有什么用途&#xff1f;&#xff08;請至少說明兩種&#xff09; 1).限制變量的作用域 2).設置變量的存儲域 2. 引用與指針有什么區別&#xff1f; 1) 引用必須被初始化&#xff0c;指針不必。 2) 引用初始化以后不能被改變&#xff0c;指針可以改變所指的對象…

PHP爬取歷史天氣

PHP爬取歷史天氣 PHP作為宇宙第一語言&#xff0c;爬蟲也是非常方便&#xff0c;這里爬取的是從天氣網獲得中國城市歷史天氣統計結果。 程序架構 main.php <?phpinclude_once("./parser.php");include_once("./storer.php");#解析器和存儲器見下文$par…

Python 第三方庫之docx

日常上官網 https://python-docx.readthedocs.io/en/latest/ 一、安裝 pip install python-docx 二、寫入word word 中主要有兩種用文本格式等級&#xff1a;塊等級&#xff08;block-level&#xff09;和內聯等級&#xff08;inline-level&#xff09;word 中大部分內容都…

Unity AI副總裁Danny Lange:如何用AI助推游戲行業?

本文講的是Unity AI副總裁Danny Lange&#xff1a;如何用AI助推游戲行業&#xff1f; &#xff0c;10月26日&#xff0c;在加州山景城舉辦的ACMMM 2017大會進入正會第三天。在會上&#xff0c;Unity Technology負責AI與機器學習的副總裁Danny Longe進行了題為《Bringing Gaming…

SPI 讀取不同長度 寄存器_SPI協議,MCP2515裸機驅動詳解

SPI概述Serial Peripheral interface 通用串行外圍設備接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM&#xff0c;FLASH&#xff0c;實時時鐘&#xff0c;AD轉換器&#xff0c;還有數字信號處理器和數字信號解碼器之間。SPI&#xff0c;是一種高…

oracle并發執行max,跪求大量并發執行insert into select語句的方案

現在有數十萬張表要從A庫通過insert into tablename select * from tablenamedblink的方式導入到B庫中。B機上80個cpu&#xff0c;160G內存。希望能夠大量并發執行。怎么寫腳本呢&#xff1f;誰有這方面的經驗&#xff0c;麻煩指點一下。謝謝。下面是我的腳本&#xff1a;#!/us…

20162314 《Program Design Data Structures》Learning Summary Of The First Week

20162314 2017-2018-1 《Program Design & Data Structures》Learning Summary Of The First Week Summary of teaching materials Algorithm analysis is the basic project of the computer science.Increasing function prove that the utilization of the time and spa…

高并發解決方法

2019獨角獸企業重金招聘Python工程師標準>>> 高并發來說&#xff0c;要從實際項目的每一個過程去考慮&#xff0c;頁面&#xff0c;訪問過程&#xff0c;服務器處理&#xff0c;數據庫訪問每個過程都可以處理。&#xff08;前端-寬帶-后端-DB&#xff09; 集群&…

MySQL 之 存儲過程

一、初識存儲過程 1、什么是存儲過程 存儲過程是在大型數據庫系統中一組為了完成特定功能的SQL語句集&#xff0c;存儲在數據庫中。存儲過程經過第一次編譯后&#xff0c;再次調用不需要編譯&#xff0c;用戶可以通過指定的存儲過程名和給出一些存儲過程定義的參數來使用它。…

C/C++面試感受和經驗以及面試題收藏

http://topic.csdn.net/u/20080924/15/3b00a84e-970f-4dea-92f2-868c5d1ad825.html 前段時間剛參加了n多公司的C/C軟件工程師的面試&#xff0c;有國企&#xff0c;外企&#xff0c;私企&#xff08;moto&#xff0c;飛思卡爾&#xff0c;港灣&#xff0c;中國衛星XXX&#xf…