在線圖片標(biāo)題生成系統(tǒng)_第1頁(yè)
在線圖片標(biāo)題生成系統(tǒng)_第2頁(yè)
在線圖片標(biāo)題生成系統(tǒng)_第3頁(yè)
在線圖片標(biāo)題生成系統(tǒng)_第4頁(yè)
在線圖片標(biāo)題生成系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、蘇州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)本 科 畢 業(yè) 設(shè) 計(jì)(論 文)學(xué)院(部)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院題 目在線圖片標(biāo)題生成系統(tǒng)年 級(jí)14級(jí)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)計(jì)科班學(xué)號(hào)1427405118姓 名趙子聰指導(dǎo)老師李軍輝職稱副教授論文提交日期2018/5/1837目 錄前 言1第一章 緒 論21.1 研究背景21.2 國(guó)內(nèi)外的研究的發(fā)展21.3 主要功能概述41.4 本文組織結(jié)構(gòu)4第二章 圖片標(biāo)題生成器相關(guān)算法52.1 用于特征提取的深度卷積神經(jīng)網(wǎng)絡(luò)52.1.1 LeNet-552.1.2 AlexNet52.1.3 Inception v362.2 用于訓(xùn)練語(yǔ)言模型的深度循環(huán)神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)

2、62.2.1 深度循環(huán)神經(jīng)網(wǎng)絡(luò)62.2.2 長(zhǎng)短期記憶網(wǎng)絡(luò)82.3 NIC(Neural Image Caption)模型介紹92.4 本章小結(jié)11第三章 相關(guān)技術(shù)簡(jiǎn)介123.1前端相關(guān)技術(shù)簡(jiǎn)介123.1.1 html語(yǔ)言簡(jiǎn)介123.1.2 bootstrap框架簡(jiǎn)介123.2后端相關(guān)技術(shù)簡(jiǎn)介123.2.1 Python語(yǔ)言簡(jiǎn)介123.2.2 django框架簡(jiǎn)介133.2.3 tensorflow系統(tǒng)簡(jiǎn)介143.2.4 ajax技術(shù)簡(jiǎn)介153.2.5 mysql數(shù)據(jù)庫(kù)簡(jiǎn)介153.3 本章小結(jié)15第四章 在線圖片標(biāo)題生成系統(tǒng)的需求分析及設(shè)計(jì)164.1 可行性分析164.1.1 技術(shù)可行性164

3、.1.2 組織可行性164.1.3 時(shí)間可行性164.1.4 經(jīng)濟(jì)可行性164.1.5 結(jié)論174.2 需求分析174.2.1 功能需求分析174.2.2 性能需求分析174.2.3 可靠性分析184.2.4 可新增功能分析184.3 系統(tǒng)設(shè)計(jì)184.3.1 整體代碼結(jié)構(gòu)184.3.2 系統(tǒng)用例圖模型194.3.3 系統(tǒng)設(shè)計(jì)總結(jié)204.4 本章小結(jié)20第五章 在線圖片標(biāo)題生成系統(tǒng)的具體實(shí)現(xiàn)215.1 系統(tǒng)功能展示215.2圖片上傳區(qū)255.3 圖片識(shí)別區(qū)275.4 意見(jiàn)反饋區(qū)275.5 本章總結(jié)33第六章 總結(jié)與展望346.1 本文總結(jié)346.2 未來(lái)的展望34參考文獻(xiàn)35致謝36摘 要近年來(lái)

4、,伴隨著計(jì)算機(jī)科學(xué)技術(shù)和信息科學(xué)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)發(fā)展進(jìn)入了大數(shù)據(jù)時(shí)代。而在大數(shù)據(jù)時(shí)代中,數(shù)據(jù)的價(jià)值也變得越來(lái)越高。如何從大量無(wú)效數(shù)據(jù)中提取出有效數(shù)據(jù)變成了一個(gè)重要的任務(wù)。而對(duì)數(shù)據(jù)進(jìn)行篩選的一個(gè)重要任務(wù)就是對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,即如何有效地對(duì)數(shù)據(jù)進(jìn)行標(biāo)注。因?yàn)閷?duì)數(shù)據(jù)進(jìn)行標(biāo)注是管理和使用數(shù)據(jù)的一個(gè)重要前提。而在大量的數(shù)據(jù)中,圖像數(shù)據(jù)是其中占比很大又處理較為困難的一類數(shù)據(jù)。本文的圖片標(biāo)題生成技術(shù)就是圖像標(biāo)注的另一種稱呼。圖片標(biāo)題生成技術(shù)不僅能幫助人們管理無(wú)標(biāo)記的圖片,還能幫助有理解障礙的人理解圖片的內(nèi)容。本次畢業(yè)設(shè)計(jì)利用谷歌基于tensorflow的圖片標(biāo)題生成的開源程序,設(shè)計(jì)了一個(gè)基于Pytho

5、n程序的web網(wǎng)站,通過(guò)這個(gè)網(wǎng)站將如今已經(jīng)擁有良好圖片標(biāo)題生成效果的圖片標(biāo)題生成技術(shù)展現(xiàn)出來(lái),讓更多人了解使用到這個(gè)技術(shù)。同時(shí),這個(gè)網(wǎng)站可以幫助收集人工資料,為完善這項(xiàng)技術(shù)提供更多的參考。關(guān)鍵詞:圖片標(biāo)題生成系統(tǒng);Python;html;django;tensorflow;AbstractIn recent years, with the rapid development of computer science technology and information science and technology, the development of the Internet has ente

6、red the era of big data. In the era of big data, the value of data has also become higher and higher. How to extract valid data from a large amount of invalid data becomes an important task. The important task of filtering data is to preprocess the data, that is how to label the data effectively. Be

7、cause labeling data is an important prerequisite for managing and using data. In a large amount of data, image data is a type of data in which the proportion is large and it is difficult to handle. This articles picture title generation technology is another name for image tagging. Image title gener

8、ation technology not only helps people manage unmarked pictures, but also helps people with understanding disabilities understand the content of pictures.The graduation project designed a Python-based web site using Googles open source program for tensorflow-based image title generation.At the same

9、time, this website can help collect manual data and provide more references for improving this technology.Keywords: a image caption generator;Python;html;django;tensorflow;前 言伴隨著機(jī)器翻譯和大數(shù)據(jù)的興起,出現(xiàn)了圖片標(biāo)題生成技術(shù)的研究浪潮。使用較為準(zhǔn)確的語(yǔ)句自動(dòng)描述圖像的內(nèi)容是一項(xiàng)非常具有挑戰(zhàn)性的任務(wù),但是這項(xiàng)任務(wù)卻可能有著巨大的影響和非常廣泛的應(yīng)用場(chǎng)所。例如,在幼兒教育領(lǐng)域可以幫助小孩子看圖識(shí)字;在醫(yī)療生活領(lǐng)域可以幫助視

