<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 進(jìn)階指南 > 使用樹(shù)莓派和神經(jīng)計算棒實(shí)踐OpenVINO人流量統計項目

使用樹(shù)莓派和神經(jīng)計算棒實(shí)踐OpenVINO人流量統計項目

作者: 時(shí)間:2021-11-04 來(lái)源:電子產(chǎn)品世界 收藏

自從2012年問(wèn)世以來(lái),一直受到廣大開(kāi)發(fā)者的喜愛(ài)。今天我們使用和英特爾神經(jīng)搭建開(kāi)發(fā)環(huán)境,實(shí)踐項目。

本文引用地址:http://dyxdggzs.com/article/202111/429363.htm

一、系統刷寫(xiě)

    當我們拿到樹(shù)莓派以后,首先需要安裝操作系統。適用于樹(shù)莓派的操作系統非常多,官網(wǎng)推薦的系統是Raspberry Pi OS,是目前應用最為廣泛的樹(shù)莓派操作系統,這里我們也將使用Raspberry Pi OS進(jìn)行實(shí)踐。由于樹(shù)莓派沒(méi)有配置板載閃存,因此我們將Raspberry Pi OS燒寫(xiě)在一張16GB的存儲卡上,一般要求存儲卡不小于8GB。

    下面介紹樹(shù)莓派操作系統的燒寫(xiě)流程。

    1、在樹(shù)莓派官方網(wǎng)站(https://www.raspberrypi.org/software/operating-systems/)下載Raspberry Pi OS系統鏡像。該頁(yè)面下提供了3種Raspberry Pi OS最新版本的鏡像文件,如下圖所示。

 

1635992199729802.png

    Raspberry Pi OS with desktop and recommended software集成了圖形化界面,同時(shí)預安裝了一些常用軟件,Raspberry Pi OS with desktop集成了圖形化界面,Raspberry Pi OS Lite沒(méi)有圖形化桌面。我們選擇Raspberry Pi OS with desktop and recommended software,點(diǎn)擊Downloal或者Download Torrent下載該文件。

    2、在Windows系統的電腦中對存儲卡進(jìn)行格式化。

    3、使用燒寫(xiě)軟件Etcher將系統刻錄在SD卡。Etcher是支持Windows、macOS以及Linux系統的輕量化軟件(https://www.balena.io/etcher/)。打開(kāi)Etcher后分別選擇鏡像文件目錄以及待燒寫(xiě)SD卡的盤(pán)符,點(diǎn)擊Flash即可。

 

1635992248645599.png

1635992252318311.png

    燒寫(xiě)大概需要10~15分鐘的時(shí)間,具體時(shí)長(cháng)與設備的讀寫(xiě)能力有關(guān)。燒寫(xiě)完成后,我們在Windows的磁盤(pán)管理器中可能看到SD卡的空間只剩下幾十MB,這都是正?,F象,因為Windows無(wú)法識別Linux的文件系統。如果系統提示SD卡需要格式化,切記不要選擇“是”,這會(huì )使我們之前的工作變成無(wú)用功。等待燒寫(xiě)完成,將SD卡插入樹(shù)莓派背面的SD卡卡槽內,就可以連接硬件了。

二、在樹(shù)莓派上搭建環(huán)境

    接下來(lái),我們?yōu)闃?shù)莓派上搭建開(kāi)發(fā)環(huán)境。樹(shù)莓派的OpenVINO工具套件包括推理引擎和MYRIAD插件,需要搭配英特爾二代神經(jīng)進(jìn)行AI推理。由于樹(shù)莓派的OpenVINO工具套件不包含模型優(yōu)化器,我們需要在其他機器上對模型進(jìn)行轉換,然后將優(yōu)化后的模型部署在樹(shù)莓派上。

1、下載樹(shù)莓派的OpenVINO工具套件安裝包

https://storage.openvinotoolkit.org/repositories/openvino/packages/),這里我們選擇的是2021.4版本。

2、打開(kāi)樹(shù)莓派終端,新建文件夾openvino_2021,將下載好的安裝包解壓到當前文件夾。

