1. 程式人生 > >樹莓派上的tensorflow視訊識別+遠端視訊流傳輸

樹莓派上的tensorflow視訊識別+遠端視訊流傳輸

1.下載models
第一步:git clone https://github.com/tensorflow/models.git models-master

這篇文章配置一定要注意一定不要把models-master資料夾cp至/usr/local/lib中去,直接在~/路徑下的models-master進行之後的步驟,其中的bashrc也需要把路徑改為/home/pi/models-master/object-detection/models,因為後續需要將下載的模型匯入,並且需要在models-master資料夾中編寫呼叫的py檔案,如果在/usr/local/lib路徑則會顯示各種permission denied的問題,因此切記不用把models-master檔案移至/usr/local/中。如果匯入了就只好把/usr/路徑下的models資料夾移至/home/pi/,然後sudo chown -R pi:pi /home/pi/models-master

。瞭解了以後按照如下教程安裝
https://blog.csdn.net/int93/article/details/79066259就可以了。
官網上說的cocoapi我安裝時出了問題,也就沒有繼續make cocoapi,cocoapi那一步略過直接做models,完成。models下了將近一個小時。

2.下載ssd-mobilenet
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md下載ssd_mobilenet_v1_coco,我下下來的是2018-01-28,然後把它移至models檔案下。進行下一步操作。

3.程式碼測試
https://www.jianshu.com/p/ea5abe01aaf1
借用了這篇文章提供的原始碼,我是將detect.py和ssd_mobilenet_v1_coco_2018_01_28.tar.gz放至model-master資料夾而不是models資料夾。我放在models會報一個tensorflow.python找不到keras模組的錯誤,並且在models下執行import tensorflow會報關於keras的錯,原因不詳。記憶體佔用率一直在80%附近,跟原作者的差不多,跑久了會自己斷開遠端連線。

可以順利地識別出攝像頭拍到的一些物體啦:

 

遠端獲取視訊:vlc播放器裝在windows上。

1.將樹莓派做成流視訊伺服器:https://blog.csdn.net/chenxing109/article/details/85071881,視訊放在/live/mediaServer目錄下就可以了,live555是開源的。

2.讀取樹莓派攝像頭視訊的伺服器:https://forum.synology.com/enu/viewtopic.php?f=82&t=98870
作者說自己是pi2,我pi3的話按照步驟做下來有報錯的地方全部忽略繼續執行下一步,可以得到視訊,會有大概3s的延遲。現在的想法是把視訊傳給gpu,這樣時延太長了,3s傳輸時延再加上每幀識別的時延,還有物理回傳。

h264:影象壓縮不知道里面實現了沒有。