基於樹莓派與YOLOv3模型的人體目標檢測小車(一)

項目介紹:

本科畢業選的深度學習的畢設,一開始只是學習了一下YOLOv3模型, 按照做者的指示在官網上下載下來權重,配好環境跑出來Demo,後來想着只是跑模型會不會太單薄,因而想了能不能作出來個比較實用的東西(由於模型優化作不了)。因而乎作一個能夠檢測人體的可操控移動小車的想法就誕生了。linux

實現的功能:1. 控制小車行進,並實時檢測人體目標。git

​ 2. 做爲家庭監控,能夠將出如今攝像頭中的人體目標經過微信發到手機上,並能夠人爲決定是否經過蜂鳴器發出警報。github

大體的工做包括:1. YOLOv3 tiny 模型的訓練ubuntu

​ 2. Darknet模型到tensorflow模型再到NCS(神經計算加速棒)模型的兩次轉化bash

​ 3. 小車控制以及視頻流直播程序微信

​ 4. 微信報警程序學習


一 、環境搭建

1、安裝NVIDIA顯卡驅動

1.刪除舊的驅動。測試

原來Linux默認安裝的顯卡驅動不是英偉達的驅動,因此先把舊得驅動刪除掉。優化

sudo apt-get purge nvidia*

2.禁止自帶的nouveau nvidia驅動。
2.1 打開配置文件:ui

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

2.2填寫禁止配置的內容:

blacklist nouveau``options nouveau modeset=0

2.3更新配置文件:

sudo update-initramfs -u

重啓電腦!

2.4檢查設置

(由於禁止了顯卡的驅動,這時你的電腦分辨率會變成800*600,圖標格式將會很不和諧,固然經過這個能夠看出,是否完成這上面的操做)

lsmod | grep nouveau

*若是屏幕沒有輸出則禁用nouveau成功

3 正式安裝

法一:ppa源安裝(原生安裝)

1.添加Graphic Drivers PPA

sudo add-apt-repository ppa:graphics-drivers/ppa``sudo apt-get update

2.查看合適的驅動版本:

ubuntu-drivers devices

3.在這裏我選擇合適的396版本:

sudo apt-get install nvidia-driver-396

重啓電腦!
4.安裝成功檢查:

sudo nvidia-smi``sudo nvidia-settings

*最直接的方法是進入到系統的「軟件和更新」,點擊進入到「附加驅動」,選擇你須要安裝的英偉達驅動,而後點擊「應用更改」,便能進行安裝了。注意的是這個方法適合網速較好的環境下進行。

2、安裝CUDA

一、官網下載:https://developer.nvidia.com/cuda-90-download-archive

個人以下:

img

二、安裝依賴庫

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

不然將會報錯:

img

三、注意C++\G++版本

CUDA9.0要求GCC版本是5.x或者6.x,其餘版本不能夠,須要本身進行配置,經過如下命令纔對gcc版本進行修改。

查看版本:

g++ --version

版本安裝:

sudo apt-get install gcc-5
sudo apt-get install g++-5

經過命令替換掉以前的版本:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

最後記得再次查看版本是否修改爲功。

四、運行run文件

sudo sh cuda_9.0.176_384.81_linux.run

安裝協議能夠直接按q跳到最末尾,注意一項:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n                    # 安裝NVIDIA加速圖形驅動程序,這裏選擇n

五、添加環境變量

進行環境的配置,打開環境變量配置文件

sudo gedit ~/.bashrc

在末尾把如下配置寫入並保存:

#CUDA
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

最後執行:

source ~/.bashrc

六、安裝測試

在安裝的時候也也相應安裝了一些cuda的一些例子,能夠進入例子的文件夾而後使用make命令執行。

例一:

1.進入例子文件

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

2.執行make命令

sudo make

\3. 第三步

./deviceQuery

若是結果有GPU的信息,說明安裝成功。

例二:

\1. 進入例子對應的文件夾

cd NVIDIA_CUDA-9.0_Samples/5_Simulations/fluidsGL

2.執行make

make clean && make

\3. 運行

./fluidsGL

當執行這個例子,咱們會看到流動的圖,剛開始可能看不到黑洞,須要等待一小段時間。不過記得用鼠標點擊下綠色的畫面。

img

3、安裝cuDNN

一、官網下載:https://developer.nvidia.com/rdp/form/cudnn-download-survey

這個須要註冊帳號,拿本身的郵箱註冊便可。

只需下載下面3個安裝包便可

img

二、順序執行下面3個安裝命令:

sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb``sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb``sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb

三、安裝測試

輸入如下命令:

cp -r /usr/src/cudnn_samples_v7/ $HOME``cd $HOME/cudnn_samples_v7/mnistCUDNN``make clean && make``./mnistCUDNN

最終若是有提示信息:「Test passed! 」,則說明安裝成功!

4、安裝TensorFlow

1.pip直接安裝

pip install tensorflow_gpu-1.9.0
5、安裝darknet

打開YOLOv3官網,https://pjreddie.com/darknet/,按着教程一步一步的照作。

  1. 把項目克隆到本地,編譯

    git clone https://github.com/pjreddie/darknet
    cd darknet
    make
  2. 下載已經訓練好的yolov3權重,或者直接wget,若是下載速度太慢能夠去百度找一下。

    wget https://pjreddie.com/media/files/yolov3.weights
  3. 下載完以後就可使用權重模型來進行測試了。

    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

這裏不會彈出來檢測的圖片是由於沒有安裝OpenCV,檢測的結果會在項目文件夾下生成predictions.png.

  1. 若是你有攝像頭,你也能夠直接經過視頻測試模型

    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
6、總結

至此已完成了,模型訓練端的環境搭建,下一篇文章將介紹如何利用YOLOv3模型訓練本身的數據集。

相關文章
相關標籤/搜索