PyTorch神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn):移動(dòng)端圖像處理主要介紹人工智能研究領(lǐng)域中神經(jīng)網(wǎng)絡(luò)的PyTorch架構(gòu),對(duì)其在多個(gè)領(lǐng)域的應(yīng)用進(jìn)行系統(tǒng)性的歸納和梳理。書(shū)中的案例有風(fēng)景圖分類(lèi)、人像前景背景分割、低光照?qǐng)D像增法、動(dòng)漫頭像生成、畫(huà)風(fēng)遷移、風(fēng)格轉(zhuǎn)換等,對(duì)每項(xiàng)視覺(jué)任務(wù)的研究背景、應(yīng)用價(jià)值、算法原理、代碼實(shí)現(xiàn)和移動(dòng)端部署流程進(jìn)行了詳細(xì)描述,并提供相應(yīng)的源碼,適合讀者從0到1構(gòu)建移動(dòng)端智能應(yīng)用。
PyTorch神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn):移動(dòng)端圖像處理適合對(duì)人工智能實(shí)際應(yīng)用感興趣的本科生、研究生、深度學(xué)習(xí)算法工程師、計(jì)算機(jī)視覺(jué)從業(yè)人員和人工智能愛(ài)好者閱讀,書(shū)中介紹的各項(xiàng)視覺(jué)任務(wù)均含有相應(yīng)的安卓平臺(tái)部署案例,不僅對(duì)學(xué)生參加比賽、課程設(shè)計(jì)具有參考意義,對(duì)相關(guān)從業(yè)人員的軟件架構(gòu)和研發(fā)也具有啟發(fā)價(jià)值。
◆ 前言:◆
蒸汽機(jī)、電動(dòng)機(jī)和計(jì)算機(jī)的發(fā)明與應(yīng)用極大地推動(dòng)了人類(lèi)文明的發(fā)展,F(xiàn)在,一項(xiàng)新的技術(shù)浪潮正在掀起——人工智能(Artificial Intelligence)。
在人工智能領(lǐng)域包含的諸多技術(shù)中,深度學(xué)習(xí)是當(dāng)前最受矚目的技術(shù)之一。自2012年AlexNet模型在ImageNet分類(lèi)任務(wù)上獲得驚人的準(zhǔn)確率開(kāi)始,深度學(xué)習(xí)技術(shù)就被廣泛應(yīng)用于多項(xiàng)計(jì)算機(jī)科學(xué)研究任務(wù)之中,包括計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理及強(qiáng)化學(xué)習(xí)等。
學(xué)術(shù)界和工業(yè)界的前沿深度學(xué)習(xí)模型通常依賴海量的數(shù)據(jù)和強(qiáng)大的計(jì)算設(shè)備來(lái)設(shè)計(jì)出高質(zhì)量的應(yīng)用模型。然而對(duì)于普通開(kāi)發(fā)者的入門(mén)學(xué)習(xí),通常只需要一臺(tái)計(jì)算機(jī)就能動(dòng)手編寫(xiě)眾多的深度學(xué)習(xí)算法,并訓(xùn)練出可用的模型。
深度學(xué)習(xí)技術(shù)具有如此強(qiáng)大的魅力,開(kāi)發(fā)者要如何開(kāi)展具體的學(xué)習(xí)、研究與應(yīng)用呢?這時(shí)就需要一款高質(zhì)量的輔助工具來(lái)完成算法的設(shè)計(jì)、實(shí)現(xiàn)、訓(xùn)練與部署了,這款工具就是本書(shū)將要介紹的深度學(xué)習(xí)框架——PyTorch。
本書(shū)將帶領(lǐng)讀者實(shí)現(xiàn)多種有趣的AI算法,比如風(fēng)景圖分類(lèi)、人像前景背景分割、低光照?qǐng)D像增強(qiáng)、動(dòng)漫頭像生成、畫(huà)風(fēng)遷移、風(fēng)格轉(zhuǎn)換等。不僅如此,書(shū)中還提供了移動(dòng)端的應(yīng)用案例,手把手地教讀者如何將模型部署到Android手機(jī)上。
本書(shū)適合的讀者
本書(shū)面向的讀者群體主要包括:
1)人工智能相關(guān)專(zhuān)業(yè)的高校師生。
2)從事軟件開(kāi)發(fā)、數(shù)據(jù)庫(kù)設(shè)計(jì)、編譯器設(shè)計(jì)、自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)等領(lǐng)域工作的技術(shù)人員。
當(dāng)然,即使讀者并非上述群體,只要具有強(qiáng)烈的興趣和學(xué)習(xí)意愿,仍然能夠充分地學(xué)習(xí)并利用本書(shū)所講的知識(shí)內(nèi)容,成為人工智能研究領(lǐng)域中的一員。
如何使用本書(shū)
在編寫(xiě)此書(shū)前,筆者對(duì)網(wǎng)絡(luò)上大量的深度學(xué)習(xí)入門(mén)資料進(jìn)行了梳理總結(jié),發(fā)現(xiàn)它們大都存在以下三個(gè)問(wèn)題。
1)所介紹的任務(wù)同質(zhì)化嚴(yán)重,都集中于手寫(xiě)字識(shí)別等簡(jiǎn)單場(chǎng)景,難以引起初學(xué)者的興趣。因此本書(shū)精選了眾多具有實(shí)際價(jià)值的場(chǎng)景任務(wù),由淺入深地進(jìn)行編排,方便讀者學(xué)習(xí)。
2)由于深度學(xué)習(xí)框架在前幾年發(fā)展太過(guò)迅速,眾多早期資料已經(jīng)因?yàn)锳PI不兼容而無(wú)法運(yùn)行,這非?简(yàn)初學(xué)者的代碼調(diào)試能力。而現(xiàn)階段深度學(xué)習(xí)框架已經(jīng)基本穩(wěn)定,API的兼容性也能得到很好的保證。本書(shū)準(zhǔn)備了大量代碼,它們都適合最新版本的框架,很大程度地規(guī)避了不兼容問(wèn)題。
3)目前雖然有較多優(yōu)質(zhì)的開(kāi)源代碼,甚至已經(jīng)成功地應(yīng)用于實(shí)際商業(yè)場(chǎng)景。但這些開(kāi)源代碼并不適合初學(xué)者學(xué)習(xí),它們往往出于工程角度設(shè)計(jì),封裝得過(guò)于復(fù)雜,初學(xué)者難以在短時(shí)間內(nèi)厘清關(guān)系,容易把精力浪費(fèi)在非核心的邏輯上。而本書(shū)針對(duì)每個(gè)任務(wù)給出了最為核心的代碼,降低了學(xué)習(xí)成本,使讀者能夠?qū)W⒃谥匾膬?nèi)容上。
學(xué)習(xí)本書(shū)最好的方式是理論結(jié)合實(shí)踐,不僅要掌握書(shū)中的各類(lèi)知識(shí)點(diǎn),還要能夠獨(dú)立編寫(xiě)出對(duì)應(yīng)的代碼。本書(shū)涉及大量的PyTorch基礎(chǔ)知識(shí)和常用代碼,建議讀者按照書(shū)中的例子動(dòng)手敲出這些代碼。
本書(shū)的代碼托管在GitHub倉(cāng)庫(kù)中,讀者可以下載本書(shū)所有源碼。此外,本書(shū)的代碼倉(cāng)庫(kù)將會(huì)不斷更新,希望讀者能夠在GitHub平臺(tái)上提出意見(jiàn)或者建議,倉(cāng)庫(kù)地址為https://github.com/cwpeng-cn/PyTorch-neural-network-practice。
本書(shū)主要內(nèi)容
本書(shū)共9章,鑒于本書(shū)前后各章具有一定的關(guān)聯(lián),希望讀者能夠按照章節(jié)順序進(jìn)行閱讀,以達(dá)到最佳的學(xué)習(xí)效果。各章主要內(nèi)容如下。
第1章介紹了人工智能的研究起源與發(fā)展歷程,并指出了人工智能與深度學(xué)習(xí)之間的關(guān)系。同時(shí)講解了深度學(xué)習(xí)的入門(mén)知識(shí),以及神經(jīng)網(wǎng)絡(luò)的基本原理與概念。
第2章對(duì)PyTorch的基礎(chǔ)知識(shí)和使用方法進(jìn)行了歸納和梳理。如果讀者在閱讀本書(shū)之前不具備深度學(xué)習(xí)框架的使用經(jīng)驗(yàn),或者所用的不是PyTorch框架,建議仔細(xì)閱讀并實(shí)現(xiàn)本章的示例。
第3章包含了Android Studio開(kāi)發(fā)基礎(chǔ)和PyTorch移動(dòng)端部署兩方面內(nèi)容,第4~9章的部署案例都能夠通過(guò)本章的代碼邏輯完成。
第4章講解了圖像分類(lèi)網(wǎng)絡(luò),以及適合在移動(dòng)端部署的輕量級(jí)分類(lèi)模型,并向讀者展示了如何構(gòu)建一個(gè)風(fēng)景圖歸檔器。
第5章以人像的前景和背景分割為例,介紹了圖像分割任務(wù)的研究目標(biāo)和經(jīng)典算法,閱讀本章后讀者可以學(xué)會(huì)制作一款簡(jiǎn)易的智能摳圖工具。
第6章針對(duì)黃昏和傍晚時(shí)拍照所獲圖像亮度較低的問(wèn)題,介紹了低光照?qǐng)D像增強(qiáng)算法,并設(shè)計(jì)了一款低光照?qǐng)D像增強(qiáng)應(yīng)用。
第7章的案例是動(dòng)漫人臉生成,使用了基于生成對(duì)抗網(wǎng)絡(luò)的圖像生成技術(shù)。如果讀者能夠搜集真實(shí)人臉的數(shù)據(jù),或者其他類(lèi)型的具有明顯類(lèi)別特征的數(shù)據(jù),也可以擴(kuò)展為其他圖像的生成應(yīng)用。
第8章講述了圖像風(fēng)格遷移任務(wù),即用戶可以將某種風(fēng)格的圖像改為其他風(fēng)格。
第9章可以看作是第8章知識(shí)的擴(kuò)展,從圖像風(fēng)格轉(zhuǎn)換的角度設(shè)計(jì)并實(shí)現(xiàn)了蘋(píng)果風(fēng)格和橘子風(fēng)格互相轉(zhuǎn)換的應(yīng)用,背后的技術(shù)是學(xué)術(shù)界公認(rèn)為經(jīng)典的循環(huán)一致性對(duì)抗網(wǎng)絡(luò)。
致謝
本書(shū)介紹了人工智能、深度學(xué)習(xí)、PyTorch框架、Android開(kāi)發(fā)等理論與實(shí)踐知識(shí),這些知識(shí)是各領(lǐng)域科研人員和軟件工程師共同創(chuàng)造的,感謝你們的辛苦付出。
在本書(shū)的寫(xiě)作過(guò)程中,機(jī)械工業(yè)出版社的編輯團(tuán)隊(duì)提出了眾多有價(jià)值的建議和意見(jiàn),他們的豐富經(jīng)驗(yàn)與耐心指導(dǎo)是本書(shū)能夠順利完成的重要基礎(chǔ)。