天天看點

樹莓派Mobilenet SSD 實時檢測

2018月下半年Tensorflow開始提供樹莓派版本後,我們見到了許多國内外的部落客用python腳本在Tensorflow的架構下跑Mobilenet SSD 網絡做了實時檢測的Demo,但大部分的Demo幀率都比較低。

Tengine MSSD 性能

接觸Tengine 後,發現在Tengine 架構下運作SSD網絡的性能十分強。我參加了

Tengine AloT 樹莓派應用征集大賽活動(https://github.com/OAID/)

獲得Tengine Explore版後,運作SSD 網絡對網上圖檔檢測,對多目标複雜背景環境的檢測每次還能到達237.112ms,使用了int8精度後,在檢測結果不變隻減少精度的下每次檢測還能達到167.558ms。

先看原圖

樹莓派Mobilenet SSD 實時檢測

圖檔來源http://huaban.com/pins/340488847

下圖為精度浮點數32位檢測結果

樹莓派Mobilenet SSD 實時檢測
樹莓派Mobilenet SSD 實時檢測

下圖為精度為整數8位檢測結果

樹莓派Mobilenet SSD 實時檢測
樹莓派Mobilenet SSD 實時檢測

相比用python的SSD檢測模型一般的幀率是在1fps。

下面的連結是一個國外部落客的Demo

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi

使用C++編譯的Tengine, 其中即使設定OPENCV 幀率為5pfs後實時檢測依然流暢。

Demo 設計

在發現Tengine Explore版優秀的性能後,我設計一個日常的場景,在攝像頭檢測到人的時候啟動樹莓派的GPIO 子產品,使連接配接面包闆上的LED亮燈。

樹莓派Mobilenet SSD 實時檢測

Demo 展示

這個Demo可以運用在實際的門禁的場景,在門禁啟動後如果有人穿過拍攝區域,可以亮燈發出警示。 因為樹莓派的計算能力的限制,亮燈的Demo的輸出幀率達不到之前的5-6pfs,但是通過設定OPENCV 的降低清晰度檢測的幀率還能達到3pfs。在實際場景的運用效果不錯,下面的在場景是公司中的走廊中的實測視訊gif

樹莓派Mobilenet SSD 實時檢測

即使是在實時檢測并亮燈的時候樹莓派的CPU的占用率也65%左右,是以小小的樹莓派用Tengine還是有可以繼續發掘的潛力的。

樹莓派Mobilenet SSD 實時檢測

如果大家對Tengine架構的性能有興趣可以參考一下我之前寫的那篇文章,關于Tengine和Tensorflow Lite 的性能對比。

https://blog.csdn.net/weixin_43558453/article/details/85175253

活動

這次的活動是OPEN AI LAB組織的Tengine AloT 樹莓派應用征集大賽有興趣的樹莓派開發者也可以報名參加。

Tengine AloT 樹莓派應用征集大賽 二維碼:

樹莓派Mobilenet SSD 實時檢測

繼續閱讀