eefocus_4150358 发表于 2025-11-7 14:43:03

【研华AMD嵌入式主板AIMB-2210】01:图像分类实现

本帖最后由 eefocus_4150358 于 2025-11-7 14:56 编辑

本篇内容主要介绍在研华AMD嵌入式主板AIMB-2210上实现图像分类。
评测模型选用ResNet50模型,使用RyzenAI软件准备、量化和部署INT8模型,最后使用python API将量化模型部署在NPU上,在数据集上评估量化模型的准确性。
1. AIMB-2210主板规格参数
AIMB-2210主板规格参数,可以访问研华官网链接:https://iotmart.advantech.com.cn ... AIMB-2210R-00A1.htm,它是研华首款搭载 AMD Ryzen 嵌入式 AI Mini-ITX 工业主板。

2. 环境准备
在环境准备之前,首先需要下载安装Anaconda,Anaconda的安装可以参考网上其他文章。
Anaconda安装完成后,创建一个虚拟环境。

接着安装所需要的依赖包,建议把这些依赖包列表整理进requirements.txt文件中,统一安装。


3. 下载ResNet50模型
下载资源包RyzenAI-SW-1.4.0(下载链接:https://github.com/amd/RyzenAI-SW/tree/1.4.0),资源包RyzenAI-SW-1.4.0中有关于模型下载的代码,找到并运行download_RestNet.py文件即可自动下载ResNet50模型。



4. 下载数据集
下载数据集压缩包val_images.tar.gz(下载链接:https://huggingface.co/datasets/imagenet-1k/tree/main/data)。

输入指令:
mkdir val_data && tar -xzf val_images.tar.gz -C val_data
python prepare_data.py val_data calib_data
创建测试集文件夹,解压验证集。
运行prepare_data.py来创建验证数据集和校准数据集。


5. 模型量化
使用model_quantization.py对ResNet50模型进行量化,本次选择量化为INT8格式。


到这里已经完成了图像分类量化模型的部署,最后在CPU/NPU上使用ImageNet数据集评估模型的准确性。
由于资源包中的文件配置有问题,不能正确地将推理任务在NPU上进行,因此需要对原来的代码进行修改。
首先可以参考Yolov8物体检测代码中的配置文件,将vaip_config文件复制到图像分类项目的文件夹中,
然后修改image_classification.py文件,修改的关键是给选择设备为npu时指定特殊的配置文件vaip_config。

另外,utils.py文件也需要修改。

CPU:
指令:python image_classification_fixed.py --model_input models\resnet50_int8.onnx --calib_data calib_data --device cpu --evaluate

NPU:
指令:python image_classification_fixed.py --model_input models\resnet50_int8.onnx --calib_data calib_data --device npu --evaluate

执行结果显示NPU的运行速度要快于CPU。







页: [1]
查看完整版本: 【研华AMD嵌入式主板AIMB-2210】01:图像分类实现