10、覺(jué)障礙人士更好的理解圖像的內(nèi)容;在圖像檢索方面可以幫助標(biāo)記出圖像描述的內(nèi)容方便檢索。比起已經(jīng)經(jīng)過(guò)深入研究的圖像分類或目標(biāo)識(shí)別任務(wù),這項(xiàng)任務(wù)顯得更加困難,因此它也是目前是計(jì)算機(jī)視覺(jué)領(lǐng)域的主要焦點(diǎn)。本次畢業(yè)設(shè)計(jì)就是圍繞這個(gè)誕生還沒(méi)有多久在線圖片標(biāo)題生成技術(shù),設(shè)計(jì)一個(gè)在線圖片標(biāo)題生成的相關(guān)網(wǎng)站。在本文中,我們首先大概的介紹了這個(gè)技術(shù)的背景和發(fā)展以及我們要設(shè)計(jì)的是一個(gè)怎樣的網(wǎng)站。接著我們?cè)敿?xì)介紹了圖片標(biāo)題生成的相關(guān)算法和模型。然后,我們又對(duì)設(shè)計(jì)這樣一個(gè)網(wǎng)站所需要的技術(shù)進(jìn)行了具體的描述和對(duì)比,找到用于本次畢業(yè)設(shè)計(jì)的合適技術(shù)。然后再對(duì)具體構(gòu)造網(wǎng)站進(jìn)行了可行性和需求分析,并作出概要設(shè)計(jì)。之后,利用這些技術(shù)將

11、網(wǎng)站的具體實(shí)施代碼和相關(guān)功能和顯示效果進(jìn)行介紹。最后再總結(jié)本次畢業(yè)設(shè)計(jì),對(duì)進(jìn)一步開發(fā)進(jìn)行展望。第1章 緒 論本章首先重點(diǎn)介紹了圖片標(biāo)題生成技術(shù)的背景及其重大意義,接著介紹了在線圖片標(biāo)題生成系統(tǒng)的一些模塊以及其功能,然后介紹了建立本系統(tǒng)所需要做的主要工作和本系統(tǒng)的一些創(chuàng)新點(diǎn),最后介紹了目前圖片標(biāo)題生成技術(shù)存在的一些問(wèn)題。1.1 研究背景伴隨著機(jī)器翻譯和大數(shù)據(jù)的興起,出現(xiàn)了圖片標(biāo)題生成技術(shù)的研究浪潮。使用較為準(zhǔn)確的語(yǔ)句自動(dòng)描述圖像的內(nèi)容是一項(xiàng)非常具有挑戰(zhàn)性的任務(wù),但是這項(xiàng)任務(wù)卻可能有著巨大的影響和非常廣泛的應(yīng)用場(chǎng)所。例如,在幼兒教育領(lǐng)域可以幫助小孩子看圖識(shí)字;在醫(yī)療生活領(lǐng)域可以幫助視覺(jué)障礙人士更好

12、的理解圖像的內(nèi)容;在圖像檢索方面可以幫助標(biāo)記出圖像描述的內(nèi)容方便檢索。比起已經(jīng)經(jīng)過(guò)深入研究的圖像分類或目標(biāo)識(shí)別任務(wù),這項(xiàng)任務(wù)顯得更加困難,因此它也是目前是計(jì)算機(jī)視覺(jué)領(lǐng)域的主要焦點(diǎn)。近些年來(lái)的許多研究工作都取得了巨大的發(fā)展,比如計(jì)算機(jī)視覺(jué)和自然語(yǔ)言的深層模型、圖像-句子檢索、為圖像生成最新的句子描述。在這些發(fā)展的方法中,大多將圖片標(biāo)題生成看做檢索任務(wù)。他們?yōu)榫渥雍蛨D像提取特征,然后將這些特征相互映射,存入到語(yǔ)義嵌入空間中。這些方法對(duì)給定的圖像進(jìn)行檢索獲得其映射的句子,或是對(duì)給定的句子進(jìn)行檢索已獲得它所映射的圖像。但是,這樣的方法存在著很大的缺陷,即他們都只能用于查詢圖像標(biāo)注數(shù)據(jù)集中已經(jīng)存在的圖像

13、的句子描述。而在實(shí)際工作中,我們所遇到的更多情況都是對(duì)沒(méi)有存入的圖像、場(chǎng)景進(jìn)行的處理。而卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合的模型,恰好可以較好的處理這種情況。1.2 國(guó)內(nèi)外的研究的發(fā)展將卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合的模型用于解決圖像標(biāo)題生成的問(wèn)題的研究最早是從2014開始提出,在2015年開始對(duì)模型各部分組成上進(jìn)行更多嘗試與優(yōu)化,到2016年的國(guó)際計(jì)算機(jī)視覺(jué)與模式識(shí)別會(huì)議上成為了一個(gè)熱門的專題。在這個(gè)發(fā)展過(guò)程中,將卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合的核心思路并沒(méi)有發(fā)生變化,變化的是使用了更好更復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)模型,效果更好的長(zhǎng)短期記憶網(wǎng)絡(luò)模型,圖像特征輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)中的方式,以及更復(fù)合的特征

14、輸入等。2014年10月,百度研究院的Junhua Mao和Wei Xu等人提出了多模態(tài)循環(huán)神經(jīng)網(wǎng)絡(luò)模型,創(chuàng)造性地將深度卷積神經(jīng)網(wǎng)絡(luò)和深度循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合起來(lái)用于解決圖像標(biāo)題生成和圖像語(yǔ)句檢索的相關(guān)問(wèn)題。這也應(yīng)該是第一個(gè)采用多模態(tài)循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)的神經(jīng)網(wǎng)絡(luò)模型。2014年11月,谷歌的Vinyals等人提出了NIC(Neural Image Caption)模型,該模型放棄了使用循環(huán)神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)而采用長(zhǎng)短期記憶網(wǎng)絡(luò),同時(shí)在卷積神經(jīng)網(wǎng)絡(luò)部分采用了更好的技術(shù)。方法PASCAL(xfer)Flickr30kFlickr8kSBUIm2TextTreeTalkBabyTalkTri5Semm-RNNMN

15、LM2555564858511119SOTA25565819NIC59666328Human696870表1-1 不同算法在不同數(shù)據(jù)集上的BLEU-1得分的比較在表1-1中,我們可以看到NIC模型的評(píng)分比起多模態(tài)循環(huán)神經(jīng)網(wǎng)絡(luò)的評(píng)分有了顯著的提高。同時(shí),隨著對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化,更多更好的圖標(biāo)標(biāo)題生成技術(shù)在出現(xiàn)。但是,比起人類的判斷仍然有著較大的差距。因?yàn)?,通過(guò)這些技術(shù)生成的自然語(yǔ)言描述都是服務(wù)于人類的。雖然在很多的圖像標(biāo)注評(píng)價(jià)標(biāo)準(zhǔn)中,許多現(xiàn)在的模型在評(píng)分上與人類已經(jīng)不相上下甚至有趕超趨勢(shì)。比如在表1-2中根據(jù)谷歌發(fā)表的論文,我們可以看到當(dāng)使用微軟的coco數(shù)據(jù)集時(shí),谷歌的NIC

16、模型和人類的得分已經(jīng)難分高下。但是將該模型所得到的自然語(yǔ)言描述給人類來(lái)評(píng)判時(shí),我們發(fā)現(xiàn)現(xiàn)有的自動(dòng)評(píng)價(jià)標(biāo)準(zhǔn)仍然存在著許多瑕疵和漏洞。這也意味著,圖片標(biāo)題生成技術(shù)目前仍然有著很大的改進(jìn)空間。測(cè)量集BLEU-4METEORCIDERNIC27.723.785.5RamdmNearest NeighborHuman4.69.921.79.015.785.4表1-2 bleu標(biāo)準(zhǔn)下各類數(shù)據(jù)集各種模型的評(píng)分1.3 主要功能概述本次畢業(yè)設(shè)計(jì)的目標(biāo)是開發(fā)一個(gè)在線的圖片標(biāo)題生成系統(tǒng)。設(shè)計(jì)一個(gè)網(wǎng)站,實(shí)現(xiàn)上傳圖片并得到相應(yīng)的自然語(yǔ)言描述。網(wǎng)站分為圖片上傳區(qū)、結(jié)果展示區(qū)和意見(jiàn)反饋區(qū)。開發(fā)這樣的一

