项目简介
本项目借助ncnn框架实现了一个物品识别系统,采用深度学习模型(特别是YOLO系列算法中的某一版本),能对输入的视频流进行实时物品识别,并标注物品位置。具有实时性高、准确率高、运算资源消耗低的优点。
项目的主要特性和功能
- 运用ncnn框架开展模型推理,计算性能高效。
- 支持使用YOLO算法进行目标检测。
- 可接收视频流输入,实时识别并标注物品位置。
- 支持将检测结果以图片形式输出,方便查看识别结果。
安装使用步骤
假设用户已下载本项目的源码文件:
1. 安装ncnn框架及相关依赖库。
2. 构建项目:
bash
meason build
cd build && ninja
3. 将生成的.so文件复制到nnstreamer插件路径下,路径为 /usr/lib/nnstreamer/filters/
,可通过配置 /etc/nnstreamer.ini
修改。
4. 把模型文件复制到net目录下:
bash
$ ls net/
coco.txt epoch_300_float.ncnn.bin epoch_300_float.ncnn.param
5. 运行项目:
bash
gst-launch-1.0 \
v4l2src name=cam_src ! videoconvert ! videoscale ! \
video/x-raw,width=1280,height=720,format=RGB,pixel-aspect-ratio=1/1,framerate=30/1 ! tee name=t \
t. ! queue leaky=2 max-size-buffers=2 ! videoscale ! \
video/x-raw,width=320,height=320,format=RGB ! tensor_converter ! \
queue ! tensor_filter framework=swift_yolo model=net/epoch_300_float.ncnn.bin,net/epoch_300_float.ncnn.param input=3:320:320:1 inputtype=uint8 output=85:6300:1:1 outputtype=float32 latency=1 ! \
other/tensors,num_tensors=1,types=float32,dimensions=85:6300:1:1,format=static ! \
tensor_decoder mode=bounding_boxes option1=yolov5 option2=net/coco.txt option3=1:2500:0.3 option4=1280:720 option5=320:320 ! \
video/x-raw,width=1280,height=720,format=RGBA ! mix.sink_0 \
t. ! queue leaky=2 max-size-buffers=10 ! mix.sink_1 \
compositor name=mix sink_0::zorder=2 sink_1::zorder=1 ! videoconvert ! ximagesink sync=false
6. 查看输出结果,如 result.png
。
具体的插件配置可根据需求调整nnstreamer配置文件。用户可替换YOLO模型、权重参数及预设配置以适应自身应用场景。需注意,本项目的脚本和环境配置可能需特定操作系统和依赖库支持,用户要根据自身环境适当调整。此步骤假设用户具备基本的Linux操作系统知识和命令行操作能力,安装中遇到问题可查阅相关文档或寻求专业帮助。
下载地址
点击下载 【提取码: 4003】