人工智能+機器人入門與實戰(修訂版)用樹莓派+Python+OpenCV製作電腦視覺機器人

陳宇航

  • 人工智能+機器人入門與實戰(修訂版)用樹莓派+Python+OpenCV製作電腦視覺機器人-preview-1
  • 人工智能+機器人入門與實戰(修訂版)用樹莓派+Python+OpenCV製作電腦視覺機器人-preview-2
人工智能+機器人入門與實戰(修訂版)用樹莓派+Python+OpenCV製作電腦視覺機器人-preview-1

相關主題

商品描述

樹莓派是一款基於 ARM 架構、Linux 系統的極簡電腦,既可以用於電腦編程教育,也可以作為機器人的控制核心。第一種運行於樹莓派上的編程語言是 Python,這是當前人工智能領域流行的編程語言之一。機器視覺是人工智能中重要的細分研究領域,OpenCV 則是當前機器視覺領域主流的開源處理庫,可以方便地用於電腦圖像處理,並應用於面部識別、目標識別等具體問題。本書介紹在樹莓派硬件上使用Python 語言,借助 OpenCV 庫編程,來實現具有機器視覺功能(識別和抓取特定顏色物體、識別人臉、識別特定人臉、進行面部跟蹤)的智能機器人。

本書力求通過一系列不同層次的軟硬件任務,由淺入深地講解人工智能的概念,同時覆蓋 Linux系統操作、Python 編程、機器人系統搭建等多方面的綜合知識。在本書案例中使用的主要硬件載體是可在桌面上固定運轉的雙軸雲台和三軸機械臂等,它們可以代表一類智能機器人的形態。本書遵循開源、分享的創客精神,所有的硬件材料和軟件內容均可以從公共平臺獲取,讀者在充分理解的基礎上,不必局限於本書所列硬件,可自行獲取類似設備完成項目。

本書可以作為中小學STEAM人工智能教育的一本基礎讀物,也可以作為中高職院校相關專業學生的參考書。

作者簡介

陈宇航:浙江大学物理学博士。擅长程序算法设计,了解人工智能前沿理念。主持开发过多种智能硬件套件及其配套课程。致力于青少年科技教育,帮助学生更好地迎接人工智能时代的挑战。

侯俊萍:浙江大学教育学硕士。奇异思维创客课程设计师。专注于青少年STEAM教育,擅长将国际先进教育理念与前沿科技结合,进行创客课程研发与教学。

叶昶:浙江工业大学自动化专业。奇异思维创客课程设计师。参与机器人、3D打印类创客课程内容设计,并负责青少年创客课程教学,具有丰富的讲课经验。

目錄大綱

目 錄

第 1章 走近人工智能 1

1.1 初識人工智能 2

1.1.1 人工智能是什麽 2

1.1.2 人工智能的發展歷程 2

1.1.3 人工智能的應用現狀 4

1.2 機器人世界 5

1.2.1 機器人的發展歷史 5

1.2.2 什麽是智能機器人 6

1.2.3 常見的智能機器人控制核心 7

第 2章 認識樹莓派 9

2.1 樹莓派是什麽 10

2.2 樹莓派 3B+主控板簡介 11

2.3 樹莓派的連接與開機 12

2.4 Linux操作系統簡介 13

第3章 Python編程基礎 16

3.1 什麽是編程語言 17

3.2 認識 Python語言 18

3.3 在樹莓派中使用 Python編程 19

3.3.1 交互式編程 20

3.3.2 使用算術運算符進行運算 20

3.3.3 用Geany編輯器編寫 Python程序 21

3.4 Python中的變量 23

3.4.1 變量的賦值 23

3.4.2 Python的數據類型 24

3.5 if條件結構 25

3.5.1 條件的真與假 25

3.5.2 比較運算符 26

3.5.3 if條件結構的格式與縮進 26

3.6 while循環結構 28

3.7 Python中的函數 28

3.7.1 自定義一個函數 29

3.7.2 給 Python程序加上註釋 30

第4章 Python編程與樹莓派硬件控制 32

4.1 樹莓派的GPIO接口 33

4.2 LED模塊與按鈕模塊的連接 33

4.3 點亮一盞小燈 35

4.3.1 導入 Python擴展包 35

4.3.2 LED顯示彩色的原理 35

4.3.3 對輸入/輸出設備的設定 36

4.3.4 讓小燈閃爍起來 37

4.4 用按鈕控制燈的狀態 38

4.4.1 按鈕狀態的讀取與判斷 38

4.4.2 兩個按鈕的控制與邏輯運算符 39

4.5 做一個搶答器吧 40

4.5.1 延時點亮小燈 40

4.5.2 判斷獲勝者與 break關鍵詞 41

4.5.3 Python中的隨機數 41

第5章 機器視覺入門 45

5.1 機器視覺與圖像識別 46

5.1.1 機器是怎樣“看”的 46

5.1.2 機器視覺技術的常見應用 48

5.2 認識OpenCV 49

5.2.1 OpenCV簡介 49

5.2.2 視頻的幀與分辨率 50

5.2.3 用樹莓派攝像頭調取圖像 51

5.3 用OpenCV識別顏色 53

5.3.1 HSV顏色空間 53

5.3.2 圖像的二值化 54

5.3.3 找到輪廓的位置 55

5.4 做一個魔法棒吧 57

5.4.1 用OpenCV繪制小圓點 57

5.4.2 Python中的列表與元組 58

5.4.3 for循環遍歷結構 59

5.4.4 按鍵值與鍵盤控制 60

第6章 機械臂智能分揀任務 64

6.1 認識機械臂 65

6.1.1 應用廣泛的機械臂 65

6.1.2 三軸機械臂結構分析 65

6.2 程序控制機械臂的運動 68

6.2.1 認識舵機 68

6.2.2 舵機的線路連接 69

6.2.3 舵機控製程序 70

6.2.4 機械臂頭部的執行裝置--電控吸盤 71

6.2.5 用示教方式完成物料分揀 73

6.3 用樹莓派控制機械臂 74

6.3.1 硬件連接 74

6.3.2 程序編寫 76

6.4 用攝像頭找到木塊位置 77

6.4.1 安裝攝像頭 77

6.4.2 調用攝像頭的圖像並識別木塊位置 79

6.5 使吸盤位於物體正上方 80

6.5.1 當物體位於吸盤正下方時,它的坐標是多少 80

6.5.2 控制 1號舵機左右運動,使物體x 坐標為 320 81

6.5.3 控制機械臂等高運動,使物體y 坐標為 150 84

6.6 抓取和放置物體 88

6.7 擴展任務 89

第7章 製作人臉追蹤機器人 92

7.1 人臉識別知多少 93

7.2 使用膚色檢測找到人臉 94

7.3 使用哈爾特徵檢測找到人臉 96

7.4 人臉追蹤機器人初制 99

7.5 什麽是機器學習 106

7.5.1 電腦如何識別一隻貓 106

7.5.2 機器學習的分類 108

7.6 認識人工神經網絡 109

7.7 識別特定的人臉 113

7.8 擴展任務--屬於你的機器人 117

7.8.1 讓機器人認識你 117

7.8.2 讓機器人發出聲音 118

附錄 “試一試”環節參考程序 123