关于ai检测结果上传到上位机实时图像提升帧率

Viewed 53

问题描述


我使用UVC摄像头(image),读取图像,RW007模块负责上传图像数据到上位机,但是上位机上实时图像传递的帧率很低,有什么解决方法吗

  1. KPU 推理本身
    ob_det.run(img_np) 这一句是最重的,尤其是 640x640 输入时。你现在的帧率上限,先看它。

  2. to_rgb888() 和 to_numpy_ref()
    每次推理前都要把 RGB565 转成 RGB888 再转成 numpy 视图,这一段在 MicroPython 上也不轻。对应代码在推理
    循环里。

  3. 画框和文字
    draw_rectangle()、draw_string_advanced() 不是最重,但每帧都画、框多的时候会明显拖慢。

  4. scale() + compressed() + sock.send() 的推流链路
    只在 is_stream_enabled() 时才跑,但如果开着云端上传,这一整条会吃不少时间。
    当前新文件里这部分已经比之前轻了,但仍然是额外负担。

  5. Wi-Fi 连接和 socket 连接
    这个是“启动/重连成本”,不是每帧主要成本。RW007 只能改善网络可用性,不会消掉本机图像处理开销。

  6. LVGL 和 OSD2
    如果启用,主循环里 lv.task_handler() 和触摸、控件绘制也会占一些 CPU,但通常不是第一瓶颈。

硬件板卡


rtsmart ai开发套件

软件版本


CanMV-K230_DONGSHANPI_micropython_local_nncase_v2.9.0

2 Answers

你好,可以去咨询一下RTT的同事,看一下RW007的带宽,或者换用其他板子,使用RTL8189 WiFi模块的,或者使用USB转以太网来测试。

你需要明确定位需求,是想要传输的更快还是想要推理的更快也就是要明确现在传输较慢的瓶颈到底是模型推理还是数据传输?如果是模型推理可以更换分辨率更低的模型