10.5. 目标检测全链路示例文档

10.5.1. 介绍

此用例展示如何在J5上运行一个检测模型并展示结果。

10.5.2. 程序原理

本示例实现了VioModule、InferenceModule、PostProcessModule、CodecModule和WebDisplayModule, 并使用生产者+消费者模型将各个模块串连起来,其关系如下图所示:

../../_images/J5Sample.png
  • VioModule:获取图像数据,支持网络回灌和camera两种模式。

  • InferenceModule:获取Vio图像数据,调用dnn接口执行预测任务。

  • PostProcessModule:对预测的结果进行后处理,获取智能结果。

  • CodecModule:获取Vio图像nv12数据,编码为jpg格式数据输出。

  • WebDisplayModule:获取智能结果和编码后的jpg数据,通过websocket发送到web展示。

10.5.3. 编译与部署

bash build_and_deploy.sh

上方命令执行后,会生成一个deploy目录,该目录拷贝到J5板子上。

10.5.4. 运行

进入deploy文件夹,执行如下命令:

sh run_sample.sh l

l表示log的debug级别,支持i/d/w/e/f。

  • i: 打印info信息,可显示各个module的耗时。

  • d: 打印debug信息。

  • w: 打印warning信息,可显示FPS,默认是w。

  • e: 打印error信息。

  • f: 打印fatal信息。

默认是camera模式,回灌模式修改配置文件后重新运行即可。

10.5.4.1. camera模式

目前支持的摄像头列表如下:

  • max9296+ar0233(SENSING Fov216)

    • configs/vio/j5_vio_config.json文件中config_index设置为0。

    • configs/vio/vin/camera/j5_camera_source.json文件中cam_index设置为0。

  • max96712+ar0233(SUNNY Fov100)

    • configs/vio/j5_vio_config.json文件中config_index设置为2。

    • configs/vio/vin/camera/j5_camera_source.json文件中cam_index设置为1。

10.5.4.2. 网络回灌模式

进入deploy文件夹,修改配置文件:

vi configs/vio/j5_vio_config.json

修改 config_index 字段为’1’即是网络回灌模式。

网络回灌Client端工具在 tools/network_send 目录下,基于python3语言编写,使用方式如下:

1.将需要回灌的jpeg图像存放在 tools/network_send/images/ 目录下:

|── tools
  ├── network_send
  │   ├── images
  │   ├── pc_send.py
  │   └── test_pb2.py

2.在服务器上运行:

python3 pc_send.py --input_file_path ./images --board_ip 10.64.61.209 --is_loop true

参数说明:

  • input_file_path:指定回灌图像的文件夹,文件夹中的图片将依次发送出去。

  • board_ip:需要发送的目标地平线j5板的ip地址。

  • is_loop:是否循环发送input_file_path中的图片。取值是false,则发送一轮就结束;取值是true,则将会一轮一轮的不停发送。

10.5.4.3. WebService

camera模式和网络回灌模式的展示效果都通过 OpenExplorer web 进行可视化。Server端工具在 tools/webservice 目录下:

|── tools
  ├── webservice
  │   ├── conf
  │   ├── html
  │   ├── logs
  │   ├── sbin
  │   ├── README.md
  │   └── start_nginx.sh

10.5.4.3.1. 如何使用

1.进入板端deploy文件夹,执行脚本启动 webservice

sh start_nginx.sh

2.打开浏览器,访问 http://IP 。其中,IP即J5的地址。点击web展示端链接,即可查看检测效果。

10.5.4.3.2. 检测效果

进入deploy文件夹,修改后处理配置文件可调整检测效果:

vi configs/model/postprocess_config.json

下图是配置为如下参数的检测效果:

"topk": 5,
"score_threshold": 0.61,
"iou_threshold": 0.6,
../../_images/detection_result.png