/ ai资讯

瑞芯微(EASY EAI)RV1126B AI算法开发流程

发布时间:2026-04-29 16:47:38

1. 概述

AI算法开发流程由以下流程组成:

2. 需求分析

算法的功能常常可以用一个短词概括,如人脸识别、司机行为检测、商场顾客行为分析等系统,但是却需要依靠多个子算法的有序运作才能达成。其原因在于子算法的神经网络结构各有不同,这些结构的差异化优化了各个子算法在其功能上的实现效果。

以下我们列出组成例子:

例子a: 人脸识别算法 = 人脸检测(检测模型) 矫正人脸姿态模型(关键点定位模型) 人脸比对模型(相似度比对模型)

例子b: 司机行为检测算法 = 人脸识别算法(具体组成如上例) 抽烟玩手机等危险动作识别(检测模型) 疲劳驾驶检测(关键点定位模型) 车道线偏移检测(检测模型)

例子c: 商场分析 = 人脸识别算法(具体组成如首例) 人体跟踪算法(检测模型 相似度比对模型)

只有在确定了具体需求所需要的步骤后,我们才能有的放矢的采集数据,优化模型,训练出合乎我们需求的模型。

3. 准备数据

即使准备数据在大多数人看来是繁琐重复的工作,这期间仍有许多细节需要注意的。

数据样本需要良好的多样性。样本多样性是保证算法泛化能力的基础,例如想要识别农产品的功能中,假如我们只是搜集红苹果的数据,那么训练出来的网络就很难将绿色的苹果准确识别出。同时还需要加入充足的负样本,例如我们只是单纯地把农产品的图片数据喂给神经网络,那么我们就很难期望训练出来的神经网络可以有效区分真苹果还有塑料苹果。为了增强算法的可靠性,我们就需要充分的考虑到实际应用场景中会出现什么特殊情况,并将该种情况的数据添加进我们的训练数据里面。

数据样本是否可被压缩。单个样本数据的大小往往决定了网络模型的运行效率,在保证效果的情况下,应当尽量压缩图片的大小来提高运行效率,如112x112的图片,在相同环境下的处理速度将比224x224图片的快4倍左右。但是有些场景却是需要完整的图片来保证图片信息不会丢失,如山火检测一般需要很高的查全率,过度的压缩都会导致查全率下降导致算法效果不佳。

数据需要合适正确的标注与预处理。数据标注在一定程度上决定了训练效果能达到的高度,过多的错误标记将带来一个无效的训练结果。而数据的预处理,是指先对数据做出一定的操作,使其更容易被机器读懂,例如农产品在画面中的位置,如果是以像素点为单位,如农产品的中心点在左起第200个像素点,这种处理方式虽然直观准确,但是会因为不同像素点之间的差距过大,导致训练困难,这个时候就需要将距离归一化,如中心点在图中左起40%宽的位置上。而音频的预处理更为多样,不同的分词方式、傅里叶变换都会影响训练结果。

数据的准备不一定得在一开始就做到毫无遗漏。模型训练完成后,如果有一定的效果但还存在部分缺陷,就可以考虑添加或优化训练样本数据,对已有模型进行复训练修正。即使是后期的优化,增添合适的照片往往是最有效的效果。所以对数据的考量优化应该贯穿整个流程,不能在只是在开头阶段才关注数据样本的问题。

4. 选取模型

通常来讲,对于同一个功能,存在着不同的模型,它们在精度、计算速率上各有长处。模型来发现主要来源于学术研究、公司之间的公开比赛等,所以在研发过程中,就需从业人员持续地关注有关ai新模型的文章;同时对旧模型的积累分析也是十分重要的,这里我们在 下表 中列出目前在各个功能上较优的模型结构以供参考。

5. 训练模型

对于有AI开发经验的研发人员,可以用自己熟悉的常见框架训练即可,如tensorflow、pytorch、caffe等主流框架,我们的开发套件可以将其转为EASY EAI Nano-TB的专用模型。

6. 模型转换

研发tensorflow、pytorch、caffe等自主的模型后,需先将模型转换为rknn模型。同时一般需要对模型进行量化与预编译,以达到运行效率的提升。

  • 人工智能 人工智能 关注

    关注

    1820

    文章

    50352

    浏览量

    266998
  • 开发板 开发板 关注

    关注

    26

    文章

    6430

    浏览量

    120995

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com