/前一篇開箱文介紹了Tinker Board 2S / 2GB的相關(guān)硬件規(guī)格,可以看出TinkerBoard 2S / 2GB其實在硬件性能方面的已經(jīng)具備不錯的條件,此外,開箱文的介紹里,也提到了Tinker Board 2S采用了aarch64的操作系統(tǒng)架構(gòu),以Debian 10 Linux的LXDE桌面環(huán)境,更讓使用者有著相當(dāng)不錯的GUI使用體驗。/
Tinker Board 2S在官方網(wǎng)站上提供了Debian10 Linux操作系統(tǒng)給用戶進(jìn)行安裝,相關(guān)LXDE桌面環(huán)境的套件軟件程序,都有相當(dāng)完整的支持,本文將會著眼在Tinker Board 2S應(yīng)用在AI范疇中,所應(yīng)該要在后續(xù)的套件軟件程序的安裝介紹,在這次的系統(tǒng)安裝測試過程,我們發(fā)現(xiàn)了在Tinker Board 2S安裝的Debian 10 Linux操作系統(tǒng)里,為了安裝一些常用的AI支持套件程序,在安裝過程中仍要補(bǔ)足許多缺漏的相依套件程序,甚至在測試安裝的過程里,也發(fā)現(xiàn)了有部分的相依套件程序有斷裂的問題,甚至無法單純采用pip3 install或apt-get install的方式進(jìn)行相依套件程序的安裝,得要透過一些其他套件程序進(jìn)行修補(bǔ)斷裂的安裝,這部分將會在后續(xù)的文章中詳細(xì)說明。
本文將會針對以下這些AI應(yīng)用程序設(shè)計中常用的套件程序安裝進(jìn)行說明:
1.nano (用于簡易文本編輯器操作)
2.OpenCV 4.5.0 (用于相關(guān)視覺影像的接口操作)
3.imutils (用于視覺圖像處理的接口操作)
4.pillow (用于視覺圖像處理的接口操作)
5.tkinter (用于圖形用戶界面 GUI 程序設(shè)計)
6.Tensorflow 2.4.1 與Tensorflow-Lite Runtime 2.5.0 (用于神經(jīng)網(wǎng)絡(luò)運(yùn)算)
7.Python3-Coral (用于GoogleCoral 邊緣張量處理單元Edge-TPU加速器運(yùn)算)
8.SciKit-Learn (用于神經(jīng)網(wǎng)絡(luò)運(yùn)算)
一、安裝簡易文本編輯器nano
由于在許多的終端機(jī)操作環(huán)境下需要快速編修文件,采用精巧且功能完整的文本編輯器nano,一直是許多系統(tǒng)操作者的最愛之一,以下說明安裝流程:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nano
二、安裝GTK-2.0相依套件libgtk2.0-dev
本次安裝測試的過程當(dāng)中,在安裝OpenCV 4.5.0套件程序時,發(fā)生了相依套件斷裂的問題,在Tinker Board 2S的Debian 10 Linux系統(tǒng)中因為沒有安裝GTK-2.0 的libgtk2.0-dev套件程序,這將導(dǎo)致在OpenCV4.5.0因cmake無法將 libgtk2.0-dev相依套件進(jìn)行編譯設(shè)定,雖然在后續(xù)的make流程都能完成,但最后會在最后Python程序運(yùn)行時間無法正確使用如imshow、putText等畫面顯示或繪圖的函數(shù),并且會在運(yùn)行時間報錯,并且提示需要重新進(jìn)行cmake。
為了將libgtk2.0-dev相依套件程序安裝至系統(tǒng),筆者初期使用sudo apt-get install libgtk2.0-dev這種方式安裝相依套件程序,但系統(tǒng)卻又報錯,表示還有許多其他相關(guān)相依套件有「相依斷裂」的問題,筆者嘗試再以sudo apt-get install去安裝那些相依套件程序,卻依然發(fā)現(xiàn)更多的「相依斷裂」,更糟糕的是還發(fā)生「循環(huán)相依」,所謂「循環(huán)相依」表示其他的相依套件程序又循環(huán)相依libgtk2.0-dev。
為了解決這種「相依斷裂」與「循環(huán)相依」的問題,最后只能透過額外安裝「套件安裝設(shè)定程序」的方式來解決,本次教學(xué)使用的是安裝「aptitude」套件程序來解決這個問題。
透過「aptitude」套件程序便可以進(jìn)行l(wèi)ibgtk2.0-dev套件程序安裝,以下說明安裝流程:
sudo apt-get install aptitude
sudo aptitude install libgtk2.0-dev
三、安裝OpenCV 4.5.0套件程序
在本篇教學(xué)采用OpenCV 4.5.0進(jìn)行視覺影像接口處理,筆者曾嘗試以sudo apt-get install python-opencv進(jìn)行套件程序的安裝,結(jié)果經(jīng)過檢查發(fā)現(xiàn),以這種方式安裝的OpenCV版本是3.6版,雖然簡單Python程序函數(shù)還是可以執(zhí)行,可是當(dāng)遇到更進(jìn)階的函數(shù)如DNN等相關(guān)進(jìn)階應(yīng)用時,便會產(chǎn)生函數(shù)缺漏的問題,有鑒于此,筆者選擇重新以Build from Source的方式進(jìn)行安裝。
在這里要特別強(qiáng)調(diào)一個重要關(guān)鍵,在安裝OpenCV 4.5.0套件程序之前,「必須」將前述的GTK-2.0相依套件libgtk2.0-dev先行安裝完成,切莫跳過這個重要步驟。
由于OpenCV 4.5.0的安裝過程需要大量的內(nèi)存運(yùn)作空間以進(jìn)行后續(xù)的make流程,因此必須先行安裝虛擬內(nèi)存的套件程序,并且將虛擬內(nèi)存設(shè)為10240MB,并且將Tinker Board 2S重新啟動,以下說明虛擬內(nèi)存設(shè)定流程:
sudo apt-get update
sudo apt-get upgrade
#安裝dphys-swapfile套件程序
sudo apt-get install dphys-swapfile
#以nano編輯/etc/dphys-swapfile配置文件案
sudo nano /etc/dphys-swapfile
#尋找#CONF_SWAPSIZE= 字符串內(nèi)容,并且將批注符號# 取消。
#設(shè)定CONF_SWAPSIZE=10240
#離開nano文本編輯器
#重新啟動
sudo reboot
下載并編譯安裝OpenCV 4.5.0,請注意,這個階段的安裝時間非常久,筆者大約安裝了近4小時,且在make階段時Tinker Board 2S的散熱片會產(chǎn)生高溫,筆者嘗試使用make -j2或make -j4等多核心的編譯指令,雖然可以加快make流程,但是這種編譯方式會讓CPU的散熱片的溫度飆升,甚至導(dǎo)致熱當(dāng)機(jī)的狀況很多次,造成make失敗多次,因此筆者建議只要采用make這種單核心的編譯為佳,且在編譯過程務(wù)必確保電源穩(wěn)定,且適當(dāng)以電風(fēng)扇在旁邊幫助散熱,雖然時間很久,但可以確保編譯過程安全無誤,以下說明OpenCV 4.5.0的安裝流程:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake gitlibgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libjpeg-dev libpng-dev
sudo apt-get install libavcodec-devlibavformat-dev libswscale-dev
sudo apt-get install libgtk2.0-devlibcanberra-gtk* libgtk-3-dev
sudo apt-get install python3-dev python3-numpypython3-pip
sudo apt-get install libtbb2 libtbb-devlibdc1394-22-dev
sudo apt-get install libv4l-dev v4l-utils
sudo apt-get install libopenblas-devlibatlas-base-dev libblas-de
sudo apt-get install liblapack-dev gfortranlibhdf5-dev
sudo apt-get install libprotobuf-devlibgoogle-glog-dev libgflags-dev
sudo apt-get install protobuf-compiler
sudo apt-get install qt5-default
wget -O opencv.ziphttps://github.com/opencv/opencv/archive/4.5.0.zip
wget -O opencv_contrib.ziphttps://github.com/opencv/opencv_contrib/archive/4.5.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.5.0 opencv
mv opencv_contrib-4.5.0 opencv_contrib
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_GSTREAMER=OFF
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF
-D WITH_GTK=ON ..
make
sudo make install
sudo ldconfig
make clean
至 .bashrc 設(shè)定OpenCV 4.5.0路徑,安裝完成OpenCV 4.5.0之后,必須要設(shè)定相關(guān)執(zhí)行路徑,若跳過這個步驟,會導(dǎo)致Python程序在import cv2時產(chǎn)生allocation memory 報錯,以下說明 .bashrc 路徑設(shè)定方式:
cd ~
#以nano文本編輯器編輯.bashrc 配置文件
sudo nano ~/.bashrc
#到文件末端將以下敘述補(bǔ)在最后一行
exportLD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
#執(zhí)行 .bashrc 內(nèi)容
source ~/.bashrc
四、安裝其他視覺圖像處理與圖形用戶界面套件程序
#安裝pillow套件程序
cd ~
sudo apt-get update
sudo apt-get upgrade
pip3 install setuptools
pip3 install pillow
#安裝tkinter套件程序
cd ~
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-tk
sudo apt-get install python3-pil.imagetk
#安裝imutils套件程序
cd ~
sudo apt-get update
sudo apt-get upgrade
pip3 install imutils
五、安裝Tensorflow 2.4.1 神經(jīng)網(wǎng)絡(luò)運(yùn)算套件程序
Tinker Board 2S 具有強(qiáng)大的CPU與GPU運(yùn)算效能,可進(jìn)行神經(jīng)網(wǎng)絡(luò)運(yùn)算,搭配OpenCV可以進(jìn)行各種AI影像辨識的應(yīng)用,依照Tinker Board 2S的各種硬件規(guī)格,筆者認(rèn)為神經(jīng)網(wǎng)絡(luò)的框架可采用Tensorflow 2.4.1來進(jìn)行神經(jīng)網(wǎng)絡(luò)的推論(Inference)運(yùn)算,以下說明套件程序安裝流程:
#更新操作系統(tǒng)套件信息
sudo apt-get update
sudo apt-get upgrade
#更新安裝pip3套件程序
sudo apt-get install python-pip python3-pip
#移除舊版Tensoflow套件程序
sudo pip uninstall tensorflow
sudo pip3 uninstall tensorflow
#安裝各種系統(tǒng)相依套件程序
sudo apt-get install gfortran
sudo apt-get install libhdf5-devlibc-ares-dev libeigen3-dev
sudo apt-get install libatlas-base-devlibopenblas-dev libblas-dev
sudo apt-get install liblapack-dev
#安裝各種Python3各種套件程序
sudo -H pip3 install --upgrade setuptools
sudo -H pip3 install pybind11
sudo -H pip3 install Cython==0.29.21
sudo -H pip3 install h5py==2.10.0
#安裝下載工具
pip3 install gdown
sudo cp ~/.local/bin/gdown/usr/local/bin/gdown
#下載Tensorflow 2.4.1套件程序安裝文件
gdownhttps://drive.google.com/uc?id=1WDG8Rbi0ph0sQ6TtD3ZGJdIN_WAnugLO
#安裝Tensorflow 2.4.1套件程序
sudo -H pip3 installtensorflow-2.4.1-cp37-cp37m-linux_aarch64.whl
六、安裝Tensorflow-Lite Runtime 2.5.0 套件程序
對于Tinker Board 2S / 2GB而言,由于受限于主存儲器僅有2GB的緣故,因此對于神經(jīng)網(wǎng)絡(luò)進(jìn)行推論運(yùn)算時所需使用的主存儲器容量,就必須要謹(jǐn)慎運(yùn)用這有限的容量,若需要在神經(jīng)網(wǎng)絡(luò)推論時有較高的運(yùn)算效能,往往就必須要選擇神經(jīng)網(wǎng)絡(luò)模型規(guī)模較小的模型格式,在Tensorflow族系里有種Tensorflow-Lite格式就是一種模型規(guī)模較小的格式,在Tensorflow的原廠網(wǎng)站里也特別將Tensorflow-Lite格式定義適用于物聯(lián)網(wǎng)IoT應(yīng)用的場合當(dāng)中,以下說明套件程序安裝的方式:
cd ~
sudo apt-get update
sudo apt-get upgrade
pip3 installhttps://github.com/google-coral/pycoral/releases/download/v1.0.1/tflite_runtime-2.5.0-cp37-cp37m-linux_aarch64.whl
七、安裝google Coral Edge-TPU Pthon套件程序
若想在邊緣裝置提升神經(jīng)網(wǎng)絡(luò)的運(yùn)算效能,常會在邊緣運(yùn)算裝置上外加神經(jīng)網(wǎng)絡(luò)運(yùn)算加速裝置,最常用的做法,便是透過USB連接神經(jīng)網(wǎng)絡(luò)運(yùn)算加速裝置的方式進(jìn)行擴(kuò)充,Tinker Board 2S有強(qiáng)大的USB 3.0接口可以運(yùn)用,筆者為了能夠在Tinker Board 2S上充分發(fā)揮Tensorflow-Lite的效能,因此選擇透過google推出的Coral Edge-TPU USB Accelerator安裝在Tinker Board 2S上,透過Edge-TPU強(qiáng)大的運(yùn)算效能,讓AI的各種應(yīng)用都能有高速的反應(yīng)。
以下說明Python3-Coral套件程序安裝方式:
echo "debhttps://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudotee /etc/apt/sources.list.d/coral-edgetpu.list
curlhttps://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install libedgetpu1-std
sudo apt-get install python3-pycoral
八、安裝其他支持神經(jīng)運(yùn)算的套件程序SciKit-Learn
cd ~
sudo apt-get update
sudo apt-get upgrade
sudo pip3 install sklearn
以上是針對Tinker Board 2S在后續(xù)應(yīng)用在AIoT主題開發(fā)所安裝的各種套件程序安裝教學(xué),筆者將會在后續(xù)文章中介紹Tinker Board 2S在神經(jīng)網(wǎng)絡(luò)運(yùn)算的效能,將會透過筆者設(shè)計的Python3范例程序進(jìn)行本篇各種套件程序的測試效能,敬請各位讀者拭目以待啰!
審核編輯 :李倩
-
軟件
+關(guān)注
關(guān)注
69文章
4970瀏覽量
87714 -
程序
+關(guān)注
關(guān)注
117文章
3792瀏覽量
81161 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31209
原文標(biāo)題:Tinker Board 2S系統(tǒng)與軟件安裝設(shè)定
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論