計(jì)算機(jī)視覺實(shí)戰(zhàn):基于TensorFlow 2
定 價(jià):89 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:[法]本杰明·普朗什(Benjamin Planche),[法]艾略特·安德烈斯(Eliot Andres)
- 出版時(shí)間:2021/8/1
- ISBN:9787111688471
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書探討了谷歌機(jī)器學(xué)習(xí)開源框架的全新版本TensorFlow 2,從計(jì)算機(jī)視覺和深度學(xué)習(xí)基礎(chǔ)知識(shí)開始,介紹了如何從頭開始構(gòu)建神經(jīng)網(wǎng)絡(luò),并將其用于計(jì)算機(jī)視覺任務(wù),如圖像分類、目標(biāo)分割、視頻分析等。展示了如何使用如Inception和ResNet等現(xiàn)代神經(jīng)網(wǎng)絡(luò)分類圖像,使用YOLO、Mask R-CNN和U-Net提取特定內(nèi)容,并輔以具體的代碼示例。還介紹了遷移學(xué)習(xí)、數(shù)據(jù)增強(qiáng)、域適應(yīng)等技術(shù),以及如何在移動(dòng)設(shè)備和網(wǎng)絡(luò)瀏覽器中進(jìn)行部署。
計(jì)算機(jī)視覺解決方案日益普及,在醫(yī)療、汽車、社交媒體和機(jī)器人等領(lǐng)域取得了不錯(cuò)的進(jìn)展。本書將幫助你了解全新版本的谷歌機(jī)器學(xué)習(xí)開源框架TensorFlow 2,你將掌握如何使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)完成視覺任務(wù)。本書從計(jì)算機(jī)視覺和深度學(xué)習(xí)基礎(chǔ)知識(shí)開始,教你如何從頭開始構(gòu)建神經(jīng)網(wǎng)絡(luò)。你將掌握一些讓TensorFlow成為廣泛使用的AI庫的特性,以及直觀的Keras接口,繼而高效地構(gòu)建、訓(xùn)練和部署CNN。通過具體的代碼示例,本書展示了如何使用Inception和ResNet等現(xiàn)代神經(jīng)網(wǎng)絡(luò)分類圖像,以及如何使用YOLO、Mask R-CNN和U-Net提取特定內(nèi)容。本書還將介紹如何構(gòu)建生成式對(duì)抗網(wǎng)絡(luò)(GAN)和變分自編碼器(VAE)來生成和編輯圖像,以及如何使用LSTM分析視頻。在此過程中,你將深入了解遷移學(xué)習(xí)、數(shù)據(jù)增強(qiáng)、域適應(yīng),以及移動(dòng)設(shè)備和Web部署等高級(jí)知識(shí)以及其他關(guān)鍵概念。通過閱讀本書,你將獲得使用TensorFlow 2解決高級(jí)計(jì)算機(jī)視覺問題的理論知識(shí)和實(shí)際技能。
由于利用了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等深度學(xué)習(xí)方法,計(jì)算機(jī)視覺技術(shù)在醫(yī)療、自動(dòng)駕駛、社交媒體和機(jī)器人等領(lǐng)域的應(yīng)用達(dá)到新的高度。無論是自動(dòng)處理復(fù)雜的任務(wù),指導(dǎo)專家的工作,還是幫助藝術(shù)家創(chuàng)作,越來越多的公司都在應(yīng)用計(jì)算機(jī)視覺解決方案。
本書將探討TensorFlow 2,這是谷歌機(jī)器學(xué)習(xí)開源框架的全新版本。書中介紹Tensor- Flow 2的關(guān)鍵特性和的解決方案,并演示如何有效地構(gòu)建、訓(xùn)練和部署CNN,以完成各種實(shí)際任務(wù)。
讀者對(duì)象
本書適用于任何具備一定Python編程和圖像處理基礎(chǔ)(例如,知道如何讀取和寫入圖像文件,如何編輯其像素值等)的從業(yè)人員。本書將循序漸進(jìn)地介紹相關(guān)內(nèi)容,不僅適用于深度學(xué)習(xí)初學(xué)者,也適用于對(duì)TensorFlow 2的新特性感興趣的專家。
雖然一些理論解釋需要代數(shù)和微積分知識(shí),但是書中的具體例子更側(cè)重于實(shí)際應(yīng)用。按照所述步驟,你將能夠處理現(xiàn)實(shí)生活中的任務(wù),比如自動(dòng)駕駛汽車的視覺識(shí)別和智能手機(jī)應(yīng)用。
本書內(nèi)容
第1章介紹計(jì)算機(jī)視覺和深度學(xué)習(xí),提供一些理論背景,并教你如何從零開始實(shí)現(xiàn)和訓(xùn)練視覺識(shí)別神經(jīng)網(wǎng)絡(luò)。
第2章介紹與計(jì)算機(jī)視覺相關(guān)的TensorFlow 2概念,以及一些更高級(jí)的理念。此外,介紹TensorFlow的子模塊Keras,并講述基于該框架實(shí)現(xiàn)的簡單識(shí)別方法的訓(xùn)練過程。
第3章介紹CNN,并解釋它如何改變計(jì)算機(jī)視覺。本章還介紹正則化工具和現(xiàn)代優(yōu)化算法,可用于訓(xùn)練更健壯的識(shí)別系統(tǒng)。
第4章提供理論細(xì)節(jié)和實(shí)踐代碼,以便將的解決方案(如Inception和ResNet)應(yīng)用于圖像分類。本章還解釋什么使得遷移學(xué)習(xí)成為機(jī)器學(xué)習(xí)中的一個(gè)關(guān)鍵概念,以及如何使用TensorFlow 2來實(shí)現(xiàn)它。
第5章討論兩種檢測(cè)圖像中特定對(duì)象的方法的架構(gòu),其中YOLO(You Only Look Once)模型以其速度聞名,而Faster R-CNN則以其準(zhǔn)確性聞名。
第6章介紹自動(dòng)編碼器以及像U-Net和FCN這樣的網(wǎng)絡(luò)如何用于圖像去噪、語義分割等。
第7章聚焦于為深度學(xué)習(xí)應(yīng)用高效收集和預(yù)處理數(shù)據(jù)集的解決方案,介紹構(gòu)建優(yōu)化數(shù)據(jù)流水線的TensorFlow工具,以及彌補(bǔ)數(shù)據(jù)不足的各種解決方案(圖像繪制、域適應(yīng)和生成式網(wǎng)絡(luò),如VAE和GAN)。
第8章討論循環(huán)神經(jīng)網(wǎng)絡(luò),并介紹更高級(jí)的長短期記憶架構(gòu)。本章提供將LSTM應(yīng)用于視頻動(dòng)作識(shí)別的實(shí)用代碼。
第9章詳細(xì)介紹在速度、磁盤空間和計(jì)算性能方面的模型優(yōu)化。本章通過一個(gè)實(shí)際的示例,介紹如何在移動(dòng)設(shè)備和瀏覽器上部署TensorFlow解決方案。
附錄提供關(guān)于TensorFlow 1的一些信息,重點(diǎn)介紹TensorFlow 2中引入的關(guān)鍵變化。此外,還包括從舊項(xiàng)目遷移到版本的指南。后,列出了每章的參考書目,供想要深入了解相關(guān)領(lǐng)域的讀者參考。
如何閱讀本書
以下部分包含一些信息和建議,方便讀者閱讀本書,并幫助讀者從其他材料中受益。
下載并運(yùn)行示例代碼文件
本書不僅對(duì)TensorFlow 2和先進(jìn)的計(jì)算機(jī)視覺方法進(jìn)行了深入探討,還提供了大量的示例及其完整實(shí)現(xiàn)。
本書的示例代碼可以從http://www.packtpub.com通過個(gè)人賬號(hào)下載,也可以訪問華章圖書官網(wǎng)http://www.hzbook.com,通過注冊(cè)并登錄個(gè)人賬號(hào)下載。
本書的代碼包也托管在GitHub上,地址是https://github.com/ PacktPublishing/Hands-On-Computer-Vision-with-TensorFlow-2。如果代碼有更新,現(xiàn)有的GitHub存儲(chǔ)庫也會(huì)隨之更新。
研究并運(yùn)行實(shí)驗(yàn)
Jupyter Notebook (https://jupyter.org)是一個(gè)用于創(chuàng)建和共享Python腳本、文本信息、可視化結(jié)果、方程式等的開源Web應(yīng)用程序。我們把隨書提供的詳細(xì)代碼、預(yù)期結(jié)果和補(bǔ)充說明文件稱為 Jupyter Notebook。每一個(gè)Jupyter Notebook都包含一個(gè)具體的計(jì)算機(jī)視覺任務(wù)。例如,一個(gè)Notebook解釋了如何訓(xùn)練CNN在圖像中檢測(cè)動(dòng)物,另一個(gè)則詳細(xì)介紹了建立自動(dòng)駕駛汽車識(shí)別系統(tǒng)的所有步驟,等等。
正如我們將在下面看到的,你可以直接研究這些文檔,也可以將它們用作代碼段來運(yùn)行和重現(xiàn)書中介紹的實(shí)驗(yàn)。
在線學(xué)習(xí)Jupyter Notebook
如果只是想瀏覽一下提供的代碼和結(jié)果,那么可以直接在本書的GitHub存儲(chǔ)庫中訪問它們。事實(shí)上,GitHub能夠渲染Jupyter Notebook并將其顯示為靜態(tài)網(wǎng)頁。
但是,GitHub查看器會(huì)忽略一些樣式和交互內(nèi)容。為了獲得的在線觀看體驗(yàn),建議使用 Jupyter nbviewer (https://nbviewer.jupyter.org),這是一個(gè)官方的網(wǎng)絡(luò)平臺(tái),可以用來閱讀上傳至網(wǎng)上的Jupyter Notebook。通過這個(gè)網(wǎng)站可以查詢存儲(chǔ)在GitHub存儲(chǔ)庫中的Notebook,因此,所提供的Jupyter Notebook也可以通過https://nbviewer.jupyter.org/github/PacktPublishing/Hands-On-Computer-Vision-with-TensorFlow-2閱讀。
在你自己的計(jì)算機(jī)上運(yùn)行Jupyter Notebook
要在你自己的計(jì)算機(jī)上閱讀或運(yùn)行這些文檔,首先要安裝Jupyter Notebook。對(duì)于那些已經(jīng)使用Anaconda(https://www.anaconda.com)來管理和部署Python環(huán)境(本書推薦這種方式)的用戶,Jupyter Notebook應(yīng)該是可以直接使用的(因?yàn)樗惭b在Anaconda中)。對(duì)于那些使用其他Python發(fā)行版和不熟悉Jupyter Notebook的用戶,建議查看一下說明文檔,其中提供了安裝說明和教程(https://jupyter.org/documentation)。
安裝了Jupyter Notebook之后,導(dǎo)航到包含本書代碼文件的目錄,打開終端,并執(zhí)行以下命令:
$ jupyter notebook
應(yīng)該會(huì)在默認(rèn)瀏覽器中打開Web界面,現(xiàn)在,就應(yīng)該能夠?yàn)g覽目錄并打開本書提供的Jupyter Notebook了,可以閱讀、執(zhí)行或編輯它們。
部分文檔包含較高級(jí)的實(shí)驗(yàn),可能需要大量的計(jì)算資源(比如在大型數(shù)據(jù)集上訓(xùn)練識(shí)別算法)。如果沒有適當(dāng)?shù)募铀儆布ㄒ簿褪钦f,如果沒有兼容的NVIDIA GPU,參見第2章),運(yùn)行這些腳本可能需要數(shù)小時(shí)甚至數(shù)天(即使有兼容的GPU,運(yùn)行的實(shí)例也可能需要相當(dāng)長的時(shí)間)。
用谷歌Colab運(yùn)行Jupyter Notebook
對(duì)于那些希望自己運(yùn)行Jupyter Notebook,或者嘗試新實(shí)驗(yàn),但又無法使用足夠強(qiáng)大的計(jì)算機(jī)的用戶,建議使用名為Colaboratory的谷歌Colab(https://colab.research.google.com)。它是一個(gè)基于云的Jupyter Notebook,由谷歌提供,以便在強(qiáng)大的計(jì)算機(jī)上運(yùn)行計(jì)算密集型腳本。你可以在GitHub存儲(chǔ)庫中找到關(guān)于此服務(wù)的更多細(xì)節(jié)。
本書約定
本書中使用了以下約定。
正文中的代碼字體:表示文本中的代碼和用戶輸入。例如,Model對(duì)象的.fit()方法啟動(dòng)訓(xùn)練過程。
代碼塊示例:
代碼塊中需要關(guān)注的某個(gè)特定部分會(huì)以粗體表示:
命令行輸入或輸出示例:
粗體:表示新術(shù)語、重要詞語以及在屏幕上顯示的內(nèi)容。例如,菜單或?qū)υ捒蛑械膯卧~會(huì)這樣顯示在文本中:你可以在TensorBoard的Scalars頁面上觀察解決方案的性能。
表示警告或重要提示。
表示提示或技巧。