demo_system_algorithm/docs/resnet18.md

3.3 KiB
Raw Permalink Blame History

ResNet18 — 图像分类模型

概述

ResNetResidual Network 是计算机视觉领域里程碑式的网络架构,通过引入残差连接Skip Connection 解决了深层网络退化问题。ResNet18 是 ResNet 系列中最轻量的版本,包含 18 个卷积层,在准确率和效率间取得良好平衡。

核心特性

特性 说明
模型类型 图像分类Image Classification
网络深度 18 层
输出类别 1000 类ImageNet
输入尺寸 224 × 224
关键创新 残差学习Residual Learning

模型架构

graph LR
    A["输入图像 224×224"] --> B["Conv 7×7 + BN + ReLU"]
    B --> C["MaxPool 3×3"]
    C --> D["Stage 1: 2× BasicBlock"]
    D --> E["Stage 2: 2× BasicBlock"]
    E --> F["Stage 3: 2× BasicBlock"]
    F --> G["Stage 4: 2× BasicBlock"]
    G --> H["AvgPool + FC"]
    H --> I["Softmax 1000类"]

BasicBlock 结构

graph LR
    A["输入"] --> B["Conv 3×3"]
    B --> C["BN + ReLU"]
    C --> D["Conv 3×3"]
    D --> E["BN"]
    A --> F["残差连接"]
    E --> G["相加"]
    F --> G
    G --> H["ReLU"]
    H --> I["输出"]

每个 BasicBlock 包含两个 3×3 卷积层,输入通过跳跃连接直接加到输出上,缓解梯度消失问题。

目标应用场景

  • 图像分类 — 通用图像识别与标签分配
  • 迁移学习 — 作为特征提取主干,微调下游任务
  • 工业质检 — 产品缺陷分类
  • 农业识别 — 植物病虫害分类

参考来源


输入 / 输出规格

模型接口

方向 名称 数据类型 维度 尺寸 说明
输入 INPUT:0 UINT8 4D 1 × 1 × 224 × 672 输入灰度图 (H×W=224×672, 含批处理填充)
输出 OUTPUT:0 FP32 2D 1 × 1000 1000 类置信度得分

输入实际有效区域为 224×224672 宽度包含批处理填充。


后处理流程

flowchart TD
    A["模型输出: 1000维向量"] --> B["Softmax 归一化"]
    B --> C["Top-K 筛选"]
    C --> D{"置信度 > 阈值?"}
    D -->|"是"| E["保留分类结果"]
    D -->|"否"| F["过滤"]
    E --> G["输出 Top-K 类别 + 置信度"]

步骤说明

步骤 操作 说明
1 Softmax 将 1000 个原始得分转为 0~1 概率分布
2 Top-K 筛选 取前 K 个最大概率及其对应的类别索引(常用 K=1 或 K=5
3 阈值过滤 低于置信度阈值的预测将被排除

执行与性能

运行方式

python resnet18.py

性能指标

指标 数值
推理平台 边缘板卡NPU
推理时间 ~4.6 ms
输出 FE 均值误差 0.034708
输出 FE 最大误差 0.161392

ResNet18 推理速度非常快4.6ms),适合实时分类场景。


输出示例

分类结果可视化

分类结果

图中显示了 Top-1 分类的类别标签和置信度。结果图保存路径:../resource/resnet18/result.jpg