丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給三川
發(fā)送

0

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

本文作者: 三川 2017-05-02 18:44
導(dǎo)語:深度學(xué)習(xí)在 CV 和 NLP 領(lǐng)域的交叉應(yīng)用。

雷鋒網(wǎng)按:本文刊載于 Oreilly,雷鋒網(wǎng)編譯。閱讀原文地址請(qǐng)點(diǎn)此 。

玩過圖像分類的開發(fā)者不少,許多人或許對(duì)圖像分割(image segmentation)也不陌生,但圖像注解(image caption)的難度,無疑比前兩者更進(jìn)一步。

原因無他:利用神經(jīng)網(wǎng)絡(luò)來生成貼合實(shí)際的圖像注釋,需要結(jié)合最新的計(jì)算機(jī)視覺和機(jī)器翻譯技術(shù),缺一不可。對(duì)于為輸入圖像生成文字注解,訓(xùn)練神經(jīng)圖像注解模型能使其成功幾率最大化,并能生成新奇的圖像描述。舉個(gè)例子,下圖便是在 MS COCO 數(shù)據(jù)集上訓(xùn)練的神經(jīng)圖像注解生成器,所輸出的潛在注解。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

左圖注解:一個(gè)灰衣男子揮舞棒子,黑衣男子旁觀;右圖注解:一輛大巴車“坐”在一個(gè)人旁邊

本文是一篇中級(jí)教程,旨在教給大家如何在 Flickr30k 數(shù)據(jù)集上訓(xùn)練圖像注解生成模型,使用的是谷歌 Show and Tell 模型的變體。我們使用  TensorFlow 框架來創(chuàng)建、訓(xùn)練、測(cè)試模型,因?yàn)?nbsp;TensorFlow 相對(duì)容易使用,并且有不斷增長的龐大用戶社群。

圖像注解技術(shù)的價(jià)值

近來深度學(xué)習(xí)在 CV(計(jì)算機(jī)視覺)和 NLP(自然語言處理)領(lǐng)域的成功,激發(fā)了 AI 研究人員在這兩者的交叉領(lǐng)域探索新的應(yīng)用。而作為結(jié)果的注解生成模型,需要平衡對(duì)視覺線索和自然語言的理解。

這兩門傳統(tǒng)上涇渭分明、并不相關(guān)的領(lǐng)域之間所產(chǎn)生的交集,有潛力在業(yè)內(nèi)產(chǎn)生廣泛的影響。該技術(shù)有一些直接應(yīng)用場(chǎng)景,比如為 YouTube 視頻生成簡介,又比如為無標(biāo)簽圖像做注解,但其價(jià)值遠(yuǎn)不止于此。類似于傳統(tǒng)的 CV 技術(shù)試圖讓現(xiàn)實(shí)世界變得讓計(jì)算機(jī)更容易接觸更容易理解,該技術(shù)有潛力讓現(xiàn)實(shí)世界變得對(duì)于我們來說更容易理解。它可以作為我們的導(dǎo)游、日常生活的視覺輔助,比如意大利 AI 公司 Eyra 的為視覺障礙患者開發(fā)的可穿戴設(shè)備 Horus (古埃及神話中的荷魯斯之眼)。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

準(zhǔn)備工作

首先,你需要安裝 TensorFlow。

其次,你需要 pandas, opencv2 以及 Jupyter 來跑相關(guān)代碼。但是,為了簡化安裝過程,我們強(qiáng)烈推薦你在我們的 GitHub 資源庫里跟隨 Docker 的安裝指南。

你還需要下載 Flickr30k 數(shù)據(jù)集的圖像注解和 image embeddings。下載鏈接也在 GitHub 資源庫里。

現(xiàn)在教程開始。

圖像注解生成模型

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

在高層級(jí),這就是我們將要訓(xùn)練的模型。每一幅圖像將會(huì)用深度 CNN 編碼成 4,096 維的矢量表示。一個(gè)語言生成 RNN 會(huì)隨后對(duì)其按次序解碼,成為自然語言描述。

注解生成——作為圖像分類的延伸

作為一個(gè)歷史悠久的 CV 任務(wù),圖像分類背后有許多強(qiáng)大模型。圖像分類能把圖像中相關(guān)聯(lián)的形狀、物體的視覺信息拼湊到一起,把圖像放入物體類別中。針對(duì)其他 CV 任務(wù)的機(jī)器學(xué)習(xí)模型,建立在圖像分類的基礎(chǔ)之上,比如物體識(shí)別和圖像分割。它們不僅能對(duì)提供的信息進(jìn)行識(shí)別,還能學(xué)習(xí)如何解讀 2D 空間,調(diào)和兩種理解,并決定圖像中物體信息的位置分布。

