本書通過具體的案例,循序漸進地講解了計算機視覺和模型調優(yōu)的相關內容。首先介紹基礎知識,包括人工智能基礎、計算機視覺基礎、圖像基礎和編程基礎相關知識。然后講解傳統(tǒng)計算機視覺和基于深度學習的計算機視覺,如卷積神經網絡等。接著深入探討算法原理,包括卷積、池化、批歸一化、激活函數、殘差結構、全連接、SoftMax等,并提供手寫算法示例。最后介紹了模型在 Python 和 C...
本書通過具體的案例,循序漸進地講解了計算機視覺和模型調優(yōu)的相關內容。首先介紹基礎知識,包括人工智能基礎、計算機視覺基礎、圖像基礎和編程基礎相關知識。然后講解傳統(tǒng)計算機視覺和基于深度學習的計算機視覺,如卷積神經網絡等。接著深入探討算法原理,包括卷積、池化、批歸一化、激活函數、殘差結構、全連接、SoftMax等,并提供手寫算法示例。最后介紹了模型在 Python 和 C++中的實際應用以及性能優(yōu)化技巧,如計算向量化、權值預加載和多線程等。 本書內容實用,由淺入深,案例典型,講解通俗易懂,隨書提供全部程序代碼,且代碼注釋詳細,方便讀者理解,并上手實踐。 本書非常適合人工智能、機器學習、深度學習、計算機視覺初學者學習使用,也可用作高等院校中相關專業(yè)的教材及參考書。
隨著人工智能(artif icial intelligence,AI)技術的不斷發(fā)展,尤其是近年來以 AI繪畫和 ChatGPT為代表的 AI應用的普及,越來越多的人對人工智能產生了濃厚的興趣。許多人希望了解并掌握 AI的技術原理,或者希望從事與 AI相關的技術研發(fā)和應用服務工作。 目前, AI技術應用主要集中在兩個領域:自然語言處理( natural language processing,NLP)和計算機視覺( computer vision,CV)。NLP領域包括聊天機器人、語音翻譯和文本生成等應用。 CV領域則包括圖像識別、目標檢測、圖像分割,以及前沿的圖像或視頻生成等。 本書的內容主要集中在計算機視覺領域。 盡管本書是以計算機視覺作為背景來編寫的,但其中涉及的許多算法同樣適用于其他業(yè)務場景,比如計算機視覺中的卷積算法主要用于提取圖像特征并進行特征融合,而與之相類似的矩陣乘法也可以用于數據的特征提取和融合。因此,可以看到,在許多基于 Transformer架構的大型語言模型中,矩陣乘法也會經常出現。原因就在于這些算法在數學運算上存在相通之處,這一點將在本書中詳細介紹。 本書以計算機視覺相關知識為重點,以經典的圖像分類模型 ResNet50為例子,深入淺出地闡述相關算法原理。通過實戰(zhàn)形式,引導讀者快速掌握算法并應用,達到手動編寫代碼、實現快速應用的目標。 本書內容可分為三部分:傳統(tǒng)計算機視覺、基于深度學習的計算機視覺算法分析,以及計算機視覺實戰(zhàn)。通過閱讀和學習本書,讀者將從零開始了解計算機視覺,并掌握傳統(tǒng)計算機視覺中常見的算法,了解基于深度學習的計算機視覺經典算法。此外,實戰(zhàn)部分將指導讀者從零搭建一個經典的計算機視覺模型,并以該模型為基礎進行推理和神經網絡模型的性能優(yōu)化。 為了便于學習和理解,本書在介紹相關算法時,會結合代碼進行講解,因此在很多章節(jié)中,會先介紹算法原理,接著展示相應的實戰(zhàn)代碼。這樣,讀者可以邊學習算法,邊利用相關代碼進行實操練習,邊學邊練,逐步掌握。 在開始學習之前,需要了解基礎知識和實戰(zhàn)所需的編程工具。因此,第一章首先介紹計算機視覺的基礎概念,然后從圖像基礎入手,詳細講解圖像像素、圖像特征、灰度圖、彩色圖的相關知識,最后介紹 Python語言及 OpenCV庫,并詳細說明其安裝和使用方法,幫助讀者快速搭建實戰(zhàn)環(huán)境。 第二章介紹傳統(tǒng)計算機視覺的經典算法,并配以相關實戰(zhàn)代碼,主要內容包括圖像濾波原理,如均值濾波和高斯濾波,然后介紹基于 Canny算子的邊緣檢測以及基于大津算法的圖像分割應用。通過這些傳統(tǒng)計算機視覺算法,讀者可以了解圖像處理的基礎知識和流程,為學習深度學習相關算法打下基礎。 第三章介紹基于深度學習的計算機視覺。首先會介紹深度學習的基礎理論知識,包括人工智能、機器學習、神經網絡訓練與推理、正向傳播和反向傳播、損失函數等。接下來會介紹卷積神經網絡,并以一個經典的小而全的神經網絡為例,通過代碼實戰(zhàn)完成該神經網絡的訓練和推理。最后介紹 ResNet50模型,這也是本書的重點,第四章的算法原理以及第五章和第六章的實戰(zhàn)練習都是基于該模型進行的。 第四章介紹深度學習中的常見算法,包括卷積算法、池化算法、批歸一化算法、激活函數算法、殘差結構算法、全連接算法以及 SoftMax算法等。每種算法都會詳細闡述使用背景和原理,并配以代碼實戰(zhàn)。 第五章為實戰(zhàn)章節(jié),將使用 Python語言從零搭建 ResNet50模型。為了全面展示模型涉及的算法和模型結構,在搭建過程中不會調用其他 Python庫,所有算法的實現均基于第四章實戰(zhàn)的代碼。在此基礎上,本章內容將更加注重模型結構的代碼編寫,以及模型推理前的圖像預處理操作,如縮放、裁剪和標準化等,同時,本章也將關注模型推理后的性能指標。 第六章為實戰(zhàn)章節(jié),但更加關注性能優(yōu)化部分。在第五章的基礎上,將使用C++語言重新搭建 ResNet50模型。由于模型中的算法全部用 C++編寫,模型的優(yōu)化自由度較高。因此本章進行模型性能調優(yōu),主要涉及向量指令、內存以及多線程調優(yōu)。經過 4個版本的優(yōu)化,C++手寫模型的性能達到了可接受水平。 后記總結了本書內容并進行了展望。 附錄為本書涉及知識點的補充介紹。 總體而言,閱讀本書不需要具備太多深度學習或人工智能的預備知識,但因其中涉及實戰(zhàn)項目,因此需要讀者具備一定的編程基礎。 本書有配套代碼供讀者學習使用,可以從化學工業(yè)出版社官網 —服務—資源下載模塊獲取本書的全部代碼。 感謝劉增華教授在本書編寫過程中給予的支持和幫助;感謝我的同學孫坤明、秦術攀對本書提出寶貴的修改建議;感謝我的太太魯槺銳女士,鼓勵我不斷創(chuàng)作,是我堅實的后盾。 由于作者水平有限,書中難免有疏漏之處,如在閱讀本書過程中有任何疑問,請發(fā)郵件至 dongdongcan2024@***。 董董燦 于北京
第一章 基礎知識 001~018 1.1 人工智能基礎 002 1.2 計算機視覺基礎 005 1.2.1 算法 006 1.2.2 性能 007 1.3 編程基礎 008 1.3.1 Python簡介 008 1.3.2 C++簡介 009 1.4 圖像基礎 010 1.4.1 像素 010 1.4.2 圖像特征 011 1.4.3 RGB圖 012 1.4.4 灰度圖 015 1.5 本章小結 016 第二章 傳統(tǒng)計算機視覺 019~034 2.1 概述 020 2.2 均值濾波 020 2.2.1 算法解析 020 2.2.2 代碼實戰(zhàn) 022 2.3 高斯濾波 024 2.3.1 算法解析 024 2.3.2 代碼實戰(zhàn) 025 2.4 邊緣檢測 027 2.5 圖像分割 029 2.6 本章小結 032 第三章 基于深度學習的計算機視覺 035~050 3.1 基礎概念 036 3.1.1 人工神經網絡 036 3.1.2 訓練和推理 037 3.1.3 正向傳播和反向傳播 039 3.2 卷積神經網絡 042 3.2.1 ResNet50模型 042 3.2.2 ResNet50中的算法 044 3.3 訓練一個卷積神經網絡 044 第四章 算法詳解與實戰(zhàn) 051~110 4.1 卷積 053 4.1.1 初識卷積 053 4.1.2 特征圖 055 4.1.3 感受野 056 4.1.4 乘累加運算 058 4.1.5 多維卷積公式 060 4.1.6 填充 063 4.1.7 步長 064 4.1.8 膨脹率 067 4.1.9 輸出尺寸公式 068 4.1.10 手寫卷積 071 4.1.11 卷積總結 073 4.2 池化 074 4.2.1 什么是池化 074 4.2.2 池化的作用 076 4.2.3 全局平均池化 077 4.2.4 手寫池化算法 079 4.3 Batch Normalization 080 4.3.1 BN的作用 080 4.3.2 訓練和推理中的BN 081 4.3.3 手寫B(tài)N 083 4.3.4 卷積與BN的融合 085 4.4 激活函數 087 4.4.1 非線性 088 4.4.2 ReLU 089 4.4.3 Sigmoid 091 4.5 殘差結構 093 4.5.1 殘差結構的作用 093 4.5.2 手寫殘差結構 094 4.6 全連接 097 4.6.1 全連接的作用 098 4.6.2 手寫全連接 100 4.7 SoftMax與交叉熵損失 101 4.7.1 SoftMax 102 4.7.2 交叉熵損失 105 4.8 本章小結 108 第五章 基于Python從零手寫模型 111~134 5.1 Python環(huán)境配置 112 5.2 Python目錄簡介 113 5.3 圖像加載 115 5.4 圖像預處理 116 5.4.1 圖像縮放和裁剪 116 5.4.2 圖像標準化 118 5.4.3 實戰(zhàn)代碼 119 5.5 模型準備 119 5.5.1 模型下載 119 5.5.2 權值保存 121 5.5.3 權值加載 123 5.6 手寫算法 126 5.7 搭建模型 126 5.8 模型預測 129 5.9 性能指標 131 5.10 卷積計算優(yōu)化 133 第六章 基于C++優(yōu)化模型 135~164 6.1 C++環(huán)境配置 137 6.2 C++目錄簡介 137 6.3 C++代碼使用 138 6.4 計算向量化 139 6.4.1 什么是向量計算 139 6.4.2 AVX2指令集 141 6.4.3 向量寄存器 141 6.4.4 向量數據加載 143 6.4.5 利用AVX2優(yōu)化卷積 145 6.4.6 性能評估 146 6.5 權值預加載優(yōu)化 147 6.5.1 權值加載 148 6.5.2 預加載操作 149 6.5.3 性能評估 152 6.6 內存優(yōu)化 153 6.6.1 內存申請機制 153 6.6.2 字符串優(yōu)化 154 6.6.3 動態(tài)內存優(yōu)化 155 6.6.4 性能評估 157 6.7 多線程優(yōu)化 157 6.7.1 多線程簡介 158 6.7.2 卷積的多線程拆分 159 6.7.3 性能評估 161 6.8 性能優(yōu)化總結 162 后記 165~170 附錄 171~183 1.1 One-hot編碼 172 1.2 快速搭建Ubuntu環(huán)境 174 1.2.1 安裝步驟 175 1.2.2 軟件管理 180 1.3 OpenCV介紹 181 1.3.1 什么是OpenCV 181 1.3.2 OpenCV環(huán)境搭建 182 參考文獻 184
ISBN:978-7-122-46868-0
語種:漢文
開本:16
出版時間:2025-03-01
裝幀:平
頁數:184