17、個(gè)在線圖片標(biāo)題生成系統(tǒng),可以將現(xiàn)有的圖片標(biāo)題生成技術(shù),可視化的展現(xiàn)在大家面前。更加封裝的實(shí)現(xiàn)圖片到自然語(yǔ)言的轉(zhuǎn)換。同時(shí)可以收集一些人類對(duì)于所使用的圖片標(biāo)題生成技術(shù)的水準(zhǔn)評(píng)價(jià),為以后進(jìn)一步優(yōu)化系統(tǒng)提供幫助。1.4 本文組織結(jié)構(gòu)本文共分為五章,各章內(nèi)容如下:第一章:緒論。本章介紹了課題的研究背景及意義、BitTorrent協(xié)議及典型的BitTorrent系統(tǒng)的組成、本文的主要工作及主要?jiǎng)?chuàng)新點(diǎn),最后介紹了本文的組織結(jié)構(gòu)。第二章:圖片標(biāo)題生成器相關(guān)算法。本章詳細(xì)介紹了圖片標(biāo)題生成系統(tǒng)所用到的相關(guān)算法,只有理解了這些算法,才能更好的設(shè)計(jì)系統(tǒng)。第三章:相關(guān)技術(shù)簡(jiǎn)介。本章介紹所設(shè)計(jì)的系統(tǒng)所用到的核心技術(shù),并

18、將這些技術(shù)與其他技術(shù)進(jìn)行對(duì)比。第四章:在線圖片標(biāo)題生成系統(tǒng)的需求分析及設(shè)計(jì)。本章對(duì)網(wǎng)站進(jìn)行了可行性分析、需求分析和概要設(shè)計(jì),通過(guò)這一章,我們可以了解系統(tǒng)的大概框架,為下一步具體實(shí)現(xiàn)做鋪墊。第五章:在線圖片標(biāo)題生成系統(tǒng)的具體實(shí)現(xiàn)。本章介紹了在線圖片標(biāo)題生成系統(tǒng)的具體功能和實(shí)現(xiàn)所用到的相關(guān)代碼。第六章:總結(jié)全文,提出未來(lái)工作的設(shè)想與展望。第2章 圖片標(biāo)題生成器相關(guān)算法本章首先介紹了在線圖片標(biāo)題生成系統(tǒng)中所使用的圖片標(biāo)題生成器所用到的卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)算法以及它們的結(jié)合使用。接著介紹了我們所用到的一個(gè)基于tensorflow系統(tǒng)的圖片標(biāo)題生成器的相關(guān)功能及其原理。2.1 用于特征提取的深度卷

19、積神經(jīng)網(wǎng)絡(luò)目前我們常用到的將卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合的模型中,卷積神經(jīng)網(wǎng)絡(luò)所起到的作用主要是用來(lái)提取圖像的特征并將其傳給循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。因此,對(duì)于卷積神經(jīng)網(wǎng)絡(luò)的選擇,將很大程度影響到圖片標(biāo)題生成的效果。選擇更復(fù)雜、效果更好的卷積神經(jīng)網(wǎng)絡(luò),是改善圖片標(biāo)題生成結(jié)果的一個(gè)重要方式。接下來(lái),將簡(jiǎn)單介紹兩種常見(jiàn)的卷積神經(jīng)網(wǎng)絡(luò)模型。2.1.1 LeNet-5 LeNet-5由Yann LeCun教授提出,這個(gè)神經(jīng)網(wǎng)絡(luò)模型充分考慮圖像的相關(guān)性。LeNet-5結(jié)構(gòu)的特點(diǎn)如下:1)每個(gè)卷積層包含三個(gè)部分:卷積(Conv)、池化(ave-pooling)、非線性激活函數(shù)(sigmoid)2)MLP作

20、為最終的分類器3)層與層之間通過(guò)稀疏連接減少計(jì)算的復(fù)雜度其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2-1所示:圖2-1 LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)圖2.1.2 AlexNetAlexNet有5個(gè)卷積層和3個(gè)全連接層,其中移除任意一層都會(huì)降低最終的效果。比起其他的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),AlexNet網(wǎng)絡(luò)結(jié)構(gòu)在圖像分類中的錯(cuò)誤率有著顯著的降低。它之所以能有這么好的效果,是因?yàn)椋紫?,它使用了非線性激活函數(shù)Relu,這種激活函數(shù)得到的SGD收斂速度會(huì)比其他激活函數(shù)如sigmoid快的多。其次,它使用了防止過(guò)于擬合的方法Dropout和Data augmentation。同時(shí),它采用了擁有百萬(wàn)級(jí)ImageNet圖像數(shù)據(jù)的大數(shù)據(jù)訓(xùn)練。最

21、后它還用到了多GPU訓(xùn)練。它的網(wǎng)絡(luò)結(jié)構(gòu)如圖2-2所示:圖2-2 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖2.1.3 Inception v3本次畢設(shè)所用到的卷積神經(jīng)網(wǎng)絡(luò)是比LeNet-5和AlexNet更加復(fù)雜的網(wǎng)絡(luò)-Inception v3網(wǎng)絡(luò)。這種網(wǎng)絡(luò)既能保持網(wǎng)絡(luò)結(jié)構(gòu)的稀疏性,防止網(wǎng)絡(luò)過(guò)于擬合或是復(fù)雜度過(guò)大難以應(yīng)用;又能利用密集矩陣進(jìn)行高性能的計(jì)算,是對(duì)GoogleNet的優(yōu)化。Inception v3架構(gòu)的主要思想是找出如何用密集成分來(lái)近似最優(yōu)的局部稀疏結(jié)。Inception v3使用大尺寸的濾波器進(jìn)行卷積分解,Inception模塊是全卷積的,每個(gè)權(quán)值對(duì)應(yīng)一個(gè)乘法運(yùn)算,進(jìn)行卷積分解后可以減少參數(shù)數(shù)目進(jìn)

22、行快速訓(xùn)練,這樣就可以增加濾波器組的大小提升精度。Inception模塊還將大卷積分解成了小卷積,55的卷積可以使用兩層33卷積代替。這樣的分解可以減少參數(shù)冗余,降低卷積核參數(shù)和計(jì)算量。同時(shí),Inception模塊還附加了分類器,并通過(guò)池化的方式降低特征圖大小,有效避免信息的損失。2.2 用于訓(xùn)練語(yǔ)言模型的深度循環(huán)神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)2.2.1 深度循環(huán)神經(jīng)網(wǎng)絡(luò)在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,我們會(huì)假設(shè)所有的輸入(包括輸出)之間是相互獨(dú)立的。但是,在更多情況下,我們遇到的都是對(duì)多個(gè)任務(wù)的操作。這時(shí),傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)采用的相對(duì)獨(dú)立的假設(shè),成為了一個(gè)非常糟糕的假設(shè)。如果你想預(yù)測(cè)一個(gè)序列中的下一個(gè)詞,你最好能

