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说明文档,编写应用工程。经过编译后传输至硬件平台上实现部署。
[未分类] 瑞芯微旗舰级8KSoC芯片RK3588规格参数简介及Datasheet下载
2022-10-29
[行业应用] 基于瑞芯微RK3588的AR/VR智能眼镜及智能头盔类产品主板方案
2022-11-04
[行业应用] RK3588已适配银河麒麟操作系统,助力用户应用快速落地
2023-02-07
[行业资讯] 2023年瑞芯微开发者大会落幕,多项技术应用方案已落地
2023-02-28
[行业资讯] RK3399/RK3588成功适配Hailo-8的AI加速模块M.2计算卡,最高算力可达26TOPs
2023-03-09
[行业资讯] 瑞芯微RK3576 AIoT芯片规格及应用场景介绍
2024-01-02
[行业应用] 高度集成化模块化的RK3568和RK3588无人机AI控制主板方案
2022-10-29
[行业应用] NNEWN-RK3588系列产品已全面适配银河麒麟kylinOS、统信UOS、鸿蒙OpenHarmonyOS等国产操作系统
2022-11-07
[技术分享] 【官方开发文档】RKNN SDK 快速上手指南(RV1106/RV1103)
2023-02-05
[行业应用] 基于瑞芯微RK3588S的高性能移动设备及商用平板解决方案
2022-11-21
[行业应用] 基于瑞芯微RK3568的智能NVR/NAS服务器主板方案
2022-11-22
[技术分享] 瑞芯微RK3588/RK3568等芯片DDR SDRAM支持列表_2022.08.18更新
2022-11-09
[技术分享] 瑞芯微RK3588/RK3568等芯片Camera Sensor支持列表_2022.11.09更新
2022-11-09
[行业应用] 基于瑞芯微RK3588的智能NVR/NAS服务器主板方案
2022-11-18
2022-11-11
[行业资讯] 瑞芯微RK628D视频接口转换芯片简介及Datasheet下载
2021-08-28
[技术分享] 瑞芯微RK3588/RK3568等芯片eMMC支持列表_2022.10.31更新
2022-11-09
[技术分享] 【官方开发文档】Rockchip SDK申请及同步指南
2023-02-03
2022-11-10
2022-11-11
Copyright © 2021-2024 福州牛新牛科技有限公司 All rights reserved. |
嵌入式板卡
操作系统移植
AI部署应用
聚合智能网关
自主可控国产化
Copyright © 2021-2024 福州牛新牛科技有限公司 All rights reserved. |
办公地址:福建省福州市台江区鳌峰街道鳌江路8号万达广场A2栋618-619室
核心板
工控板
工控机
智能网关
平板电脑
技术与支持
成就客户 成就自我 勇攀高峰
产品中心