- Python計算機視覺和自然語言處理
- (西)阿爾瓦羅·莫雷納·阿爾貝羅拉 貢薩洛·莫利納·加列戈 烏奈·加雷·馬埃斯特雷
- 2556字
- 2021-06-15 15:33:03
前 言
本書首先介紹機器人背后的理論;然后介紹機器人開發的不同方法,以及計算機視覺的相關算法及其局限性;接下來介紹如何使用自然語言處理命令來控制機器人。本書還會介紹Word2Vec和GloVe這兩種詞嵌入技術、非數值數據、循環神經網絡(RNN),以及基于RNN的先進模型;介紹如何使用Keras創建簡單的Word2Vec模型,如何構建卷積神經網絡(CNN),以及如何通過數據增強和遷移學習來進行模型優化。本書還會簡單介紹機器人操作系統(ROS),帶領讀者構建用來管理機器人的對話代理,并將其集成在ROS中,實現將圖像轉換為文本和將文本轉換為語音的功能。最后,本書將介紹如何利用一段視頻來構建物體識別系統。
閱讀完本書之后,讀者將擁有足夠的技能來構建一個環境信息提取應用,并可以將其集成在ROS中。
學習目標
- 探索ROS并構建一個基礎的機器人系統。
- 利用自然語言處理(NLP)技術識別對話意圖。
- 學習并使用基于Word2Vec和GloVe的詞嵌入。
- 使用深度學習實現人工智能(AI)和物體識別。
- 利用CNN開發一個簡單的物體識別系統。
- 通過在ROS中集成AI來賦予機器人識別物體的能力。
目標讀者
本書適合想學習如何結合計算機視覺和深度學習技術來創建完整機器人系統的機器人工程師閱讀。閱讀本書時,如果讀者在Python和深度學習方面有一定基礎,那么會更利于理解本書中的內容;如果讀者擁有構建ROS的經驗,則是錦上添花。
本書概述
本書立足實踐,幫助讀者掌握足夠的工具來創建集成計算機視覺和NLP的機器人控制系統。本書分為3個部分:NLP、計算機視覺和機器人學。本書先介紹詳細的基礎知識,然后再探討高級問題。本書還涵蓋一些實踐項目,供讀者在對應情境下實踐并應用所掌握的新技能。
最低硬件需求
為保證最佳學習體驗,本書推薦計算機的硬件配置如下。
- 處理器:2 GHz雙核處理器或性能更好的處理器。
- 內存:8 GB RAM。
- 存儲空間:5 GB可用的硬盤空間。
- 良好的網絡連接。
本書推薦使用Google Colab訓練神經網絡模型。如果希望在自己的計算機上進行訓練,你將會需要NVIDIA GPU。
軟件需求
鑒于與ROS Kinetic兼容的問題,如果你希望使用Ubuntu 18.04,可以使用它支持的ROS版本Melodic。為了完成本書項目中的全部練習,你將需要安裝一些庫,例如NLTK(版本不高于3.4)、spaCy(版本不高于2.0.18)、gensim(版本不高于3.7.0)、NumPy(版本不高于1.15.4)、sklearn(版本不高于0.20.1)、Matplotlib(版本不高于3.0.2)、OpenCV(版本不高于4.0.0.21)、Keras(版本不高于2.2.4),以及Tensorflow(版本介于1.5到2.0之間)。這些庫的安裝步驟將會在相應的練習中說明。
如果希望在Ubuntu系統上使用YOLO,你將需要為你的GPU安裝NVIDIA驅動程序,并安裝NVIDIA的CUDA工具包。
安裝和設置
開始閱讀本書之前,你需要安裝以下這些軟件。
安裝Git LFS
你需要安裝Git LFS(Git Large File Storage,Git大文件存儲),以便從本書的GitHub倉庫中下載全部資源,并使用其中的圖像來訓練神經網絡模型。Git LFS會將音頻、視頻、數據集和圖像等類型的大文件替換為Git中的文本指針。
如果你還沒有復制倉庫,請按照如下步驟操作。
1.安裝Git LFS。
2.復制Git倉庫。
3.在倉庫文件夾中執行“gitlfs pull”。
4.完成。
如果你已經復制了倉庫,請按照如下步驟操作。
1.安裝Git LFS。
2.在倉庫文件夾中執行“gitlfs pull”。
3.完成。
Google Colaboratory(推薦)
如果條件允許,本書推薦使用Google Colaboratory。它是一個免費的Jupyter Notebook環境,無須配置,完全運行在云端,而且可以在GPU上運行。
Google Colaboratory的使用步驟如下。
1.將完整的GitHub倉庫上傳到你的Google Drive賬戶上,以便使用倉庫中的文件。注意,請確保你使用了Git LFS來加載所有文件。
2.移動到你想要新建Google Colab Notebook的文件夾位置,單擊New > More > Colaboratory。這樣就打開了一個Google Colab Notebook,并保存在相應的文件夾中,然后就可以使用Python、Keras或者其他已安裝的庫了。
3.如果希望安裝某個庫,可以使用pip軟件包安裝工具或者其他的命令行安裝工具,但是需要在開頭添加“!”。例如,可以執行“!pip install sklearn”來安裝scikit-learn。
4.如果希望從你的Google Drive中加載文件,可以在Google Colab的單元格中執行以下兩行代碼:
from google.colab import drive
drive.mount('drive')
5.打開單元格輸出中的鏈接,使用你創建Google Colab Notebook賬戶時使用的Google賬戶登錄。
6.可以使用ls命令列舉當前文件夾中的文件,如圖0.1所示;也可以使用cd命令來移動到文件上傳的位置。
7.這樣就可以使用Google Colab Notebook加載文件和執行任務了,就像是使用在同一個文件夾下打開的Jupyter Notebook。