sudo mkdir -p /opt/intel/openvino_2021

sudo tar -xf  l_openvino_toolkit_runtime_raspbian_p_<version>.tgz --strip 1 -C /opt/intel/openvino_2021

3、安裝外部軟件依賴(lài)cmake

sudo apt install cmake

4、設置環(huán)境變量

source /opt/intel/openvino_2021/bin/setupvars.sh

這樣設置每次重啟終端都需要運行上面的代碼。

永久設置環(huán)境變量

echo "source /opt/intel/openvino_2021/bin/setupvars.sh" >> ~/.bashrc

5、添加USB規則

添加當前用戶(hù)至users組,注銷(xiāo)登錄使其生效。

sudo usermod -a -G users "$(whoami)"

安裝usb規則

sh /opt/intel/openvino_2021/install_dependencies/install_NCS_udev_rules.sh

6、編譯和運行目標檢測樣例

完成上面的步驟后,我們運行工具套件中的人臉檢測模型,測試環(huán)境是否搭建成功。

    (1)創(chuàng )建build文件夾用來(lái)編譯項目

mkdir build && cd build

    (2)編譯人臉檢測樣例

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino_2021/deployment_tools/inference_engine/samples/cpp

make -j2 object_detection_sample_ssd

    (3)在open_model_zoo中下載人臉檢測模型

git clone --depth 1 https://github.com/openvinotoolkit/open_model_zoo

cd open_model_zoo/tools/downloader

python3 -m pip install -r requirements.in

python3 downloader.py --name face-detection-adas-0001 

    (4)連接神經(jīng),運行模型

./armv7l/Release/object_detection_sample_ssd -m <path_to_model>/face-detection-adas-0001.xml -d MYRIAD -i <path_to_image>

    程序運行結束后,我們可以查看生成的out_0.bmp文件中的人臉檢測框。

    至此,我們已經(jīng)完成了樹(shù)莓派OpenVINO環(huán)境的搭建。

三、open_model_zoo的使用