23、知道哪些詞在它前面。循環(huán)神經(jīng)網(wǎng)絡(luò)之所以是循環(huán)的,是因?yàn)樗槍?duì)系列中的每一個(gè)元素都執(zhí)行相同的操作,每一個(gè)操作都依賴于之前的計(jì)算結(jié)果。換一種方式思考,可以認(rèn)為循環(huán)神經(jīng)網(wǎng)絡(luò)記憶了到當(dāng)前為止已經(jīng)計(jì)算過(guò)的信息。理論上,循環(huán)神經(jīng)網(wǎng)絡(luò)可以利用任意長(zhǎng)的序列信息,不過(guò)實(shí)際中,也只能回顧之前的幾步。循環(huán)神經(jīng)網(wǎng)絡(luò)常用于語(yǔ)言模型和文本的生成。給定一個(gè)詞的序列,我們想預(yù)測(cè)在前面的詞確定之后,之后的每個(gè)詞出現(xiàn)的概率。語(yǔ)言模型可以度量一個(gè)句子出現(xiàn)的可能性,這可以作為機(jī)器翻譯的一個(gè)重要輸入(因?yàn)槌霈F(xiàn)概率高的句子通常是正確的)。能預(yù)測(cè)下一個(gè)詞所帶來(lái)的額外效果是我們得到了一個(gè)生成模型,這可以讓我們通過(guò)對(duì)輸出概率采樣來(lái)生成新的文本

24、。根據(jù)訓(xùn)練數(shù)據(jù)的具體內(nèi)容,我們可以生成任意東西。在語(yǔ)言模型中,輸入通常是詞的序列(編碼成獨(dú)熱碼向量),輸出是預(yù)測(cè)得到的詞的序列。簡(jiǎn)單的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2-3所示:圖2-3 簡(jiǎn)單循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖它在每個(gè)時(shí)間幀中有三種類型的層:輸入字層w,遞歸層r和輸出層y。在t時(shí)刻被激活的輸入層、循環(huán)層和輸出層分別表示為w(t),r(t),y(t)。w(t)是當(dāng)前單詞的單熱表示。該表示是二元的,并且具有與僅一個(gè)非零元素的詞匯大小相同的維度。循環(huán)神經(jīng)網(wǎng)絡(luò)的大小與輸入序列的長(zhǎng)度相適應(yīng),并且循環(huán)層在不同時(shí)間幀內(nèi)連接子網(wǎng)。 因此,當(dāng)我們做反向傳播時(shí),我們會(huì)在一段時(shí)間內(nèi)反復(fù)傳播錯(cuò)誤。接下來(lái)介紹一種多模式的遞歸神經(jīng)網(wǎng)

25、絡(luò),它比起簡(jiǎn)單的循環(huán)神經(jīng)網(wǎng)絡(luò)要復(fù)雜的多。其結(jié)構(gòu)圖如圖2-4所示:圖2-4 多模式的遞歸神經(jīng)網(wǎng)絡(luò)在這種神經(jīng)網(wǎng)絡(luò)中,在每個(gè)時(shí)間幀中有六層:輸入字層,兩個(gè)字嵌入層,循環(huán)層,多模態(tài)層和softmax層。這種神經(jīng)網(wǎng)絡(luò)模型有幾個(gè)優(yōu)點(diǎn)。首先,它會(huì)顯著降低網(wǎng)絡(luò)中的參數(shù)數(shù)量。因?yàn)槊芗膯卧~向量(128維)比單向量單詞向量小得多。其次,它將密集詞嵌入到編碼的語(yǔ)義中。通過(guò)計(jì)算嵌入層中兩個(gè)密集詞向量之間的歐幾里得距離可以找到語(yǔ)義相關(guān)詞。2.2.2 長(zhǎng)短期記憶網(wǎng)絡(luò)原生的循環(huán)神經(jīng)網(wǎng)絡(luò)會(huì)遇到一個(gè)很大的問(wèn)題,即循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消失問(wèn)題。也就是在后面的時(shí)間節(jié)點(diǎn)中對(duì)于前面時(shí)間節(jié)點(diǎn)的感知力度下降。這就導(dǎo)致了在循環(huán)神經(jīng)網(wǎng)絡(luò)中,每當(dāng)網(wǎng)

26、絡(luò)層次變深,訓(xùn)練就無(wú)法進(jìn)行了。而長(zhǎng)短期記憶網(wǎng)絡(luò)在某種程度上說(shuō),就是對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)的一種改進(jìn)。長(zhǎng)短期記憶模型的核心就是記憶單元細(xì)胞,它在每個(gè)時(shí)間節(jié)點(diǎn)對(duì)那些已經(jīng)被輸入并被觀察到的知識(shí)進(jìn)行編碼。單元細(xì)胞的行為由門-乘法應(yīng)用的層控制。如果門的值為1,則單元細(xì)胞的值為1,;如果門的值為0,則單元細(xì)胞的值也為0。具體實(shí)現(xiàn)上來(lái)說(shuō),使用到了三個(gè)門來(lái)控制是否忘記當(dāng)前單元細(xì)胞的值,是否應(yīng)該讀取其輸入以及是否輸出新的單元格的值。關(guān)于長(zhǎng)短期記憶網(wǎng)絡(luò)的模型結(jié)構(gòu),如圖2-4所示:圖2-5 長(zhǎng)短期記憶網(wǎng)絡(luò)在圖2-5中,長(zhǎng)短期記憶網(wǎng)絡(luò)內(nèi)存塊中,包含了一個(gè)由三個(gè)門控制的單元細(xì)胞c。藍(lán)色的線顯示了經(jīng)常性的連接,在時(shí)間t-1處的輸

27、出m通過(guò)三個(gè)門在時(shí)間t被反饋給存儲(chǔ)器;單元細(xì)胞的值通過(guò)遺忘門反饋;除了時(shí)間t的存儲(chǔ)器輸出m之外,時(shí)間t-1處的預(yù)測(cè)字被反饋到了用于字預(yù)測(cè)的softmax中。2.3 NIC(Neural Image Caption)模型介紹本次畢業(yè)設(shè)計(jì),我們使用到的圖片生成器使用到了NIC模型,這是一種端到端的神經(jīng)網(wǎng)絡(luò)系統(tǒng),這個(gè)系統(tǒng)可以自動(dòng)的查看圖像,并生成簡(jiǎn)單的英語(yǔ)句子對(duì)圖像進(jìn)行合理的描述。NIC模型基于卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)將圖像編碼為緊湊表示,然后再使用循環(huán)神經(jīng)網(wǎng)絡(luò)生成相應(yīng)的句子。使用的訓(xùn)練模型也以最大化給出了圖像中句子的可能性。同時(shí),這個(gè)模型的性能指標(biāo)也得到了實(shí)驗(yàn)的驗(yàn)證。在通過(guò)幾個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)后,使用排

28、序指標(biāo)或是bleu指標(biāo)(一種常用于評(píng)判機(jī)器翻譯所生成的句子質(zhì)量的指標(biāo)),NIC模型在定性結(jié)果或是定量評(píng)估方面的檢測(cè)都具有相當(dāng)?shù)姆€(wěn)定性。NIC模型的結(jié)構(gòu)如圖3-5所示:圖2-6 NIC模型由圖2-6知,NIC模型將長(zhǎng)短期記憶網(wǎng)絡(luò)模型結(jié)合卷積神經(jīng)網(wǎng)絡(luò)圖像嵌入器和文字嵌入。 長(zhǎng)短期記憶網(wǎng)絡(luò)存儲(chǔ)器之間的連接展開用藍(lán)色箭頭表示,它們對(duì)應(yīng)于圖2-5中的經(jīng)常性連接。所有的長(zhǎng)短期記憶網(wǎng)絡(luò)共享相同的參數(shù)。圖2-6的結(jié)構(gòu)流程,也可以用以下公式進(jìn)行概括:x1 = CNN(I) xt = WeSt, t0.N1 pt+1 = LSTM(xt), t0.N1 具體說(shuō)來(lái),在圖像特征提取部分,NIC模型使用卷積神經(jīng)網(wǎng)絡(luò)。而

