pyramid

功能介绍

实现图像金字塔缩放功能,暂时只支持NV12格式。

代码仓库:https://c-gitlab.horizon.ai/HHP/box/hobot_cv

支持平台

平台 运行方式 示例功能
旭日X3派 Ubuntu 20.04 读取图片,进行金字塔缩放

准备工作

旭日X3派

  1. 旭日X3派已烧录好地平线提供的Ubuntu 20.04系统镜像。

  2. 旭日X3派已成功安装TogetheROS.Bot。

使用介绍

旭日X3派

# 配置tros.b环境
source /opt/tros/setup.bash

# 从tros.b的安装路径中拷贝出运行示例需要的模型和配置文件。
cp -r /opt/tros/lib/hobot_cv/config/ .

# 启动launch文件
ros2 launch hobot_cv hobot_cv_pyramid.launch.py

结果分析

[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [pyramid_example-1]: process started with pid [3071]
[pyramid_example-1] [INFO] [1655951639.110992960] [example]: pyramid image , time cost: 299 ms
[pyramid_example-1]
[pyramid_example-1] [INFO] [1655951639.432398919] [example]: pyramid image , time cost: 19 ms
[pyramid_example-1]
[INFO] [pyramid_example-1]: process has finished cleanly [pid 3071]

根据log显示,测试程序完成了对本地1920x1080分辨率图片金字塔缩小的处理。接口调用两次,两次耗时分别如下。

图片处理 第一次运行耗时 第二次运行耗时
1920x1080金字塔六层基础层输出 299ms 19ms

因为第一次运行,需要对vps硬件进行配置所以耗时较多,如果不再更改硬件配置属性,硬件直接进行处理,耗时就会显著降低。

本地原图1920x1080、pyramid缩放后图片如下:

../../_images/pym_ds.jpg

输出基础层六层,每一层size是上一层的1/2

性能对比

输入图片1920x1080,向上获取5层输出获取到960x540、480x270、240x134、120x66、60x32分辨率的图片。分别对比opencv和hobotcv效率,结果如下:

cpu占用为单核百分比,耗时统计单位为ms

VPS接口耗时 vps接口cpu占比 opencv耗时 opencv接口cpu占比
19ms 42.5 56 100