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