賴樹旺

摘 要:隨著計算機技術的發展和計算機視覺原理的廣泛應用,利用計算機圖像處理技術對目標進行實時跟蹤研究越來越熱門。本文介紹如何運用Raspberry Pi實現目標檢測,從Raspberry Pi系統的安裝、環境配置及其TensorFlow下載與安裝、軟件運行環境及其代碼的實現來展現基于Raspberry Pi與TensorFlow的目標檢測應用。為學習Raspberry Pi上部署目標檢測應用提供一個比較好的實踐案例。
關鍵詞:隨著計算機技術的發展和計算機視覺原理的廣泛應用,利用計算機圖像處理技術對目標進行實時跟蹤研究越來越熱門。本文介紹如何運用Raspberry Pi實現目標檢測,從Raspberry Pi系統的安裝、環境配置及其TensorFlow下載與安裝、軟件運行環境及其代碼的實現來展現基于Raspberry Pi與TensorFlow的目標檢測應用。為學習Raspberry Pi上部署目標檢測應用提供一個比較好的實踐案例。
1Raspberry Pi簡述
Raspberry Pi(中文名為“樹莓派”,簡寫為RPi,(或者RasPi / RPI)是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基于Linux。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一“派”難求。別看其外表“嬌小”,內“心”卻很強大,視頻、音頻等功能通通皆有,可謂是“麻雀雖小,五臟俱全”。它是一款基于ARM的微型電腦主板,以SD/MicroSD卡為內存硬盤,卡片主板周圍有1/2/4個USB接口和一個10/100以太網接口(A型沒有網口),可連接鍵盤、鼠標和網線,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能只需接通電視機和鍵盤,就能執行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能[1]。
2 Raspberry Pi系統安裝
Raspberry Pi購買回來只是一塊板子,里面不帶有任何系統,需要我們把系統下載安裝到SD卡中插入Raspberry Pi才可以使用。教程如下。
(1)登錄Raspberry Pi官網:https://www.raspberrypi.org/downloads
(2)選擇下載Raspbian下的Raspbian Buster with desktop and recommended software系統。因為其帶有圖形界面易用性高。
(3)將下載下來的系統燒錄到SD卡中
(4)將SD卡插入Raspberry Pi,通電啟動。
(5)根據連接在樹莓派上的顯示屏的安裝向導一步一步走下去就安裝成功啦。
3環境配置及其TensorFlow下載與安裝
3.1環境配置
在Raspberry Pi上安裝TensorFlow之前,我們先要配置我們的實驗環境,否則無法安裝TensorFlow,從Google從TensorFlow1.9開始支持Raspberry Pi,實驗環境要求為Python3.5+TensorFlow1.9,其他版本的Python可能會安裝失敗。而我們的Raspberry Pi上的Python默認為2.7,所以我們要將其換成Python3.5版本。教程如下:
(1)安裝Python3.5:sudo apt-get install python3.5
(2)刪除原鏈接:sudo ?rm /usr/bin/python
(3)建立新的鏈接設置為Python3.5:sudo ln -s /usr/bin/python3.5 /usr/bin/python
(4)執行完上述步驟后,我們的環境就配置成功啦。
3.2TensorFlow下載與安裝
TensorFlow是一個開源軟件庫,用于各種感知和語言理解任務的機器學習。當前被50個團隊用于研究和生產許多Google商業產品,如語音識別、Gmail、Google 相冊和搜索[2]。下面介紹如何在Raspberry Pi上安裝TensorFlow。
(1)安裝TensorFlow之前先在Raspberry Pi執行sudo apt-get update和sudo apt-get dist-upgrade命令來獲取最近的軟件包列表及下載軟件包到Rspberry Pi與安裝。
(2)在安裝完TensorFlow前還要安裝libatlas-base-dev軟件包。執行命令:sudo apt-get install libatlas-base-dev。
(3)執行sudo pip3 install tensorflow安裝,這樣我們的TensorFlow就安裝成功了。
4軟件運行環境及其代碼實現
4.1軟件運行環境
前面我們按照了Python3.5和TensorFlow,但這還不滿足實現目標檢測的條件。因為我們目標檢測是運用Object Detection API來具體實現,所以我們還要安裝關于Object Detection API的相關依賴包。有關依賴包有Pillow、Lxml、Jupyte、Matplotlib、Cython。TensorFlow object detection API使用還需要Protobuf,這是一個實現Google協議緩沖區數據格式的軟件包。我們也要一同安裝。下面來介紹如何安裝以上依賴包。
(1)Raspberry Pi支持一次安裝多個依賴包,所以我們只需要執行一行命令即可。
(2)執行命令:sudo pip3 install pillow lxml jupyte matplotlib cython。
(3)安裝Protobuf執行:sudo apt-get install protobuf-compiler。
實現目標檢測應用所需環境及其所依賴包到這里已經全部安裝好了。我們知道執行目標檢測我們需要有相應的特征模型。Object Detection API提供了五種網絡結構的訓練權重。本文使用第一張SSD網絡結構,因為相比其他網絡結構,ssd_mobilennt_v1_coco它的檢測速度相對較快。
4.2關鍵代碼
我們使用Python來進行目標檢測,通過模型的加載以圖像作為輸入運行模型來執行實際檢測,繪制檢測結果,顯示類別與相應檢測的準確率。
(1)加載模型,讓我們的目標檢測可以通過訓練好的特征值進行對應的目標檢測,從而判斷目標物的類別。
(2)實時檢測,我們需要使用到攝像頭,攝像頭拍攝到的畫面為視頻格式,我們需要把視頻的每一幀變為一張圖像作為輸入對象來執行實際的檢測。
(3)把我們檢測到的結果作為輸出對象,把該對象屬于的類別,準確率以及相應位置繪制到屏幕上。
4.3目標檢測應用測試
開啟樹莓派,連接上鼠標、鍵盤、顯示器、攝像頭。運行我們寫好的Python代碼,執行代碼我們會在屏幕上看到攝像頭所檢測的畫面。
5總結
一個計算機視覺,圖像處理和機器視覺所共有的經典問題便是判定一組圖像數據中是否包含某個特定的物體,圖像特征或運動狀態。通過在Raspberry Pi上部署目標檢測應用可以很好的實現計算機視覺任務且過程簡單易學,很適合作為Raspberry Pi與TensorFlow初學者的教程進行推廣。
參考文獻:
[1] 百度百科, 樹莓派 [OL].
[2] 中文維基百科, TensorFlow [OL].