点击头像,立即联系微信客服
       福州牛新牛科技有限公司是一家专业的嵌入式人工智能物联网(Embedded AIoT)产品供应商和技术方案商,同时也是一家集设计、研发、生产和销售于一体的国家级高新技术企业。公司批量供应AI核心板、工控板、AIoT智能网关、AI边缘计算终端等产品,并提供定制开发服务和一站式AIoT解决方案。NNEWN提供免费技术方案咨询和项目评估,有需要的读者可以点击右侧图标跳转到需求提交页面提交您的项目需求:
【AI开发_02】AI算法开发流程
来源: | 作者:NNEWN | 发布时间: 2021-08-11 | 3236 次浏览 | 分享到:

AI算法开发一般分为如下五个步骤:

一、需求具象化

二、准备数据

三、选取模型

四、训练模型

五、部署


一、需求具象化

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

    常见的算法模型如下表所示:

模型分类名称

功能

检测模型

检测图像中是否存在目标物体,并给出其在图像中的具体坐标,可同时带分类功能

关键点定位模型

检测图像中的特定目标,并标出关键点位,常见骨骼点位、面部器官点位等

相似度比对模型

比较两个不同的个体的相似度,常见人脸、猪脸识别

分割模型

检测图像中存在的物体,按轮廓或其他标准分割出物体所在的不规则像素区域,可同时带分类功能

OCR模型

识别文字

语音模型

识别音频

    以下我们简单举例说明:

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

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

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

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


二、准备数据

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

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

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

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

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


三、选取模型

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

    备注:关于速率的说明:慢:<10fps;中等:10fps-30fps;快速:>30fps;

    

模型类别

模型名称

效果

速率

检测模型

yolov3

精度高,对小物体的识别较弱

中等

ssd

精度中等,对小物体的识别一般

快速

fast-rcnn

精度高,对小物体的识别校准

关键点定位模型

mtcnn

精度一般,关键点较少

openpose

精度高, 关键点多, 且可适用手、人体关节等功能开发

中等

相似度比对模型

resnet18

精度高

快速

resnet50

精度高,鲁棒性佳,有比较强的抗干扰能力

中等

分割模型

mask-rcnn

精度中,分割出画面中的不规则物体


四、训练模型

    对于有AI开发经验的研发人员,可以用自己熟悉的常见框架训练即可,如tensorflow、pytorch、caffe等主流框架,我们提供的AI开发套件可以将其轻松转为符合硬件平台的专用模型。


五、部署

    研发自主模型后,需先将模型转换为rknn模型,再参考NPU API说明文档,编写应用工程。经过编译后传输至硬件平台上实现部署。



热门文章推荐
热门产品推荐
  • RK3588核心板 | NXN-CORE-3588-BTB-5060-V2

    RK3588核心板 | NXN-CORE-3588-BTB-5060-V2

    核心板

    0.00

    0.00

  • RK3588核心板 | NXN-CORE-3588-BTB-6080-V2

    RK3588核心板 | NXN-CORE-3588-BTB-6080-V2

    核心板

    20000.00

    2799.00

  • RK3588核心板 | NXN-CORE-3588-MXM-7082-V2

    RK3588核心板 | NXN-CORE-3588-MXM-7082-V2

    核心板

    20000.00

    2799.00

  • RK3576核心板 | NXN-CORE-3576-260-5070-V1

    RK3576核心板 | NXN-CORE-3576-260-5070-V1

    核心板

    0.00

    0.00

  • RK3568核心板 | NXN-CORE-3568-MXM-5282-V2

    RK3568核心板 | NXN-CORE-3568-MXM-5282-V2

    核心板

    0.00

    0.00

  • RV1126核心板 | NXN-CORE-1126-BTB-4045-V2

    RV1126核心板 | NXN-CORE-1126-BTB-4045-V2

    核心板

    699.00

    699.00

  • 一种多通道视频采集及拼接显示的应用程序

    一种多通道视频采集及拼接显示的应用程序

    应用开发

    20000.00

    2799.00

  • 一种基于RK3588的通用型开发板

    一种基于RK3588的通用型开发板

    产品中心

    20000.00

    2799.00

  • 物联网云平台

    物联网云平台

    应用开发

    0.00

    0.00

Copyright © 2021-2024 福州牛新牛科技有限公司 All rights reserved. |