前面先后测试了MobileSAM、FastSAM等新出的大厂模型,出现vscode闪退、NX死机、源码内部np转化报错等问题,未能成功部署,最后还是回到了最初的UNet…
不同于 yolov8 等目标检测模型的推理速度,在NX能够实现每帧50ms,差不多20+fps
语义分割受限于模型大小、 可视化 处理等耗时步骤,难以实现真正意义上的实时推理…
(后续可能会将耗时步骤进行一定优化,并尝试转换为onnx,使用 tensorRT 等方式)
实测结果如下:
总体推理平均速度:FPS = 1.5 - 1.6
平均每帧的处理耗时如下:
下方有 视频推理 截图及控制台打印
分析每帧的处理耗时可发现:如需提高推理速度,其中每个步骤都还有一定优化空间!

Configurations:
----------------------------------------------------------------------
| keys | values|
----------------------------------------------------------------------
| model_path | logs/best_epoch_weights.pth|
| num_classes | 4|
| backbone | vgg|
| input_shape | [512, 512]|
| mix_type | 0|
| cuda | True|
----------------------------------------------------------------------
...
当前帧推理结果前置处理耗时:0.003835秒
当前帧推理结果可视化耗时:0.060502秒
当前帧推理耗时:0.588689秒
fps= 1.65
当前帧推理结果前置处理耗时:0.006402秒
当前帧推理结果可视化耗时:0.061084秒
当前帧推理耗时:0.585092秒
fps= 1.63
当前帧推理结果前置处理耗时:0.025113秒
当前帧推理结果可视化耗时:0.060754秒
当前帧推理耗时:0.596373秒
fps= 1.61
当前帧推理结果前置处理耗时:0.003924秒
当前帧推理结果可视化耗时:0.063088秒
当前帧推理耗时:0.580375秒
fps= 1.64
当前帧推理结果前置处理耗时:0.003406秒
当前帧推理结果可视化耗时:0.063007秒
当前帧推理耗时:0.59157秒
...
CPU:i5-8265u,内存:8G,显卡:MX150(2G)

Configurations:
----------------------------------------------------------------------
| keys | values|
----------------------------------------------------------------------
| model_path | logs/best_epoch_weights.pth|
| num_classes | 4|
| backbone | vgg|
| input_shape | [512, 512]|
| mix_type | 0|
| cuda | True|
----------------------------------------------------------------------
当前帧推理结果前置处理耗时:0.029652秒
当前帧推理结果可视化耗时:0.052575秒
当前帧推理耗时:2.447979秒
fps= 0.20
当前帧推理结果前置处理耗时:0.009425秒
当前帧推理结果可视化耗时:0.069936秒
当前帧推理耗时:1.098136秒
fps= 0.55
当前帧推理结果前置处理耗时:0.008928秒
当前帧推理结果可视化耗时:0.046095秒
当前帧推理耗时:1.109544秒
fps= 0.72
...
当前帧推理结果前置处理耗时:0.008961秒
当前帧推理结果可视化耗时:0.07493秒
当前帧推理耗时:1.158615秒
fps= 0.87
Video Detection Done!
libpng warning: iCCP: cHRM chunk does not match sRGB
CPU:i5-11700k,内存:64G,显卡:RTX3080(10G)

实验室服务器测试记录
Configurations:
----------------------------------------------------------------------
| keys | values|
----------------------------------------------------------------------
| model_path | logs/best_epoch_weights.pth|
| num_classes | 4|
| backbone | vgg|
| input_shape | [512, 512]|
| mix_type | 0|
| cuda | True|
----------------------------------------------------------------------
当前帧推理结果前置处理耗时:0.002446秒
当前帧推理结果可视化耗时:0.020887秒
当前帧推理耗时:0.091292秒
fps= 9.56
当前帧推理结果前置处理耗时:0.002285秒
当前帧推理结果可视化耗时:0.020578秒
当前帧推理耗时:0.094513秒
fps= 9.76
当前帧推理结果前置处理耗时:0.002309秒
当前帧推理结果可视化耗时:0.020758秒
当前帧推理耗时:0.08981秒
fps= 10.12
当前帧推理结果前置处理耗时:0.002612秒
当前帧推理结果可视化耗时:0.020973秒
当前帧推理耗时:0.092241秒
...
当前帧推理结果前置处理耗时:0.002056秒
当前帧推理结果可视化耗时:0.021662秒
当前帧推理耗时:0.091824秒
fps= 10.13
Video Detection Done!
这里感谢大佬Bubbliiiing提供的Unet的pytorch版基础源码,非常好用!