TensorFlow人臉識別實戰 ( 簡體 字) |
作者:王曉華 | 類別:1. -> 程式設計 -> 深度學習 2. -> 教材 -> 數位影像處理 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 54902 詢問書籍請說出此書號!【缺書】 NT售價: 295 元 |
出版日:8/1/2021 |
頁數:216 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302583820 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:在新冠疫情肆虐時,國家認可的健康寶(我們常說的綠碼)遍地開花,而這離不開人臉識別,人臉就是我們的通行證。 人臉識別技術就是基于人的臉部特征信息進行身份識別的一種生物識別技術,是用多種測量方法和手段來掃描人臉,包括熱成像、3D人臉地圖、獨特特征(也稱為地標)分類等分析面部特征的幾何比例、關鍵面部特征之間的映射距離、皮膚表面紋理。 長期以來,由于技術手段的落后和人臉的復雜,人臉技術一直沒有被大規模應用。究其原因,還是當時的人臉識別技術對人的頭部位置、面部表情以及年齡的易變性辨識度非常低,難以準確地判斷目標,不能給出一個準確度較高的結論,從而制約了這項技術的發展。 隨著深度學習的興起,人們發現使用深度學習技術能夠較好地進行人臉識別。深度學習方法的主要優勢是可以用非常大型的數據集進行訓練,學習到表征這些數據的最佳特征,從而在要求的準確度下實現人臉識別的目標。 本書以全新的TensorFlow 2版本為基礎進行編寫,教會讀者如何運用深度學習框架實現人臉識別。從TensorFlow 2的基礎語法開始講解,到介紹如何使用TensorFlow 2進行深度學習程序的設計,以及如何在實戰中設計出人臉識別模型。 本書對TensorFlow 2的核心內容進行深入分析,重要內容均結合代碼進行講解,圍繞深度學習原理介紹了大量實戰案例,讀者通過這些案例可以將TensorFlow 2運用于自己的實際開發工作和項目中。 本書是一本面向初級和中級讀者的翔實教程。通過本書的學習,讀者能夠掌握深度學習的核心內容和在TensorFlow框架下實現人臉識別的知識要點,以及掌握從模型構建到應用程序編寫的整套技巧。 本書特色 1. 版本新,易入門 本書詳細介紹TensorFlow 2的安裝和使用、TensorFlow的默認API以及官方推薦的Keras編程方法與技巧等。 2. 作者經驗豐富,代碼編寫細膩 作者是長期奮戰在科研和工業界的一線算法設計和程序編寫人員,實戰經驗豐富,對代碼中可能會出現的各種問題和“坑”有豐富的處理經驗,使得讀者能夠少走很多彎路。 3. 理論扎實,深入淺出 在代碼設計的基礎上,本書還深入淺出地介紹需要掌握的深度學習的一些基本理論知識,作者通過大量的公式與圖示結合的方式對理論進行闡述,是一本難得的好書。 4. 對比多種應用方案,實戰案例豐富 本書采用大量的實例,同時也提供一些實現同類功能的其他解決方案,覆蓋使用TensorFlow進行深度學習開發中常用的知識。 本書內容及知識體系 本書是基于TensorFlow 2.1版本的新架構模式和框架來完整介紹TensorFlow 2使用方法的進階教程,主要內容如下: 第1、2章是本書的起始部分,詳細介紹人類視覺的生理解釋和人臉識別的發展歷程、使用過的傳統技術和方法以及缺陷和不足,并且介紹使用深度學習進行人臉識別的通用流程和一些可以獲取到的數據集,供讀者在后期學習中使用。 第3章是有關深度學習框架TensorFlow的使用。本章詳細介紹TensorFlow 2.1版本的安裝方法以及對應的運行環境的安裝,并且通過一個簡單的例子驗證TensorFlow 2的安裝效果。還將介紹TensorFlow硬件的采購,使用一塊能夠運行TensorFlow GPU版本的顯卡能讓我們的學習事半功倍。 第4章是本書的重點,從MODEL的設計開始,循序漸進地介紹TensorFlow 2的編程方法和步驟,包括結合Keras進行TensorFlow 2模型設計的完整步驟,以及自定義層的方法。第4章的內容看起來很簡單,但卻是本書的核心,讀者一定要反復閱讀,掌握所有內容和代碼的編寫。 第5章是深度學習的理論部分,介紹反饋神經網絡的實現和核心的兩個算法,作者通過圖示并結合理論公式的方式詳細介紹理論和原理,并手動實現了一個反饋神經網絡。 第6章詳細介紹卷積神經網絡的原理和各個模型的使用和自定義內容,講解借助卷積神經網絡算法構建一個簡單的CNN模型進行MNIST數字識別。使用卷積神經網絡識別物體是深度學習的一個經典內容,也是人臉識別的基礎內容。因而本章也是本書的重點內容,能夠極大地加強讀者掌握對TensorFlow框架的使用和程序的編寫。 第7章介紹TensorFlow新版本的數據讀寫和訓練過程的可視化部分,內容包括使用TensorFlow 2自帶的Datasets API對數據的序列化存儲,通過簡單的想法將數據重新讀取和調用的程序編寫方法,以及訓練過程可視化的一個非常重要的工具TensorBoard。 第8章介紹ResNet的基本思想和內容。ResNet是一個具有里程碑性質的框架,標志著粗獷的卷積神經網絡設計向著精確化和模塊化的方向轉化。ResNet本身的程序編寫非常簡單,但是其中蘊含的設計思想卻是跨越性的。 第9章講解人臉識別的一個重要模塊。首先向讀者介紹使用Python封裝好的類庫實現人臉的檢測,并在此基礎上教會讀者使用已有的程序自制所需要的人臉檢測數據集。之后詳細介紹MTCNN這個經典的人臉檢測模型的使用方法。 第10章介紹使用多種深度學習模型實現人臉識別模型,從基于卷積神經到使用孿生網絡的單機版模型,進而引申到為了解決人臉識別不易遷移而誕生的TripletModel。本書為這一系列的人臉識別模型均提供了實現代碼,并對這些實現代碼進行了講解,旨在幫助讀者解決使用人臉識別模型實戰時可能遇到的各種問題。 源碼、數據集、開發環境與技術支持 本書配套資源請用微信掃描右邊的二維碼下載,也可按頁面提示把鏈接轉發到自己的郵箱中下載。 如果有疑問,可發送郵件至booksaga@163.com,郵件主題為“TensorFlow人臉識別實戰”。技術支持信息請查看下載資源中的相關文件。 適合閱讀本書的讀者 ? 人工智能初學者。 ? 深度學習初學者。 ? 人臉識別初學讀者。 ? 高等院校人工智能相關專業的師生。 ? 培訓機構的師生。 ? 其他對智能化、自動化感興趣的研發人員。 勘誤和支持 由于筆者的水平有限,加之編寫時間跨度較長,同時TensorFlow的演進較快,在編寫此書的過程中難免會出現不夠準確的地方,懇請讀者批評指正。 感謝出版社所有編輯在本書編寫中提供的無私幫助和寶貴建議,正是由于編輯的耐心和支持才讓本書得以出版。感謝我的家人的支持和理解,這些都給了我莫大的動力,讓我的努力更加有意義。
著者 2021年1月 |
內容簡介:使用深度學習進行人臉識別是近年來AI研究的熱點之一。本書使用TensorFlow 2.1作為深度學習的框架和工具,引導讀者從搭建環境開始,逐步深入代碼應用實踐中,進而達到獨立使用深度學習模型完成人臉識別的目的。 本書分為10章,第1、2章介紹人臉識別的基礎知識和發展路徑;第3章從搭建環境開始,詳細介紹Anaconda、Python、PyCharm、TensorFlow CPU版本和GPU版本的安裝;第4~6章介紹TensorFlow基本和高級API的使用;第7章介紹使用原生API處理數據的方法和可視化訓練過程;第8章是實戰準備,介紹ResNet模型的實現和應用;第9、10章綜合本書前面的知識,學習人臉識別模型與人臉檢測這兩個實戰項目。 本書內容詳盡、示例豐富,是機器學習和深度學習初學者必備的參考書,同時也非常適合高等院校和培訓機構人工智能及相關專業的師生教學參考。 |
目錄:第1章HelloWorld——從計算機視覺與人類視覺談起 1 1.1視覺的發展簡史 1 1.1.1人類視覺神經的啟迪 1 1.1.2計算機視覺的難點與人工神經網絡 3 1.1.3應用深度學習解決計算機視覺問題 3 1.2計算機視覺學習的基礎與研究方向 5 1.2.1學習計算機視覺結構圖 5 1.2.2計算機視覺的學習方式和未來趨勢 6 1.3本章小結 7 第2章眾里尋她千百度——人臉識別的前世今生 8 2.1人臉識別簡介 9 2.1.1人臉識別的發展歷程 9 2.1.2人臉識別的一般方法 10 2.1.3人臉識別的通用流程 11 2.2基于深度學習的人臉識別 13 2.2.1基于深度學習的人臉識別簡介 14 2.2.2用于深度學習的人臉識別數據集 16 2.3本章小結 19 第3章TensorFlow的安裝 20 3.1搭建環境1:安裝Python 20 3.1.1Anaconda的下載與安裝 20 3.1.2Python編譯器PyCharm的安裝 24 3.1.3使用Python計算softmax函數 27 3.2搭建環境2:安裝TensorFlow2 28 3.2.1安裝TensorFlow2的CPU版本 28 3.2.2安裝TensorFlow2的GPU版本 29 3.2.3練習——HelloTensorFlow 32 3.3本章小結 32 第4章HelloTensorFlow&Keras 33 4.1TensorFlow&Keras 33 4.1.1模型 34 4.1.2使用KerasAPI實現鳶尾花分類的例子(順序模式) 35 4.1.3使用Keras函數式編程實現鳶尾花分類的例子(重點) 37 4.1.4使用保存的Keras模式對模型進行復用 40 4.1.5使用TensorFlow標準化編譯對Iris模型進行擬合 41 4.1.6多輸入單輸出TensorFlow編譯方法(選學) 45 4.1.7多輸入多輸出TensorFlow編譯方法(選學) 48 4.2全連接層詳解 50 4.2.1全連接層的定義與實現 50 4.2.2使用TensorFlow自帶的API實現全連接層 51 4.2.3打印顯示已設計的模型結構和參數 54 4.3懶人的福音——Keras模型庫 56 4.3.1ResNet50模型和參數的載入 57 4.3.2使用ResNet50作為特征提取層建立模型 58 4.4本章小結 61 第5章深度學習的理論基礎 62 5.1BP神經網絡簡介 62 5.2BP神經網絡兩個基礎算法詳解 66 5.2.1最小二乘法詳解 66 5.2.2道士下山的故事——梯度下降算法 68 5.2.3最小二乘法的梯度下降算法以及Python實現 71 5.3反饋神經網絡反向傳播算法 77 5.3.1深度學習基礎 78 5.3.2鏈式求導法則 79 5.3.3反饋神經網絡原理與公式推導 80 5.3.4反饋神經網絡原理的激活函數 85 5.3.5反饋神經網絡原理的Python實現 87 5.4本章小結 91 第6章卷積層與MNIST實戰 92 6.1卷積運算的基本概念 92 6.1.1卷積運算 93 6.1.2TensorFlow中卷積函數的實現 95 6.1.3池化運算 97 6.1.4softmax激活函數 98 6.1.5卷積神經網絡原理 99 6.2編程實戰:MNIST手寫體識別 101 6.2.1MNIST數據集 101 6.2.2MNIST數據集的特征和標簽 103 6.2.3TensorFlow2編程實戰:MNIST數據集 106 6.2.4使用自定義的卷積層實現MNIST識別 110 6.3激活、分類以及池化函數簡介(選學) 113 6.3.1別偷懶——激活函數是分割器 113 6.3.2太多了,我只要一個——池化運算 116 6.3.3全連接層詳解 117 6.3.4最終的裁判——分類函數 119 6.3.5隨機失活層 121 6.4本章小結 121 第7章TensorFlowDatasets和TensorBoard詳解 122 7.1TensorFlowDatasets簡介 122 7.1.1Datasets數據集的安裝 124 7.1.2Datasets數據集的使用 124 7.2Datasets數據集的使用——FashionMNIST 126 7.2.1FashionMNIST數據集下載與展示 127 7.2.2模型的建立與訓練 129 7.3使用Keras對FashionMNIST數據集進行處理 131 7.3.1獲取數據集 131 7.3.2數據集的調整 132 7.3.3使用Python類函數建立模型 132 7.3.4模型的查看和參數打印 134 7.3.5模型的訓練和評估 135 7.4使用TensorBoard可視化訓練過程 137 7.4.1TensorBoard文件夾的設置 138 7.4.2TensorBoard的顯式調用 138 7.4.3TensorBoard的使用 141 7.5本章小結 145 第8章從冠軍開始:ResNet 146 8.1ResNet的基礎原理與程序設計基礎 147 8.1.1ResNet誕生的背景 147 8.1.2模塊工具的TensorFlow實現 150 8.1.3TensorFlow高級模塊layers的用法 151 8.2ResNet實戰:CIFAR-100數據集分類 158 8.2.1CIFAR-100數據集簡介 158 8.2.2ResNet殘差模塊的實現 161 8.2.3ResNet網絡的實現 163 8.2.4使用ResNet對CIFAR-100數據集進行分類 166 8.3ResNet的兄弟——ResNeXt 168 8.3.1ResNeXt誕生的背景 168 8.3.2ResNeXt殘差模塊的實現 169 8.3.3ResNeXt網絡的實現 171 8.3.4ResNeXt和ResNet的比較 172 8.4本章小結 173 第9章人臉檢測實戰 174 9.1使用Python庫進行人臉檢測 175 9.1.1LFW數據集簡介 175 9.1.2Dlib庫簡介 176 9.1.3OpenCV簡介 177 9.1.4使用Dlib實現圖像中的人臉檢測 177 9.1.5使用Dlib和OpenCV建立人臉檢測數據集 181 9.2基于深度學習MTCNN模型的人臉檢測 183 9.2.1MTCNN模型簡介 183 9.2.2MTCNN模型的使用 186 9.2.3MTCNN模型中的一些細節 193 9.3本章小結 195 第10章人臉識別模型 196 10.1基于深度學習的人臉識別模型 196 10.1.1人臉識別的基本模型SiameseModel(孿生模型) 197 10.1.2SiameseModel的實現 199 10.1.3人臉識別數據集的準備 201 10.2基于相似度計算的人臉識別模型 202 10.2.1一種新的損失函數TripletLoss 202 10.2.2基于TripletSemiHardLoss的MNIST模型 205 10.2.3基于TripletSemiHardLoss和SENET的人臉識別模型 211 10.3本章小結 216 |
序: |