sophon-stream

by wlc952
8 downloads 0 likes on ModelScope updated

Model card

sophon-stream 视频检测项目说明

1.下载项目文件(本地已有可跳过)

从网盘下载压缩包: 链接:https://pan.baidu.com/s/11Ig7jAY9wxbdm8uh1Og4Hg?pwd=edwb 提取码:edwb

2.解压到/data目录

unzip解压所有压缩包,请确认最终的目录结构应该为:

/data/sophon-stream  # 核心项目
/data/8models        # 测试模型
/data/test2.mp4      # 测试视频

3.开始测试

3.1启动nginx文件服务器

cd /data/sophon-stream

在目录下应该可以看到 nginx_setup.sh和 nginx.conf两个文件,执行下面命令:

chmod +x nginx_setup.sh
./nginx_setup.sh

3.2启动测试

cd /data/sophon-stream

在目录下应该可以看到 run.sh文件,执行下面的命令:

chmod +x run.sh
./run.sh

run.sh是根据需求一次运行8个模型检测任务,可使用下面的命令运行单个:

echo 'export LD_LIBRARY_PATH=/data/sophon-stream/build/lib/:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

cd /data/sophon-stream/samples/build
./main --demo_config_path=../yolov5/config_2/yolov5_demo.json

3.3查看运行数据

可以查看盒子的文件夹 /data/alarms/;也可以浏览器访问nginx的网页:http://盒子ip/static/

4. 配置文件修改

在 samples/yolov5 目录下有多个config文件夹如 config_1,对于不同模型。

在 samples/yolov5/config_1/yolov5_demo.json 修改输入源,修改url为真实的rtsp源,对应修改source_type等。

{
  "channels": [
    {
      "channel_id": 0,
      "url": "rtsp://172.24.64.225:8554/stream1",
      "source_type": "RTSP",
      "sample_interval": 1,
      "loop_num": 1,
      "fps": 25
    }
  ],
  "class_names": "../yolov5/coco.names",
  "download_image": false,
  "draw_func_name": "draw_yolov5_results",
  "engine_config_path": "../yolov5/config_1/engine_group.json"
}

在 samples/yolov5/config_1/yolov5_group.json 修改模型文件路径,

{
    "configure": {
        "model_path": "/data/8models/踩刹车0825/yolov5s_tpukernel_fp16_1b.bmodel",
        "threshold_conf": 0.5,
        "threshold_nms": 0.5,
        "bgr2rgb": true,
        "mean": [
            0,
            0,
            0
        ],
        "std": [
            255,
            255,
            255
        ],
        "use_tpu_kernel": true
    },
    "shared_object": "../../build/lib/libyolov5.so",
    "name": "yolov5_group",
    "side": "sophgo",
    "thread_number": 1
}

在 samples/yolov5/config_1/save_video.json 修改保存视频和上传视频的相关参数。

{
  "configure": {
    "server_url": "http://182.92.230.1:9181/warning-agreement/upload", # 改成server端真实地址
    "save_dir": "/data/alarms",
    "base_file_url": "http://127.0.0.1/static", # 改成真实设备ip
    "record_seconds": 10, # 保存视频的时长
    "pre_record_seconds": 0, # 预录时长
    "cooldown_seconds": 10, # 两次保存视频的间隔时间
    "retention_days": 1, # 保存天数
    "retention_max_gb": 1, # 最大保存空间
    "cleanup_interval_seconds": 300, # 清理间隔时间
    "deviceId": "1287", 
    "deviceIp": "127.0.0.1", # 改成真实设备ip
    "safetyId": "1",
    "safetyName": "安全员1", 
    "warning": "way",
    "video_url_field": "brakeUrl", # "safetyUrl" 或 "brakeUrl"
    "type": 7 # 对于模型检测的type 
  },
  "shared_object": "../../build/lib/libsave_video.so",
  "name": "save_video",
  "side": "sophgo",
  "thread_number": 1
}

重新启动:

./run.sh

5 yolov5实时显示测试说明

想要实时查看模型的识别框可以使用示例 samples/yolov5_osd_encode 。

# 1.启动rtsp服务器,如`mediamtx`
cd /data/mediamtx*
./mediamtx

# 2.启动目标检测程序
cd /data/sophon-stream/samples/build
./main --demo_config_path=../yolov5_osd_encode/config/yolov5_demo.json

# 3.接收rtsp流
# 例如使用VLC播放器接收"rtsp://ip:8554/live/0_X",X为输入源的channel_id,默认为0。

6文档

请参考sophon-stream用户文档