對(duì)于注釋生成,這引發(fā)了兩個(gè)問題:

  1. 我們?nèi)绾纬浞掷脠D像分類模型的成功,從圖像提取重要信息?

  2. 我們的模型,該如何調(diào)和對(duì)語言和圖像的理解?

利用遷移學(xué)習(xí)

我們可以利用已有的模型,推動(dòng)圖像注解。遷移學(xué)習(xí)使得——在不同任務(wù)上訓(xùn)練神經(jīng)網(wǎng)絡(luò)而學(xué)習(xí)到的數(shù)據(jù)變形,能用于我們的數(shù)據(jù)。在我們的例子中,VGG-16 圖像分類模型導(dǎo)入 224x224 分辨率的圖像,生成對(duì)分類圖像非常有用的 4,096 維特征矢量。

我們可以把 VGG-16 模型的表示(即 image embedding)用于訓(xùn)練其他模型上面。受篇幅限制,本文對(duì) VGG-16 的架構(gòu)不欲詳述,并預(yù)先計(jì)算好了 4,096 維特征,來加速訓(xùn)練。

載入 VGG 圖像特征和圖像注解比較直接:

def get_data(annotation_path, feature_path):
   annotations = pd.read_table(annotation_path, sep='\t', header=None, names=['image', 'caption'])
   return np.load(feature_path,'r'), annotations['caption'].values

理解注解

有了圖像表示,我們需要模型來學(xué)習(xí)把它解碼為可理解的注解。由于文本的序列本質(zhì),我們需利用 RNN/LSTM 中的循環(huán)。對(duì)于序列中的給定詞語,這些網(wǎng)絡(luò)被訓(xùn)練,用以預(yù)測(cè)下一個(gè)詞語以及圖像表示。

LSTM 單元允許模型在注解詞語序列中,更好地選擇使用哪條信息、記憶什么、又要忘記什么。TensorFlow 提供了一個(gè) wrapper 函數(shù),來對(duì)給定輸入、輸出維度生成 LSTM 層。

為了把詞語轉(zhuǎn)換成適合 LSTM 輸入的固定長度表示,我們使用了一個(gè) embedding 層,它能學(xué)習(xí)把詞語映射到 256 維的特征(或 word-embedding)。Word-embedding 幫助我們把詞語表示為矢量,相近的詞語矢量在語義上也是近似的。

在 VGG-16 圖像分類器里,卷積層提取了 4,096 維表示,傳入最終的 softmax 層進(jìn)行分類。由于 LSTM 單元需要 256 維文本特征作為輸入,我們需要把圖像表示轉(zhuǎn)譯為針對(duì)目標(biāo)注解的表示。為實(shí)現(xiàn)這一點(diǎn),我們使用了另一個(gè) embedding 層,學(xué)習(xí)把 4,096 維圖像特征映射到 256 維文本特征的空間。

創(chuàng)建和訓(xùn)練模型

整體上,這就是谷歌 Show and Tell 模型看起來的樣子:

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

上圖中, {s0, s1, ..., sN}代表了注解中我們想要預(yù)測(cè)的詞語, {wes0, wes1, ..., wesN-1} 是每個(gè)詞的 word embedding 矢量。LSTM 的輸出 {p1, p2, ..., pN} 是模型生成的概率分布,針對(duì)句子中的下一個(gè)詞。該模型被訓(xùn)練來最小化每個(gè)詞語對(duì)數(shù)概率(log probabilities )的負(fù)數(shù)總和。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

使用推理生成注解

訓(xùn)練之后,我們有了一個(gè)模型。給定圖像和所有此前的詞語,它能給出下一步某個(gè)詞出現(xiàn)在注解中的概率。如何用它來生成新注解呢?

最簡單的辦法,是拿來一個(gè)輸入圖像,輸出下一個(gè)可能性最高的詞語,創(chuàng)建一個(gè)簡單的圖像注解。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

這在許多情況下會(huì)奏,但“貪婪”地使用每一個(gè)概率最大的詞語,未必能獲得整體上概率最大的注解。

