rotate

功能介绍

rotate实现图像旋转功能,暂时只支持NV12格式的图片,支持的旋转角度为90、180、270。

代码仓库: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_rotate.launch.py

结果分析

[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rotate_example-1]: process started with pid [3096]
[rotate_example-1] [INFO] [1655951661.173422471] [example]: rotate image 180 , time cost: 415 ms
[rotate_example-1]
[rotate_example-1] [INFO] [1655951661.416188013] [example]: second rotate image 180 , time cost: 40 ms
[rotate_example-1]
[INFO] [rotate_example-1]: process has finished cleanly [pid 3096]

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

图片处理 第一次运行耗时 第二次运行耗时
1920x1080旋转180度 415ms 40ms

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

本地原图1920x1080、rotate后1920x1080图片如下:

../../_images/test.jpg

../../_images/rotate.jpg

hobot_cv与opencv处理性能对比

使用top命令查看cpu占用,cpu占用为测试进程cpu占比。 耗时统计单位为ms,循环处理1000次取平均值。 测试时锁定cpu频率:

sudo bash -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor'
src wxh 旋转角度 hobotcv耗时 hobotcv接口cpu占用 opencv耗时 opencv处理cpu占用
1920x1080 90 37.6568 61.6 55.8886 100.0
640x640 180 7.3133 66.8 5.1806 100.0
896x896 270 14.7723 62.5 13.6497 100.0