29、在該模型中,使用了批量標(biāo)準(zhǔn)化的新方法。這種方法在2014年的ILSVRC分類競(jìng)賽中獲得了最佳性能。同時(shí),該模型還使用改進(jìn)過(guò)的長(zhǎng)短期記憶網(wǎng)絡(luò)代替簡(jiǎn)單的循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)言模型的訓(xùn)練。循環(huán)神經(jīng)網(wǎng)絡(luò)模型經(jīng)過(guò)訓(xùn)練,可以對(duì)讀取的圖像進(jìn)行句子預(yù)測(cè),得到關(guān)于圖片描述的每個(gè)單詞以及由p(St | I,S0,.,St-1)定義的之前的前單詞。 為了達(dá)到這個(gè)目的,以展開的形式考慮長(zhǎng)短期記憶網(wǎng)絡(luò)是一種有效的方法,圖像中創(chuàng)建的長(zhǎng)短期記憶網(wǎng)絡(luò)存儲(chǔ)器的副本以及每個(gè)句子單詞使得所有長(zhǎng)短期記憶網(wǎng)絡(luò)共享相同的參數(shù),并且時(shí)間t-1處的長(zhǎng)短期記憶網(wǎng)絡(luò)的輸出mt-1被傳送給時(shí)間t時(shí)的LSTM。所有經(jīng)常性連接都會(huì)轉(zhuǎn)換為正在執(zhí)行的連接。

30、 另外,如果我通過(guò)輸入圖像和S =(S0,.,SN)描述了一個(gè)描述這個(gè)圖像的真句子,我們將每個(gè)單詞表示為維度與字典大小相等的獨(dú)熱向量St。請(qǐng)注意,我們用S0表示一個(gè)特殊的開始單詞,用SN表示句子的開始和結(jié)束的特殊停用詞。 尤其是通過(guò)嚴(yán)格的詞匯來(lái)生成長(zhǎng)短期記憶網(wǎng)絡(luò)信號(hào)完整的句子。 圖像和詞都被映射到命名空間,通過(guò)使用詞嵌入我們的圖像通過(guò)使用視覺(jué)CNN。 圖像I只在t = -1時(shí)輸入一次,以通知LSTM圖像內(nèi)容。經(jīng)過(guò)實(shí)驗(yàn)證明,如果在每一個(gè)時(shí)間節(jié)點(diǎn)都輸入圖像數(shù)據(jù),將會(huì)導(dǎo)致較差的結(jié)果。網(wǎng)絡(luò)可能會(huì)放大圖像數(shù)據(jù)中的噪音,并且更容易過(guò)擬合。2.4 本章小結(jié)本章中詳細(xì)介紹了圖片標(biāo)題生成器所用到的相關(guān)算法和模型

31、。這對(duì)于理解圖像標(biāo)題生成器是如何運(yùn)作的以及如何依靠這個(gè)圖片標(biāo)題生成器進(jìn)行系統(tǒng)開發(fā)來(lái)說(shuō),是非常重要的。第三章 相關(guān)技術(shù)簡(jiǎn)介本次設(shè)計(jì)的在線圖片標(biāo)題生成系統(tǒng),采用的是基于Python的web開發(fā)。要設(shè)計(jì)這樣的一個(gè)系統(tǒng),從前段的頁(yè)面展示到后端的代碼實(shí)現(xiàn)加上對(duì)于前后端的結(jié)合都用到了非常多的技術(shù)和結(jié)構(gòu)。在進(jìn)行web開發(fā)前需要找一個(gè)合適的web框架,本次畢業(yè)設(shè)計(jì)選擇了現(xiàn)在較為留行的django框架。而編寫前端頁(yè)面用到了html語(yǔ)言、bootstrap框架;程序的后端使用的是Python語(yǔ)言。此外瀏覽器與程序之間的通信使用了ajax技術(shù)。3.1前端相關(guān)技術(shù)簡(jiǎn)介3.1.1 html語(yǔ)言簡(jiǎn)介html語(yǔ)言,也被稱為

32、超文本標(biāo)記語(yǔ)言。 它本身不是一種編程語(yǔ)言,而是一種標(biāo)記語(yǔ)言。 它擁有一組標(biāo)簽,這些標(biāo)簽被使用來(lái)標(biāo)記所需要描述的網(wǎng)頁(yè)。 標(biāo)簽必須包裹在尖括號(hào)中,并且每個(gè)標(biāo)簽通常都是成對(duì)的。 每對(duì)標(biāo)簽中在開頭出現(xiàn)的為起始標(biāo)簽,最后出現(xiàn)的是結(jié)束標(biāo)簽。結(jié)束標(biāo)簽的尖括號(hào)內(nèi)一般都會(huì)有斜杠。 在頁(yè)面內(nèi)我們可以通過(guò)該語(yǔ)言嵌入圖片,鏈接,甚至音樂(lè),程序或是其他非文本元素。3.1.2 bootstrap框架簡(jiǎn)介Bootstrap基于html,css和javascript,并在此基礎(chǔ)上進(jìn)行了擴(kuò)展。 由于其簡(jiǎn)單性和靈活性,它使網(wǎng)站開發(fā)變得更加方便和快捷。 它是一個(gè)基于html/css的框架,為用戶提供了一個(gè)優(yōu)雅的html和css規(guī)范

33、。 它是由動(dòng)態(tài)css語(yǔ)言less編寫的,同時(shí),它在jquery的基礎(chǔ)上進(jìn)行了更多的人性化改進(jìn)。 形成了自己獨(dú)特的風(fēng)格,最大的優(yōu)勢(shì)是它與大多數(shù)jquery插件兼容。 Bootstrap擁有非常豐富的Web組件。有了這些方便的組件,我們可以快速完成一個(gè)非常漂亮和實(shí)用的網(wǎng)站。 主要組件包括:下拉菜單,路徑導(dǎo)航,分頁(yè),布局,按鈕組,按鈕下拉菜單,導(dǎo)航,導(dǎo)航欄,縮略圖,警告對(duì)話框,進(jìn)度條,媒體對(duì)象等等。3.2后端相關(guān)技術(shù)簡(jiǎn)介3.2.1 Python語(yǔ)言簡(jiǎn)介Python語(yǔ)言是一種簡(jiǎn)單易學(xué),開發(fā)效率較高同時(shí)功能強(qiáng)大的解釋性編程語(yǔ)言。它具有簡(jiǎn)單、易學(xué)、可移植性強(qiáng)、面向?qū)ο?、可擴(kuò)展性高、可嵌入性好同時(shí)有著豐富的

34、庫(kù)等諸多優(yōu)點(diǎn)。它是一種高級(jí)語(yǔ)言,無(wú)需考慮許多底層的細(xì)節(jié)。它所擁有的龐大的標(biāo)準(zhǔn)庫(kù),可以幫助處理解決許多復(fù)雜的問(wèn)題,包括正則表達(dá)式、文檔生成、單元測(cè)試、線程、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、html、WAV 文件、密碼系統(tǒng)、GUI(圖形用戶界面)。它可以很好的適應(yīng)要求快速開發(fā)的Web開發(fā)領(lǐng)域。3.2.2 django框架簡(jiǎn)介隨著敏捷開發(fā)的盛行,傳統(tǒng)的 Web 框架像 Struts,Spring,.NET 等由于其復(fù)雜性而很難滿足人們的要求。而Python的快速開發(fā)能力使得其在 WEB 開發(fā)中應(yīng)用廣泛,因此也誕生了很多 Python 的 WEB 開發(fā)框架?,F(xiàn)在流

