CARLA实战 | CARLA文档里都没有的渲染关闭方法被我找到?

一、前言

大家好,我是自动驾驶打工人白夜。最近我在学习CARLA渲染相关的知识,发现很多小伙伴在进行仿真实验的时候,都希望有一种关闭渲染的方法,于是我决定来分享一下CARLA关闭渲染的几种方法。其中有一种方法,CARLA文档中都没有提到过,学到就是赚到。出于新手友好的原则,首先我们先来了解一下何为渲染。

二、渲染是什么?

在计算机图形学领域,渲染(Rendering)是一项关键概念,指的是将计算机中的三维物体以逼真的方式呈现在显示器上的二维平面的过程。CARLA作为一款自动驾驶仿真平台,其运行过程默认包含渲染操作,以提供真实感的场景呈现。CARLA提供两种不同的图形质量级别:Epic与Low。Epic是默认设置,会渲染最为详尽的细节效果。而Low模式则禁用所有的后期处理和阴影,同时将渲染的距离限制为50米。在Low模式下,仿真速度显著提高。这对于在传感器精度不关键或者数据简单等情况下训练Agent非常有帮助。

在另外情况下,例如为了节省计算资源或需要在服务器端运行,我们可能压根不希望进行渲染。关闭CARLA渲染的方式多种多样,这取决于任务需求和具体的使用场景,大致可分为Offscreen Rendering和No Rendering两大类。

三、离屏渲染 vs. 不渲染

在CARLA中,关闭渲染可以通过两种方式来实现:使用Offscreen和No Rendering。这两者之间存在一些区别,特别是在应用方面。

Offscreen Rendering(离屏渲染)
  • Offscreen渲染是指将渲染的结果保存在一个不可见的缓冲区中,而不在屏幕上显示。这种方法对于一些后台任务或者不需要实时显示的场景很有用;

  • 这种模式通常用于需要进行传感器数据采集、视觉算法验证或图像处理的场景。

No Rendering(不渲染)
  • 在该模式下,CARLA完全关闭了渲染,不进行任何图形渲染操作;

  • 这种模式通常用于节省计算资源、在服务器上运行CARLA时或进行无需图形输出的性能测试。

选择使用"offscreen rendering"还是"no rendering"取决于具体的需求。如果需要模拟传感器数据或进行与图形相关的处理,"offscreen rendering"模式可能更适合;而如果只关心后台仿真并希望最小化计算开销,"no rendering"模式可能更为合适。而在运行CARLA时,"no rendering"又有不同的实现方式。

四、No Rendering的两种实现方法

--no-rendering

CARLA官方提供了--no-rendering命令行参数,用于在运行模拟时禁用图形渲染。这个参数的作用是告诉CARLA在仿真过程中不进行图形渲染,从而减少计算开销。

--no-rendering参数会告诉CARLA不执行图形渲染。当你使用--no-rendering参数时,CARLA将在后台执行仿真,但不会显示图形界面。这对于那些只关心模拟数据而不需要图形渲染的场景非常有用。

通过python config.py --no-rendering运行CARLA脚本进入无渲染模式,服务端窗口会进入黑屏,但是,客户端pygame依然会渲染。

  • 服务端不渲染,黑屏

  • 客户端,pygame依然会渲染,pygame也需要使用no-render设置

--nullrhi

而另一种在CARLA官方文档中未被提及的方式就是--nullrhi。在计算机图形学中,RHI(Rendering Hardware Interface)是一种硬件抽象层,用于封装不同图形硬件(GPU)的底层细节,使得图形渲染引擎可以与各种不同类型的硬件协同工作。RHI负责管理图形资源、执行渲染命令等底层操作,使得开发者可以编写与具体硬件无关的图形渲染代码。

而UE中的--nullrhi参数则是一种特殊的模式,表示使用Null Rendering Hardware Interface,即空渲染硬件接口。在这种模式下,CARLA将不会执行实际的图形渲染操作,从而减轻了与图形相关的计算负担。这对于一些特殊的仿真场景,比如需要在后台运行仿真或进行性能测试时,是非常有用的。

使用--nullrhi参数,客户端运行manual_control.py时pygame黑屏。nullrhi 只适用于多GPU模式,可以只有一个GPU进行渲染,而其他GPU使用nullrhi不进行渲染。

为了深入了解这两个参数对系统资源的影响,我们设计了实验,专注于CARLA在三种情况下的表现:正常渲染、no rendering和nullrhi参数。我们选用了Town01地图,并在CARLA客户端中创建了一个静态的场景,确保在试验期间没有车辆或其他动态元素引起的干扰。

通过监测GPU和CPU的利用率,我们将研究在静态场景中这三种渲染模式下CARLA的性能差异。这些实验结果将提供有关在无运动元素的静态环境中,禁用渲染对系统资源的影响。

五、实验报告

一个简短的实验报告分享给大家~

实验环境
  • 显卡:3080/10G

  • 内存:32G

  • CARLA版本:0.9.14

实验结果

客户端处于静态情况下,三种不同渲染方式在地图Town01中的实验表现。

实验总结

1)Carla Client的--no-rendering选项可以禁止和GPU相关的传感器仿真,但是没有禁用物理世界的渲染仿真,因此在Carla中的表现是物理世界可以看到正常的渲染画面,和GPU相关的传感器返回空数据,因此这种模式GPU会有消耗,但比不加--no-rendering 选项的消耗低;

2)Carla Server 的--nullrhi选项是UE选项,完全禁用了GPU计算,因此不占用GPU。

六、写在最后

希望这次分享的内容能够对大家在自动驾驶仿真中更灵活地进行实验提供帮助~如果大家有其他的方法或者发现我分享的内容有误,欢迎大家指正和分享讨论。

深信科创:致力于自动驾驶工业软件

深信科创是一家专注于提供自动驾驶仿真及智慧交通解决方案的国家高新技术企业。公司基于人工智能、软件测试、数字孪生与大数据等技术,一直致力于自动驾驶领域的研发和探索,拥有一支高素质的研发团队,自主研发了自动驾驶仿真及数据闭环工具链SYNKROTRON®  Oasis产品系列,能够提供高精度传感器模型、动力学模型及感知级交通环境仿真解决方案等,客户可以在仿真平台上对自动驾驶系统开展大规模的仿真测试和模型训练,提前识别自动驾驶系统缺陷、降低实车测试成本、消除场景端落地的安全隐患,加速无人驾驶技术在场景端的安全落地。

更多学习资料、产品试用和社群交流请联系微信:synkrotron1

预约产品试用/技术交流:

手机端: https://synkrotron.ai/vue3/dist/index.html#/appoint_mobile

电脑端: https://synkrotron.ai/vue3/dist/index.html#/appoint_desktop

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值