Python 電腦視覺和自然語言處理 開發機器人應用系統 (Artificial Vision and Language Processing for Robotics)

álvaro Morena Alberola,Gonzalo Molina Gallego

  • Python 電腦視覺和自然語言處理 開發機器人應用系統 (Artificial Vision and Language Processing for Robotics)-preview-1
  • Python 電腦視覺和自然語言處理 開發機器人應用系統 (Artificial Vision and Language Processing for Robotics)-preview-2
Python 電腦視覺和自然語言處理 開發機器人應用系統 (Artificial Vision and Language Processing for Robotics)-preview-1

買這商品的人也買了...

商品描述

機器人是人工智能時代的重要產物,為人類的工作和生活提供了非常多的助力。對於智能機器人而言,視覺識別能力和對話能力是非常重要的兩個方面,本書就是基於這兩個技術展開介紹,並通過一系列的編程案例和實踐項目,引導讀者高效掌握機器人的開發技巧。

本書基於Python語言進行講解,結合機器人操作系統(ROS)平臺給出了豐富多樣的機器人開發方案。本書立足於機器人的視覺和語言處理,通過OpenCV、自然語言處理、循環神經網絡、捲積神經網絡等技術提高機器人的視覺識別能力和對話能力。全書包括多個練習和項目,通過知識點和編程實踐相結合的方式,快速帶領讀者掌握實用的機器人開發技術。

本書適合機器人或智能軟硬件研發領域的工程師閱讀,也適合高校人工智能相關專業的師生閱讀。

作者簡介

阿爾瓦羅·莫雷納·阿爾貝羅拉(álvaro Morena Alberola)是一名熱愛機器人學和人工智能的計算機工程師,目前從事軟件開發工作。
álvaro對基於人工視覺的人工智能(AI)核心部分非常感興趣,並且喜歡嘗試新技術和先進的工具。
對他來說,機器人可以讓人類的生活更輕鬆,並且可以幫助人們完成他們自己無法完成的任務。


貢薩洛·莫利納·加列戈(Gonzalo Molina Gallego)是一名計算機科學專業的碩士,主修人工智能和自然語言處理。
他構建過基於文本的對話系統和對話代理,擅長提供方法論層面的建議。
目前,他致力於研究跨領域對話系統方向的新技術。
Gonzalo認為,未來的用戶界面是基於對話的。


烏奈·加雷·馬埃斯特雷(Unai Garay Maestre)是一名計算機科學專業的碩士,主修人工智能和計算機視覺。
在為2018年的CIARP大會貢獻的一篇論文中,他提出了一種使用變分自編碼器進行數據增強的新方法。
他同時是一名機器學習工程師,使用深度神經網絡處理圖像。

目錄大綱

第1章機器人學基礎1
1.1簡介1
1.2機器人學的歷史2
1.3人工智能3
1.3.1自然語言處理簡介4
1.3.2計算機視覺簡介5
1.3.3機器人的類型5
1.3.4機器人的硬件和軟件6
1.4機器人定位8
1.4.1練習1:計算機器人的位置10
1.4.2如何進行機器人開發12
1.4.3練習2:使用Python計算輪子走過的距離12
1.4.4練習3:使用Python計算機器人的*終位置13
1.4.5項目1:使用Python和測距法進行機器人定位15
1.5小結16

第2章計算機視覺17
2.1簡介17
2.2計算機視覺基本算法18
2.2.1圖像相關術語18
2.2.2 OpenCV 19
2.2.3閾值化19
2.2.4練習4:對圖像應用各種閾值化操作21
2.2.5形態學變換25
2.2.6練習5:對圖像應用形態學變換27
2.2.7模糊(平滑) 31
2.2.8練習6:對圖像應用模糊方法32
2.2.9練習7:加載圖像並應用所學的各種方法34
2.3機器學習簡介38
2.3.1決策樹和提升方法38
2.3.2練習8:使用決策樹、隨機森林和AdaBoost進行數字預測41
2.3.3人工神經網絡47
2.3.4練習9:構建第一個神經網絡51
2.3.5項目2:對Fashion-MNIST數據集中的10種衣物進行分類54
2.4小結56

