基于RK3588的NPU案例分享!6T是真的强!
RK3588 NPU简介
作为瑞芯微新一代旗舰工业处理器,RK3588 NPU性能可谓十分强大,6TOPS设计能够实现高效的神经网络推理计算。这使得RK3588在图像识别、语音识别、自然语言处理等人工智能领域有着极高的性能表现。
此外,RK3588的NPU还支持多种学习框架,包括TensorFlow 、PyTorch、Caffe、MXNet等在人工智能开发中流行的深度学习框架,能够为开发者提供丰富的工具和库,使他们能够方便地进行模型训练和推理,可轻松应对各种大数据运算场景。
RK3588 NPU典型工业应用
目标识别跟踪:在视频监控和无人驾驶领域,RK3588可提供6TOPS高性能NPU算力,可实时处理高清视频流、目标检测、识别和跟踪。其强大的计算能力可满足复杂场景下的实时处理需求,提高监控系统的准确性和反应速度。
AGV机器人:RK3588的NPU可提供强大的视觉处理能力,可帮助AGV机器人实现高效的路径规划和避障,提高运输效率和安全性。
医疗内窥镜:RK3588的NPU可提供图像识别和分析的能力,帮助医生快速准确地诊断疾病。其深度学习推理能力可辅助医生进行图像识别和病灶检测,提高诊断的准确性和效率。
高速收费终端:RK3588的NPU可提供车牌识别和计费的处理能力,实现高速路上的无人化收费,提高交通效率和安全性。
车载环视系统:RK3588的NPU可处理多个摄像头采集的图像数据,实现车辆周围环境的360度监控,帮助车辆进行障碍物检测、碰撞预警和自动泊车等功能。
RK3588 NPU开发流程
第一步:模型训练
首先需要收集并准备训练数据,选择适合的深度学习框架(如TensorFlow、PyTorch、Keras等)进行模型训练或使用官方提供的模型。
第二步:模型转换
完成模型训练后,使用RKNN-Toolkit2将预训练模型转换为RK3588 NPU可使用的RKNN模型。这通常涉及到将模型中的计算图进行适当的修改和优化,以适应NPU的硬件架构和指令集。
第三步:应用开发
基于RKNN API开发应用程序。开发阶段需要根据具体需求,将转换后的模型集成到应用程序中。
RK3588 NPU开发案例分享
案例说明
本案例基于RKNN API实现对图片中目标对象的识别,并将识别结果以加水印的方式添加至图像,并保存成图片文件。案例循环测试10次,统计出推理的平均处理耗时。测试基于创龙科技RK3588工业评估板TL3588-EVM进行。
备注:本案例基于瑞芯微官方例程实现,进行了目录的重构及编译的简化,功能逻辑未进行修改。官方例程位于LinuxSDK源码"external/rknpu2/examples/rknn_yolov5_demo/"目录下。
程序处理流程框图如下:
案例测试
请通过网线将评估板千兆网口ETH0连接至路由器。
请将案例bin目录下的所有文件拷贝至评估板文件系统任意目录下。
在可执行文件所在目录,执行如下命令,对图片目标对象进行模型推理。
备注:模型运行的时间会有抖动。
Target#./yolov5_object_detect yolov5s-640-640_rm_transpose_rk3588.rknn bus.jpg
从输出信息可知,本案例程序识别出测试图片包含4个person和1个bus对象,运行1次模型耗时为23.905000ms;循环运行10次模型平均耗时为21.356800ms。
案例程序对测试图片的目标对象标记成功后将输出名称为out.jpg的标记图片至当前目录,请将out.jpg文件拷贝至Windows下,并使用PC端相关软件对比查看bus.jpg与out.jpg,测试结果如下所示。
从out.jpg图片可知,案例程序能正确框选出4位人物和1辆汽车,同时显示person、bus文字标签和置信度,标记对象的数量及信息等与程序打印信息一致。
本程序能够支持识别的目标数据集类型说明位于bin目录下的coco_80_labels_list.txt文件,用户可根据相关目标类型进行测试验证。