智能硬件與機(jī)器視覺:基于樹莓派、Python和OpenCV
定 價(jià):89 元
- 作者:陳佳林
- 出版時(shí)間:2020/11/1
- ISBN:9787111667698
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP302.7
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開本:16開
內(nèi)容簡(jiǎn)介
這是一部講解如何利用樹莓派、OpenCV、Python等軟硬件構(gòu)建智能硬件并在其上實(shí)現(xiàn)圖像分析、文字識(shí)別、人臉識(shí)別與追蹤、視頻監(jiān)控等機(jī)器視覺功能的實(shí)用性著作。
全書一共11章:
第1~4章首先講解了機(jī)器視覺在智能硬件領(lǐng)域的應(yīng)用場(chǎng)景以及智能硬件上4種常見的機(jī)器視覺技術(shù)方案;然后講解了樹莓派和OpenCV的安裝、配置以及其他準(zhǔn)備工作;*后通過一些簡(jiǎn)單的案例和代碼手把手教讀者如何使用OpenCV。
第5~11章是本書的核心內(nèi)容,通過幾個(gè)具體的綜合案例講解了如何使用樹莓派低成本玩轉(zhuǎn)如下機(jī)器視覺場(chǎng)景:拍攝照片和視頻、處理相機(jī)的原始數(shù)據(jù)、道路和商場(chǎng)的人流統(tǒng)計(jì)、道路信息的文字識(shí)別、人臉識(shí)別與追蹤、中央AI視頻監(jiān)控等。以上案例循序漸進(jìn),環(huán)環(huán)相扣,所有代碼均可在樹莓派上運(yùn)行,可輕松移植到任何ARM開發(fā)板上。
前言
第1章 智能硬件與機(jī)器視覺1
1.1 機(jī)器視覺在智能硬件領(lǐng)域的應(yīng)用1
1.1.1 機(jī)器視覺在智慧城市的應(yīng)用2
1.1.2 機(jī)器視覺與5G的協(xié)同效應(yīng)4
1.2 智能硬件上的機(jī)器視覺技術(shù)方案選型5
1.2.1 方案A:樹莓派5
1.2.2 方案B:BeagleBoard7
1.2.3 方案C:NVIDIA Jetson8
1.2.4 方案D:Google Coral Dev Board + Edge TPU9
1.3 本章小結(jié)10
第2章 樹莓派軟硬件準(zhǔn)備11
2.1 刷寫系統(tǒng)11
2.2 硬件連接14
2.3 Linux系統(tǒng)的基本操作17
2.3.1 Linux常用命令17
2.3.2 Vim編輯器的使用19
2.4 遠(yuǎn)程連接樹莓派20
2.4.1 使用SSH連接樹莓派21
2.4.2 使用VNC連接樹莓派24
2.5 使用相機(jī)模塊拍攝一張照片28
2.6 本章小結(jié)31
第3章 安裝OpenCV32
3.1 使用pip安裝OpenCV32
3.1.1 在Ubuntu上使用pip安裝OpenCV33
3.1.2 在macOS上使用pip安裝OpenCV35
3.1.3 在樹莓派上使用pip安裝OpenCV36
3.1.4 注意事項(xiàng)38
3.2 樹莓派源碼編譯安裝OpenCV 439
3.2.1 擴(kuò)展TF卡并安裝依賴39
3.2.2 下載OpenCV 442
3.2.3 為OpenCV 4搭建基于Python 3的虛擬環(huán)境42
3.2.4 構(gòu)建和編譯OpenCV 444
3.2.5 測(cè)試OpenCV 447
3.2.6 可能遇到的問題47
3.3 本章小結(jié)49
第4章 通過案例手把手入門OpenCV50
4.1 開始前的準(zhǔn)備50
4.1.1 環(huán)境準(zhǔn)備50
4.1.2 項(xiàng)目代碼準(zhǔn)備51
4.2 OpenCV圖像簡(jiǎn)單處理51
4.2.1 加載和顯示圖像51
4.2.2 訪問單個(gè)像素53
4.2.3 數(shù)組切片和裁剪54
4.2.4 調(diào)整圖像大小55
4.2.5 旋轉(zhuǎn)圖像57
4.2.6 平滑圖像60
4.2.7 在圖像上繪圖60
4.2.8 運(yùn)行第一個(gè)OpenCV教程的Python腳本64
4.3 OpenCV圖像對(duì)象計(jì)數(shù)64
4.3.1 目標(biāo)對(duì)象計(jì)數(shù)64
4.3.2 將圖像轉(zhuǎn)換為灰階65
4.3.3 邊緣檢測(cè)67
4.3.4 閾值處理68
4.3.5 檢測(cè)和繪制輪廓68
4.3.6 腐蝕和膨脹70
4.3.7 蒙版和按位操作71
4.3.8 運(yùn)行第二個(gè)OpenCV教程的Python腳本72
4.4 本章小結(jié)72
第5章 使用Python拍攝照片、視頻73
5.1 安裝picamera環(huán)境73
5.1.1 安裝Raspbian系統(tǒng)73
5.1.2 安裝其他系統(tǒng)74
5.1.3 升級(jí)相機(jī)固件74
5.1.4 安裝樹莓派攝像頭模組75
5.1.5 控制V1版的LED燈78
5.2 使用攝像頭拍攝照片78
5.2.1 捕獲照片并存為文件79
5.2.2 捕獲照片并存為流79
5.2.3 捕獲照片并存為PIL圖像80
5.2.4 捕獲調(diào)整了大小的圖像80
5.2.5 快拍和連拍的技巧81
5.2.6 捕獲延時(shí)攝影序列82
5.2.7 弱光下拍照82
5.2.8 網(wǎng)絡(luò)直播83
5.3 使用攝像頭拍攝視頻85
5.3.1 錄制視頻文件85
5.3.2 錄制視頻流86
5.3.3 錄制拆分為多個(gè)文件86
5.3.4 錄制循環(huán)視頻流87
5.3.5 錄制網(wǎng)絡(luò)視頻流88
5.3.6 視頻預(yù)覽疊加圖像加水印90
5.3.7 視頻輸出疊加文本、時(shí)間戳92
5.4 本章小結(jié)93
第6章 使用Python處理相機(jī)原始數(shù)據(jù)94
6.1 捕獲并直接編碼94
6.1.1 捕獲并編碼為numpy數(shù)組94
6.1.2 捕獲并編碼為opencv對(duì)象95
6.1.3 捕獲未編碼圖像(YUV)96
6.1.4 捕獲編碼圖像(RGB)99
6.1.5 自定義編碼器100
6.2 多種捕獲方法102
6.2.1 錄像時(shí)截屏102
6.2.2 多種分辨率下錄制103
6.2.3 特殊文件輸出103
6.2.4 Bayer-Raw數(shù)據(jù)獲取104
6.3 樹莓派相機(jī)的實(shí)際應(yīng)用109
6.3.1 自定義輸出:運(yùn)動(dòng)檢測(cè)相機(jī)的代碼實(shí)現(xiàn)109
6.3.2 循環(huán)視頻流切割:行車記錄儀碰撞預(yù)警功能111
6.3.3 快速捕獲和處理:連拍算法實(shí)現(xiàn)112
6.3.4 錄制未經(jīng)編碼的視頻:顏色檢測(cè)116
6.3.5 快速捕獲和流傳輸:網(wǎng)絡(luò)流直播117
6.3.6 網(wǎng)絡(luò)流媒體:結(jié)合網(wǎng)頁(yè)技術(shù)直播119
6.3.7 錄制運(yùn)動(dòng)矢量數(shù)據(jù):檢測(cè)視頻中的手勢(shì)121
6.4 常見錯(cuò)誤集錦125
6.5 本章小結(jié)128
第7章 道路、商場(chǎng)人流統(tǒng)計(jì)129
7.1 原理解析130
7.1.1 目標(biāo)檢測(cè)與目標(biāo)追蹤130
7.1.2 形心追蹤算法原理131
7.1.3 人群計(jì)數(shù)器原理133
7.2 軟件環(huán)境準(zhǔn)備134
7.3 使用Python實(shí)現(xiàn)人群計(jì)數(shù)器135
7.3.1 目錄結(jié)構(gòu)135
7.3.2 形心追蹤器類CentroidTracker的實(shí)現(xiàn)135
7.3.3 追蹤目標(biāo)類TrackableObject的實(shí)現(xiàn)141
7.3.4 人群計(jì)數(shù)器的實(shí)現(xiàn)141
7.3.5 樹莓派人群計(jì)數(shù)器測(cè)試149
7.4 本章小結(jié)149
第8章 道路信息文字識(shí)別150
8.1 EAST深度學(xué)習(xí)模型151
8.1.1 EAST模型簡(jiǎn)介151
8.1.2 相關(guān)軟件包的安裝152
8.1.3 項(xiàng)目工程結(jié)構(gòu)153
8.2 檢測(cè)圖片中的文字153
8.2.1 代碼編寫和解讀153
8.2.2 效果測(cè)試157
8.3 檢測(cè)視頻中的文字159
8.3.1 代碼編寫和解讀159
8.3.2 效果測(cè)試163
8.4 對(duì)文字內(nèi)容進(jìn)行識(shí)別164
8.4.1 Tesseract介紹和安裝164
8.4.2 使用Tesseract實(shí)現(xiàn)文字識(shí)別的原理166
8.4.3 代碼編寫和解讀168
8.4.4 效果測(cè)試173
8.5 本章小結(jié)175
第9章 簡(jiǎn)單人臉追蹤176
9.1 核心原理和效果簡(jiǎn)介176
9.2 環(huán)境準(zhǔn)備和代碼編寫177
9.2.1 使用Python實(shí)現(xiàn)形心追蹤算法177
9.2.2 人臉追蹤的實(shí)現(xiàn)182
9.3 測(cè)試人臉跟蹤效果186
9.3.1 測(cè)試效果186
9.3.2 缺陷與不足187
9.4 本章小結(jié)187
第10章 人臉追蹤安防攝像頭188
10.1 總體設(shè)計(jì)思路188
10.1.1 硬件組裝清單188
10.1.2 PID控制反饋算法189
10.1.3 人臉識(shí)別算法:基于Haar特征的級(jí)聯(lián)分類器190
10.2 軟件環(huán)境準(zhǔn)備193
10.2.1 將smbus安裝在py3cv3環(huán)境中193
10.2.2 打開樹莓派的Camera接口并安裝驅(qū)動(dòng)193
10.2.3 安裝gpiozero195
10.2.4 安裝imutils195
10.3 編寫代碼195
10.3.1 項(xiàng)目結(jié)構(gòu)196
10.3.2 實(shí)時(shí)調(diào)節(jié)反饋機(jī)制:PIDController196
10.3.3 在視頻中檢測(cè)到人臉198
10.3.4 使用GPIOZERO進(jìn)行舵機(jī)控制200
10.4 使用PID調(diào)節(jié)二自由度云臺(tái)206
10.4.1 PID參數(shù)調(diào)試206
10.4.2 運(yùn)行二自由度人臉追蹤攝像頭208
10.5 本章小結(jié)208
第11章 多路攝像頭中央AI監(jiān)控209
11.1 網(wǎng)絡(luò)傳輸OpenCV幀209
11.1.1 實(shí)現(xiàn)目標(biāo)和方法209
11.1.2 消息傳遞的概念210
11.1.3 項(xiàng)目實(shí)現(xiàn)流程211
11.2 ImageZMQ消息傳遞系統(tǒng)211
11.2.1 什么是ZMQ212
11.2.2 基于ZMQ的圖片消息傳遞庫(kù):ImageZMQ212
11.2.3 ImageZMQ依賴的軟件包212
11.2.4 項(xiàng)目整體介紹213
11.3 多路樹莓派攝像頭配置214
11.3.1 配置樹莓派客戶端的主機(jī)名214
11.3.2 樹莓派發(fā)送OpenCV視頻流216
11.3.3 將代碼放到樹莓派目錄中218
11.4 配置中央監(jiān)控室服務(wù)器端和Caffe框架218
11.4.1 安裝Caffe框架218
11.4.2 實(shí)現(xiàn)OpenCV視頻監(jiān)控接收器218
11.4.3 使用MobileNet SSD對(duì)幀進(jìn)行推理220
11.5 使用OpenCV實(shí)現(xiàn)視頻流網(wǎng)絡(luò)傳輸225
11.6 本章小結(jié)226