tag 标签: 数据分析

相关帖子
相关博文
  • 2024-11-15 10:21
    189 次阅读|
    0 个评论
    康谋分享 | 确保AD/ADAS系统的安全:避免数据泛滥的关键!
    为确保AD/ADAS系统的安全性,各大车企通常需要 收集、处理和分析 来自于摄像头、激光雷达等传感器的数据,以找出提高系统安全性和性能的方法。然而在数据收集过程中,不可避免地会出现 大量无价值数据 ,造成 数据泛滥 的情况,进而影响数据的分析处理进程。为此,本文将为大家分享如何通过 合适的指标 及 分析工具 ,实现 数据的高效管理、解读和正确分析 ,以避免数据泛滥的不利影响! 一、现有问题 对于汽车制造商来说,确保AD/ADAS系统的安全性通常需要 收集大量数据。 为了开发、验证和改进自动驾驶系统,流程通常是相同的:在各种条件下反复进行驾驶测试,累积大量里程。 这些来自不同来源(摄像头、GPS、激光雷达、仿真等)的驾驶日志随后会被处理和分析,以找出提高系统安全性和性能的方法。由于涉及 大量传感器 、 众多不同的使用场景 以及 大量的行驶里程 ,需要 处理的信息量 会迅速呈 指数级增长。 面对如此大量待处理的信息,很容易让人感到不知所措。收集到的很多内容可能 毫无用处 (设想开车行驶的数千公里却什么有趣的事情都没发生),而且在这个过程中,一些信息可能会 丢失或损坏 。此外,仅收集数据是不够的。这些数据需要被 管理、解读和正确分析 。数据池越大,这个过程就越痛苦和昂贵。 二、康谋方案-避免数据泛滥的2个关键 基于上述问题,康谋提出2个关键点,助力AD/ADAS系统开发、验证和改进过程,避免被庞大的数据淹没,从中获得最大受益: 1、关键点1 –通过指标和算法聚焦于相关发现 第一个关键点在于一个简单的原则: 必须尽可能减少数据池,只保留最相关的信息。 内容越少,处理和分析越快 。此外,专注于更小的有效信息集合可以降低存储成本和维护负担。 为了减少初始内容池,可以创建 有用的信息块, 或者说 "指标(metrics)" ,以更简短和有意义的方式总结和描述它。这些指标可以根据使用案例指代多种事物: 统计数据、事件或甚至场景 。一旦它们与业务需求对齐,就有必要通过 适当的算法 生成。 设想一下您正在努力提高新车辆的 安全性和舒适性。 具体来说,您正在试图了解如何减少车辆进行危险紧急制动的情况,即车辆突然刹车导致乘客不适,并构成潜在安全隐患的情况。与其手动检查历史驾驶记录去找到这些情况,不如 构建一种算法 来完成这项工作。 例如,遍历驾驶测量数据,计算车辆的减速度,并标记超出您定义的舒适限度的时刻。此外,该算法还可以计算其他参数,如与其他车辆的距离,以了解发生这种情况的原因。一旦初始数据已根据所选指标进行标记,您就可以将精力集中在这些上面。 2、关键点2 –使用全面的分析工具可视化见解 经过了关键点1,最初的原始数据池就被压缩成了少量的相关内容。它们需要 被可视化 、 分析和共享 ,以便能够用于新车辆、传感器或软件的开发或验证。所有这些都可以通过联系发现与强大的分析平台来完成。 这是一个可以 汇总所选指标并控制信息流 的集中点。根据具体情况,有许多可视化检查的例子:分析地图上近处的碰撞事故、在时间序列图上提取切入场景、可视化相机图像上消失的物体等。好用的可视化也有助于分析,并允许生成可以跨团队或任何利益相关者共享的报告。 为了说明这一点,让我们继续以上一节中描述的 安全和舒适性 为例。一旦找到您初始驾驶日志中所有感兴趣的紧急制动情况,就可以理解它们是 如何以及更重要的是为什么发生 。一种解决方案是在地图上显示这些情况,并绘制相关车辆和周围障碍物的信息。然后可以将这些发现 传递给相关团队 ,进而改进系统。 三、小结 总而言之,为了从收集的数据中获得最大收益,需要将其归纳为 有用的指标 ,然后在一个 强大的分析工具 上显示这些指标,以便于 可视化和共享 。要实现这些,需要拥有一个 合适的架构 作为处理流程的基底,使算法和工具能够顺利运行。
  • 热度 2
    2024-10-24 09:41
    62 次阅读|
    0 个评论
    AD/ADAS的性能概览:在AD/ADAS的开发与验证中“大海捞针”!
    如果您希望从 数百万小时的驾驶数据中查找特定的相关驾驶事件和未遂事故 ,以确保您的所需功能正确运行,最好的方法就是 创建一个系统性能的概览分析 ,实现在数据日志中快速检索关注点。为此,康谋在本文将为您详细介绍 IVEX的智能概览功能 ,助力AD/ADAS的开发与验证! 一、AD/ADAS性能概览的重要性 为了开发、演进、测试和验证自动驾驶(AD)功能或自动驾驶辅助系统(ADAS),各大企业都在生成数千小时的包含仿真或真实世界的驾驶数据日志。那么 ,如何才能知道自身的AD/ADAS系统是否始终按要求运行?是否朝着更好的表现发展? 对“脱离”AD/ADAS模式的情况进行分析是一种常见的方法。这有助于了解系统失败的“原因”,而后可对表现不佳的地方进行分组,提供一个概览以确定纠正这些失败的优先顺序。然而, “脱离”分析仅涵盖“已知”的不当行为,对于边缘/极端情况该如何处理?更重要的是,对于险些发生的事故如何处理? 例如,由于一个错误检测或者说“幽灵检测”,白色的自车认为它将与车辆1发生碰撞,因此决定执行变道操作,如图1所示。幸运的是,由于自车的左车道是空的,该操作是可行的,否则就可能会由于自车的急刹车而导致与车辆4发生追尾事故。 图1 追尾未遂 这种更深入、更有成效的分析也与ISO 21448(SOTIF)所提出的过程相匹配,以识别在某些不利触发条件下系统可能会表现出的局限性、弱点与干扰,而这些都可能导致事故或相关意外事件的发生。 如果能够提供AD/ADAS系统性能的概览,工程师就可以迅速在结构化分析中定位所有相关的事件或条件,例如: (1)数据日志中出现了哪些未遂事故? (2)系统在哪一个操作域(OD)表现不佳,原因是什么? (3)开发是否正朝着更好的表现方向发展? (4)是否应该修改功能需求,以便流畅且充分地与现实世界交互? (5)功能是否满足了指定的需求? 因此,为了开发和验证AD/ADAS系统,需要有效地识别、分析并了解所有可能的未遂事故、性能不足或触发条件,这些都对AD/ADAS系统构成了挑战。 然而,当前高度依赖人工的技术手段如同“海底捞针”,在数百万小时的驾驶数据中几乎难以发现目标。 二、康谋IVEX智能概览 为了整理驾驶数据并找到那些重要的“针”, 康谋IVEX通过使用特定的安全和关键绩效指标(SPIs,KPIs),即根据采集/模拟驾驶数据汇总的“指标(metrics)”,以创建系统性能的最佳概览。 1、利用指标整理驾驶数据 由于采集数据的非结构化特性和不断变化的动态交通环境,整理驾驶数据存在巨大挑战。我们设定了3个主要指标类型来整理数据: 传感器与感知指标、行为指标、舒适度指标。 第一层是传感器与感知指标。 它们是自动驾驶汽车与环境的初始接触点,表示系统对周围环境的感知程度,有助于在开发的早期阶段突出性能不佳的情况,例如误报对象检测、车道线提取失败等。 第二层指标关注AD/ADAS系统采取的控制和行为动作。 例如,对于自动紧急制动(AEB)系统,需要检查制动信号是否在正确的时间触发,进而产生更好的减速。 第三层指标是指乘客可能体验到的舒适度。 例如,为了验证自动车道保持辅助系统(ALKS),可以测量车辆产生的任何会给乘客带来不适的摆动行为。 根据待测的AD/ADAS功能确定了哪些指标是感兴趣的之后,就可以有效地开始整理数据。除了前面的例子,指标还可以是跟踪感知物体尺寸、检查检测到的车辆边界框是否分裂或合并、监测与其他交通元素的前后距离和横向距离、预测潜在碰撞以及评估检测到的车道标识质量。 IVEX软件也允许工程师通过简单的编程API包含他们自己的定制指标。 2、创建合理且可观的概览 当使用选定的指标整理好记录的驾驶数据后,如何在所有的数据中找到所需的“针”? 在IVEX中,我们创建了一个优化的流程来高效处理所有驾驶数据日志。 我们汇总了所有的测量结果,提供了一个基于指标的清晰组织。此外,由于当前的L2+ ADAS系统受限于运行设计域(ODD),例如ALKS仅适用于车速低于60公里/小时的高速公路场景。我们根据ODD对分析进行切分,以便于简化搜索空间。 所有结果被汇总并呈现在一个简洁、可定制的界面中,只需单击三下即可“大海捞针”,详细检查特定的驾驶场景。 现在,我们可以观察整理得到的数据结果,如下图所示。这些结果是对所有数据日志的全面汇总,并以简单但具有指导性的方式展示。每个指标的结果显示在每一行上,而ODD则显示在列中。在每个单元格内呈现的是相应指标与ODD组合的违规率。 图2 聚合分析 举个例子,假设我们正在分析城市环境中驾驶系统的舒适性: 在一次点击中,我们选择了“低速”ODD(小于15公里/小时)下的“急刹车”指标。 接下来,我们看到的是在所选择的ODD内,所有分析的数据日志中施加的制动减速度分布情况。如果要求规定施加的制动减速度应小于4米/秒²,那么可以立即看到有0.06%的情况未能满足这一要求。通过第二次点击,就可以选择特定的制动范围(分布中的列)来分析特定的事件/情景。 图3 智能概览访问特定记录数据流程示意图 而后,工程师就可以直接访问确切时间戳的特定记录数据,观察完整情况并获得有关问题的额外见解。 三、结论 本文案例中,IVEX可以从69小时的驾驶日志中准确筛选出会令乘客非常不舒适的特定急刹车事件(减速度超过4米/秒²),展示了一种非常简单工作流程。 除了能够帮助工程师在几秒钟内从大量数据中找到相关事件,IVEX还提供可用于根据SOTIF和UL4600进行安全论证的报告。 简而言之, IVEX可以助力于实现: 1、整理海量数据日志并从中识别特定事件 2、识别需要添加为SOTIF分析一部分的触发条件 3、跟踪AD/ADAS系统在不同迭代中的演变,以展示系统改进的论据,并为UL4600文档提供具体的支持。
  • 2024-9-26 09:23
    318 次阅读|
    0 个评论
    康谋分享 | 直面AD/ADAS快速开发挑战:IVEX自动驾驶场景管理及分析平台!
    过去十年, 自动驾驶和高级驾驶辅助系统 (AD/ADAS) 软件和硬件的开发 成为了各大汽车公司的主要投资目标之一。各大汽车公司对 AD/ADAS 持续不断的投资加快了 AD/ADAS 组件的开发周期,但也揭示了目前需要解决的 重大挑战——如何快速了解开发 AD/ADAS 组件中的车辆行为,以便进行改进! 一、方案背景 由于 AD/ADAS 的运行环境很复杂,从仿真到真实驾驶, 任何 AD/ADAS 组件的每次更改都需要根据大量场景进行验证。 然而,场景数量庞大且每天都在增长, 传统的机器人开发支持工具(如 RVIZ)无法满足我们的需求。 例如,RVIZ只允许我们实时检查车辆的行为, 很难快速跳转到任何特定事件。 为此, 康谋推出IVEX自动驾驶场景管理及分析平台 来克服这一难题。IVEX是一个基于云的平台,包含许多功能来支持 AD/ADAS 的验证和开发。 下文康谋将为您分享在AD/ADAS开发中使用IVEX的经验。 二、康谋方案——IVEX自动驾驶场景管理及分析平台 图1 IVEX页面 1、数据输入 我们通过将原始数据转换为所需的格式,然后将转换后的数据上传到基于云的服务器来与安全分析平台进行交互。平台的输入数据以 Protobuf 消息格式定义,包括执行期间有关环境和AD/ADAS 行为的信息,例如: a.自车状态变量, 例如位姿、速度、加速度和转向角; b. 自我车辆规划轨迹; c.障碍物信息, 如位姿、边界框、速度和类型; d. 上下文图像; e.标记事件, 其中每个事件由一个标签和相应的时间戳组成; 2、场景执行结果 (1)格式 IVEX清晰且 定 义良好的输入格式有助于无缝处理不同的数据格式。由于场景来自不同的来源,因此场景执行结果具有不同的格式,例如 Autoware ROS2 Bags、Apollo CyberRecords、Carla Simulator 日志格式和其他商业模拟器日志格式。 对于每种数据格式,我们都有一个适配器 (通常只是一个 Python 脚本),用于将数据转换为安全分析的 Protobuf 输入格式。Protobuf 是大多数工程师都熟悉的格式。通常只需几个小时即可开发一个适配器,将新的数据格式转换为安全分析的 Protobuf 输入格式。 (2)上传 图2 将数据上传到IVEX的命令行界面 通过命令行界面将场景执行结果上传到IVEX平台。数据转换和数据上传都集成到 CI/CD 流程中。同时每位工程师都可以执行任何特定场景并将结果上传到 IVEX平台。这种灵活性使我们能够快速试验AD/ADAS开发中的每项更改。 (3)检查 在 IVEX 的 Web 界面上检查场景执行结果。我们可以根据不同的元数据(例如执行日期、软件版本或场景名称)搜索、过滤和选择相关场景。 图3 IVEX的搜索功能示例 a.快速概览 由于场景验证通常是大量的,因此快速概览结果十分重要。 使用 IVEX的聚合视图可以实现快速概览 。在筛选和选择感兴趣的场景后,可以访问聚合视图,该视图可快速提供有关所有标记事件的信息,这些事件按不同的操作设计域进行分类。标记的事件可以包含在要上传到 IVEX 的输入数据中,从而能够标记与验证任务相关的任何类型的事件。IVEX 还会自动标记几个标准事件,例如紧急刹车、关键碰撞时间等。 例如,当在IVEX中开发一项新功能并想要比较自主车辆以不同速度行驶时的结果时,启用聚合视图来显示按不同速度范围分类的信息,如下图所示。 图4 IVEX的聚合视图 b.快速导航 除了概览场景执行结果中发生的事件之外,我们还需要能够快速导航到特定事件以检查车辆的行为。 从聚合视图可以直接跳转到任何感兴趣的事件。 例如,如果想检查当自车行驶速度超过 30 公里/小时时发生的紧急刹车事件,可以点击与该事件和速度相对应的框。事件的分布和特定时间戳的列表与上下文图像一起显示。点击任何一张卡片都会来到数据日志视图,该视图提供在特定时间戳发生的详细信息。 图5 在数据日志视图中检查急刹车事件 在数据日志视图中,可以详细检查事件。该视图具有详细的可视化功能,可显示当时的所有信息,包括自车的状态、地图、障碍物及其相关信息,例如速度、类型和与自车的距离。我们还可以从场景列表直接跳转到数据日志视图。 图6 数据日志视图的可视化 数据日志视图还帮助我们重播并查看场景中发生的情况。只需点击几下,我们就可以在每个时间戳之间来回切换。我们还可以看到所有标记的事件并导航到其中任何一个。使用此视图,可以快速评估和了解任何情况。 图7 快速导航至特定事件或时间戳 c. 团队共享 一旦发现需要进一步检查的事件,我们就可以与其他同事分享完全相同的视图,然后同事就可以随时检查该事件。在团队工作时,共享此类信息可以大大促进我们的沟通,并帮助我们专注于正确的方向。 三、结论 IVEX大大推动了AD/ADAS的开发工作: a.轻松集成驾驶数据到平台 b.快速了解车辆行为 c.快速导航感兴趣事件 d.访问所有有价值的可视化信息了解情况 e.团队共享信息 期待您继续关注康谋之后的文章,我们将分享有关AD/ADAS的基于场景的验证和数据分析的更多信息。
  • 热度 2
    2024-1-25 10:23
    264 次阅读|
    0 个评论
    来源:艾特保IT 虹科分享丨一个高尔夫球用品制造商怎样处理数据? 原文链接:https://mp.weixin.qq.com/s/jjVu-y_ACxHujaWDGj-KUA 欢迎关注虹科,为您提供最新资讯! #数据分析 #数据洞察 #数据处理 文章速览 -快速整合企业数据 -团队全员实现数据洞察 -随时随地提供数据 客户背景 行业:制造业——全球高尔夫球用品制造商 企业名称:TaylorMade 员工:1600人 影响:实现了数据驱动的决策和便捷访问 产品:BI&分析 一、快速整合企业数据 挑战 尽管TaylorMade在全球拥有1600多名员工,但该公司只有五名BI分析师可为该组织提供支持。在使用Domo之前,这个小团队发现自己实在无暇顾忌大量的请求。 花了太多时间整理不同来源的数据,因此分析数据的时间被大大压缩。此外,他们现有的BI工具仅具有数据收集或可视化的基本功能,数据的潜力并没有最大化。 解决方案 Damitz说:“我们选择Domo的原因是,我们准备在分析过程中就迈出下一步,更快、更容易地访问更多数据,以便我们的用户可以直接访问。” 通过Domo,TaylorMade经历了一次分析转型,从上到下引入了数据驱动的思维方式。Damitz说:“当数据更难获取时,人们会根据自己掌握的任何信息做出决定,利用直觉来填补空白。有了Domo,我们现在希望人们能够获得确切的数据来支持正在做出的任何决定。” 二、团队全员实现数据洞察 Domo协助TaylorMede开展数据洞察 TaylorMade使用Domo的预制连接器从其内部销售、营销、财务和运营资源中提取数据 。然后,他们将其与行业数据和合作伙伴数据源相结合,以创建对公司健康状况的增强视图。 Damitz说:“ Domo让我们能够访问比以往更多的数据,从而帮助我们改进了整体BI架中内置的ETL工具 ,我们能够向最终用户提供精心策划的数据集,让他们能够进行更多、更深入的分析。” 销售团队 销售团队使用Domo与其零售合作伙伴合作 ,不仅可以确定每家商店的畅销产品,还可以确定整个地区或类似商店的畅销产品。这有助于零售商发现新的机会,为潜在畅销产品提供货源,这有助于TaylorMade销售更多的产品,同时加强零售商关系。 高管团队 对于高管而言,Domo解锁了即时访问全球每日销售数据的能力,这些数据集中在一个仪表板中。 由于数据是自动收集和处理的,使用预设规则,高管可以随时查看。此外,高管可以通过地区和产品轻松筛选仪表板,立即回答问题。 营销团队 TaylorMade的营销团队使用Domo来跟踪该品牌在全球地区的声誉和市场份额。 数据自动从世界各地不同供应商的第三方数据源收集,然后进行转换,以提供公司在每个市场的统一情况。 Damitz说:“收集这些信息不再需要几天或几周的时间。Domo提供了以前无法实现的访问权限和可见性。”
  • 热度 1
    2023-10-23 10:26
    90 次阅读|
    0 个评论
    import pandas as pd import seaborn as sns import matplotlib.pyplot as plt #plot module def Ecdfplot (CP_para_to_plot , x_num , y_num , CP_Para_colName , hue , raw_data , X_para , hue_number): ecf_color = 'brg' f = plt.figure() i= 1 for para_name in CP_para_to_plot: ax = f.add_subplot(x_num , y_num , i) ax.set_title(para_name) raw_ecdf = raw_data == para_name] sns.ecdfplot( x =X_para , data =raw_ecdf , hue =hue , palette =sns.color_palette(ecf_color , hue_number , as_cmap = True )) i = i+ 1 return None def Mapplot (CP_Para , wnl , raw_data , CP_Para_colName , x_num , y_num , Wafer_colName , die_x , die_y , values): for cp_para in CP_Para: f =plt.figure(cp_para) f.suptitle(cp_para) raw_map = raw_data ==cp_para] n = 1 for i in wnl: ax = f.add_subplot(x_num , y_num , n) ax.set_title(i) raw_map2=raw_map ==i] Map_tables = raw_map2.pivot_table( index =die_y , columns =die_x , values =values) sns.heatmap(Map_tables) ax.xaxis.label.set_visible( False ) ax.yaxis.label.set_visible( False ) ax.axes.yaxis.set_ticks( ) n= n+ 1 return None def Boxplot (CP_para_to_plot , x_num , y_num , Wafer_colName , CP_Para_colName , raw_data , values): f = plt.figure() i= 1 for para_name in CP_para_to_plot: ax = f.add_subplot(x_num , y_num , i) ax.set_title(para_name) raw_BOX = raw_data == para_name] sns.boxplot( x =raw_BOX , y =raw_BOX ) i = i+ 1 return None #yield module def caculate_CP_bin (rawdata , split , key , bin): if rawdata == key) & (rawdata == bin)] is not None : bin_rate = rawdata == key) & (rawdata == bin)] .size/rawdata == key] .size else : bin_rate = 0 return bin_rate #data column name definition file_path = r"D:\200W DATA.csv" CP_Para_colName = 'PARAMETER' Wafer_colName = 'WAFER_NO' #ecdfplot para definition Value_para_ColName = 'VALUE' X_para = 'VALUE' map_x = "DIE_X" map_y = 'DIE_Y' #Read raw data raw = pd.read_csv(file_path , encoding = 'utf-8' ) #Raw data treatment Module CP_Para_List = raw .unique() #plot draw para definition wafer_num = raw .unique() number_of_wafer = len (wafer_num) #Boxplot(CP_para_to_plot= ,x_num=2,y_num=2,Wafer_colName=Wafer_colName,CP_Para_colName=CP_Para_colName,raw_data=raw,values=Value_para_ColName) #Ecdfplot(CP_para_to_plot= ,x_num=2,y_num=2,hue = Wafer_colName,CP_Para_colName=CP_Para_colName, raw_data=raw,X_para= X_para,hue_number = number_of_wafer) Mapplot( CP_Para = , wnl =wafer_num , raw_data =raw , CP_Para_colName =CP_Para_colName , x_num = 1 , y_num = 2 , Wafer_colName =Wafer_colName , die_x =map_x , die_y =map_y , values =Value_para_ColName) plt.show()
相关资源