35、行的web框架主要有,如Flask(使用decorator的URL路由,但是框架的應(yīng)用程序代碼入侵太強(qiáng))、bottle(缺少URL模式進(jìn)行攔截的功能,不利于做權(quán)限檢查)、web.py(使用類而不是簡(jiǎn)單函數(shù)處理url,且url映射單獨(dú)配置)、django(一站式開發(fā)框架,但不利于定制化)。而本次畢業(yè)設(shè)計(jì)所選擇使用的就是django框架。django框架采用MTV結(jié)構(gòu),即Model、Template、View。Model定義了數(shù)據(jù)的存儲(chǔ)格式,并提供了數(shù)據(jù)庫(kù)訪問(wèn)的API。View定義了哪些數(shù)據(jù)會(huì)被顯示,是業(yè)務(wù)邏輯處理模塊,用于Model處理數(shù)據(jù)的加工和模板的調(diào)用等工作。Template是模板系統(tǒng),定

36、義了數(shù)據(jù)是如何被顯示的。django框架提供了強(qiáng)大的命令行工具django-admin幫助用戶完成大量初始化及數(shù)據(jù)庫(kù)相關(guān)工作。它的URL設(shè)計(jì)很漂亮,且支持多種數(shù)據(jù)庫(kù),包括mysql、sqlite3、oracle等。總的來(lái)說(shuō),django框架是一個(gè)高級(jí)的Web框架,免去了實(shí)踐動(dòng)態(tài)Web站點(diǎn)的痛苦,簡(jiǎn)化了編程任務(wù)。使用django框架可以極大提高開發(fā)速度,且結(jié)構(gòu)嚴(yán)謹(jǐn)、設(shè)計(jì)干凈利落,十分利于后期的維護(hù)。django框架開發(fā)流程如圖3-1:圖3-1 django框架開發(fā)流程圖3.2.3 tensorflow系統(tǒng)簡(jiǎn)介本次畢業(yè)設(shè)計(jì)之所以選擇Python作為后臺(tái)開發(fā)語(yǔ)言,很重要的一個(gè)原因就是本次實(shí)驗(yàn)所用到的

37、圖片標(biāo)題生成系統(tǒng)需要用到機(jī)器學(xué)習(xí)的系統(tǒng)。目前較為出名的深度學(xué)習(xí)框有tensorflow、torch、theano、deeplearning等。而本次畢業(yè)設(shè)計(jì)所用的谷歌所推出的tensorflow機(jī)器學(xué)習(xí)系統(tǒng)對(duì)于開發(fā)我們的系統(tǒng)有著巨大幫助,谷歌將基于tensorflow的圖像敘事功能程序開源,方便了我們進(jìn)行本次開發(fā)。tensorflow是谷歌基于DistBelief開發(fā)的新一代開源人工智能學(xué)習(xí)系統(tǒng),是用來(lái)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的內(nèi)置框架學(xué)習(xí)軟件庫(kù)。它的命名源自于它本身的運(yùn)行原理,Tensor(張量)代表N維數(shù)組,F(xiàn)low(流)表示的是基于數(shù)據(jù)流圖的計(jì)算,即tensorflow代表張量從流圖的一端流動(dòng)到另一

38、端的計(jì)算過(guò)程。它可以將傳入系統(tǒng)的復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析處理。而圖像識(shí)別領(lǐng)域的許多問(wèn)題就和這個(gè)系統(tǒng)完美契合。tensorflow的代碼框架十分靈活,它可以運(yùn)行在個(gè)人計(jì)算器或者服務(wù)器的一個(gè)或多個(gè)GPU或CPU上。3.2.4 ajax技術(shù)簡(jiǎn)介Ajax即是“Asynchronous Javascript And XML”,它是一種技術(shù),在javscript中使用ajax技術(shù)用于在web瀏覽器與服務(wù)器之間的數(shù)據(jù)交互。使用ajax技術(shù)可以實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè),即在不刷新網(wǎng)頁(yè)的情況下加載后臺(tái)程序的數(shù)據(jù)。而ajax所擁有的get和post方法,是客戶端和服務(wù)器進(jìn)行請(qǐng)求-響應(yīng)的常用方法。Get常用于向指定資源請(qǐng)求數(shù)據(jù),而

39、post則用來(lái)提交數(shù)據(jù)。這些方法都是實(shí)現(xiàn)系統(tǒng)的重要技術(shù)。3.2.5 mysql數(shù)據(jù)庫(kù)簡(jiǎn)介mysql是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),相比其它數(shù)據(jù)庫(kù)而言,體積小、速度快、總體成本低,使用簡(jiǎn)單。本次畢業(yè)設(shè)計(jì)開發(fā)的是一個(gè)相對(duì)較小的系統(tǒng),所用使用mysql數(shù)據(jù)庫(kù)十分合適。3.3 本章小結(jié)本章主要介紹了開發(fā)這個(gè)在線圖片標(biāo)題生成系統(tǒng)所用到的一些技術(shù)和框架,以及我對(duì)這些技術(shù)的理解看法。如何選擇合適的技術(shù)進(jìn)行自己的系統(tǒng)開發(fā),也是成功開發(fā)系統(tǒng)的先決條件。第4章 在線圖片標(biāo)題生成系統(tǒng)的需求分析及設(shè)計(jì)本章首先介紹了開發(fā)在線圖片標(biāo)題生成系統(tǒng)的可行性及需求分析。接著介紹了系統(tǒng)開發(fā)的總體設(shè)計(jì)。4.1 可行性分析4.1.1技術(shù)可

40、行性由于谷歌將用于圖像識(shí)別的tensorflow程序開源,實(shí)現(xiàn)圖像標(biāo)題生成的后臺(tái)功能變的沒(méi)有那么困難。而如今Python程序的web開發(fā)也變得越來(lái)越流行,有許多已有的開發(fā)框架可以幫助我們進(jìn)行本系統(tǒng)的開發(fā)。而使用html語(yǔ)言進(jìn)行前端開發(fā)也不是一件難事,因此要實(shí)現(xiàn)在線圖片標(biāo)題生成系統(tǒng)具有技術(shù)可行性。4.1.2組織可行性所謂組織可行性,指的是如何規(guī)劃自己的學(xué)習(xí)和開發(fā)計(jì)劃。本次開發(fā),我首先給自己制定了任務(wù)計(jì)劃書,為自己之后設(shè)定了大概的方向。首先,當(dāng)然是要學(xué)習(xí)相關(guān)基礎(chǔ)知識(shí),如后端語(yǔ)言所涉及的Python語(yǔ)言極其web開發(fā)相關(guān)知識(shí)、前段涉及的html語(yǔ)言、mysql數(shù)據(jù)庫(kù)語(yǔ)言等;之后對(duì)系統(tǒng)進(jìn)行需求分析之后

