netrans/examples/darknet
gwg_xujiao da7906e2f3 docs: streamline public usage guidance 2026-07-23 11:17:21 +08:00
..
yolov4_tiny netrans model conversion examples 2025-04-07 11:31:19 +08:00
README.md docs: streamline public usage guidance 2026-07-23 11:17:21 +08:00

README.md

Darknet 模型转换示例

概述

本文档以 yolov4_tiny 为例,演示如何使用 Netrans 对 Darknet 模型进行转换。实际兼容性取决于模型使用的层和算子,可优先使用 Darknet 官网提供的标准模型进行验证。

快速开始

1. 环境准备

请先在源码根目录执行 make install 安装 Netrans完整步骤见安装指南

2. 进入示例目录

cd examples/darknet
mamba activate netrans  # 激活 netrans 环境

3. 数据准备

本示例包含以下文件:

yolov4_tiny/
├── 0.jpg                 # 校准图像
├── dataset.txt           # 数据集路径配置
├── yolov4_tiny.cfg       # 网络结构配置文件
└── yolov4_tiny.weights   # 预训练权重文件

4. 快速转换(推荐)

# CLI 方式
netrans load yolov4_tiny --mean 128 128 128 --std 1 1 1
netrans quantize yolov4_tiny asymu8
netrans export yolov4_tiny asymu8

分步详细流程

# 1. 模型导入
netrans load yolov4_tiny --mean 128 128 128 --std 1 1 1

# 2. 模型量化
netrans quantize yolov4_tiny asymu8

# 3. 嵌入前后处理节点
netrans add_pre_post yolov4_tiny asymu8 --preprocess --postprocess

# 4. 模型导出
netrans export yolov4_tiny asymu8

Python API 示例

基础转换

from netrans import Netrans

# 初始化
model = Netrans()

# 加载模型
model.load('yolov4_tiny', mean=[128, 128, 128], std=[1, 1, 1])

# 量化
model.quantize('asymu8')

# 导出 NBG并嵌入前后处理节点
model.export('asymu8', preprocess=True, postprocess=True)

分步API使用

from netrans import Netrans

model = Netrans()

# 分步执行
model.load('yolov4_tiny', mean=[128, 128, 128], std=[1, 1, 1])
model.quantize('asymu8')
model.add_pre_post('asymu8', preprocess=True, postprocess=True)
model.export('asymu8', preprocess=False, postprocess=False)

输出说明

环境准备完成后,执行转换流程会生成:

yolov4_tiny/
├── 0.jpg
├── dataset.txt
├── yolov4_tiny.cfg
├── yolov4_tiny.weights
├── yolov4_tiny.data                    # 模型权重数据(生成)
├── yolov4_tiny.json                    # 模型结构描述(生成)
├── yolov4_tiny_asymu8.quantize         # 量化配置(生成)
├── yolov4_tiny_inputmeta.yml           # 输入元数据(生成)
├── yolov4_tiny_postprocess_file.yml    # 后处理配置(生成)
└── wksp/                               # 工作空间(生成)
    ├── yolov4_tiny_asymu8/              # 量化模型工程
    └── yolov4_tiny_asymu8_nbg_unify/    # 最终NBG输出
        ├── network_binary.nb        # NBG模型文件核心输出
        ├── nbg_meta.json            # NBG元数据
        ├── main.c                   # 测试程序
        └── ...                      # 其他部署文件

核心输出文件:

  • network_binary.nb - 最终NBG模型文件可直接部署到PNNA芯片
  • nbg_meta.json - 模型元数据,包含输入输出信息
  • main.c - 示例应用程序,展示如何加载和运行模型

相关文档


版本: 6.33.6+ 更新日期: 2025-12-22
测试模型: yolov4_tiny (Darknet格式)