- 今天的主角就是YOLOv3的升级版,时隔两年的一次重磅升级,速度更快,准确率更好,实现了双提升,而且使用了很多训练的trick,也加入了目前新的方法。学习总是要与时俱进嘛,今天来分享一下在ModelArts上跑通YOLOv4的过程,同时附上完成项目,包括预训练模型和测试图片,轻松让你实现YOLOv4。 今天的主角就是YOLOv3的升级版,时隔两年的一次重磅升级,速度更快,准确率更好,实现了双提升,而且使用了很多训练的trick,也加入了目前新的方法。学习总是要与时俱进嘛,今天来分享一下在ModelArts上跑通YOLOv4的过程,同时附上完成项目,包括预训练模型和测试图片,轻松让你实现YOLOv4。
- 很多时候,基于各种需要,我们希望能在Atlas平台上开发自己想要的项目,虽然官方给出了很多例程项目,但很多时候并不是我们想要的效果,可能需要更换输入方法,比如官方例程给的是摄像头输入,我们希望是本地视频输入等等问题,这个时候就需要自己去开发实现了,不过,做好是基于官方项目例程去实现,尽量不要从零开始,自己去开发,因为例程是经过专业工程师调试的。这里基于分类项目修改实现黑白图像上色。 很多时候,基于各种需要,我们希望能在Atlas平台上开发自己想要的项目,虽然官方给出了很多例程项目,但很多时候并不是我们想要的效果,可能需要更换输入方法,比如官方例程给的是摄像头输入,我们希望是本地视频输入等等问题,这个时候就需要自己去开发实现了,不过,做好是基于官方项目例程去实现,尽量不要从零开始,自己去开发,因为例程是经过专业工程师调试的。这里基于分类项目修改实现黑白图像上色。
- 在实际应用中,输入的数据可能并不符合模型输入的要求,这时需要做预处理以满足模型输入要求。同时,对推理结果解析后,可能要做一些标价的后处理,比如对于目标检测,需要绘制方框。这里来说说常用的调用OpenCV库的方法。 在实际应用中,输入的数据可能并不符合模型输入的要求,这时需要做预处理以满足模型输入要求。同时,对推理结果解析后,可能要做一些标价的后处理,比如对于目标检测,需要绘制方框。这里来说说常用的调用OpenCV库的方法。
- 很多时候,我们需要将图像后处理的结果保存下来,这里选择为保存成图片,以当前日期来命名,我的Atlas 200 DK系统时间不太对,不过不影响。 很多时候,我们需要将图像后处理的结果保存下来,这里选择为保存成图片,以当前日期来命名,我的Atlas 200 DK系统时间不太对,不过不影响。
- 多线程,这个名词大家应该比较熟悉。比如说在我们电脑的处理器一般是xxx核xxx线程,比如我的电脑的处理器是Intel Core i7-9750H,是6核12线程处理器,一般情况下,一个核同时只能有一个任务执行。多核时才可以支持多个线程同时执行。但通过采用超线程技术,Intel Core i7-9750H实现了增加一倍的线程,即达到了12个线程,使得对于多任务处理能够更好的运行。 多线程,这个名词大家应该比较熟悉。比如说在我们电脑的处理器一般是xxx核xxx线程,比如我的电脑的处理器是Intel Core i7-9750H,是6核12线程处理器,一般情况下,一个核同时只能有一个任务执行。多核时才可以支持多个线程同时执行。但通过采用超线程技术,Intel Core i7-9750H实现了增加一倍的线程,即达到了12个线程,使得对于多任务处理能够更好的运行。
- 在Atlas 200 DK上开发,关键部分是模型的转换和对推理结果的后处理,做好了这两步,开发就成功了一大半,剩下的基本就是优化设计了。而模型转换后在Atlas 200 DK上需要自己创建模型推理引擎,完成数据的输入和推理结果的输出及解析。在这里,以行人检测的Demo为例,说一下自己对推理引擎创建的了解。如有不对的地方,还请在下面留言,批评指正。 在Atlas 200 DK上开发,关键部分是模型的转换和对推理结果的后处理,做好了这两步,开发就成功了一大半,剩下的基本就是优化设计了。而模型转换后在Atlas 200 DK上需要自己创建模型推理引擎,完成数据的输入和推理结果的输出及解析。在这里,以行人检测的Demo为例,说一下自己对推理引擎创建的了解。如有不对的地方,还请在下面留言,批评指正。
- 基于Atlas 200 DK的原版YOLOv3(Darknet-53)实现(Python版本),这里提供完整的工程,包括转化好的模型,只要你有Atlas 200 DK即可运行。YOLOv3可以算作是经典网络了,较好实现了速度和精度的Trade off,成为和目标检测的首选网络,堪称是史诗巨作级别(我是这么认为的)。YOLOv3是在YOLOv1和YOLOv2的基础上,改进而来。 基于Atlas 200 DK的原版YOLOv3(Darknet-53)实现(Python版本),这里提供完整的工程,包括转化好的模型,只要你有Atlas 200 DK即可运行。YOLOv3可以算作是经典网络了,较好实现了速度和精度的Trade off,成为和目标检测的首选网络,堪称是史诗巨作级别(我是这么认为的)。YOLOv3是在YOLOv1和YOLOv2的基础上,改进而来。
- 在Ascend 310上运行程序,每一个环节都被视为一个engine,比如预处理engine,模型推理engine,这里创建的就是模型推理的engine。模型engine创建首先要初始化,一般是指定Graph和engine的ID,做一些设置,比如图像输入的宽度和高度等。这里使用官方例程中的模板进行基本设置,之后根据模板设计自己的推理过程,主要是Inference这部分代码。 在Ascend 310上运行程序,每一个环节都被视为一个engine,比如预处理engine,模型推理engine,这里创建的就是模型推理的engine。模型engine创建首先要初始化,一般是指定Graph和engine的ID,做一些设置,比如图像输入的宽度和高度等。这里使用官方例程中的模板进行基本设置,之后根据模板设计自己的推理过程,主要是Inference这部分代码。
- 在Atlas 200 DK上部署自己的模型时(使用Python语言),推理结果与原模型不一致怎么办?仔细对比一下,可能是推理结果的顺序错了哦。 在Atlas 200 DK上部署自己的模型时(使用Python语言),推理结果与原模型不一致怎么办?仔细对比一下,可能是推理结果的顺序错了哦。
- 移植应用到Atlas 200 DK关于输入的一点问题(Python版) 移植应用到Atlas 200 DK关于输入的一点问题(Python版)
- 很多时候,需要在Atlas 200 DK和虚拟机之间传输文件或文件夹,比如在做视觉任务的时候,可能需要把测试视频传输到开发板,测试完成,需要把结果拷贝会虚拟机。这里可以使用scp命令来完成。这里是以Atlas 200 DK和虚拟机为例,但scp命令同样使用于其他基于linux系统的设备。 很多时候,需要在Atlas 200 DK和虚拟机之间传输文件或文件夹,比如在做视觉任务的时候,可能需要把测试视频传输到开发板,测试完成,需要把结果拷贝会虚拟机。这里可以使用scp命令来完成。这里是以Atlas 200 DK和虚拟机为例,但scp命令同样使用于其他基于linux系统的设备。
- 经过大家的努力,包括第三方的努力,昇腾生态案例已经越来越多了,特别是对Atlas200DK的案例,已经有30+,那么大家在开发自己的应用时一般情况下都可以基于当前这些案例来改造,省事实力。 经过大家的努力,包括第三方的努力,昇腾生态案例已经越来越多了,特别是对Atlas200DK的案例,已经有30+,那么大家在开发自己的应用时一般情况下都可以基于当前这些案例来改造,省事实力。
- 行人检测——ModelArts与HiLens的完美邂逅,使用ModelArts与HiLens云端协作,使用ModelArts预置算法YOLOv3_ResNet18,在自行整理的2500余张图片,近20000个行人标注的数据集上使用Tesla V100 32GB训练,最终在HiLens上实现行人检测,效果勉强说得过去。欢迎大家来看看。 行人检测——ModelArts与HiLens的完美邂逅,使用ModelArts与HiLens云端协作,使用ModelArts预置算法YOLOv3_ResNet18,在自行整理的2500余张图片,近20000个行人标注的数据集上使用Tesla V100 32GB训练,最终在HiLens上实现行人检测,效果勉强说得过去。欢迎大家来看看。
- 智能指针 智能指针
- 一、内存管理相关知识 1、原生语言的内存管理接口原生语言的内存管理接口包括malloc、free、memcpy、memset、new、delete等接口,支持C/C++等语言,由此类接口申请的内存,用户可以自行管理和控制内存使用的生命周期。用户申请内存空间小于256k时,使用原生语言的内存接口与Matrix框架提供的内存管理接口在性能上区别不大,基于简单便捷考虑,建议使用原生语言的内存管理接... 一、内存管理相关知识 1、原生语言的内存管理接口原生语言的内存管理接口包括malloc、free、memcpy、memset、new、delete等接口,支持C/C++等语言,由此类接口申请的内存,用户可以自行管理和控制内存使用的生命周期。用户申请内存空间小于256k时,使用原生语言的内存接口与Matrix框架提供的内存管理接口在性能上区别不大,基于简单便捷考虑,建议使用原生语言的内存管理接...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签