骁龙865算力跑YOLO v8多快、延迟速度
骁龙865 上:YOLOv8n(640×640)+ ncnn ≈ 60–70 FPS,非常轻松实时;YOLOv8s ≈ 25–35 FPS,实时但余量不大;YOLOv8m ≈ 10–20 FPS,属于“可用但不算特别流畅”。如果你能告诉我你打算跑的是哪一种任务(检测 / Pose / 分割)、希望多少 FPS、以及你倾向于用什么框架(ncnn / MNN / TFLite / QNN),我可以帮你
·
先给一个结论:
- 在骁龙865上,YOLOv8‑n(640×640)用 ncnn 跑,大概可以做到 60–70 FPS;
- YOLOv8‑s 大约 25–35 FPS;
- YOLOv8‑m 就只有十几 FPS,偏“勉强实时”。
实际速度会受分辨率、量化(FP32/INT8)、后端(CPU/GPU/NPU)和推理框架(ncnn / MNN / TFLite / QNN)影响很大。
下面分情况展开说。
一、硬件算力:骁龙865大概什么水平?
- 官方给出的第5代 AI Engine 整体算力约 15 TOPS,其中包括升级过的 Hexagon 698 Tensor Accelerator,相比上一代 Tensor 加速器 TOPS 提升约 4 倍,专做 AI 推理加速。
- GPU 为 Adreno 650,移动端跑卷积网络的主力;CPU 为 1×2.84GHz A77 + 3×2.42GHz A77 + 4×1.8GHz A55。
对 YOLOv8 来说,通常主要利用点: - GPU(Adreno 650)+ 推理框架(如 ncnn Vulkan)
- Hexagon NPU(如果用 QNN / SNPE 这类高通工具链)
二、YOLOv8 各尺寸在骁龙865上的实测/实测估算值
这里默认输入为 640×640,典型手机环境(arm64-v8a,多核 CPU + Adreno 650)。
1)YOLOv8‑n(nano)最轻量
- 改进版 YOLOv8n‑Lite 在骁龙865上,实测能做到约 35 FPS(基于 ncnn,并做了结构剪枝等轻量化改进)。
- ncnn‑assets 的 YOLOv8n‑Pose 在骁龙865上的推理时间:
- ncnn:15 ms / 帧(约 66 FPS)
- TFLite:28 ms / 帧(约 36 FPS)
- MNN:21 ms / 帧(约 48 FPS)
Pose 模型比纯检测略重一些,因此纯检测的 YOLOv8n 在同样的 ncnn 配置下,理论只会更快;再加上结构优化,达到 60+ FPS 是合理的区间。
综合下来,比较常见的实际速度区间是:
- ncnn(GPU):约 60–70 FPS(15ms 左右一帧)
- TFLite(CPU/GPU):约 30–40 FPS
- 纯 CPU + 未优化 ONNX:往往只有 10–20 FPS
2)YOLOv8‑s(small)
- 865 上经验值:通常在 25–35 FPS 左右(ncnn,640×640)。
- 有些工程实测中,类似体量的模型(YOLOv5s)在骁龙865上也能跑到 30+ FPS,而 YOLOv8s 的计算量比 v5s 稍大一些,所以 25–35 FPS 是合理区间。
3)YOLOv8‑m(medium)及以上
- YOLOv8m 参数量和计算量都比 n/s 大不少,在骁龙865上单模型推理通常只能做到十几 FPS:
- 大致区间:10–20 FPS(视具体优化情况)
- 再往上的 L / X,在 865 上基本就不适合做实时 30 FPS 检测了,更偏向离线/批量检测或更高性能 SoC。
为了更直观,用一个简单流程图表示“模型规模 → 预期 FPS”的关系(640×640,ncnn GPU,常规手机):
三、影响速度的关键因素
1)模型尺寸(n/s/m/l/x)
- 模型越大,参数量和 FLOPs 越高,延迟越高,FPS 越低。
- 实测参数对比(YOLOv5 vs YOLOv8)显示,v8 的 n/s/m 在精度提升的同时,参数量和 FLOPs 也明显增加,这就是同样硬件上 YOLOv8 比 v5 略慢的主要原因。
2)输入分辨率 - 640×640 是最常见的手机端分辨率。
- 如果降到 416×416,FPS 会明显提升(比如 n 可能从 60+ 提到 80+);
- 提到 1280×1280,即使是 n 也很难维持 30 FPS。
3)后端与推理框架 - ncnn(开启 Vulkan GPU):在骁龙865上通常最快,上面的 15ms YOLOv8n‑Pose 就是用 ncnn 跑的。
- TFLite:GPU / NPU 支持视具体算子而定,有时会退回 CPU,速度中等。
- MNN:在同样模型上实测约 21ms(YOLOv8n‑Pose),介于 ncnn 和 TFLite 之间。
- QNN / SNPE(利用 Hexagon NPU):高通 AI Hub 上有针对 YOLOv8 的 QNN 优化模型,在新一代 8 Gen 3 上单次推理可低到 2.9 ms,在 865 上也会有明显加速,但具体公开数据较少,一般可预期比纯 CPU 快不少。
4)量化(FP32 vs INT8) - INT8 量化在支持 NPU/GPU INT8 的链路(如 QNN)下,可以在损失少量精度的前提下,显著提速、降功耗。
- 实测经验里,int8 量化在 865 上经常能带来 1.5–2 倍加速,具体看算子支持度。
5)调度与线程设置 - 合理的线程数绑定和大核优先策略,可以避免频繁核间迁移、提升稳定性。
- 长时间跑大模型时要留意温控,温控触发后降频会让 FPS 出现明显掉坑。
四、如果你要自己压榨性能,可以怎么搞?
1)选对模型尺寸和分辨率
- 实时 App 优先:
- 强实时(摄像头流畅):优先选 YOLOv8n 或 YOLOv8s,分辨率 640×640(甚至可以尝试 512×512)。
- 场景允许“几秒识别一次”:可以考虑 m 或更大模型。
2)优先用移动端推理框架 + GPU / NPU
- 推荐优先级(仅就“在骁龙865上做速度”而言):
1)QNN / SNPE 利用 Hexagon NPU(需要自己转换 / 调参,适配工作量大,但上限高)
2)ncnn(Vulkan GPU)——最常见、社区资料多,YOLOv8n‑Pose 在 865 上 15ms 的实测就是 ncnn
3)MNN
4)TFLite
3)导出与优化技巧 - 导出 ONNX 后用 ncnn / pnnx 转换:
- 可以做算子融合、图优化,减小推理开销。
- 激活函数替换:比如把 SiLU 换成 ReLU,可进一步提升速度(有实践在 YOLOv8‑Pose 中通过这类改动在安卓端实现了稳定 30 FPS)。
- 量化:
- 用 QNN 工具链做 PTQ(训练后量化),或自己训练时做 QAT;
- 在精度满足的前提下尽量用 INT8。
4)工程侧优化
- 异步推理:推理和相机采集、UI 渲染分开线程,避免 UI 卡顿。
- 预处理(resize / normalize)放到 GPU 或使用高效实现(如 ncnn 内置的预处理)。
- 限制推理频率:比如每 2–3 帧推理一次,既保证视觉流畅又降低负载。
五、一句话总结
- 骁龙865 上:
- YOLOv8n(640×640)+ ncnn ≈ 60–70 FPS,非常轻松实时;
- YOLOv8s ≈ 25–35 FPS,实时但余量不大;
- YOLOv8m ≈ 10–20 FPS,属于“可用但不算特别流畅”。
如果你能告诉我你打算跑的是哪一种任务(检测 / Pose / 分割)、希望多少 FPS、以及你倾向于用什么框架(ncnn / MNN / TFLite / QNN),我可以帮你算一个更贴近你项目的“目标分辨率 + 模型尺寸”组合。
先给你一个直观的结论(只看这个就够了):
- 骁龙865,输入 640×640:
- YOLOv8n:约 12–20 ms/帧(≈50–80 FPS)
- YOLOv8s:约 30–40 ms/帧(≈25–35 FPS)
- YOLOv8m:约 60–100 ms/帧(≈10–17 FPS)
用轻量模型 + ncnn/MNN 优化后,单次推理做到十几毫秒是比较常见的水平,足够做实时检测(30FPS)。
一、从 FPS 换算成延迟(ms/帧)
- 关系很简单:
延迟(ms) ≈ 1000 / FPS - 例如 RTMPose-s(结构和算力接近 YOLOv8s)在骁龙865上用 ncnn 跑到 70+ FPS,那平均延迟就是:
1000 ÷ 70 ≈ 14.3 ms/帧
这和实际工程里“十几毫秒”的经验是吻合的。
二、不同 YOLOv8 模型在骁龙865上的典型延迟
前提:640×640 输入,典型 Android 机型(如 Galaxy S20 Ultra 等,Adreno 650 GPU),经过 ncnn/MNN 这类移动推理框架优化。
| 模型 | 典型延迟(ms/帧) | 换算 FPS | 备注 |
|---|---|---|---|
| YOLOv8n | 12–20 ms | ≈50–80 FPS | 纯检测比姿态略快,ncnn 下更优 |
| YOLOv8s | 30–40 ms | ≈25–35 FPS | 常见“刚好实时”档位 |
| YOLOv8m | 60–100 ms | ≈10–17 FPS | 算力吃紧,不适合高帧率场景 |
| YOLOv8l/x | >100 ms | <10 FPS | 一般不推荐在865上跑实时 |
| 参考点: |
- RTMPose-s 在 Snapdragon 865 上用 ncnn 能达到 70+ FPS。
- 多篇 YOLOv8 移动端部署和 benchmark 文章也给出了类似范围的延迟,只是具体数值会因为后端(ncnn/TFLite/MNN)和线程配置略有差异。
三、影响延迟的几个关键点
1)模型大小(n/s/m/l/x)
- 模型越大,卷积层越多、通道越宽,单次前向传播计算量越大,延迟自然越长。
- 从延迟角度看:
- YOLOv8n:在 865 上一般能压到十几毫秒以内;
- YOLOv8s:三四十毫秒级别;
- 再往上(m/l/x)更多是“能跑”,很难达到 30 FPS 的实时感。
2)输入分辨率
- 640×640 是最常见的平衡点。
- 分辨率的影响大致是“平方级”:
- 从 640×640 降到 416×416:
- 像素数降到原来的 (416² / 640²) ≈ 0.42
- 理论计算量也下降到 4 成左右,延迟可以按比例缩减(比如从 20 ms 降到 ~8–10 ms)。
- 反之,提升到 1280×1280,计算量是 4 倍,延迟很容易飙到 80–100 ms+。
3)后端和推理框架(非常关键)
- 从 640×640 降到 416×416:
- 一般快慢排序(经验+部分基准)大致是:
QNN/SNPE(用上 Hexagon NPU) ≳ ncnn(Vulkan GPU) ≳ MNN ≳ TFLite(GPU/CPU) > 原始 PyTorch/ONNX Runtime CPU - 现有公开数据:RTMPose-s 在 Snapdragon 865 上,ncnn 能到 70+ FPS,对应的延迟约 14 ms;如果换成纯 CPU 或 TFLite,延迟通常会翻倍以上。
- 因此“延迟速度”不仅要看模型,更要看你用什么推理引擎。
4)量化(FP32 vs FP16 vs INT8) - FP32:默认精度,但移动端 GPU/NPU 上效率不是最高。
- FP16:在 Adreno 650 上通常能明显提升吞吐,延迟可以再降一截。
- INT8:用 QNN/SNPE 跑在 Hexagon NPU 上时,可以在精度略微下降的前提下,把延迟再压到 60–70% 甚至更低,尤其是对中/大模型收益更明显。
5)前/后处理是否算在“延迟”里 - 严格意义的“推理延迟”:只算模型 forward(ncnn::Extractor / MNN::Session 等)。
- 工程上更关心的“端到端延迟”:
- 图像读取/相机采集
- 前处理(resize、归一化、letterbox)
- 模型推理
- 后处理(NMS、坐标变换、绘制)
- 在手机上,前/后处理如果写不好(比如频繁 CPU↔GPU 拷贝),额外再加上 5–15 ms 完全有可能。
四、如果你自己测延迟,怎么测才合理
给你一个比较标准的测法(以 Android + ncnn 为例):
- 只测推理延迟:
- 排除相机、图片 I/O,只做:
- 准备好已经归一化的输入 Tensor(可以预先做一次前处理,复用 buffer)
- 循环跑 N 次推理,统计每次推理耗时(ncnn::Extractor 或 forward 前后打时间戳)
- 去掉前几次 warm‑up,取平均值 / P50 / P95
- 排除相机、图片 I/O,只做:
- 测端到端延迟:
- 在每一帧的相机回调开始时打时间戳 t0
- 模型推理 + 前后处理全部完成后(比如拿到检测结果并绘制完)打时间戳 t1
- 单帧延迟 = t1 − t0
五、怎么根据你的延迟目标选模型和配置
- 目标 ≤10 ms(100+ FPS):
- 只能考虑 YOLOv8n 甚至更轻的变体,并且:
- 用 ncnn/MNN + Vulkan GPU
- 分辨率控制在 416–640
- 前后处理尽量 GPU 化/零拷贝
- 只能考虑 YOLOv8n 甚至更轻的变体,并且:
- 目标 20–30 ms(30–50 FPS):
- YOLOv8n/YOLOv8s 都有机会,主要看分辨率和后端:
- YOLOv8s:640×640 + ncnn 通常在 30–40 ms,接近 30 FPS
- YOLOv8n:可以更轻松地把延迟压到 20 ms 以下
- YOLOv8n/YOLOv8s 都有机会,主要看分辨率和后端:
- 目标 ≤50 ms(20 FPS 以上):
- YOLOv8m 也勉强可以,但体验会比较“勉强实时”,更适合非高帧率场景(比如每隔几帧检测一次)。
六、简单总结一句
- 在骁龙865上,用合适的模型尺寸(优先 n/s)、640×640 左右分辨率,配合 ncnn/MNN 这类优化好的推理框架,YOLOv8 的单次推理延迟通常可以控制在:
- 小模型:十几毫秒
- 中等模型:三、四十毫秒
- 大模型:几十到一百毫秒级
如果你能告诉我:
- 想用哪个 YOLOv8 变种(n/s/m…)
- 准备用哪个推理框架(ncnn / TFLite / MNN / QNN/SNPE)
- 目标 FPS 或最大容忍延迟(比如 30ms、50ms)
我可以帮你算一个更具体的“分辨率 + 模型 + 量化”组合。
更多推荐

所有评论(0)