智能边缘计算
基于Nvidia AGX部署AI应用
更新时间: 2022-11-30 10:43:00功能说明
助企云边缘一体机SIEB-V502搭载NVIDIA Jetson Xavier AGX核心模块,以30W的低功耗提供高达32Tops的实时推理能力。Sangforruntime基于该核心模块进行适配、兼容,提供解码、前处理、推理、后处理等端到端能力,帮助用户快速进行AI适配和改造。
通过边缘计算平台可以快速将AI应用部署在边缘一体机上,结合终端设备,进行视频智能化分析。
前提条件
1.获取基于Nvidia适配的Sangforruntime镜像“sangfor-ai-sfrt_v5.6_v502.tar.gz”。
2.获取基于Nvidia部署AI应用的yaml文件“ai-app-nvidia-5.6.yaml”。
3.获取需要部署AI应用的边缘节点的hostname。
操作步骤
1.将“sangfor-ai-sfrt_v5.6_v502.tar.gz”上传到镜像仓库。上传操作请参考“上传容器镜像 ”章节。
11.修改yaml文件中的deployment配置参数,修改容器镜像地址为上传后的镜像地址。
12.修改nodeName字段为部署AI应用的边缘节点的hostname。
13.修改sfrt.ini参数配置,具体参数说明如下表。
字段名 |
字段值 |
备注 |
---|---|---|
uri |
<摄像头rtsp流>:<mqtt topic>[,<摄像头rtsp流>:<mqtt topic>...] |
举例如rtsp://admin:sangfor123@172.23.142.18/LiveMedia/ch1/Media1:tag1/node1/device1 |
drop_frame_interval |
0~25的整数 |
控制获取每路摄像头流的帧间隔,如设置为3表示每3帧取1帧(间隔2帧) |
decoder_type |
nvv4l2h264/nvv4l2h265 |
解码方式,依据摄像头编码方式决定,暂不支持不同编码混合使用 |
decoder_out_width |
如1920 |
解码输出的图像宽度,与输入图像相比rescale比例不超过16 |
decoder_out_height |
如1080 |
解码输出的图像高度,与输入图像相比rescale比例不超过16 |
queue_size |
10 |
线程间同步队列大小,不宜设置太大,建议10-30 |
push_method |
push_wait/push |
线程间同步队列已满时的入队方式,push_wait表示队列满时等待入队,push表示删除队头数据并入队 |
drop |
true/false |
控制解码器是否丢帧的开关,程序推理速度正常时drop不起作用。在处理速度不足时true表示主动丢帧以保证程序稳定,false不会主动丢帧,但可能导致内存溢出。 |
algorithm |
yolov5/yolov4/yolov3/safety_hat |
所用算法模型 |
model_type |
onnx |
输入模型的格式,目前仅支持onnx |
model_in_path |
/sangfor/sfrt/models/yolov5s_bs8.onnx |
目前仅支持onnx模型,onnx文件路径 |
engine_out_path |
/sangfor/sfrt/engines/yolov5s_bs8_fp16.trt |
将onnx等模型转化为英伟达推理引擎trt,该字段为trt保存路径 |
workspace_size |
512 |
模型转换空间大小,视边缘产品实际显存可增加 |
precision |
fp16/fp32 |
转换模型精度 |
preprocessor_method |
resize/letter_box |
yolo系列前处理方式,与算法对应 |
engine_load_path |
/sangfor/sfrt/engines/yolov5s_bs8_fp16.trt |
项目推理加载的trt模型,实际运行时会优先检查这一项是否存在,若不存在才会进行onnx到trt模型的转换 |
obj_threshold |
0.5 |
算法目标阈值 |
label_file |
/sangfor/sfrt/profile/labels/coco_labels.txt |
标签文件地址 |
post_process_method |
YoloV5/YoloV4/YoloV3/YoloV4SafetyHatPostprocessorPlugin |
后处理方法,与algorithm对应 |
nms_threshold |
0.5 |
算法nms阈值 |
sink_type |
console_sink/mqtt_sink |
推理结果的发送方式,console_sink为在控制台显示结果,mqtt_sink是通过mqtt协议发送到服务端 |
sink_ip |
10.113.78.230 |
mqtt服务端ip地址 |
sink_port |
1883 |
mqtt服务端口,默认1883 |
sink_original_img |
true/false |
是否发送原图,true为发送原图,false为发送带检测框的图 |
mqtt_client_id |
client |
mqtt的client id,自定义 |
mqtt_qos |
0/1/2 |
mqtt qos等级 |
log_level |
debug/info/error |
日志等级 |
use_console_log |
true/false |
是否打印到控制台 |
log_path |
/tmp/log/sfrt-log |
日志文件保存地址 |
single_log_size |
10 |
单个日志文件大小,单位M |
log_lifecycle |
10 |
最大日志数量,超过该值时会删除最早日志 |
14.(可选)默认为default命名空间,可以根据需求创建新的命名空间,在新的命名空间下部署AI应用。
15.通过导入yaml文件的方式部署AI应用,选择“导入至此项目”,选择命名空间,上传修改后的yaml文件。
16.等待工作负载运行正常,AI应用部署完毕。