第3章自然語言處理57
3.1簡介57
3.1.1自然語言處理58
3.1.2自然語言處理的兩個部分59
3.1.3 NLP的各層次60
3.2 Python中的NLP 61
3.2.1自然語言工具包(NLTK) 61
3.2.2練習10:NLTK入門62
3.2.3 spaCy 65
3.2.4練習11:spaCy入門67
3.3主題建模70
3.3.1詞頻-逆文檔頻率(TF-IDF) 70
3.3. 2潛在語義分析(LSA) 71
3.3.3練習12:使用Python進行主題建模72
3.3.4項目3:處理一個語料庫75
3.4語言建模76
3.4.1語言模型簡介76
3.4.2二元模型77
3.4.3 N元模型77
3.4 .4計算概率78
3.4.5練習13:創建一個二元模型80
3.5小結83

第4章NLP神經網絡84
4.1簡介84
4.2循環神經網絡86
4.2.1循環神經網絡(RNN)簡介87
4.2.2循環神經網絡原理87
4.2.3 RNN架構89
4.2.4長距離依賴問題89
4.2.5練習14:使用RNN預測房價90
4.2.6長短期記憶網絡93
4.2.7練習15:預測數學函數的下一個解94
4.3神經語言模型100
4.3.1神經語言模型簡介100
4.3.2 RNN語言模型102
4.3.3練習16:對一個小語料庫進行編碼103
4.3.4 RNN的輸入維度107
4.3.5項目4:預測字符序列中的下一個字符109
4.4小結111

第5章計算機視覺中的捲積神經網絡112
5.1簡介112
5.2 CNN基礎113
5.3構建第一個CNN 118
練習17:構建一個CNN 119
5.4改進模型的方法:數據增強124
5.4.1練習18 :利用數據增強改進模型125
5.4.2項目5:使用數據增強來正確對花朵圖像進行分類134
5.5 *先進的模型:遷移學習137
練習19:基於遷移學習對鈔票進行分類139
5.6小結144

第6章機器人操作系統(ROS) 146
6.1簡介146
6.2 ROS基本概念147
6.3 ROS基本命令148
6.4安裝和配置149
6.5 Catkin工作空間和軟件包149
6.6發布者和訂閱者150
6.6.1練習20:編寫簡單的發布者和訂閱者151
6.6.2練習21:編寫較複雜的發布者和訂閱者154
6.7模擬器159
6.7.1練習22:Turtlebot配置159
6.7.2練習23:模擬器和傳感器161
6.7.3項目6:模擬器和傳感器163
6.8小結164

第7章構建基於文本的對話系統(聊天機器人) 165
7.1簡介165
7.2向量空間中的詞表示166
7.2.1詞嵌入166
7.2.2餘弦相似度167
7.2.3 Word2Vec 168
7.2.4 Word2Vec的問題169
7.2.5 Gensim 169
7.2.6練習24:創建詞嵌入169
7.2.7全局向量(GloVe) 173
7.2.8練習25:使用預訓練的GloVe模型觀察詞語在平面上的分佈174
7.3對話系統179
7.3.1聊天機器人的開發工具180
7.3.2對話代理的類型180
7.3.3創建基於文本的對話系統182
7.3.4練習26:創建第一個對話代理184
7.3.5項目7:創建一個用來控制機器人的對話代理189
7.4小結191

第8章利用基於CNN的物體識別來指導機器人193
8.1簡介193
8.2多物體識別和檢測194
8.2.1練習27:構建第一個多物體檢測和識別系統195
8.2.2 ImageAI 200
8.3視頻中的多物體識別和檢測202
項目8:視頻中的多物體檢測和識別206
8.4小結206

第9章機器人的計算機視覺208
9.1簡介208
9.2 Darknet 209
Darknet基礎安裝209
9.3 YOLO 210
9.3.1使用YOLO進行預測211
9.3.2在攝像頭上使用YOLO 215
9.3.3練習28:YOLO編程215
9.3.4練習29:在ROS中集成YOLO 219
9.3.5項目9:機器人保安223
9.4小結224

附錄本書項目概覽225