DJI 入职作业
树莓派采集视频,由后台GPU服务器进行目标检测。用户打开浏览器访问远程视频及检测结果。
本程序分为树莓派与Ubuntu16.04 PC两部分应用程序
处理树莓派端的视频采集,和H.264流的生成,并实现RTSP服务器推流
- 获取USB摄像头数据,直接采用opencv(基于V4L2)。
- 视频流编码格式采用H.264,基于x264库进行编码。
- RTSP推流,可用VLC实现播放。
- 基于ngrok实现内网穿透。
1)部署ngrok服务端,提供内网穿透功能。
- libvlc访问RTSP服务器,H.264视频解码。
- 基于YOLO网络检测视频中的目标。
- 输出MJPEG视频流,并推送至HTTP服务器。
libcv-dev x264 live555
libcv-dev的安装:sudo apt-get install libcv-dev
x264的安装:采用源码编译安装,参考https://www.jianshu.com/p/dec9bf9cffc9
live555的编译后请运行sudo make install,自动安装至/usr/local/lib目录下
golang 1.6.3 ngrok ngrok的域名解析,证书生成,编译请参考https://www.sfantree.com/ngrok-raspberry-cross-nat
CUDA-8.0 CUDNN OpenBLAS OpenCV3.3.1 CMake FFmpeg LibVLC
mkdir build
cd build
cmake ..
make
cd ./ngrok
bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain "ngrok.misaki.top" -httpAddr=":8080" -tunnelAddr=":8083"
部署ngrok服务端,http监听端口8080,控制转发监听端口8083。
- 内网穿透:
bin/ngrok -config=ngrok.conf start rtsp
开启RTSP内网穿透功能
- 视频采集与RTSP推流: 可执行程序为bin/main
cd ./build
bin/main
VLC播放器打开后,点击播放按钮-选择网络选项-输入网络URL:rtsp://ngrok.misaki.top:10087/H264Live,即可。
./rasp_eye_pc -h
Usage: ./rasp_eye_pc image/video [Options]
Options:
-d specify the detector to use
coco
tiny-coco
voc
tiny-voc
-i specify the remote IP and port
-f specify the camera device
-r specify the rtsp address
-w set image width
-h set image height
-fps set fps of video
-g use gpu index
-nogpu don't use gpu
-thresh threshold of detector
-hier
-h for help