TensorFlow 人臉識別實戰
內容描述
使用深度學習進行人臉識別是近年來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章 Hello World——從計算機視覺與人類視覺談起
1.1 視覺的發展簡史
1.1.1 人類視覺神經的啟迪
1.1.2 計算機視覺的難點與人工神經網絡
1.1.3 應用深度學習解決計算機視覺問題
1.2 計算機視覺學習的基礎與研究方向
1.2.1 學習計算機視覺結構圖
1.2.2 計算機視覺的學習方式和未來趨勢
1.3 本章小結
第2章 眾裡尋她千百度——人臉識別的前世今生
2.1 人臉識別簡介
2.1.1 人臉識別的發展歷程
2.1.2 人臉識別的一般方法
2.1.3 人臉識別的通用流程
2.2 基於深度學習的人臉識別
2.2.1 基於深度學習的人臉識別簡介
2.2.2 用於深度學習的人臉識別數據集
2.3 本章小結
第3章 TensorFlow的安裝
3.1 搭建環境1:安裝Python
3.1.1 Anaconda的下載與安裝
3.1.2 Python編譯器PyCharm的安裝
3.1.3 使用Python計算softmax函數
3.2 搭建環境2:安裝TensorFlow 2
3.2.1 安裝TensorFlow 2的CPU版本
3.2.2 安裝TensorFlow 2的GPU版本
3.2.3 練習——Hello TensorFlow
3.3 本章小結
第4章 Hello TensorFlow & Keras
4.1 TensorFlow & Keras
4.1.1 模型
4.1.2 使用Keras API實現鳶尾花分類的例子(順序模式)
4.1.3 使用Keras函數式編程實現鳶尾花分類的例子(重點)
4.1.4 使用保存的Keras模式對模型進行複用
4.1.5 使用TensorFlow標準化編譯對Iris模型進行擬合
4.1.6 多輸入單輸出TensorFlow編譯方法(選學)
4.1.7 多輸入多輸出TensorFlow編譯方法(選學)
4.2 全連接層詳解
4.2.1 全連接層的定義與實現
4.2.2 使用TensorFlow自帶的API實現全連接層
4.2.3 打印顯示已設計的模型結構和參數
4.3 懶人的福音——Keras模型庫
4.3.1 ResNet50模型和參數的載入
4.3.2 使用ResNet50作為特徵提取層建立模型
4.4 本章小結
第5章 深度學習的理論基礎
5.1 BP神經網絡簡介
5.2 BP神經網絡兩個基礎算法詳解
5.2.1 小二乘法詳解
5.2.2 道士下山的故事——梯度下降算法
5.2.3 小二乘法的梯度下降算法以及Python實現
5.3 反饋神經網絡反向傳播算法
5.3.1 深度學習基礎
5.3.2 鍊式求導法則
5.3.3 反饋神經網絡原理與公式推導
5.3.4 反饋神經網絡原理的激活函數
5.3.5 反饋神經網絡原理的Python實現
5.4 本章小結
第6章 卷積層與MNIST實戰
6.1 卷積運算的基本概念
6.1.1 卷積運算
6.1.2 TensorFlow中卷積函數的實現
6.1.3 池化運算
6.1.4 softmax激活函數
6.1.5 卷積神經網絡原理
6.2 編程實戰:MNIST手寫體識別
6.2.1 MNIST數據集
6.2.2 MNIST數據集的特徵和標籤
6.2.3 TensorFlow 2編程實戰:MNIST數據集
6.2.4 使用自定義的捲積層實現MNIST識別
6.3 激活、分類以及池化函數簡介(選學)
6.3.1 別偷懶——激活函數是分割器
6.3.2 太多了,我只要一個——池化運算
6.3.3 全連接層詳解
6.3.4 終的裁判——分類函數
6.3.5 隨機失活層
6.4 本章小結
第7章 TensorFlow Datasets和TensorBoard詳解
7.1 TensorFlow Datasets簡介
7.1.1 Datasets數據集的安裝
7.1.2 Datasets數據集的使用
7.2 Datasets數據集的使用——FashionMNIST
7.2.1 FashionMNIST數據集下載與展示
7.2.2 模型的建立與訓練
7.3 使用Keras對FashionMNIST數據集進行處理
7.3.1 獲取數據集
7.3.2 數據集的調整
7.3.3 使用Python類函數建立模型
7.3.4 模型的查看和參數打印
7.3.5 模型的訓練和評估
7.4 使用TensorBoard可視化訓練過程
7.4.1 TensorBoard文件夾的設置
7.4.2 TensorBoard的顯式調用
7.4.3 TensorBoard的使用
7.5 本章小結
第8章 從開始:ResNet
8.1 ResNet的基礎原理與程序設計基礎
8.1.1 ResNet誕生的背景
8.1.2 模塊工具的TensorFlow實現
8.1.3 TensorFlow模塊layers的用法
8.2 ResNet實戰:CIFAR-100數據集分類
8.2.1 CIFAR-100數據集簡介
8.2.2 ResNet殘差模塊的實現
8.2.3 ResNet網絡的實現
8.2.4 使用ResNet對CIFAR-100數據集進行分類
8.3 ResNet的兄弟——ResNeXt
8.3.1 ResNeXt誕生的背景
8.3.2 ResNeXt殘差模塊的實現
8.3.3 ResNeXt網絡的實現
8.3.4 ResNeXt和ResNet的比較
8.4 本章小結
第9章 人臉檢測實戰
9.1 使用Python庫進行人臉檢測
9.1.1 LFW數據集簡介
9.1.2 Dlib庫簡介
9.1.3 OpenCV簡介
9.1.4 使用Dlib實現圖像中的人臉檢測
9.1.5 使用Dlib和OpenCV建立人臉檢測數據集
9.2 基於深度學習MTCNN模型的人臉檢測
9.2.1 MTCNN模型簡介
9.2.2 MTCNN模型的使用
9.2.3 MTCNN模型中的一些細節
9.3 本章小結
第10章 人臉識別模型
10.1 基於深度學習的人臉識別模型
10.1.1 人臉識別的基本模型SiameseModel(孿生模型)
10.1.2 SiameseModel的實現
10.1.3 人臉識別數據集的準備
10.2 基於相似度計算的人臉識別模型
10.2.1 一種新的損失函數Triplet Loss
10.2.2 基於TripletSemiHardLoss的MNIST模型
10.2.3 基於TripletSemiHardLoss和SENET的人臉識別模型
10.3 本章小結
作者介紹
王曉華,計算機講師,長期講授面向對象程序設計、數據結構、Hadoop程序設計等研究生和本科生相關課程;主要研究方向為雲計算、數據挖掘。曾主持和參與多項國家和省級科研課題,獨立科研項目獲省級成果認定,發表過多篇論文,擁有一項國家專利。
著有《Spark MLlib機器學習實踐》《TensorFlow深度學習應用實踐》《OpenCV+TensorFlow深度學習與計算機視覺實戰》《TensorFlow 2.0卷積神經網絡實戰》《TensorFlow+Keras自然語言處理實戰》等圖書。