繞過這個(gè)難題的一個(gè)潛在方案,是采用一個(gè)名為"Beam Search"的方法。該算法會(huì)對(duì)長度 t 以內(nèi)的 k 個(gè)最佳語句集反復(fù)考量,作為候選來生成 t + 1 大小的句子,只保留結(jié)果中的 k 個(gè)最佳選擇。這允許開發(fā)者探索一個(gè)較大的優(yōu)質(zhì)注解空間,同時(shí)讓推理在計(jì)算上可追蹤。在下面的例子里,算法保持了一個(gè) k = 2 的候選句子列表,即每個(gè)垂直時(shí)間步到每個(gè)加粗詞語的路線。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

局限性

對(duì)于學(xué)習(xí)把圖像映射到人類級(jí)別的文字注解,該神經(jīng)圖像注解生成器提供了一個(gè)十分有用的框架。銅鼓偶在大量圖像—注解成對(duì)數(shù)據(jù)上訓(xùn)練,該模型學(xué)會(huì)了通過視覺特征抓取相關(guān)語義信息。

但對(duì)于靜態(tài)圖片而言,嵌入我們的注解生成器,將會(huì)聚焦于圖像中對(duì)分類有用的特征,而不是對(duì)注解生成有用的特征。為提升每個(gè)特征里涵蓋的與任務(wù)相關(guān)的信息,我們可以訓(xùn)練圖像嵌入模型(用來對(duì)特征進(jìn)行編碼的 VGG-16 網(wǎng)絡(luò))作為注解生成模型的一部分。這使得我們能為圖像編碼器調(diào)參,以更符合注解生成器的角色。

另外,如果我們仔細(xì)觀察生成的注解,會(huì)發(fā)現(xiàn)它們基本是日常、常見的情形。下圖便是例子:

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!


幾乎可以肯定,這圖片是“長頸鹿站在一棵樹旁邊”。但是,如果我們看看其他圖片,會(huì)立刻發(fā)現(xiàn)無論對(duì)于哪一張生成的注解都是“長頸鹿站在一棵樹旁邊”。這是因?yàn)橛?xùn)練集中的長頸鹿都出現(xiàn)在樹旁邊。

下一步

首先,如果你想要提升該模型,你需要看看谷歌的開源 Show and Tell 神經(jīng)網(wǎng)絡(luò)。它用 MS COCO 數(shù)據(jù)集和 Inception-v3 圖像嵌入訓(xùn)練。

現(xiàn)有的前沿圖像注解模型會(huì)包含一個(gè)視覺注意力機(jī)制(visual attention mechanism),使得模型能發(fā)現(xiàn)圖像中感興趣的部分,因而能在生成注解時(shí)選擇性地聚焦。

另外,如果你對(duì)注解生成的前沿執(zhí)行非常好奇,不妨看看這一篇論文:Show, Attend, and Tell: Neural Image Caption Generation with Visual Attention。

雷鋒網(wǎng)提醒:作者已將本文所有 Python 代碼上傳于 GitHub,請(qǐng)戳這里

 “TensorFlow & 神經(jīng)網(wǎng)絡(luò)算法高級(jí)應(yīng)用班”要開課啦!

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!


從初級(jí)到高級(jí),理論+實(shí)戰(zhàn),一站式深度了解 TensorFlow!

本課程面向深度學(xué)習(xí)開發(fā)者,講授如何利用 TensorFlow 解決圖像識(shí)別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎(chǔ)實(shí)戰(zhàn)技巧開始,一步步教授學(xué)員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,并最終掌握一整套基于 TensorFlow 做深度學(xué)習(xí)開發(fā)的專業(yè)技能。

兩名授課老師佟達(dá)、白發(fā)川身為 ThoughtWorks 的資深技術(shù)專家,具有豐富的大數(shù)據(jù)平臺(tái)搭建、深度學(xué)習(xí)系統(tǒng)開發(fā)項(xiàng)目經(jīng)驗(yàn)。

時(shí)間:每周二、四晚 20:00-21:00

開課時(shí)長:總學(xué)時(shí) 20 小時(shí),分 10 周完成,每周2次,每次 1 小時(shí)

線上授課地址:http://www.mooc.ai/

相關(guān)文章:

教你從零開始在 TensorFlow 上搭建 RNN(完整代碼)!

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

在玩圖像分類和圖像分割?來挑戰(zhàn)基于 TensorFlow 的圖像注解生成!

分享:
相關(guān)文章

用愛救世界
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說