41、展開分布開發(fā),最后捏合整個(gè)系統(tǒng)。由于設(shè)計(jì)出了可行的計(jì)劃,系統(tǒng)開發(fā)的組織可行性是完全沒(méi)問(wèn)題的。4.1.3時(shí)間可行性本次開發(fā)的時(shí)間相對(duì)來(lái)說(shuō)是較為充足的,大四下學(xué)期除了研究生復(fù)試之外和一定的實(shí)習(xí)之外并沒(méi)有其他的太多工作。雖然之前對(duì)于web開發(fā)和Python語(yǔ)言接觸的機(jī)會(huì)比較少,但是由于時(shí)間較為充裕,可以利用這些時(shí)間對(duì)這些技術(shù)進(jìn)行網(wǎng)絡(luò)上的自學(xué)。只要按照計(jì)劃完成每天的學(xué)習(xí)任務(wù)和開發(fā)任務(wù),本次系統(tǒng)開發(fā)的時(shí)間可行性也是十分充足的。4.1.4 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性即指的是開發(fā)系統(tǒng)所用到的資金成本是否合理。由于本次系統(tǒng)開發(fā)的一些開發(fā)工具比如pycharm、mysql、hbulider等基本都是免費(fèi)的,而后期部署

42、服務(wù)器雖然需要付費(fèi),但是由于學(xué)生的身份在阿里云或是騰訊云租用服務(wù)器或是購(gòu)買域名都能獲得較大優(yōu)惠,當(dāng)然也可以將系統(tǒng)部署在導(dǎo)師所提供的Linux服務(wù)器上。因此,總的來(lái)說(shuō),本次的系統(tǒng)開發(fā)屬于零成本開發(fā),具有很強(qiáng)的經(jīng)濟(jì)可行性。4.1.5 結(jié)論通過(guò)上面的可行性分析可知,本次開發(fā)是完全可行的。只要能制定良好的機(jī)會(huì),并按時(shí)履行計(jì)劃,順利完成開發(fā)不是問(wèn)題。4.2 需求分析本小節(jié)對(duì)系統(tǒng)分別進(jìn)行了功能需求分析、性能需求分析、可靠性分析以及可能新增功能分析。4.2.1功能需求分析設(shè)計(jì)一個(gè)基于Python的web網(wǎng)站,實(shí)現(xiàn)的主要功能是在線圖片標(biāo)題是生成。具體展開分析系統(tǒng)的功能,可得功能需求如下:(1) 首先該系統(tǒng)需要

43、一個(gè)圖片上傳區(qū),滿足用戶上傳圖片并將所需進(jìn)行標(biāo)題生成的圖片顯示在網(wǎng)頁(yè)上的功能;(2) 其次需要有圖片標(biāo)題生成的功能,即系統(tǒng)的最主要功能。讓用戶將上傳的圖片轉(zhuǎn)換為標(biāo)題描述并進(jìn)行不同程度的展示。(3) 最后,該系統(tǒng)需要一個(gè)數(shù)據(jù)收集區(qū),使用戶在看到圖片標(biāo)題生成的結(jié)果后,對(duì)生成的結(jié)果進(jìn)行評(píng)價(jià)并提出改善的建議。當(dāng)然,收集到的數(shù)據(jù)可以導(dǎo)入數(shù)據(jù)庫(kù)已進(jìn)行更深層次的分析。4.2.2性能需求分析所謂的性能需求分析,就是分析一個(gè)系統(tǒng)的響應(yīng)速度和計(jì)算速度。如何更快更好的獲得圖片標(biāo)題的分析結(jié)果是性能需求分析的主要目標(biāo)。系統(tǒng)的性能受很多因素的影響,包括使用的編程語(yǔ)言、業(yè)務(wù)需求以及算法的設(shè)計(jì)等。本次系統(tǒng)設(shè)計(jì),前端采用htm

44、l語(yǔ)言后端采用Python語(yǔ)言,html語(yǔ)言可以幫助我們便利的開發(fā)出一個(gè)較為漂亮的界面,而Python語(yǔ)言在圖像識(shí)別領(lǐng)域具有較為方便的算法實(shí)現(xiàn)和更好的實(shí)現(xiàn)效率。而如何改善算法也是提高系統(tǒng)性能的一個(gè)重要方法。4.2.3 可靠性分析所謂的可靠性,指的是系統(tǒng)是否具體較強(qiáng)的魯棒性。即系統(tǒng)能否可靠運(yùn)行,避免許多可能出現(xiàn)的錯(cuò)誤,穩(wěn)定的運(yùn)行。在本系統(tǒng)中,我們需要考慮的可靠性很多,比如上次圖片的格式等。如何在設(shè)計(jì)系統(tǒng)的時(shí)候盡可能的多考慮可能遇到的錯(cuò)誤可以有效提高系統(tǒng)的可靠性。4.2.4 可新增功能分析除了滿足現(xiàn)有的功能,系統(tǒng)還需要有一個(gè)更強(qiáng)的擴(kuò)張性滿足系統(tǒng)以后的進(jìn)一步開發(fā)。而本系統(tǒng)除了目前設(shè)計(jì)的圖片標(biāo)題生成功

45、能和數(shù)據(jù)收集功能。在結(jié)果顯示上也具有很多可擴(kuò)展的功能,比如將生成的句子中的每個(gè)單詞的概率展示出來(lái)已經(jīng)如何將生成的單詞和圖片的對(duì)應(yīng)區(qū)域進(jìn)行顯示是之后開發(fā)時(shí)可以優(yōu)先擴(kuò)展的功能。4.3 系統(tǒng)設(shè)計(jì)4.3.1 整體代碼結(jié)構(gòu)本系統(tǒng)采用django框架,而django框架才有MTV模式,其結(jié)構(gòu)圖如4-1所示。其中M代表model,它負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)問(wèn)題,系統(tǒng)中連接mysql數(shù)據(jù)庫(kù)的部分由該層實(shí)現(xiàn),關(guān)于如何驗(yàn)證數(shù)據(jù)有效性和數(shù)據(jù)之間的關(guān)系都是該層的工作;T代表template,意思是模板,即表現(xiàn)層,它是用來(lái)存放我們寫的html文件的,系統(tǒng)的網(wǎng)頁(yè)顯示由模板層負(fù)責(zé);V代表view,意思是視圖,即業(yè)務(wù)邏輯層,這一層是用

46、來(lái)存取和調(diào)用模板的;我們的用它來(lái)實(shí)現(xiàn)模板間的聯(lián)系。通過(guò)view層調(diào)用模板和開源的圖片標(biāo)題生成程序?qū)崿F(xiàn)系統(tǒng)功能。再通過(guò)Manage程序?qū)⑺麄兡蠛显谝黄?。圖4-1 django框架圖4.3.2 系統(tǒng)用例圖模型用例圖是由參與者(Actor)、用例(Use Case),邊界以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的視圖。用例圖(User Case)是外部用戶(被稱為參與者)所能觀察到的系統(tǒng)功能的模型圖。針對(duì)本系統(tǒng)的用戶需求,設(shè)計(jì)用例圖的模型,如圖4-2所示。圖4-2 用例圖4.3.3 系統(tǒng)設(shè)計(jì)總結(jié)本節(jié)主要介紹系統(tǒng)開發(fā)的概要設(shè)計(jì),主要包括兩方面的內(nèi)容,第一是代碼的結(jié)構(gòu)設(shè)計(jì),大的方向分為三層結(jié)構(gòu),mode

