CV+深度學習:AI最完整的跨套件Python人工智慧電腦視覺 | 被動收入的投資秘訣 - 2024年11月
CV+深度學習:AI最完整的跨套件Python人工智慧電腦視覺
本書主要介紹深度學習在電腦視覺方面的應用及工程實作,以Python 3為開發語言,並結合主流的深度學習框架進行實例展示。
涉及到的深度學習框架包括PyTorch、TensorFlow、Keras、Chainer、MXNet等。
透過本書,讀者能夠瞭解深度學習在電腦視覺各個面向的應用以及最新進展。
本書主要內容:
■ 深度學習與電腦視覺
■ OpenCV入門
■ 深度學習框架介紹
■ 影像分類
■ 目標檢測與識別
■ 影像分割
■ 影像搜索
■ 影像生成
適合讀者群:需要具體實現語音辨識的程式設計師,或有一定機器學習或語音辨識基礎的從業者、學生、研究者閱讀參考。
本書特色
◎展現深度學習在電腦視覺領域的應用與工程實作,實用性和專業性並具
◎結合主流深度學習框架PyTorch、TensorFlow、Keras、Chainer、MXNet等進行實例說明
作者簡介
繆鵬
物理碩士,長期從事企業虛擬化和深度學習圖像演算法方面工作。
現為廣州棒谷科技有限公司AI-CV核心成員,負責團隊影像分類、搜索與影像合成核心演算法開發。
01 深度學習與電腦視覺
1.1 影像基礎
1.2 深度學習與神經網路基礎
1.3 旋積神經網路CNN
1.4 基礎開發環境架設
1.5 本章歸納
02 OpenCV 入門
2.1 讀圖、展示和儲存新圖
2.2 像素點及局部影像
2.3 基本線條操作
2.4 平移
2.5 旋轉
2.6 縮放
2.7 翻轉
2.8 修改
2.9 算術操作
2.10 位操作
2.11 Masking 操作
2.12 色彩通道分離與融合
2.13 顏色空間轉換
2.14 顏色長條圖
2.15 平滑與模糊
2.16 邊緣檢測
2.17 人臉和眼睛檢測範例
2.18 本章歸納
03 常見深度學習架構
3.1 PyTorch
3.2 Chainer
3.3 TensorFlow 與Keras
3.4 MXNet 與Gluon
3.5 其他架構
3.6 本章歸納
04 影像分類
4.1 VGG3.10 命令列參數
4.2 ResNet
4.3 Inception
4.4 xception
4.5 DenseNet
4.6 本章歸納
05 目標檢測與識別
5.1 Faster RCNN
5.2 SSD
5.3 YOLO
5.4 本章歸納
06 影像分割
6.1 物體分割
6.2 語義分割
6.3 實例分割
6.4 本章歸納
07 影像搜索
7.1 Siamese Network
7.2 Triplet Network
7.3 Margin Based Network
7.4 Keras 版Triplet Network 範例
7.5 本章小結
08 影像產生
8.1 VAE
8.2 產生對抗網路GAN
8.3 Neural Style Transfer
8.4 本章歸納
A 後記
前言
目前人工智慧領域越來越受到大家的關注,因此人工智慧演算法工程師也漸漸浮出水面,成為應徵網站上一個非常耀眼的職位,各種創業投資也緊緊圍繞著AI 主題旋轉。
我認為目前人工智慧演算法工程師主要分為兩種。
■ 科學家型:主要研究前端演算法,在各大大專院校和企業的研究單位居多。
■ 工程師型:主要將最新的演算法應用到實際的業務場景,在企業開發部門居多,為本書主要針對物件。
人工智慧演算法按特徵學習的深淺分為機器學習、深度學習,另外也有強化學習方向。按應用場景則可分為:電腦視覺、自然語言和語音處理等。
撰寫本書主要緣由如下,筆者在學習機器學習和深度學習的過程中,發現理論方面的書籍十分豐富,包含周志華老師的《機器學習》與Ian Goodfellow 的《深度學習》;教學視訊也十分豐富,包含史丹佛大學吳恩達教授的CS229 與李飛飛教授的CS231,以及台灣大學(National Taiwan University)林軒田老師和李宏毅老師的課程。但是很少有關於一個方向(例如電腦視覺)比較豐富的工程應用書籍,包含目前主流架構的綜合介紹,筆者當時從理論到實作走了不少冤枉路,也踩過不少雷,故希望本書能在這個方面做出一點小小的貢獻,成為理論與實作的橋樑,讓讀者相對容易地邁出由0 到1 的那一步。
本書主要重點在電腦視覺領域,以開放原始碼專案為基礎介紹最新的演算法,在此也感謝各位開放原始碼人士,借助他們的成果,我們學習到了很多知識,本書各章主要內容如下:
■ 第 1 章:對深度學習與電腦視覺進行簡介,也會簡單介紹開發環境的架設。
■ 第 2 章:主要介紹 OpenCV 的基本操作及部分進階操作,包含人臉和人眼的檢測與識別。
■ 第 3 章:注重介紹目前常用的幾種深度學習架構,包含 PyTorch、Chainer、TensorFlow-Keras 和MXNet-Gluon,另外本書中偶爾還會用到ChainerCV 和GluonCV。
■ 第 4 章:對影像分類進行了介紹,包含經典的網路類型(VGG、ResNet、Inception、Xception、DenseNet),並展示了部分實作操作。
■ 第 5 章:對目標檢測與識別進行了介紹,包含三種主流的網路結構:YOLO、SSD、Faster R-CNN,並展示了實作操作。
■ 第 6 章:介紹影像分割技術,主要從前背景分割(Grab Cut)、語義分割(DeepLab 與PSPNet) 和實例分割(FCIS、Mask R-CNN、MaskLab、PANet)三個說明。
■ 第 7 章:介紹影像搜索技術,主要指以圖搜圖方面(CBIR),以及對應的實作展示。
■ 第 8 章:主要介紹影像產生技術,包含三個大方向:Auto-Encoder、GAN 和Neural Style Transfer。
電腦視覺是一個非常大的方向,有關的內容非常多,本書只介紹其中部分領域,未涵蓋OCR、目標追蹤、3D 重建和光場等方面的內容。
本書針對的主要是已經擁有機器學習和深度學習基礎,但在電腦視覺領域實作較少,對各個方向了解較少的讀者,其他有興趣的讀者也可作為科普讀物。希望本書能為電腦視覺有興趣的讀者開啟一扇窗戶,帶領大家邁出從理論到實作的關鍵一步。另外由於筆者學識、經驗和能力所限,書中難免有錯誤或誤解的地方,歡迎讀者們批評指正。
閱讀本書需要的基礎知識儲如下:
■ 線性代數
■ 機率論
■ 統計學
■ 高等數學,主要指函數方面
■ 機器學習
■ 深度學習
■ Python 程式設計技術(特別需要熟悉 Numpy 函數庫)
■ Linux 基礎知識(可選項)
如果在學習過程中遇到任何問題或不太了解的概念,最好的方式是透過網路尋找答案,請相信我們所遇到的問題,有很大一部分是大家都會遇到的問題,網上說不定已經有了詳細地討論,這時只需要去發現即可;如果沒有找到對應的解決方法,那麼在對應的社區提問也是很好的一種方式。
希望讀者在閱讀本書時,謹記電腦是負責資源排程的,永遠會有時間資源和空間資源的平衡問題。GPU 的使用就是平行利用空間換取時間,而IO 密集型與計算密集型則是另外兩個常常遇到的問題。在做深度學習方面的實作時,這些問題都應該要考慮,特別是面臨巨量資料的時候,例如上億等級的影像搜索業務。這些知識在電腦作業系統的書籍當中有非常詳細的論述,如果讀者希望在電腦領域有長足的發展,本書是最基本最重要的書籍,建議好好學習。
本書的完成,要特別感謝王金柱編輯給予的幫助和指導,感謝體貼的妻子體諒筆者分出部分時間來撰寫此書。
讀者聯繫電子郵件:[email protected]。
繆鵬