一 性能参数(与Jetson Xavier NX对比)
参考链接
Jetson Nano | Jetson Xavier NX | |
---|---|---|
AI性能(算力) | 0.472 TFLOPS | 21 TOPS ≈ 5.2TFLOPS |
GPU | 128 核 NVIDIA Maxwell™ GPU | 搭载 48 个 Tensor Core 的 384 核 NVIDIA Volta™ GPU |
显存 | 4 GB 64 位 LPDDR4 | 25.6GB/s 8 GB 128 位 LPDDR4x 59.7GB/s |
视频编码 | 1x 4K30/2x 1080p60/4x 1080p30/4x 720p60/9x 720p30 | 2x 4K60 /4x 4K30 / 10x 1080p60 /22x 1080p30 (H.265) 2x 4K60 / 4x 4K30 / 10x 1080p60 /20x 108p30 (H.264) |
视频解码 | 1x 4K60 2x 4K30 4x 1080p60 8x 1080p30 9x 720p60 |
2x 8K30 / 6x 4K60 / 12x 4K30 / 22x1080p60 / 44x 1080p30(H.265) 2x 4K60 / 6x 4K30 / 10x 1080p60 / 22x 1080p30 (H.264) |
二 实测表现
1.解码
1.1 说明
- 解码部分不涉及模型推理,只针对硬件解码模块(NVDEC)部分进行测试。
- 测试结果的帧率取大概平均值。
1.2 测试环境
pipeline:
uridecodebin->streammux->nvvideoconv->nvosd->transform->fakesink
1.3 测试结果
streammux | input:640x360 | input:1280x720 | input:1920x1080 |
---|---|---|---|
1920x1080 | 698fps | 520fps | 315fps |
1280x720 | 1060fps | 540fps | 338fps |
640x360 | 1278fps | 560fps | 340fps |
1.4 结果总结
- Gst-nvstreamtiler和Gst-nveglglessink会占用一部分资源,在无显示需求的时候可以去掉提升性能。
- 输入视频与streammux宽高相同时解码损失最少,性能最好。
2.推理
2.1 说明
- 输入视频分辨率与streammux宽高保持一致
- 为了测试极限,尽可能多路地接入视频,最后统计的数据为最大值(在最大值后再接入视频,每秒钟推理帧数不变)
2.2 测试环境
pipeline:
uridecodebin->streammux->pgie->nvvideoconv->nvosd->transform->fakesink
2.3 测试结果
模型 | input:1280x720 | input:640x360 |
---|---|---|
55.2fps | ||
YOLO-FastestV2 | 103fps | 105fps |
FastestDet | 106.4fps | 108fps |
YOLOV5-nano | 32fps | 32fps |
2.4 结果说明
- 瓶颈仍然在于算力而非解码能力,pipeline中接入模型后并没有完全发挥解码极限
- 如YOLOV5此类模型,输入视频分辨率影响已经不大了,因为瓶颈在于推理算力。此时不如考虑接入高分辨率视频如一两路4K。
- 实时视频(RTSP)相对于文件有一定折扣,大概在80%。即理论100fps,如何源为实时视频流,则大概只能达到80fps。
三 总结
Jetson Nano拥有良好的解码能力,支持8路1080p30帧的实时视频流,在分辨率更低的情况下能支持更多。但是Jetson Nano的算力却不算出色,仅仅不到0.5TFLOPS,时下主流的模型都仅仅处于“能跑”的阶段,如YOLOV5-Nano,仅仅是能达到30fps。紧缺的算力与良好的视频解码能力并不匹配,即使调研了目前最为轻量级的检测器(FastestDet),也只有106fps,也就是不到4路1080p30帧的实时视频流。
如果要实现能与Nano解码能力所匹配的推理,可以采取抽帧,或者使用更轻量级的模型。抽帧对跟踪的影响后续需要调研。