圖0.1 使用ls命令的結果
安裝ROS Kinetic
按照以下步驟,在你的Ubuntu系統上安裝相應框架。
1.為在Ubuntu系統上安裝ROS軟件做準備:
sudo sh -c'echo"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc)
main" > /etc/apt/sources.list.d/ros-latest.list'
2.配置軟件包密鑰:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recvkey 421C365BD9FF1F717815A3895523BAEEB01FA116
3.更新系統:
sudo apt-get update
4.安裝完整框架,以免遺漏任何功能:
sudo apt-get install ros-kinetic-desktop-full
5.初始化rosdep并進行更新:
sudo rosdep init
rosdep update
6.可以在bashrc文件中添加相應的環境變量,以免在每次使用ROS時聲明:
echo"source /opt/ros/kinetic/setup.bash" >> ~/.bashrcsource ~/.bashrc

完成以上各步驟之后,可能需要重啟計算機才能使新配置生效。
7.啟動框架,檢查是否安裝正確:
roscore
配置TurtleBot

TurtleBot和你的ROS發行版(本書使用的是Kinetic Kame)之間可能存在兼容問題,但是沒關系,Gazebo可以模擬很多種機器人。你可以換成其他機器人,并嘗試在你的ROS發行版中使用。
下面是配置TurtleBot的步驟。
1.安裝依賴項:
sudo apt-get install ros-kinetic-turtlebotros-kinetic-turtlebot-apps
ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator
ros-kinetic-kobuki-ftdiros-kinetic-ar-track-alvar-msgs
2.將TurtleBot模擬器軟件包下載到你的catkin工作空間中:
cd ~/catkin_ws/src
git clone https://github.com/turtlebot/turtlebot_simulator
3.現在你應該可以在Gazebo中使用TurtleBot了。
如果在Gazebo中試圖對TurtleBot進行可視化時遇到了錯誤,可以從本書的GitHub倉庫中下載turtlebot_simulator文件夾并進行替換。
啟用ROS服務:
roscore
啟動TurtleBot World:
cd ~/catkin_ws
catkin_make
sourcedevel/setup.bash
roslaunchturtlebot_gazeboturtlebot_world.launch
Darknet基礎安裝
按照下面的步驟安裝Darknet。
1.下載框架:
git clone https://github.com/pjreddie/darknet
2.移動至下載下來的文件夾,執行編譯命令:
cd darknet
make
如果編譯過程順利完成,你將會看到類似圖0.2所示的輸出。

圖0.2 Darknet編譯輸出
Darknet高級安裝
如果希望實現本書每章的學習目標,你需要完成下面的安裝流程,這樣就可以使用GPU計算來實時檢測并識別物體了。開始之前,你需要在Ubuntu系統中安裝好一些依賴項,包括以下幾個。
- NVIDIA驅動程序:可以讓系統正確使用你的GPU。你可能已經知道,系統需要使用NVIDIA的GPU。
- CUDA:一個NVIDIA工具包,為構建需要GPU的應用提供了開發環境。
- OpenCV:一個自由的人工視覺庫,對圖像處理的幫助非常大。

請注意,所有這些依賴項都有多個版本,你需要找到與你使用的GPU和系統相兼容的版本。
一旦系統準備好,你就可以開始進行下面的高級安裝了。
1.下載框架(如果沒有在基礎安裝中下載的話):
git clone https://github.com/pjreddie/darknet
2.修改Makefile文件的前幾行,以啟用OpenCV和CUDA。修改之后的文件看起來應該是這樣:
GPU=1
CUDNN=0
OPENCV=1
OPENMP=0
DEBUG=0
3.保存對Makefile文件的修改,將其移動至darknet文件夾中并執行編譯命令:
cd darknet
make
現在你應該可以看到類似圖0.3所示的輸出。

圖0.3 啟用CUDA和OpenCV的Darknet編譯輸出
安裝YOLO
在安裝之前,你需要在Ubuntu系統上安裝一些依賴項(與在Darknet高級安裝部分中提到的相同)。
- 大話PLC(輕松動漫版)
- Learning LibGDX Game Development(Second Edition)
- Android應用程序開發與典型案例
- Rust實戰
- 認識編程:以Python語言講透編程的本質
- Python測試開發入門與實踐
- Android 7編程入門經典:使用Android Studio 2(第4版)
- Oracle從入門到精通(第5版)
- Unity 2D Game Development Cookbook
- SQL Server實用教程(SQL Server 2008版)
- Node.js開發指南
- Scratch·愛編程的藝術家
- Greenplum構建實時數據倉庫實踐
- Java從入門到精通(視頻實戰版)
- Mastering Wireless Penetration Testing for Highly Secured Environments