均值滤波
功能介绍
实现均值滤波功能,加速方式为NEON加速,暂时只支持int16,uint16格式。
支持平台
平台 | 运行方式 | 示例功能 |
---|---|---|
旭日X3派 | Ubuntu 20.04 | 读取ToF图片,进行均值滤波 |
准备工作
旭日X3派
旭日X3派已烧录好地平线提供的Ubuntu 20.04系统镜像。
旭日X3派已成功安装TogetheROS.Bot。
使用介绍
当前版本支持的参数范围如下:
滤波类型:均值滤波
支持的数据类型:int16,uint16
滤波核:3x3,5x5
package中提供了简单测试程序,输入为本地的ToF图片,调用hobot_cv中接口实现均值滤波功能。具体接口说明可参考hobot_cv pakcage中的README.md进一步了解。
旭日X3派
# 配置TogetheROS环境
source /opt/tros/setup.bash
# 从TogetheROS的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_cv/config/ .
# 启动测试程序pkg
ros2 launch hobot_cv hobot_cv_neon_blur.launch.py
结果分析
输出结果:
[neon_example-1] ===================
[neon_example-1] image name :config/tof_images/frame1_4.png
[neon_example-1] hobotcv mean cost time:674
[neon_example-1] opencv mean cost time:1025
[neon_example-1] hobotcv mean save rate:0.342439
[neon_example-1]
[neon_example-1] analyse_result start
[neon_example-1] ---------Mean_Blur
[neon_example-1] error sum:8.43744e+06,max:1,mean_error:0.430833
[neon_example-1]
[neon_example-1] -------------------------
其中:
hobotcv mean cost time:674 //hobot_cv 均值滤波neon加速接口耗时674微秒。 opencv mean cost time:1025 //表示opencv的均值滤波耗时1025微秒。 hobotcv mean save rate = (opencv cost time - hobotcv cost time)/ opencv cost time = 0.342439 从以上比较结果,经过hobotcv加速后均值滤波性能提升34%
error sum:8.43744e+06,max:1,mean_error:0.430833 //均值滤波单张图片总误差是:8.43744e+06,单个像素最大误差是:1,平均误差:0.430833 均值滤波平均误差 = sum / (width x height) = 8.43744e+06 / (320 x 240)
hobot_cv与opencv处理性能对比
接口类型 | 滤波核大小 | 耗时(ms) | 单核CPU占比(%) |
---|---|---|---|
Hobotcv mean | Size(3,3) | 0.466397 | 31.8 |
Opencv mean | Size(3,3) | 0.676677 | 40.2 |
Hobotcv mean | Size(5,5) | 0.737171 | 47.7 |
Opencv mean | Size(5,5) | 0.798177 | 52.9 |