
0人評分過此書
AI影像深度學習啟蒙 : 用python進行人臉口罩識別
AI影像深度學習啟蒙 : 用python進行人臉口罩識別
本書涵蓋的內容有
★線上平台COLAB使用教學
★本機電腦Jupyter使用教學
★基本運算、變數與字串
★串列、元組、集合與字典
★流程控制if else
★流程控制for與while
★函數、類別與物件
★資料夾與檔案處理
★txt、csv、json文件的讀寫
★基礎套件的使用
★Numpy的使用
★OpenCV的使用
★完整Tensorflow安裝流程
★Tensorflow的使用
★類神經網路(ANN)原理與實作
★卷積神經網路(CNN)原理與實作
★模型可視化工具Netron的使用
★口罩識別模型教學
★影像串流與實時口罩識別
這是一本想給非資電領域或初學者的入門書籍,內容從基礎語法開始,使用日常所見的比喻協助理解,在AI類神經網路的基礎部分,使用大家都熟悉的二元一次方程式來切入,多以圖表來說明概念,避免艱澀的數學推導,一步一步講解建立深度學習模型的步驟,書本最後還帶入口罩識別模型的教學實例,協助讀者從頭到尾完成一個專題,讓AI更貼近你我的生活。
本書涵蓋的內容有
★線上平台COLAB使用教學
★本機電腦Jupyter使用教學
★基本運算、變數與字串
★串列、元組、集合與字典
★流程控制if else
★流程控制for與while
★函數、類別與物件
★資料夾與檔案處理
★txt、csv、json文件的讀寫
★基礎套件的使用
★Numpy的使用
★OpenCV的使用
★完整Tensorflow安裝流程
★Tensorflow的使用
★類神經網路(ANN)原理與實作
★卷積神經網路(CNN)原理與實作
★模型可視化工具Netron的使用
★口罩識別模型教學
★影像串流與實時口罩識別
這是一本想給非資電領域或初學者的入門書籍,內容從基礎語法開始,使用日常所見的比喻協助理解,在AI類神經網路的基礎部分,使用大家都熟悉的二元一次方程式來切入,多以圖表來說明概念,避免艱澀的數學推導,一步一步講解建立深度學習模型的步驟,書本最後還帶入口罩識別模型的教學實例,協助讀者從頭到尾完成一個專題,讓AI更貼近你我的生活。
-
CH01 作者自序與前言
-
1-1 作者自序
-
1-2 前言
-
1-2-1 生活裡遇見AI
-
1-2-2 人工智慧有多熱門?
-
1-2-3 關於Python
-
1-2-4 小結:
-
-
-
CH02 安裝Python 與編輯環境
-
2-1 編輯環境的選擇:Colab 與Jupyter
-
2-2 Colab 的介面使用說明
-
2-3 Jupyter 的安裝
-
2-4 Jupyter 的使用
-
2-4-1 Jupyter 介紹
-
2-4-2 Jupyter 的介面使用說明
-
-
-
CH03 Python 的運算
-
3-1 print 函數與程式碼註解方式
-
3-1-1 第一個也是最常用的函數print()
-
3-1-2 程式碼的註解方式
-
-
3-2 四則運算
-
3-2-1 加減乘除
-
3-2-2 多次方運算
-
3-2-3 除法結果的整數與餘數
-
3-2-4 運算符號的優先順序
-
-
3-3 變數(Variable)
-
3-3-1 意義
-
3-3-2 從共同約定來看變數
-
3-3-3 命名規則
-
3-3-4 給值至變數(Assigning Values to Variables)
-
3-3-5 多重給值(Multiple Assignment)
-
-
3-4 數值型態(Numeric type)
-
3-4-1 整數:
-
3-4-2 浮點數:
-
3-4-3 運算後的數值型態
-
3-4-4 資料型態轉換(Casting)
-
3-4-5 使用科學記號表示(Scientific notation)
-
3-4-6 指派運算子(assignment operator)
-
3-4-7 布林值型態(boolean)
-
3-4-8 特殊形態None type
-
-
3-5 字串
-
3-5-1 跳脫字元(Escape Characters)
-
3-5-2 變數的身分識別碼(identity,id)
-
-
-
CH04 流程控制之選擇結構 if else
-
4-1 前言
-
4-2 關係運算
-
4-3 邏輯運算
-
4-4 if else
-
4-4-1 使用說明
-
4-4-2 關於縮排(Indentation)
-
4-4-3 縮排發生的時機
-
4-4-4 縮排錯誤的情況
-
4-4-5 判斷敘述是否為True
-
4-4-6 判斷敘述是否為None
-
4-4-7 GPA 範例說明
-
4-4-8 使用input 函數輸入內容
-
-
-
CH05 串列List
-
5-1 前言
-
5-2 串列的使用
-
5-2-1 串列的宣告
-
5-2-2 串列的讀取
-
5-2-3 串列的切片
-
5-2-4 串列放置不同類型的內容
-
5-2-5 串列裡放置串列
-
-
5-3 流程控制之重複架構 for 迴圈(for loop)
-
5-3-1 說明
-
5-3-2 for 迴圈的使用方法
-
5-3-3 巢狀迴圈
-
5-3-4 for 迴圈與if else 的搭配
-
5-3-5 減少程式的負擔,使用break 中斷程式
-
5-3-6 break 與for 迴圈的對應關係
-
-
5-4 物件的簡單概念(Object)
-
5-4-1 概念說明
-
5-4-2 物件方法查詢
-
5-4-3 執行方法後是否有回傳值(return value)
-
5-4-4 方法介紹
-
-
5-5 常用的基本函數
-
-
CH06 元組(Tuple)
-
6-1 前言
-
6-2 元組的使用
-
6-2-1 元組的宣告
-
6-2-2 基本使用
-
6-2-3 讀取元組
-
6-2-4 元組的切片(slice)
-
6-2-5 型態的轉換
-
6-2-6 空元組的宣告
-
6-2-7 元組的方法
-
6-2-8 常用的基本函數
-
-
-
CH07 集合(Set)
-
7-1 前言
-
7-2 集合的使用
-
7-2-1 集合的宣告
-
7-2-2 基本使用方式
-
7-2-3 型態轉換
-
7-2-4 集合的方法
-
-
7-3 使用Python 開發的應用或服務
-
-
CH08 字典Dictionary
-
8-1 前言
-
8-2 字典的使用
-
8-2-1 字典的宣告
-
8-2-2 字典與集合的差異
-
8-2-3 宣告空字典
-
8-2-4 基本使用方式
-
8-2-5 修改字典內容
-
8-2-6 增加字典內容
-
8-2-7 標籤可以是數值
-
8-2-8 使用in 來確認標籤是否存在
-
8-2-9 字典內放置其他容器
-
8-2-10 字典的方法
-
8-2-11 一般常使用函數
-
-
-
CH09 流程控制之重複架構while 迴圈(while loop)
-
9-1 前言
-
9-2 while 迴圈使用方式
-
9-2-1 基本使用方式
-
9-2-2 無限迴圈
-
9-2-3 使用旗標(flag)進行設計
-
9-2-4 pass 的使用
-
-
-
CH10 函數(function)
-
10-1 前言
-
10-2 函數的使用方式
-
10-2-1 函數的定義
-
10-2-2 建立函數的步驟
-
10-2-3 簡單函數的範例說明
-
10-2-4 函數內的變數與其他變數的關係
-
10-2-5 參數的型態
-
10-2-6 使用*args 接收所有的引數
-
10-2-7 使用**kwargs 接收所有關鍵字引數
-
10-2-8 函數內進行引數的修改
-
-
-
CH11 類別(class)與物件(object)
-
11-1 前言
-
11-2 類別的定義與初始化
-
11-3 物件(Object)概念
-
11-4 物件的宣告
-
11-5 建立類別的方法
-
11-6 繼承
-
11-7 建立私有屬性與方法
-
11-8 範例練習
-
11-9 預設屬性__doc__
-
11-10 特殊方法__str__()與__repr__()
-
11-11 物件的銷毀
-
-
CH12 宣告的數值與字串也是物件
-
12-1 物件導向程式設計(Object-oriented programming)
-
12-2 宣告整數與浮點數物件
-
12-3 宣告字串的物件
-
12-3-1 format()方法
-
12-3-2 split()方法
-
12-3-3 endswith()方法
-
12-3-4 startswith()方法
-
12-3-5 find()方法
-
12-3-6 strip()方法:
-
12-3-7 replace()方法:
-
12-3-8 upper()與lower()方法
-
12-3-9 capitalize()方法
-
12-3-10 swapcase()方法
-
-
-
CH13 常用基礎套件介紹
-
13-1 套件(package)的定義
-
13-2 查看已安裝的套件
-
13-3 sys 套件的使用
-
13-4 math 套件的使用
-
13-5 random 套件的使用
-
13-5-1 randint()
-
13-5-2 uniform()
-
13-5-3 Choice()
-
13-5-4 choices()
-
13-5-5 shuffle()
-
-
13-6 time 套件的使用
-
13-6-1 time()
-
13-6-2 asctime()
-
13-6-3 localtime()
-
-
-
CH14 資料夾與檔案的處理
-
14-1 前言
-
14-2 資料夾的處理
-
14-2-1 瀏覽資料夾os.scandir()
-
14-2-2 使用Colab 的說明
-
14-2-3 os.walk
-
-
14-3 檔案的處理
-
14-3-1 os.path.exists
-
14-3-2 os.isdir()
-
14-3-3 os.isfile()
-
14-3-4 os.path.getsize()
-
14-3-5 os.path.dirname
-
14-3-6 os.path.basename()
-
14-3-7 關於絕對路徑與相對路徑
-
14-3-8 os.getcwd()
-
14-3-9 os.path.abspath()
-
14-3-10 os.path.join()
-
14-3-11 os.makedirs()
-
14-3-12 os.replace()
-
14-3-13 os.remove()
-
-
14-4 shutil 套件的使用
-
14-4-1 shutil.copy()
-
14-4-2 shutil.move()
-
-
-
CH15 檔案的讀取與寫入
-
15-1 前言
-
15-2 檔案的寫入
-
15-2-1 Open()函數:讀取與寫入的共用函數
-
15-2-2 write()方法
-
15-2-3 關於文字文件
-
15-2-4 使用Colab 的方式
-
15-2-5 不同的區隔符號
-
15-2-6 儲存成CSV 檔案
-
15-2-7 writelines()方法
-
15-2-8 附加資料
-
15-2-9 程式練習
-
-
15-3 檔案的讀取
-
15-4 JSON 檔案
-
15-4-1 JSON 檔案的寫入
-
15-4-2 JSON 檔案的讀取
-
15-4-3 notepad 工具的使用
-
-
-
CH16 細說數值型態
-
16-1 基本單位
-
16-2 狀態多寡與位元的關係
-
16-3 數值與位元的關係
-
16-4 Byte 與Bit 的關係
-
16-5 KB,MB,GB 的關係
-
16-6 數值型態的介紹
-
16-6-1 數值型態int8
-
16-6-2 數值型態uint8
-
16-6-3 更多的整數數值型態
-
16-6-4 數值型態float
-
16-6-5 布林值
-
16-6-6 數值型態的實際意義
-
-
-
CH17 Numpy 的介紹
-
17-1 前言
-
17-1-1 多維數列的概念
-
-
17-2 Numpy 套件的基本使用
-
17-2-1 Numpy 的特色
-
17-2-2 串列與ndarray 在使用上的差異
-
17-2-3 建立Numpy 陣列
-
17-2-4 建立一維陣列
-
17-2-5 建立二維陣列
-
17-2-6 建立三維陣列
-
17-2-7 建立更多維的陣列
-
-
17-3 常用屬性介紹
-
17-3-1 屬性shape 與ndim
-
17-3-2 屬性T(轉置)
-
17-3-3 屬性dtype
-
17-3-4 屬性itemsize
-
-
17-4 常用方法介紹
-
17-4-1 方法flatten()
-
17-4-2 方法reshape()
-
17-4-3 方法astype()
-
-
17-5 多維陣列進行不同維度的計算(使用np.sum())
-
17-5-1 多維陣列的軸(axis)
-
17-5-2 一維陣列的計算
-
17-5-3 二維陣列的計算
-
17-5-4 三維陣列的計算
-
-
17-6 函數np.mean()
-
17-6-1 使用說明
-
17-6-2 一維陣列的計算
-
17-6-3 二維陣列的計算
-
17-6-4 三維陣列的計算
-
-
17-7 函數np.max()與np.min()
-
17-7-1 使用說明
-
17-7-2 一維陣列的計算
-
17-7-3 二維陣列的計算
-
17-7-4 三維陣列的計算
-
-
17-8 函數argmax()與np.argmin()
-
17-8-1 使用說明
-
17-8-2 一維陣列的計算
-
17-8-3 二維陣列的計算
-
17-8-4 應用時機
-
-
17-9 函數np.zeros()
-
17-9-1 使用說明
-
-
17-10 函數np.zeros_like()
-
17-10-1 使用說明
-
-
17-11 函數np.ones()
-
17-11-1 使用說明
-
-
17-12 函數np.ones_like()
-
17-12-1 使用說明
-
-
17-13 相加函數np.add()
-
17-13-1 使用說明
-
-
17-14 亂數函數np.random.randint()
-
17-14-1 使用說明
-
-
17-15 排列函數np.random.permutation()
-
17-15-1 使用說明
-
-
-
CH18 圖片的顯示
-
18-1 圖片的尺寸
-
18-2 灰階圖像與彩色圖像
-
18-3 灰階圖像的組成
-
18-4 彩色圖像的組成
-
18-5 圖片的格式
-
18-6 下載練習圖庫
-
18-7 OpenCV 的使用說明
-
18-7-1 關於opencv
-
18-7-2 安裝OpenCV
-
18-7-3 讀取影像
-
18-7-4 圖片的顯示(使用matplotlib)
-
18-7-5 轉換通道BGR 成RGB
-
18-7-6 轉換成灰階圖像
-
18-7-7 更改圖像的尺寸(放大或縮小)
-
18-7-8 擷取部分圖像
-
18-7-9 圖像的儲存
-
18-7-10 練習
-
18-7-11 建立四維的圖片資料
-
18-7-12 同時顯示多張圖片
-
-
-
CH19 類神經網路的介紹
-
19-1 人工智慧(Artificial intelligence)其實只是統稱
-
19-2 機器學習(machine learning)
-
19-2-1 監督式學習(supervised learning)
-
19-2-2 非監督式學習(Unsupervised learning)
-
19-2-3 強化學習(Reinforcement learning,簡稱RL)
-
19-2-4 深度學習
-
-
19-3 回憶二元一次方程式
-
19-4 從二元一次方程式到機器學習
-
19-5 類神經網路(Artificial Neural Network)
-
19-5-1 神經元結構(Neuron)
-
19-5-2 模擬神經元單位
-
19-5-3 線性與非線性
-
19-5-4 激勵函數(activation)
-
19-5-5 單一神經元多個輸入
-
19-5-6 多個神經元與多個輸入
-
19-5-7 深度學習
-
19-5-8 類神經網路的目的
-
19-5-9 損失值(Loss)概念
-
19-5-10 正確答案(labels)
-
19-5-11 類神經網路的預測值
-
19-5-12 損失函數(loss function)
-
19-5-13 One-hot 編碼(One-hot encoding)
-
19-5-14 權重最佳化
-
19-5-15 學習率(learning rate)
-
19-5-16 批次數量、迭代次數與訓練週期
-
-
19-6 有趣的AI 應用
-
-
CH20 Tensorflow 簡介
-
20-1 什麼是Tensorflow
-
20-2 顯示卡的多核心優勢
-
20-3 Tensorflow 做了什麼?
-
20-4 安裝Tensorflow
-
20-5 匯入Tensorflow 套件
-
20-6 Tensorflow 與其他套件的相異處
-
20-7 如何看待Tensorflow
-
20-8 如何得到計算結果
-
20-9 張量(Tensor)
-
20-9-1 張量的類型
-
20-9-2 tf.constant()的使用
-
20-9-3 tf.Variable()的使用
-
20-9-4 tf.placeholder()的使用
-
-
20-10 Tf.Graph()的使用
-
20-10-1 關於節點
-
20-10-2 使用多個計算圖
-
-
20-11 GPU 資源的設定
-
20-12 如何使用程式碼設定GPU 的使用量
-
20-13 AI 的實際應用:自動駕駛
-
-
CH21 資料集介紹(Introduction of datasets)
-
21-1 前言
-
21-2 匯入套件
-
21-3 Cifar10 資料集
-
21-3-1 資料集的說明
-
21-3-2 下載資料集
-
21-3-3 訓練集(train data)與驗證集(test data)
-
21-3-4 關於正確答案(標籤資料)
-
21-3-5 其他資訊
-
21-3-6 圖片的顯示
-
-
21-4 Mnist 資料集
-
-
CH22 建立類神經網路
-
22-1 前言
-
22-2 匯入套件
-
22-3 匯入資料集Mnist
-
22-3-1 建立可以亂數查看圖片的函數
-
22-3-2 建立label 轉換成類別名稱的字典集
-
22-3-3 亂數查看訓練集(train data)資料
-
22-3-4 亂數查看驗證集(test data)資料
-
-
22-4 類神經網路
-
22-4-1 類神經網路概略圖
-
22-4-2 建立tf.placeholder()
-
22-4-3 建立類神經網路(隱藏層)
-
22-4-4 訓練的參數數量
-
22-4-5 設定損失函數
-
22-4-6 設定最佳化演算法
-
22-4-7 設定GPU 資源使用量與建立Session
-
22-4-8 設定批次數量(batch size)
-
22-4-9 設定訓練週期(epoch)
-
22-4-10 超參數(Hyperparameter)
-
22-4-11 計算迭代次數(iterations)
-
22-4-12 建立反覆訓練的架構
-
22-4-13 權重最佳化
-
22-4-14 Colab 調用GPU 資源
-
-
22-5 開始訓練
-
22-5-1 執行第一次的權重最佳化
-
22-5-2 訓練集的準確率
-
22-5-3 訓練結果圖形化(visualization)
-
22-5-4 驗證集的準確率
-
22-5-5 修改圖形化程式
-
22-5-6 函數化
-
22-5-7 建立2 層的神經元網路
-
22-5-8 計算訓練的參數
-
22-5-9 訓練結果
-
22-5-10 過擬合(overfitting)
-
22-5-11 Dropout
-
22-5-12 訓練的架構修改
-
-
22-6 有趣的AI 應用
-
-
CH23 卷積神經網路的介紹
-
23-1 全連接層(fully connected layer)
-
23-2 更有效的圖像學習方式
-
23-3 卷積(convolution)
-
23-3-1 Kernel
-
23-3-2 Stride
-
23-3-3 Padding
-
-
23-4 卷積的計算
-
23-5 卷積是全連接層的簡化
-
23-6 卷積的完整範例
-
23-7 Kernel 學到了什麼
-
23-8 彩色圖片的卷積方式
-
23-9 計算權重數量
-
23-10 Kernel 的張數
-
23-11 池化(pooling)
-
23-12 計算經過卷積後的尺寸
-
23-13 全連接層全然無用嗎?
-
23-14 有趣的AI 應用
-
-
CH24 建立卷積神經網路
-
24-1 前言
-
24-2 匯入套件
-
24-2-1 匯入Tensorflow 套件
-
24-2-2 匯入其他套件
-
-
24-3 匯入資料集
-
24-4 資料集前處理
-
24-4-1 資料維度的處理
-
24-4-2 資料標準化(Normalization)
-
-
24-5 建立計算圖
-
24-6 宣告tf.placeholder
-
24-7 計算訓練的參數量
-
24-8 建立選取迭代資料的函數
-
24-9 計算損失值函數
-
24-10 計算準確率函數
-
24-11 關於Tensorflow 的權重檔
-
24-12 儲存PB 檔案的函數
-
24-13 設定超參數
-
24-14 建立訓練架構
-
24-15 訓練集的亂數排列(shuffle)
-
24-16 開始訓練與訓練結果
-
24-17 加深模型
-
24-18 加深模型的訓練結果
-
24-19 儲存準確率最高的PB 檔案
-
24-20 遷移學習(transfer learning)
-
24-21 儲存訓練的結果
-
24-22 模型可視化(使用Netron)
-
24-22-1 Netron 簡介
-
24-22-2 Netron 的使用方式
-
24-22-3 使用Netron 計算參數量
-
-
24-23 使用PB 檔進行推論
-
24-24 找出驗證集分類錯誤的圖片
-
24-25 練習:使用Fashion_mnist 資料集
-
24-26 練習:使用Cifar10 資料集
-
-
CH25 口罩判斷模型之資料集的準備
-
25-1 前言
-
25-2 決定分類模型的類別數量
-
25-3 製作有戴口罩的圖片
-
25-4 口罩圖片的選擇
-
25-5 口罩圖片的解析
-
25-6 偵測圖片的嘴巴區域(使用Dlib)
-
25-7 安裝Dlib
-
25-8 使用Dlib 找到人臉
-
25-8-1 Dlib 初始化
-
25-8-2 人臉偵測器的使用方法
-
25-8-3 加入margin
-
25-8-4 標註68 個特徵點
-
25-8-5 找出嘴部區域
-
-
25-9 嘴部區域與口罩的結合
-
25-10 製作訓練集與驗證集
-
25-10-1 製作訓練集
-
25-10-2 關於CASIA 資料集
-
25-10-3 下載CASIA 資料集
-
25-10-4 資料前處理
-
25-10-5 製作驗證集
-
-
25-11 有趣的AI 應用
-
-
CH26 口罩判斷模型之訓練
-
26-1 匯入套件
-
26-2 訓練集與驗證集的資料安排
-
26-3 讀取訓練集路徑
-
26-4 讀取驗證集路徑
-
26-5 讀取口罩集路徑
-
26-6 建立偵測嘴部區域的函數
-
26-7 建立嘴部區域與口罩結合的函數
-
26-8 建立訓練集的迭代資料函數
-
26-9 建立驗證集的迭代資料函數
-
26-10 建立計算圖
-
26-11 模型架構的差異說明
-
26-11-1 簡化部分說明
-
26-11-2 建立計算損失值的函數
-
26-11-3 建立計算準確率的函數
-
26-11-4 超參數設定
-
26-11-5 其他程式碼的差異
-
-
26-12 訓練結果
-
26-13 結果圖形化
-
-
CH27 影像串流與口罩判斷
-
27-1 前言
-
27-2 影像串流
-
27-2-1 USB camera
-
27-2-2 流程圖
-
27-2-3 串流影像初始化
-
27-2-4 初始化
-
27-2-5 宣告方式說明
-
27-2-6 建立獲取影像的迴圈
-
27-2-7 執行結果
-
27-2-8 FPS 的計算
-
27-2-9 COLAB 與USB camera 的連接方式
-
-
27-3 影像串流結合口罩判斷
-
27-3-1 流程圖
-
27-3-2 人臉偵測器的選用
-
27-3-3 函數的參數與變數說明
-
27-3-4 人臉擷取與資料處理
-
27-3-5 口罩判斷程式碼說明
-
-
27-4 執行結果
-
27-4-1 函數的使用
-
27-4-2 GPU 資源的設定
-
27-4-3 使用COLAB 的說明
-
-
-
CH28 安裝套件的步驟說明
-
28-1 使用Colab
-
28-1-1 匯入套件
-
28-1-2 使用Tensorflow 訓練的測試
-
-
28-2 使用Jupyter
-
28-2-1 前言
-
28-2-2 查詢已經安裝的套件
-
28-2-3 安裝OpenCV 套件
-
28-2-4 安裝matplotlib
-
28-2-5 安裝Tensorflow
-
-
- 出版地 : 臺灣
- 語言 : 繁體中文
- DOI : 10.978.9860776/416
評分與評論
請登入後再留言與評分