OpenVINO官網(wǎng)為我們提供了豐富的資源,方便我們快速構建自己的項目。其中,GitHub中的open_model_zoo(https://github.com/openvinotoolkit/open_model_zoo)倉庫為我們提供了一些公開(kāi)的和英特爾預訓練好的模型,以及一些場(chǎng)景下使用OpenVINO的demo。

1635992360240689.png

由于我們要在樹(shù)莓派上實(shí)踐項目,首先我們需要在open_model_zoo中篩選能夠檢測行人的目標檢測模型。我們選擇適用于移動(dòng)端的輕量級深度網(wǎng)絡(luò )模型mobilenet-ssd作為人群檢測模型。https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/mobilenet-ssd

 

1635992399405751.png

倉庫中mobilenet-ssd的介紹文檔向我們詳細描述了模型的輸入、輸出、精度、計算量、參數量等。mobilenet-ssd模型是一個(gè)單階段的目標檢測模型,使用的是Caffe框架,模型的輸入是300*300的BGR三通道圖片,計算量2.316GFLOPs,參數量5.783MParams,在VOC2007數據集上的mAP值是67%。輸入輸出部分向我們介紹了原始模型和使用模型優(yōu)化器轉換后模型的輸入輸出參數。我們可以按照自己對精度、計算量、參數量、框架以及部署環(huán)境的要求,選擇自己需要的模型。

1、模型下載器的使用

確定好模型后,我們使用OpenVINO提供的模型下載器(downloader.py)下載模型。Windows平臺下需要以管理員身份運行Window命令提示符。

切換目錄:cd C:Program Files (x86)Intelopenvino_2021.2.185deployment_toolsopen_model_zootoolsdownloader

--help參數可以查看模型下載器的參數設置。

--print_all參數可以打印所有可以下載的模型:python downloader.py --print_all

下載模型需要在—name參數后面加上模型名稱(chēng) :python downloader.py --name mobilenet-ssd

 

1635992563501480.png

2、模型優(yōu)化器的使用

模型優(yōu)化器Model Optimizer可以將深度學(xué)習模型轉換為能夠被推理引擎執行的IR文件。IR文件包含一個(gè)*.xml文件用來(lái)描述網(wǎng)絡(luò )結構,還包含一個(gè)*.bin文件用來(lái)存儲網(wǎng)絡(luò )的權重和偏置量。

下載好模型后,使用模型優(yōu)化器優(yōu)化模型,樹(shù)莓派的OpenVINO工具套件不包含模型下載器,因此我們需要在別的機器上對模型進(jìn)行優(yōu)化。運行下面命令,完成對模型的優(yōu)化。--help參數可以查看模型優(yōu)化器的參數設置。

python mo.py --input_model mobilenet-ssdmobilenet-ssd.caffemodel --scale 127.5 --mean_values [127.5,127.5,127.5]

1635992626547252.png

四、應用及代碼展示

1、行人檢測代碼

這里對中,使用OpenVINO進(jìn)行人員檢測的代碼進(jìn)行展示。

# 導入模塊

from openvino.inference_engine import IECore,IENetwork

import cv2

# 定義模型、圖片路徑以及計算設備

model_xml = "mobilenet_ssd/mobilenet-ssd.xml"

model_bin = "mobilenet_ssd/mobilenet-ssd.bin"

image_file = "2.jpg"

DEVICE = 'MYRIAD'

# 初始化推理引擎對象

ie = IECore()

# 讀取模型

net = IENetwork(model=model_xml, weights=model_bin)

# 配置輸入輸出

input_blob = next(iter(net.inputs))

out_blob = next(iter(net.outputs))

net.batch_size = 1

# 加載模型到計算設備

exec_net = ie.load_network(network=net, num_requests=1, device_name=DEVICE)


n,c,h,w = net.inputs[input_blob].shape

frame = cv2.imread(image_file)

(initial_h, initial_w, channels) = frame.shape

image = cv2.resize(frame, (w,h))

image = image.transpose((2,0,1))

# 推理計算

res = exec_net.infer(inputs={input_blob:image})

# 可視化展示推理結果

res = res[out_blob]

for obj in res[0][0]:

    if obj[2] > 0.7:

        xmin = int(obj[3]*initial_w)

        ymin = int(obj[4]*initial_h)

        xmax = int(obj[5]*initial_w)

        ymax = int(obj[6]*initial_h)

        class_id = int(obj[1])

        color = (0,255,0)

        cv2.rectangle(frame, (xmin,ymin), (xmax, ymax), color,2)

        

cv2.imshow("result", frame)

cv2.waitKey(0)

cv2.destroyAllWindows()

2、人流量統計視頻

視頻1封面.jpg

人流量統計視頻http://v.eepw.com.cn/video/play/id/15333

在距離視頻畫(huà)面頂部2/3處畫(huà)了一條水平黃線(xiàn),當有人越過(guò)這條黃線(xiàn),使用模型對其進(jìn)行檢測和追蹤,Up和Down分別對應人員流入和人員流出,從而實(shí)現對特定場(chǎng)所進(jìn)入和出去人流量的統計。

3、運行結果對比

我們在樹(shù)莓派上分別對使用OpenCV的dnn相關(guān)函數調用mobilenet-ssd原始模型和OpenVINO運行優(yōu)化后的模型進(jìn)行比較。視頻中左側為OpenCV運行,右側為OpenVINO運行,同時(shí)對推理部分的FPS值進(jìn)行計算??梢钥闯?,樹(shù)莓派上英特爾神經(jīng)計算棒與OpenVINO搭配的FPS值明顯要優(yōu)于單獨使用OpenCV運行原始mobilenet-ssd模型。

 

1635992699611809.png

人流量統計運行結果對比視頻http://v.eepw.com.cn/video/play/id/15334

參考資料:

樹(shù)莓派官網(wǎng):https://www.raspberrypi.org/software/operating-systems/

樹(shù)莓派搭建OpenVINO環(huán)境指南:https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_raspbian.html



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>