47、l層、view層、controller層,這樣的設(shè)計(jì)結(jié)構(gòu),方便代碼的管理,看起來(lái)也比較整潔,對(duì)于各種處理可以很直觀的看到。第二是介紹了本系統(tǒng)所涉及的用例圖,這樣我們可以更加清楚的了解系統(tǒng)的各個(gè)功能模塊和用戶之間的關(guān)系。4.4 本章小結(jié)本章主要對(duì)我們要設(shè)計(jì)的在線圖片標(biāo)題生產(chǎn)系統(tǒng)進(jìn)行了可行性分析、需求分析和系統(tǒng)代碼結(jié)構(gòu)的設(shè)計(jì)。通過(guò)本章,我們可以更加清晰的了解所設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)和它要實(shí)現(xiàn)的功能。這為下一章具體實(shí)現(xiàn)系統(tǒng)提供了鋪墊。第五章 在線圖片標(biāo)題生成系統(tǒng)的具體實(shí)現(xiàn)本章將對(duì)在線圖片標(biāo)題生成系統(tǒng)的各個(gè)功能模塊進(jìn)行了詳細(xì)的說(shuō)明。將系統(tǒng)完成的顯示效果和程序代碼也進(jìn)行了展示。5.1 系統(tǒng)功能展示1. 首先進(jìn)入

48、系統(tǒng)頁(yè)面,具體樣式如圖4-1所示5-1系統(tǒng)頁(yè)面2. 點(diǎn)擊選擇文件進(jìn)行圖片上傳,選擇圖片格式的文件進(jìn)行上傳。上傳文件時(shí)應(yīng)該選擇圖片格式文件,否則會(huì)報(bào)錯(cuò)。5-2 完成圖片選擇3. 點(diǎn)擊“點(diǎn)擊上傳”按鈕完成圖片上傳。5-3 圖片上傳成功4. 點(diǎn)擊“點(diǎn)擊識(shí)別”按鈕進(jìn)行圖片標(biāo)題生成。5-4 圖片正在識(shí)別5. 點(diǎn)擊點(diǎn)擊識(shí)別按鈕進(jìn)行圖片標(biāo)題生成。圖片標(biāo)題顯示的結(jié)果將在右側(cè)的識(shí)別結(jié)果區(qū)域進(jìn)行展示。一共將有四種結(jié)果展示在識(shí)別區(qū)域中,根據(jù)系統(tǒng)計(jì)算的概率由大到小依次顯示,同時(shí)用不同的顏色背景對(duì)它們進(jìn)行由深到淺的標(biāo)注。5-5 完成圖片識(shí)別5.2圖片上傳區(qū)圖片上傳區(qū)即對(duì)想要進(jìn)行圖片標(biāo)題生成的圖片進(jìn)行上傳的區(qū)域。該區(qū)域提

49、供圖片選擇和上傳選項(xiàng),以及所上傳圖片的展示區(qū)域。圖片上傳區(qū)的數(shù)據(jù)傳送方式的代碼見(jiàn)如圖5-6、5-7所示5-6 上傳圖片代碼15-7 上傳圖片代碼25.3 圖片識(shí)別區(qū)圖片識(shí)別區(qū)對(duì)已經(jīng)上傳的圖片進(jìn)行圖片標(biāo)題的轉(zhuǎn)換,獲得結(jié)果,并將結(jié)果顯示展示在結(jié)果區(qū)域。顯示的結(jié)果中展示了對(duì)于上傳圖片中概率最高4個(gè)自然語(yǔ)言描述。同時(shí)將鼠標(biāo)移動(dòng)到每個(gè)單詞上也可以得到每個(gè)單詞的概率。便于使用者了解改圖片標(biāo)題生成系統(tǒng)的運(yùn)行結(jié)果以及各種細(xì)節(jié)。圖片識(shí)別相關(guān)代碼見(jiàn)圖5-8:5-8 圖片識(shí)別區(qū)代碼5.4 意見(jiàn)反饋區(qū)該區(qū)域中,可由用戶對(duì)圖片標(biāo)題的生成結(jié)果進(jìn)行評(píng)價(jià)。用戶可對(duì)生成的圖片標(biāo)題的準(zhǔn)確度進(jìn)行評(píng)價(jià),輸入句子中表達(dá)有錯(cuò)誤的單詞,并

50、將自己認(rèn)為正確的結(jié)果進(jìn)行上傳。系統(tǒng)可將得到的反饋結(jié)果存入數(shù)據(jù)庫(kù)作為之后修改這個(gè)圖片標(biāo)題生成器的參考。同時(shí),我們可以將用戶上傳的人工語(yǔ)言描述傳入訓(xùn)練集,以達(dá)到優(yōu)化模型的效果。同時(shí),我們還可以將收到的反饋數(shù)據(jù)傳入數(shù)據(jù)庫(kù),以作為之后的進(jìn)一步開發(fā)的參考。該區(qū)域的具體操作如圖5-9、5-10、5-11、5-12所示,而它們的相關(guān)代碼將在5-13中展示:5-9 點(diǎn)擊評(píng)分5-10 改善建議5-11 錯(cuò)誤單詞反饋5-12 最優(yōu)結(jié)果5-13 反饋區(qū)代碼實(shí)現(xiàn)而關(guān)于如何鏈接mysql數(shù)據(jù)庫(kù)的代碼,存放在了該程序的model層中。通過(guò)圖5-14中的代碼,實(shí)現(xiàn)將數(shù)據(jù)反饋區(qū)得到的數(shù)據(jù)傳送給mysql數(shù)據(jù)庫(kù)。5-14 mo

51、del層代碼5.5 本章總結(jié)本章基于已經(jīng)訓(xùn)練好的im2txt/model谷歌tensorflow開源圖像標(biāo)題生成程序,在此基礎(chǔ)上對(duì)該程序進(jìn)行修改調(diào)用,設(shè)計(jì)了一個(gè)在線圖片標(biāo)題生成系統(tǒng)。實(shí)現(xiàn)圖片標(biāo)題生成及展示,用戶對(duì)生成標(biāo)題評(píng)價(jià)等功能。第六章 總結(jié)與展望6.1 本文總結(jié)經(jīng)過(guò)了大約半年的努力,本次畢業(yè)設(shè)計(jì)的工作也已經(jīng)基本完成。在開始本次畢業(yè)設(shè)計(jì)之前,我對(duì)設(shè)計(jì)系統(tǒng)所用到的Python語(yǔ)言和html語(yǔ)句都只停留在了解的程度。通過(guò)在網(wǎng)上對(duì)這些開發(fā)語(yǔ)言和相關(guān)系統(tǒng)結(jié)構(gòu)的深入了解和學(xué)習(xí),我終于一步步的完成了對(duì)本次畢業(yè)設(shè)計(jì)的設(shè)計(jì)、構(gòu)造和實(shí)現(xiàn)。在程序設(shè)計(jì)的過(guò)程中,由于缺乏相關(guān)的開發(fā)經(jīng)驗(yàn),遇到了不少的問(wèn)題。但是,經(jīng)過(guò)指導(dǎo)老師的悉心指導(dǎo)和熱心同學(xué)的幫助,終于解決了重重苦難。6.2 未來(lái)的展望本次畢業(yè)設(shè)計(jì)所設(shè)計(jì)的在線圖片標(biāo)題生成系統(tǒng),實(shí)現(xiàn)了簡(jiǎn)圖片標(biāo)題生成的功能和圖片標(biāo)題的簡(jiǎn)單展示,還提供了用戶建議的反饋功能。在后續(xù)的進(jìn)一步開發(fā)中,可以考慮將更多格式的圖片進(jìn)行上傳。而在圖片展示區(qū),也可以考慮以更加豐富的形式展現(xiàn)圖片標(biāo)題的生成結(jié)果。比如,當(dāng)我們將鼠標(biāo)移動(dòng)至生成的自然語(yǔ)言描述的特殊單詞上時(shí),可以將圖片上的相對(duì)應(yīng)區(qū)域以陰影塊的形式進(jìn)行映射。另外,在用戶反饋區(qū)也可以嘗

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論