test_efficientnasnet_m.py test_googlenet.py test_mobilenetv1.py test_resnet18.py test_vargconvnet.py 这几种CNN网络介绍与对比5 个网络完整介绍 RDK X5 部署场景横向对比文件清单test_resnet18.py、test_mobilenetv1.py、test_googlenet.py、test_vargconvnet.py、test_efficientnasnet_m.py全部都是图像分类 CNN适配地平线 RDK X3/X5 BPU 部署对应你手上 NV12 输入.bin 模型 demo 体系ImageNet-1000。前置背景传统手工设计 CNNGoogLeNet、ResNet18、MobileNetV1搜索架构 NASEfficientNASNet-M地平线自研高效架构VarGConvNet面向 BPU 硬件优化一、逐个网络简介1. ResNet18test_resnet18.py你当前正在运行论文Deep Residual Learning for Image Recognition2015核心创新残差连接 Shortcut Connection解决深度网络梯度消失可以堆叠更深网络。结构18 层卷积网络基础模块Conv-BN-ReLU 残差分支卷积标准 3×3 普通卷积参数量~11.7M计算量FLOPs ~1.8G✅ 优点工业界最通用基线预训练权重极多结构规整BPU 调度友好训练稳定微调简单 ❌ 缺点没有深度可分离卷积算力消耗大于轻量化网络单纯堆叠 3×3 卷积移动端 / 边缘端算力利用率一般。适用场景通用分类、简单缺陷检测、作为检测网络 Backbone 基线。2. MobileNetV1test_mobilenetv1.py论文MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications2017核心创新深度可分离卷积 Depthwise Conv Pointwise Conv大幅削减计算量。结构全部由DW Conv PW Conv串联参数量~4.2MFLOPs~0.57G✅ 优点初代轻量化标杆算力远低于 ResNet18推理速度快 ❌ 缺点DW 卷积在部分 BPU / 硬件上并行效率一般精度上限不高缺少残差结构深层训练容易不稳定ReLU6 激活函数。地平线提示DW 卷积要关注模型编译优化策略部分场景不如 VarGConvNet。适用场景极低算力设备、简单分类、低速抓拍场景。3. GoogLeNetInception v1test_googlenet.py论文Going Deeper with Convolutions2014核心创新Inception 模块多尺度并行卷积1×1、3×3、5×5 同时提取特征再 concat参数量~6.7M比 ResNet18 更小FLOPs ~1.5G✅ 优点多尺度特征原生支持对大小差异目标友好 ❌ 缺点分支多、concat 操作频繁网络拓扑碎片化BPU 硬件调度压力大延迟波动更大比较老旧同等算力下精度弱于 ResNet 系列。适用场景历史项目兼容新项目基本不优先选用。4. VarGConvNettest_vargconvnet.py地平线自研网络VarGConvNet Variable Group Convolution Network地平线面向BPU 硬件量身设计轻量化 CNN官方提供预训练 ImageNet 权重。 核心思想可变分组卷积 硬件友好算子组合平衡精度、访存、BPU 并行效率。✅ 优点针对地平线 BPU 做算子优化同精度下推理延迟普遍优于 MobileNetV1算子连续、分支少减少 DDR 数据读写不需要大量 DW 卷积规避硬件短板RDK 平台官方主推轻量化骨干之一 ❌ 缺点第三方框架生态弱谷歌 / 学术界不通用外部资料少只能参考地平线文档⭐重点RDK X3/X5 部署首选轻量化骨干之一适用场景边缘实时分类、目标检测轻量化 backbone推荐优先对比它和 MobileNet。5. EfficientNASNet-Mtest_efficientnasnet_m.py属于NAS 神经架构搜索得到的网络地平线内部搜索得到系列EfficientNASNet-M medium 版本 区别于 Google EfficientNet是地平线 NAS 产出模型。 原理通过强化学习自动搜索最优卷积组合、通道数、网络深度不是人工设计。✅ 优点在给定算力约束下自动逼近最优精度相比手工网络更容易实现 “精度 / 速度平衡点” ❌ 缺点网络结构不规则碎片化算子部分零散小卷积组合极端情况下 BPU 利用率不如 VarGConvNet微调难度高于 ResNet分级EfficientNASNet-S小模型EfficientNASNet-M中等规模这份 demoEfficientNASNet-L大模型适用场景追求极致精度愿意投入时间调编译参数产品定型阶段选型对比实验。二、综合横向对比表ImageNet1kRDK X5 实测参考维度定性排序精度越高↑推理耗时越低越好↓表格网络设计方式核心算子参数量规模ImageNet 精度 (参考)RDK X5 推理延迟特性生态通用性推荐优先级RDKResNet18人工设计标准 3×3 卷积 残差中大★★★★稳定速度中等⭐⭐⭐⭐⭐ 通用基线★★★★☆MobileNetV1人工轻量化深度可分离卷积 DW/PW小★★★较快DW 卷积硬件存在瓶颈⭐⭐⭐⭐★★★☆GoogLeNet人工多尺度Inception 多分支 concat中小★★★分支多延迟波动大⭐⭐⭐★★☆新项目不推荐VarGConvNet地平线硬件定向人工设计可变分组卷积小★★★★轻量化里速度最优BPU 高度适配⭐⭐★★★★★轻量化首选EfficientNASNet-MNAS 自动搜索搜索混合卷积结构中小★★★★☆速度中等上限高依赖编译优化⭐⭐★★★★精度优先选型三、选型指南直接结合你的 RDK X5 工程场景 1需要通用基线、后续还要迁移检测 / 分割ResNet18标准骨干论文、预训练、开源工具链最全适合算法验证、做精度基准对比。场景 2追求轻量化、低延迟实时图像分类摄像头 25fps优先 VarGConvNet MobileNetV1VarGConv 是地平线硬件特化很多实测同样精度比 MobileNetV1 更快访存开销更低。场景 3想压榨最高精度算力余量充足EfficientNASNet-MNAS 搜索架构同等计算量精度普遍高于手工轻量化网络代价是调参、模型编译需要多测试。场景 4存量旧项目维护 GoogLeNet新项目尽量不要从零启动 GoogLeNet。四、结合你现有代码的工程提示所有 demo 结构完全统一读取图→resize→BGR2NV12→dnn推理→ctypes调用libpostprocess可以直接一套预处理代码无缝切换各个网络.bin 模型模型必须使用地平线 hb_mapper 单独编译不能跨网络混用如果你后续把分类骨干迁移到 FCOS/YOLO 目标检测ResNet18、VarGConvNet 最适合作为 Detection BackboneMobileNetV1 也常用GoogLeNet 很少用于检测精度优化关键点 ResNet18/EfficientNASNet 可以支持更大分辨率轻量化网络建议 224 输入。五、补充测试建议你可以批量跑实验统一条件输入 224×224 NV12RDK X5统计指标单帧推理耗时forward 耗时Top1 准确率自制测试集BPU 占用率 最终选出延迟 精度平衡点。