基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密

这篇具有很好参考价值的文章主要介绍了基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当前人工智能领域,最热门的无疑是以ChatGPT为代表的各种“新贵”大模型,它们高高在上,让你无法触及。但在人们的日常生活中,实际应用需求最大的还是以Yolo模型为代表的目标检测“豪强”,它们每天都在以各种方式落地、应用于我们日常生活的方方面面。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

目标检测是计算机视觉领域的一项关键技术,它的任务是找出图像中所有感兴趣的目标,确定它们的类别和位置。随着人工智能潜移默化地渗入人们的生活中,各行各业竞相通过引入目标检测等技术打开市场空间,关于目标检测的各类人工智能需求也奔涌而来,比如:

  • 在交通领域,目标检测可以用来检测道路上的行人、车辆、交通标志等物体,提升行驶安全和通行便利性。
  • 在安全领域,目标检测可以用来检测关键特征、特定行为或者可疑物体,以便快速发现和识别安全威胁。
  • 在医疗领域,目标检测可以用来识别身体部位、病灶、心电图、CT影像等,以便快速辅助诊断。
  • 在生活领域,目标检测可以用于智能购物、智能家居等场景,提升人们生活的便利性。

但AI应用开发门槛高,周期长。各类AI软件栈理解成本高、AI算法模型与业务结合难度高、对开发人员的技能要求也较高。如何提升AI推理应用的开发效率,降低开发门槛,是亟需改善的现状。为此,昇腾CANN技术专家设计和开发了针对目标检测应用的最佳实践,让开发者可以在昇腾平台上快速部署目标检测应用,轻松获得几十甚至上百路的检测效果。下面我们就来详细拆解一下这个实践的设计思路。

基础应用分解

我们首先从一个基础的目标检测推理应用场景开始,推理流程通常包含如下几个部分:

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

GPU AI推理业务流程

  1. 数据输入是摄像头获取的视频数据流,一般以H.264格式为主。
  2. 然后通过FFmpeg软件,将连续的视频流进行拆帧和解码。
  3. 下一阶段是对解码后的图像进行预处理,通常使用OpenCV对图像进行缩放,得到模型需要的图像规格。
  4. 模型推理环节,用户可以选择的方式比较多,比较典型的是使用TensorRT进行推理应用开发。
  5. 目标检测后处理需要进行NMS计算,进行图片画框等操作。
  6. 数据输出阶段,用户根据需要实现一个结果呈现形式。

推理功能适配

将上面介绍的目标检测应用迁移到昇腾平台,开发者仅需关注“推理”环节的适配,包括如下两个步骤:

  1. 将推理模型文件(onnx模型或pb模型)通过ATC工具转化为昇腾平台专属的离线om文件。
  2. 使用昇腾AscendCL语言开发模型加载和模型执行的逻辑。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

基于CANN的AI推理业务流程

完成如上两个环节后,推理应用的功能就已经迁移到昇腾平台了。这时若整体的推理性能未达到理想预期,就需要进入性能优化提升阶段。

性能提升方式一:使能DVPP硬件的高效编解码能力

DVPP(Digital Vision Pre-Processing,数字视觉预处理)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要包括以下功能:

  • VPC(Vision Preprocessing Core):处理YUV、RGB等格式的图片,包括缩放、抠图、色域转换等。
  • JPEGD(JPEG Decoder):JPEG压缩格式→YUV格式的图片解码。
  • JPEGE(JPEG Encoder):YUV格式→JPEG压缩格式的图片编码。
  • VDEC(Video Decoder):H264/H265格式→YUV/RGB格式的视频码流解码。
  • VENC(Video Encoder):YUV420SP格式→H264/H265格式的视频码流编码。
  • PNGD(PNG Decoder):PNG格式→RGB格式的图片解码。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

Ascend 310 AI处理器逻辑架构中DVPP位置

开发者可以通过DVPP对图像进行硬件解码和处理,提升图像处理效率。另外,DVPP和执行推理的计算单元AI Core是完全独立的硬件单元,无需担心使用DVPP后会对推理执行的性能产生影响。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

基于CANN的AI推理业务流程——使用DVPP进行数据预处理

性能提升方式二:增加推理前后数据并行,让推理步骤一刻不停

昇腾平台采用异构计算架构,所以要充分利用计算核心AI Core的超强能力,就需要保证AI Core计算需要的数据能够持续不间断供给,同时能够无等待输出。为了实现此能力,可以在数据预处理→模型推理,模型推理→数据后处理模块间通过队列的机制,增加推理模块的并行流水。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

基于CANN的AI推理业务流程——通过队列增加推理并行流水

同理,在FFmpeg视频拆帧和DVPP处理之间,也可以使用队列,进一步增加并行情况。但需要注意推理侧的队列数据会消耗硬件内存,所以需要要合理设置。

性能提升方式三:多线程并发,持续释放AI Core性能

多线程是提升硬件资源利用率的重要手段,通过多线程的支持,可以实现多路不同源的视频输入;针对服务器多卡的场景,同样支持多个卡并行执行,充分释放昇腾软硬件的性能。

