《Python計算機視覺實戰(zhàn)》以Python為平臺,以概述 案例的方式系統(tǒng)地對計算機視覺進行實戰(zhàn)分析。本書先介紹計算機視覺編程基礎(chǔ)知識,接著介紹在各個領(lǐng)域利用Python解決計算機視覺問題,后通過兩個經(jīng)典案例綜合分析計算機視覺應(yīng)用。為了幫助讀者更好地掌握相關(guān)知識,各章節(jié)都是通過概述與案例相結(jié)合的方式,讓讀者在掌握概念的同時舉一反三,掌握程序設(shè)計的方法,利用程序設(shè)計解決實際問題。 《Python計算機視覺實戰(zhàn)》適合計算機視覺初學(xué)者以及想深入研究Python計算機視覺的開發(fā)者閱讀參考。
計算機視覺(Computer Vision,CV)又稱機器視覺(Machine Vision,MV),是一門研究如何使機器看的科學(xué),更進一步地說,它是使用攝影機和計算機代替人眼對目標(biāo)進行識別、跟蹤和測量,并進一步使用計算機將目標(biāo)處理成為更適合人眼觀察或傳送給儀器檢測的圖像識別與處理技術(shù)。
深度學(xué)習(xí)源自經(jīng)典的神經(jīng)網(wǎng)絡(luò)架構(gòu),屬于機器學(xué)習(xí)領(lǐng)域,它通過不同形式的神經(jīng)網(wǎng)絡(luò),結(jié)合視覺大數(shù)據(jù)的大規(guī)模存量與不斷產(chǎn)生的增量進行訓(xùn)練,自動提取細(xì)粒度的特征,形成抽象化的視覺描述,目前在視覺分析方面取得了很大的進步,是當(dāng)前人工智能爆炸性發(fā)展的內(nèi)核驅(qū)動。就技術(shù)而言,目前的計算機視覺可分為以下幾個大方向:
圖像分類;
目標(biāo)檢測;
圖像分割;
圖像重構(gòu);
圖像生成;
人臉;
其他。
隨著大數(shù)據(jù)及人工智能技術(shù)的不斷發(fā)展,計算機視覺以其可視性、規(guī)模性、普適性逐步成為AI實際應(yīng)用的關(guān)鍵領(lǐng)域之一,在理論研究和工程應(yīng)用方面均迅猛發(fā)展。
Python是一種計算機程序設(shè)計語言,是一種面向?qū)ο蟮膭討B(tài)類型語言,它在設(shè)計上堅持了清晰和整齊劃一的風(fēng)格,這使得Python成為一種易讀、易維護,并且被大量用戶歡迎的、用途廣泛的編程語言。隨著Python版本的不斷更新和新功能的添加,越來越多地被用于獨立的、大型項目的開發(fā)。自從20世紀(jì)90年代初Python語言誕生至今,它已被廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。
自從電子計算機誕生以來,通過計算機仿真來模擬人類的視覺便成為非常熱門且頗具挑戰(zhàn)性的研究課題。隨著數(shù)碼相機、智能手機等硬件設(shè)備的普及,圖像以其易于采集、信息相關(guān)性大、抗干擾能力強等特點得到越來越廣泛的應(yīng)用。信息化和數(shù)字化時代已經(jīng)來臨,隨著國家對人工智能領(lǐng)域的投入力度加大,計算機視覺處理的需求量也會越來越大,應(yīng)用也將越來越廣泛。
【本書特色】
因為Python的易用、簡單、普適等特性,所以本書的計算機視覺實現(xiàn)是使用Python語言完成的。本書編寫特點主要表現(xiàn)在如下幾方面。
(1) 案例涵蓋面廣、實用,可擴展性、可讀性強。
本書以概述 案例的形式編寫,充分強調(diào)案例的實用性及程序的可擴展性,所選案例大多數(shù)來自日常生活,應(yīng)用性強。另外,書中每個案例的程序都經(jīng)過調(diào)試與測試,同時程序代碼中添加了大量的解釋說明,可讀性強。
(2) 點面完美結(jié)合,兼顧性強。
本書點面兼顧,涵蓋了數(shù)字圖像處理中幾乎所有的基本模塊,并涉及視頻處理、配準(zhǔn)拼接、數(shù)字水印等高級圖像處理方面的內(nèi)容,全面講解了基于Python進行計算機視覺應(yīng)用的原理及方法,內(nèi)容做到完美銜接與統(tǒng)籌兼顧,可使讀者實現(xiàn)由點到面的發(fā)散性延伸。
【本書內(nèi)容】
全書共20章,每章的主要內(nèi)容包括:
第1章介紹了計算機視覺編程基礎(chǔ)知識,主要包括計算機視覺概述、Python編程軟件、幾個常用庫、Python圖像處理類庫等內(nèi)容。
第2章介紹了圖像去霧技術(shù),主要包括空域圖像增強、時域圖像增強、色階調(diào)整去霧技術(shù)等內(nèi)容。
第3章介紹了形態(tài)學(xué)的去噪,主要包括圖像去噪的方法、數(shù)學(xué)形態(tài)學(xué)的原理、形態(tài)學(xué)運算等內(nèi)容。
第4章介紹了霍夫變換檢測,主要包括霍夫檢測直線、霍夫檢測圓等內(nèi)容。
第5章介紹了車牌分割定位識別,主要包括車牌圖像處理、定位原理、字符處理、字符識別等內(nèi)容。
第6章介紹了分水嶺實現(xiàn)醫(yī)學(xué)診斷,主要包括分水嶺算法、分水嶺醫(yī)學(xué)診斷案例分析等內(nèi)容。
第7章介紹了手寫體數(shù)字識別,主要包括卷積神經(jīng)網(wǎng)絡(luò)的概述、SVC識別手寫體數(shù)字等內(nèi)容。
第8章介紹了圖片中的英文識別,主要包括OCR的介紹、OCR算法原理、OCR識別經(jīng)典應(yīng)用、獲取驗證碼等內(nèi)容。
第9章介紹了小波技術(shù)的圖像視覺處理,主要包括小波技術(shù)概述、小波實現(xiàn)去噪、圖像融合處理等內(nèi)容。
第10章介紹了圖像壓縮與分割處理,主要包括SVD圖像壓縮處理、PCA圖像壓縮處理、KMeans聚類圖像壓縮處理等內(nèi)容。
第11章介紹了圖像特征匹配,主要包括相關(guān)概念、圖像匹配等內(nèi)容。
第12章介紹了角點特征檢測,主要包括Harris的基本原理、Harris算法流程、Harris角點的性質(zhì)、角點檢測函數(shù)、FAST特征檢測等內(nèi)容。
第13章介紹了運動目標(biāo)自動檢測,主要包括幀間差分法、背景差分法、光流法等內(nèi)容。
第14章介紹了水印技術(shù),主要包括水印技術(shù)的概念、數(shù)字水印技術(shù)的原理、典型的數(shù)字水印算法、水印技術(shù)案例分析等內(nèi)容。
第15章介紹了大腦影像分析,主要包括閾值分割、區(qū)域生長、區(qū)域生長分割大腦影像案例分析等內(nèi)容。
第16章介紹了自動駕駛應(yīng)用,主要包括理論基礎(chǔ)、環(huán)境感知、行為決策、路徑規(guī)則、運動控制及自動駕駛案例分析等內(nèi)容。
第17章介紹了目標(biāo)檢測,主要包括RCNN系列、YOLO檢測等內(nèi)容。
第18章介紹了人機交互,主要包括Tkinter GUI編程組件、布局管理器、事件處理、Tkinter常用組件、菜單等內(nèi)容。
第19章介紹了深度學(xué)習(xí)的應(yīng)用,主要包括理論部分、AlexNet網(wǎng)絡(luò)及案例分析、CNN拆分?jǐn)?shù)據(jù)集案例分析等內(nèi)容。
第20章介紹了視覺分析綜合應(yīng)用案例,主要包括合金彈頭游戲、停車場識別計費系統(tǒng)等內(nèi)容。
【配套資源】
本書提供教學(xué)課件、程序代碼等配套資源,可以關(guān)注人工智能科學(xué)與技術(shù)微信公眾號,在知識資源下載配書資源菜單獲取本書配套資源(也可以到清華大學(xué)出版社網(wǎng)站本書頁面下載)。
本書由佛山科學(xué)技術(shù)學(xué)院張德豐編著。
由于時間倉促,加之作者水平有限,疏漏之處在所難免。在此,誠懇地期望得到各領(lǐng)域的專家和廣大讀者的批評指正,聯(lián)系郵箱workemail6@163.com。
編者
2021年5月
第1章計算機視覺編程基礎(chǔ)知識
1.1計算機視覺概述
1.1.1什么是計算機視覺
1.1.2發(fā)展現(xiàn)狀
1.1.3計算機視覺用途
1.1.4相關(guān)學(xué)科
1.1.5計算機視覺的經(jīng)典問題
1.2Python編程軟件
1.2.1Python應(yīng)用領(lǐng)域
1.2.2發(fā)展歷程
1.2.3Python的安裝
1.2.4使用pip安裝第三方庫
1.3幾個常用庫
1.3.1numpy庫
1.3.2scipy庫
1.3.3pandas庫
1.3.4scikitlearn庫
1.4Python圖像處理類庫
1.4.1轉(zhuǎn)換圖像格式
1.4.2創(chuàng)建縮略圖
1.4.3復(fù)制并粘貼圖像區(qū)域
1.4.4調(diào)整尺寸和旋轉(zhuǎn)
1.5Matplotlib庫
1.6Numpy圖像處理
1.6.1灰度變換
1.6.2圖像縮放
1.6.3直方圖均衡化
1.6.4圖像平均
1.6.5圖像主成分分析
1.7Scipy圖像處理
1.7.1圖像模糊
1.7.2圖像導(dǎo)數(shù)
1.7.3形態(tài)學(xué)
1.7.4io和misc模塊
1.8圖像降噪
第2章圖像去霧技術(shù)
2.1空域圖像增強
2.1.1空域低通濾波
2.1.2空域高通濾波器
2.2時域圖像增強
2.3色階調(diào)整去霧技術(shù)
2.3.1概述
2.3.2暗通道去霧原理
2.3.3暗通道去霧實例
2.4直方圖均衡化去霧技術(shù)
2.4.1色階調(diào)整原理
2.4.2自動色階圖像處理算法
第3章形態(tài)學(xué)的去噪
3.1圖像去噪的方法
3.2數(shù)學(xué)形態(tài)學(xué)的原理
3.2.1腐蝕與膨脹
3.2.2開閉運算
3.2.3禮帽/黑帽操作
3.3形態(tài)學(xué)運算
3.3.1邊緣檢測定義
3.3.2檢測拐角
3.4權(quán)重自適應(yīng)的多結(jié)構(gòu)形態(tài)學(xué)去噪
第4章霍夫變換檢測
4.1霍夫檢測直線
4.1.1霍夫檢測直線的思想
4.1.2實際應(yīng)用
4.2霍夫檢測圓
第5章車牌分割定位識別
5.1基本概述
5.2車牌圖像處理
5.2.1圖像灰度化
5.2.2二值化
5.2.3邊緣檢測
5.2.4形態(tài)學(xué)運算
5.2.5濾波處理
5.3定位處理
5.4字符處理
5.4.1閾值分割
5.4.2閾值化分割
5.4.3歸一化處理
5.4.4字符分割經(jīng)典應(yīng)用
5.5字符識別
5.5.1模板匹配的字符識別
5.5.2字符識別車牌經(jīng)典應(yīng)用
第6章分水嶺實現(xiàn)醫(yī)學(xué)診斷
6.1分水嶺算法
6.1.1模擬浸水過程
6.1.2模擬降水過程
6.1.3過度分割問題
6.1.4標(biāo)記分水嶺算法
6.2分水嶺醫(yī)學(xué)診斷案例分析
第7章手寫體數(shù)字識別
7.1卷積神經(jīng)網(wǎng)絡(luò)概述
7.1.1卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
7.1.2卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
7.1.3卷積神經(jīng)網(wǎng)絡(luò)識別手寫體數(shù)字
7.2SVM識別手寫體數(shù)字
7.2.1支持向量機的原理
7.2.2函數(shù)間隔
7.2.3幾何間隔
7.2.4間隔化
7.2.5SVC識別手寫體數(shù)字實例
第8章圖片中英文識別
8.1OCR介紹
8.2OCR算法原理
8.2.1圖像預(yù)處理
8.2.2圖像分割
8.2.3特征提取和降維
8.2.4分類器
8.2.5算法步驟
8.3OCR識別經(jīng)典應(yīng)用
8.4獲取驗證碼
第9章小波技術(shù)的圖像視覺處理
9.1小波技術(shù)概述
9.2小波實現(xiàn)去噪
9.2.1小波去噪的原理
9.2.2小波去噪的方法
9.2.3小波去噪案例分析
9.3圖像融合處理
9.3.1概述
9.3.2小波融合案例分析
第10章圖像壓縮與分割處理
10.1SVD圖像壓縮處理
10.1.1特征分解
10.1.2奇異值分解
10.1.3奇異值分解應(yīng)用
10.2PCA圖像壓縮處理
10.2.1概述
10.2.2主成分降維原理
10.2.3分矩陣重建樣本
10.2.4主成分分析圖像壓縮
10.2.5主成分壓縮圖像案例分析
10.3KMeans聚類圖像壓縮處理
10.3.1KMeans算法的原理
10.3.2KMeans算法的要點
10.3.3KMeans算法的缺點
10.3.4KMeans聚類圖像壓縮案例分析
10.4KMeans聚類實現(xiàn)圖像分割
10.4.1KMeans聚類分割灰度圖像
10.4.2KMeans聚類對比分割彩色圖像
第11章圖像特征匹配
11.1相關(guān)概念
11.2圖像匹配
11.2.1基于灰度的匹配
11.2.2基于模板的匹配
11.2.3基于變換域的匹配
11.2.4基于特征的匹配案例分析
第12章角點特征檢測
12.1Harris的基本原理
12.2Harris算法流程
12.3Harris角點的性質(zhì)
12.4Harris檢測角點案例分析
12.5角點檢測函數(shù)
12.6ShiTomasi角點檢測
12.7FAST特征檢測
第13章運動目標(biāo)自動檢測
13.1幀間差分法
13.1.1原理
13.1.2三幀差分法
13.1.3幀間差分法案例分析
13.2背景差分法
13.3光流法
第14章水印技術(shù)
14.1水印技術(shù)的概念
14.2數(shù)字水印技術(shù)的原理
14.3典型的數(shù)字水印算法
14.3.1空間域算法
14.3.2變換域算法
14.4數(shù)字水印攻擊和評價
14.5水印技術(shù)案例分析
第15章大腦影像分析
15.1閾值分割
15.2區(qū)域生長
15.3基于閾值預(yù)分割的區(qū)域生長
15.4區(qū)域生長分割大腦影像案例分析
第16章自動駕駛應(yīng)用
16.1理論基礎(chǔ)
16.2環(huán)境感知
16.3行為決策
16.4路徑規(guī)則
16.5運動控制
16.6自動駕駛案例分析
第17章目標(biāo)檢測
17.1RCNN系列
17.1.1RCNN算法概述
17.1.2RCNN的數(shù)據(jù)集實現(xiàn)
17.2YOLO檢測
17.2.1概述
17.2.2統(tǒng)一檢測
17.2.3基于OpenCV實現(xiàn)自動檢測案例分析
第18章人機交互
18.1Tkinter GUI編程組件
18.2布局管理器
18.2.1Pack布局管理器
18.2.2Grid布局管理器
18.2.3Place布局管理器
18.3事件處理
18.3.1簡單的事件處理
18.3.2事件綁定
18.4Tkinter常用組件
18.4.1ttk組件
18.4.2Variable類
18.4.3compound選項
18.4.4Entry和Text組件
18.4.5Radiobutton和Checkbutton組件
18.4.6Listbox和Combobox組件
18.4.7Spinbox組件
18.4.8Scale組件
18.4.9Labelframe組件
18.4.10OptionMenu組件
18.5菜單
18.5.1窗口菜單
18.5.2右鍵菜單
18.6Canvas繪圖
第19章深度學(xué)習(xí)的應(yīng)用
19.1理論部分
19.1.1分類識別
19.1.2目標(biāo)檢測的任務(wù)
19.2AlexNet網(wǎng)絡(luò)及案例分析
19.3CNN拆分?jǐn)?shù)據(jù)集案例分析
第20章視覺分析綜合應(yīng)用案例
20.1合金彈頭游戲
20.1.1游戲界面組件
20.1.2增加角色
20.1.3合理繪制地圖
20.1.4增加音效
20.1.5增加游戲場景
20.2停車場識別計費系統(tǒng)
20.2.1系統(tǒng)設(shè)計
20.2.2實現(xiàn)系統(tǒng)
參考文獻