左上角显示fps
本项目基于 XiUOS 实时操作系统和 Sipeed Maix-Bit (Kendryte K210) 开发板,实现了一套通用的 AI 视觉推理框架。支持 YOLOv2 目标检测和轻量级图像分类两种任务模式,通过 JSON 配置文件实现模型的零重编译切换。
搭建系统: Ubuntu 18.04 换源: sudo nano /etc/apt/sources.list 替换如下: deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse 更新: sudo apt-get update sudo apt-get upgrade 依赖包安装 sudo apt install build-essential pkg-config git sudo apt install gcc make libncurses5-dev openssl libssl-dev bison flex libelf-dev autoconf libtool gperf libc6-dev 裁减配置工具的下载 mkdir kfrontends && cd kfrontends git clone https://gitlink.org.cn/xuos/kconfig-frontends.git 安装: cd kconfig-frontends ./xs_build.sh 编译工具链 下载:xpack-riscv-none-embed-gcc-10.2.0-1.2-linux-x64.tar.gz 解压:tar -xjf xpack-riscv-none-embed-gcc-10.2.0-1.2-linux-x64.tar.gz -C /opt/ 确保board/maix-bit/config.mk中含有: export CROSS_COMPILE ?=/opt/xpack-riscv-none-embed-gcc-10.2.0-1.2/bin/riscv-none-embed- 使用软件: MobaXterm:串口调试,执行命令 kflash_gui:烧录镜像
make BOARD=maix-bit menuconfig
关键配置项:
Application for XiZi board → knowing app → Using knowing apps
Framework/knowing/detect → yolov2 detect procedure
Framework/knowing/classify → classify procedure
cd Ubiquitous/XiZi_IIoT_Macro make BOARD=maix-bit
编译产物为 XiZi-maix-bit.bin,通过 kflash 工具烧录到开发板。
XiZi-maix-bit.bin
kflash
详见 **JSON_FORMAT.md**。完整文档包含:字段详解、取值范围、校验规则、示例文件、常见错误排查。
检测 JSON (/detect.json) — 8 个字段,由 json_parser.c 解析:
/detect.json
json_parser.c
anchors
[number]
net_input_size
[int, int]
[高, 宽]
net_output_shape
[int, int, int]
sensor_output_size
kmodel_size
int
labels
[string]
obj_thresh
nms_thresh
number
分类 JSON (/classify.json) — 3 个字段,由 classify.c 解析:
/classify.json
classify.c
kmodel 路径自动推导: JSON 文件名的 .json 后缀替换为 .kmodel。
.json
.kmodel
将 .kmodel 和对应的 .json 文件放入 SD 卡根目录,通过串口终端连接开发板:
# 启动目标检测 Detect /detect.json # 启动图像分类 Classify /classify.json
# 检测模式 [0] objs:3 (120,80,200,180)helmet:0.85 (300,150,380,220)head:0.72 (50,60,100,120) # 分类模式 [0] no_helmet: 0.95 helmet:0 no_helmet:10
KPU 支持加速的模型格式为kmodel
可以在maixhub中直接训练得到kmodel格式的模型
MaixHub
训练会得到kmodel模型和report.json 其中report.json中会包含需要的.json文件中的参数
仅列出本应用实际使用的关键文件。
xiuos/ ├── README.md / SOLUTION.md / THIRD_PARTY.md / JSON_FORMAT.md │ ├── APP_Framework/ │ ├── Applications/knowing_app/ │ │ ├── classify/classify_entry.c # Classify 命令注册 │ │ ├── detect/detect_entry.c # Detect 命令注册 │ │ ├── Makefile / Kconfig # 应用层构建 │ │ │ ├── Framework/knowing/ │ │ ├── classify/ │ │ │ ├── classify.c # 分类主逻辑 (JSON解析 + KPU推理 + 投票) │ │ │ ├── classify.h │ │ │ └── Kconfig # LCD尺寸 + 摄像头参数 │ │ ├── detect/ │ │ │ ├── detect.c # 检测主逻辑 (JSON解析 + YOLOv2 + KPU推理) │ │ │ ├── detect.h │ │ │ └── Kconfig # LCD尺寸 + 摄像头参数 │ │ ├── kpu/ │ │ │ ├── yolov2/ │ │ │ │ ├── region_layer.c # YOLOv2 region层解码 + NMS │ │ │ │ └── region_layer.h │ │ │ └── yolov2_json/ │ │ │ ├── json_parser.c # param_parse() JSON参数解析 │ │ │ └── json_parser.h │ │ ├── Kconfig / Makefile │ │ │ └── lib/cJSON/ # JSON 解析库 (MIT) │ ├── Ubiquitous/XiZi_IIoT_Macro/ │ ├── board/maix-bit/ │ │ ├── board.c # 板级初始化 + 双核分发 │ │ ├── xsconfig.h # 系统配置宏 (Kconfig→代码) │ │ ├── link.lds # 链接脚本 (每核独立栈) │ │ ├── Kconfig │ │ │ │ │ └── third_party_driver/ # 外设驱动 (仅列出数据流涉及项) │ │ ├── camera/ │ │ │ ├── ov5642.c # OV5642 寄存器配置 (SCCB) │ │ │ ├── dvp.c # DVP 数据采集 (RGB888 三平面) │ │ │ └── connect_dvp.c # DVP ioctl 适配层 │ │ ├── kpu/ │ │ │ ├── kpu.c # KPU 硬件操作 │ │ │ └── connect_kpu.c # KPU ioctl 适配层 │ │ ├── lcd/connect_lcd.c # LCD SPI ioctl 适配层 │ └── kernel/thread/smp_assign.c # SMP调度器 (每核就绪队列)
本项目核心应用代码基于 Mulan PSL v2 开源协议发布。
Copyright (c) 2020-2026 AIIT XUOS Lab
使用的第三方开源组件详见 THIRD_PARTY.md。
面向智慧车间的工业物联网操作系统
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
基于 XiUOS 的 AI 视觉目标检测与分类系统
项目简介
本项目基于 XiUOS 实时操作系统和 Sipeed Maix-Bit (Kendryte K210) 开发板,实现了一套通用的 AI 视觉推理框架。支持 YOLOv2 目标检测和轻量级图像分类两种任务模式,通过 JSON 配置文件实现模型的零重编译切换。
核心特性
硬件需求
编译与烧录
环境准备
配置 (menuconfig)
关键配置项:
Application for XiZi board → knowing app → Using knowing apps- 必须启用Framework/knowing/detect → yolov2 detect procedure- 启用目标检测Framework/knowing/classify → classify procedure- 启用图像分类编译
编译产物为
XiZi-maix-bit.bin,通过kflash工具烧录到开发板。JSON 配置格式
详见 **JSON_FORMAT.md**。完整文档包含:字段详解、取值范围、校验规则、示例文件、常见错误排查。
快速参考
检测 JSON (
/detect.json) — 8 个字段,由json_parser.c解析:anchors[number]×10net_input_size[int, int][高, 宽]net_output_shape[int, int, int]sensor_output_size[int, int]kmodel_sizeintlabels[string]obj_thresh[number]nms_threshnumber分类 JSON (
/classify.json) — 3 个字段,由classify.c解析:net_input_size[int, int][高, 宽]kmodel_sizeintlabels[string]运行
将
.kmodel和对应的.json文件放入 SD 卡根目录,通过串口终端连接开发板:串口输出示例
LED 状态说明
模型准备指南
模型格式要求
KPU 支持加速的模型格式为kmodel
可以在maixhub中直接训练得到kmodel格式的模型
MaixHub
训练会得到kmodel模型和report.json 其中report.json中会包含需要的.json文件中的参数
项目结构
仅列出本应用实际使用的关键文件。
异常处理机制
许可证
本项目核心应用代码基于 Mulan PSL v2 开源协议发布。
Copyright (c) 2020-2026 AIIT XUOS Lab
使用的第三方开源组件详见 THIRD_PARTY.md。
参考资料