基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密,人工智能,目标检测,目标跟踪

基于CANN的AI推理业务流程——多线程并发

基于目标检测最佳实践,开发者可轻松实现已有AI推理应用到昇腾平台的迁移,并轻松达成高性能。开发者也可以参考此实践快速上手AI开发,玩转昇腾平台推理应用。未来,CANN将持续致力于应用开发的易用性提升,不断满足开发者的诉求。

点击Link,获取多路高性能目标检测最佳实践源码。文章来源地址https://www.toymoban.com/news/detail-528297.html

到了这里,关于基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Cloud】基于 Feign 实现远程调用,深入探索 Feign 的自定义配置、性能优化以及最佳实践方案

    在微服务架构中,服务之间的通信是至关重要的,而远程调用则成为实现这种通信的一种常见方式。在 Java 中,使用 RestTemplate 是一种传统的远程调用方式,但它存在一些问题,如代码可读性差、编程体验不一致以及参数复杂URL难以维护等。 在本文中,我们将探讨如何通过使

    2024年02月04日
    浏览(50)
  • 43 最佳实践-性能最佳实践-IOThread配置

    43.1 概述 KVM平台上,对虚拟磁盘的读写在后端默认由QEMU主线程负责处理。这样会造成如下问题: 虚拟机的I/O请求都由一个QEMU主线程进行处理,因此单线程的CPU利用率成为虚拟机I/O性能的瓶颈。 虚拟机I/O在QEMU主线程处理时会持有QEMU全局锁(qemu_global_mutex),一旦I/O处理耗时较长

    2024年02月08日
    浏览(50)
  • 大语言模型推理提速:TensorRT-LLM 高性能推理实践

    作者:顾静 大型语言模型(Large language models,LLM)是基于大量数据进行预训练的超大型深度学习模型。底层转换器是一组神经网络,这些神经网络由具有 self-attention 的编码器和解码器组成。编码器和解码器从一系列文本中提取含义,并理解其中的单词和短语之间的关系。 当前

    2024年01月25日
    浏览(58)
  • 【译】MongoDB 性能最佳实践指南

    原文地址:Best Practices Guide for MongoDB Performance MongoDB 是面向开发高性能应用程序的现代开发人员的主要 NoSQL 文档数据库。MongoDB 采用类似 JSON 的文档,以水平扩展和负载平衡著称,为开发人员提供了定制化和可扩展性之间的绝佳平衡。 但是,与其他高性能工具一样,MongoDB 在

    2024年02月03日
    浏览(41)
  • ES性能优化最佳实践- 检索性能提升30倍!

            Elasticsearch是被广泛使用的搜索引擎技术,它的应用领域远不止搜索引擎,还包括日志分析、实时数据监控、内容推荐、电子商务平台、企业级搜索解决方案以及许多其他领域。其强大的全文搜索、实时索引、分布式性能和丰富的插件生态系统使其成为了许多不同

    2024年02月08日
    浏览(47)
  • 性能测试的指南:测试类型、性能测试步骤、最佳实践等

    近期公司为了节省成本搞了一波机房迁移,整合了一些南美部署架构。有一些上google云和有些下阿里云等大的调整。 在做机房迁移项目当中就需要思考如何进行性能测试,这种大的机房迁移SRE(运维)会针对组件会做一些单组件的性能测试,但是整个迁移之后性能上面会不会

    2024年02月03日
    浏览(95)
  • 最佳实践分享:SQL性能调优

    SQL性能调优是一个需要不断探索和实践的过程,旨在确保数据库查询的高效运行。本文将分享一些SQL性能调优的最佳实践,帮助您提升数据库性能,减少查询响应时间。 一、索引优化 索引是提高查询性能的关键。以下是一些关于索引优化的建议: 1.为经常用于查询条件的列

    2024年01月16日
    浏览(38)
  • Elasticsearch性能优化:实战策略与最佳实践

    -在数据密集型的应用场景中,Elasticsearch作为一个强大的搜索和分析引擎,能够提供快速的搜索能力和处理大规模数据的能力。然而,随着数据量的增长和查询需求的复杂化,对Elasticsearch的性能优化成为了维护高效、稳定服务的重要任务。本文将深入探讨Elasticsearch的优化策略

    2024年04月23日
    浏览(39)
  • Taro:高性能小程序的最佳实践

    作为一个开放式的跨端跨框架解决方案,Taro 在大量的小程序和 H5 应用中得到了广泛应用。我们经常收到开发者的反馈,例如“渲染速度较慢”、“滑动不够流畅”、“性能与原生应用相比有差距” 等。这表明性能问题一直是困扰开发者的一个重要问题。 熟悉 Taro 的开发者

    2024年02月05日
    浏览(44)
  • Node.js性能优化:实用技巧和最佳实践

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,广泛用于构建快速的、可扩展的网络应用。尽管 Node.js 已经为处理大量并发连接提供了强大的性能,但在实际开发中仍然需要采取一些策略来优化性能和提升应用响应速度。以下是一些实用的技巧和最佳实践,可以帮助开发

    2024年04月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包