回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

【创意智造组】Mind+ V2 模型训练——"甲骨文识别"AI助手 中等

头像 HonestQiao 2026.04.15 73 0

步骤1 一、开篇:当 AI 遇见甲骨文

说实话,刚开始想到这个项目的时候,我自己都觉得有点"硬核"——居然想用目标检测模型去识别甲骨文?但作为一名做了十几年嵌入式、又爱折腾创客教育的玩家,我骨子里就是喜欢挑战这种"看起来不太搭界"的组合。

甲骨文是什么?那是 3000 年前商朝人刻在龟甲兽骨上的文字,是中国最早的文字体系。目前已发现的甲骨文有十多万片、数十万字,但其中还有大量至今没有被破译。传统的甲骨文研究高度依赖少数专家,普通人想认识几个甲骨文字,基本只能靠翻大部头的字典。

我想做的是:让一台巴掌大的 AI 设备,能够像识别猫狗一样识别甲骨文字形,然后用语音告诉你这是哪个字、什么意思。

经过一番实践,从数据采集、模型训练,到边缘部署、MCP 联动,整条链路我已经全部跑通了。

核心亮点速览

  • 数据来源硬核:基于华中科技大学团队构建的 HUST-OBS 数据集训练,该数据集支撑了 ACL 2024 最佳论文
  • 全链路闭环:从原始数据 → YOLO 训练 → 二哈识图二部署 → MCP 接入小智 AI,全部打通
  • 技术创新:原图保持原样、画布放大补白、精确标注框训练策略,让模型真正学会识别字形而非图片背景
  • 边缘端运行:6 TOPS 算力的二哈识图二本地推理识别,DF-K10 实时展示结果并语音介绍

步骤2 二、项目背景:为什么选择甲骨文?

2.1 甲骨文的现状

甲骨文发现至今已经 120 多年了,但破译工作进展缓慢。2019 年中国文字博物馆第一次公示释读成果,只有一个人拿到一等奖;2023 年第二次公示,一等奖也才两个人。不是因为专家不够努力,而是甲骨文真的太复杂了——同一个字可能有十几种不同写法,字形随时代、地域变化很大。

2024 年,华中科技大学白翔教授团队发表了一篇论文《Deciphering Oracle Bone Language with Diffusion Models》,用扩散模型辅助甲骨文破译,拿到了 ACL 最佳论文。这说明 AI 在甲骨文研究中的潜力是被学术界认可的。

但问题是,这些研究大多停留在论文和实验室里。普通人想接触?太难了。我就想,能不能把这套能力做进一个拿在手里的设备,让谁都能用?

2.2 为什么选择 Mind+ V2?

作为一个玩惯了 Arduino、ESP32、树莓派的老玩家,我其实可以手写 PyTorch 训练脚本,也可以自己用 TensorFlow 部署模型。但这次我想尝试一种更"创客友好"的方式——Mind+ V2。

Mind+ V2 的模型训练功能有几个优势特别吸引我:

  • 图形化界面,从数据导入到模型导出一条龙,不需要写一行训练代码
  • 内置 YOLO 目标检测训练流程,对创客教育场景非常友好
  • 导出模型可以直接部署到 DFRobot 自家的二哈识图二,生态闭环
  • 专业模式还提供了高级参数调整,老手也能玩得转

事实证明,这个选择是对的。整个训练流程比我预想的还要顺畅。

01_甲骨文实物.jpeg
02_甲骨文拓片.jpg

步骤3 三、数据来源与处理:找到"对"的数据集

3.1 选型经历:找数据比训练还难

做 AI 项目,数据是第一步。我一开始去魔搭社区(modelscope.cn)搜了一圈,关键词"甲骨文",结果要么数据量太少(几百张),要么标注质量不行,要么图片都是黑白的拓片扫描件,不适合做目标检测。

接着又去百度 AI Studio 翻数据集,搜出来的大多是汉字书法数据集、古籍文字识别数据集,和甲骨文完全不是一回事。

最后在 HyperAI 超神经平台上找到了 HUST-OBS(后来 GitHub 上改名为 HUST-OBC)。一看数据量:14 万张图片,1588 个已破译类别——这就是我要的数据。

3.2 HUST-OBS 数据集详解

  • 全称:Huazhong University of Science and Technology Oracle Bone Script
  • 构建机构:华中科技大学、华南理工大学、阿德莱德大学、安阳师范学院
  • 相关论文:「An open dataset for oracle bone script recognition and decipherment」
  • 论文荣誉:ACL 2024 最佳论文(没错,就是那个用扩散模型破译甲骨文的论文)
  • 数据集地址https://hyper.ai/cn/datasets/33506
  • GitHub 仓库https://github.com/Pengjie-W/HUST-OBC

数据规模

  • 已破译字符:1,588 个类别,77,064 张图像
  • 未破译字符:9,411 个类别,62,989 张图像
  • 总计:140,053 张图像

数据来源

  • X:《新编甲骨文》(书籍扫描)
  • L:《甲骨文:六码数字代码》(书籍扫描)
  • G:国学大师网站
  • Y:殷契文渊网站
  • H:HWOBC 现有数据集

所有图片和标签都经过甲骨文研究专家审阅和校正。数据质量非常高。

03_甲骨文识别数据集.png

3.3 数据集结构:比想象的复杂

下载解压后,目录结构是这样的:

HUST-OBC/

├── deciphered/ # 已破译字符(训练+测试来源)

│ ├── 0001/

│ │ ├── G_0001_粹622合13155賓組.png

│ │ ├── H_0001_60BB6_0.png

│ │ └── ...

│ ├── 0002/

│ ├── 0011_0012_0013/ # 合并目录!

│ │ ├── 0011/

│ │ ├── 0012/

│ │ └── 0013/

│ └── ID_to_chinese.json # 0001→"㐁" 的映射

├── GuoXueDaShi_1390/ # 验证集来源

│ ├── 0001/

│ ├── 0002/

│ └── ID_to_chinese.json

└── undeciphered/ # 未破译字符

注意那个 0011_0012_0013——这种合并目录里面有多个子目录,需要递归遍历到最底层的 4 位数字目录才能正确归类。

3.4 图片预处理:原图保持,画布放大

这是整个数据处理中最关键的一步

原始甲骨文字形图片大小不一,有的只有 100×150 像素,直接训练的话模型很难学到稳定的特征。但如果简单拉伸放大,又会破坏字形的原始比例。

我的方案是:原图保持原样,居中放置,四周填充白色背景,画布尺寸是原图的 2 倍。

举个例子:

  • 原图:119×205 像素
  • 画布:238×410 像素(2 倍)
  • 原图居中粘贴,四周留白

这样做的好处:

  1. 原图不拉伸,字形特征完全保留
  2. 画布统一放大,模型输入尺寸更稳定
  3. 白色背景让模型注意力集中在中心字形上
原图处理后
04_G_0001_粹622合13155賓組.png
05_0001-G_0001_粹622合13155賓組.jpg

3.5 精确 YOLO 标注:不只覆盖整张图

传统的全图标注是 0 0.5 0.5 1.0 1.0(中心 0.5,0.5,宽高都是 100%)。但如果这样做,标注框会覆盖整个画布,包括四周的白色背景。模型训练时就会学到"白色背景也是目标的一部分"——这显然是错的。

我的标注策略是精确反映原图在画布中的位置:

  • 中心点:(0.5, 0.5)——原图居中
  • 宽度:原图宽 / 画布宽 = 119/238 = 0.5
  • 高度:原图高 / 画布高 = 205/410 = 0.5

所以标签内容是:0 0.5 0.5 0.5 0.5

这样模型学到的就是"识别画布中心区域的那个字形",而不是"识别整张图片"。这个细节对后续推理精度影响很大。

3.6 数据集过滤与规模

不是所有类别都适合做目标检测训练。我加了两个过滤条件:

  1. 验证集存在性:只保留同时存在于 GuoXueDaShi_1390 中的类别(确保有独立的验证来源)
  2. 训练图片数量:只保留训练图片 >= 20 张的类别(样本太少训不出东西)

最终我生成了几个不同规模的数据集用于不同阶段:

数据集类别数训练图片用途
HUST-OBC-Selected10~273最小验证
HUST-OBC-YOLO-100100~2,078快速调试
HUST-OBC-YOLO-13901390~31,393完整训练

小数据集用来快速验证流程,大数据集用来认真训练。

06_HUST-OBC-Selected精简测试数据集.png

步骤4 四、模型训练:Mind+ V2 专业模式实战

4.1 进入专业模式

打开 Mind+ V2,菜单栏选择"模型训练"→"目标检测(M2)",然后点击右上角切换到"专业模式"。

专业模式比快速体验模式多了几个关键功能模块:数据设置、标注设置、模型训练、模型校验、模型部署。对于需要精细控制训练过程的项目来说,这些功能非常必要。

07_MindPlus模型训练.png
08_MindPlus目标检测.png

4.2 数据导入

在"数据设置"中创建新数据集,然后选择"导入数据"→"有标注数据(YOLO 格式)"。

YOLO 格式要求:

dataset.zip/ ├── images/train/0001/xxx.jpg ├── images/test/0001/xxx.jpg ├── images/val/0001/xxx.jpg ├── labels/train/0001/xxx.txt ├── labels/test/0001/xxx.txt └── labels/val/0001/xxx.txt

images/ 和 labels/ 目录结构严格对应,每张图片对应一个同名的 .txt 标签文件。

我前面用 Python 脚本 1_select_images.py 已经生成好了符合这个结构的数据集,直接打包成 zip 上传即可。

09_Yolo数据集数据包.png

导入数据后,进入标注界面,可以看到已经标注好了:
10_Yolo数据集标注.png

4.3 训练参数配置

创建训练任务,参数设置如下:

参数设置原因
模型YOLOv11n轻量化,参数量小,适合部署到二哈识图二
训练类型目标检测
数据集甲骨文识别选择刚才导入的数据集
图片大小224默认,兼顾细节和速度
训练轮次50甲骨文细粒度分类,需要充分训练
随机左右翻转0默认
随机上下翻转0关闭!甲骨文上下翻转就不是同一个字了
11_Yolo数据集训练参数设置.png

4.4 训练过程

点击"训练"后,Mind+ 会自动开始训练。过程中可以通过"训练监测"窗口查看各项指标:

  • train loss:训练集上的损失,越低越好
  • val loss:验证集上的损失,反映泛化能力
  • Val mAP50:验证集平均精度,目标检测的核心指标
12_Yolo数据集训练过程监测.png
13_Yolo数据集训练过程监控.png
14_Yolo数据集训练图表.png

4.5 模型校验

训练完成后,进入"模型校验"模块。我上传了几张不在训练集中的甲骨文图片进行测试,模型能正确框选字形并给出类别预测,置信度普遍在 0.75 以上。

15_Yolo数据集图片校验1.png
16_Yolo数据集图片校验2.png

4.6 模型导出

校验通过后,点击"导出模型",导出为 ONNX 格式。

17_Yolo数据集模型导出.png

然后,把数据集也做一次导出:

18_Yolo数据集数据集导出.png

这两个文件是后续转换和部署到二哈识图二的关键。

步骤5 五、边缘部署:把模型塞进二哈识图二

5.1 二哈识图二简介

  • 产品:Gravity HUSKYLENS 2 AI Camera Vision Sensor(SKU: SEN0638)
  • 算力:6 TOPS
  • 屏幕:内置 IPS 显示屏,实时显示识别结果
  • 兼容平台:Arduino、树莓派、micro:bit、ESP32 等
  • Wikihttps://wiki.dfrobot.com.cn/_SKU_SEN0638

二哈识图二预置了 20 多种 AI 算法(人脸识别、物体追踪、物体识别等),但甲骨文识别显然不在其中,需要自己训练模型部署上去。

5.2 模型转换与下载

我采用的是 二哈识图 2 使用教程 wiki 页面 8.2 Mind+ 无代码方式训练并部署模型(本地) 的流程,需要在本地搭建模型转换环境,然后在 Mind+ 中完成训练、导出,最后用本地工具打包成二哈识图二能识别的格式。

步骤一:本地环境准备

  1. 安装 .NET 7.0(Windows 64 位选 Windows x64)
  2. 安装 conda(Anaconda/Miniconda 均可)
  3. 在 Anaconda Powershell 中创建并激活独立环境:

mkdir MindPlus_Model cd MindPlus_Model conda create --name env312 python=3.12 conda activate env312

  1. 下载 DFRobot 官方的模型转换打包工具 onnx2kmodel-master,解压到 MindPlus_Model 文件夹中
  2. 安装依赖:

cd onnx2kmodel-master pip install -r requirements.txt pip install nncase_kpu-2.10.0-py2.py3-none-win_amd64.whl python app.py

  1. 保持工具窗口和 Powershell 不关闭,后面要用它来打包模型。

步骤二:本地模型转换打包

  1. 在 Powershell 中激活环境并启动转换工具:

conda activate env312 cd onnx2kmodel-master python app.py

  1. 在模型转换工具界面中:
    • Select Mode 选择 MindPlus
    • Select Model Package 上传刚才导出的 Experience_model 文件夹
    • Select Dataset Package 上传刚才导出的 Experience 数据集文件夹
    • Select Icon 上传应用图标(建议 60×60 透明背景白线 PNG)
    • AppName 设置中文名称为「甲骨文识别」,英文名称为 Oracle Recognition
  2. 点击 Convert and Package 按钮,等待 "please wait" 提示消失、按钮恢复,即表示转换完成
  3. 在 MindPlus_Model\onnx2kmodel-master 文件夹中会生成一个新的 .zip 文件,这就是最终的模型安装包,不要对这个 zip 文件做任何修改
19_模型转换.png
20_模型安装文件.png

5.3 安装到二哈识图二

  1. 用 USB 数据线连接二哈识图二到电脑
  2. 电脑会出现一个名为 Huskylens 的硬盘设备
  3. 将 5.2 步骤中生成的模型 .zip 安装包,复制到 Huskylens\storage\installation_package 目录下
  4. 点击二哈识图二的屏幕,在主界面找到「模型安装」图标,点击进入
  5. 选择「本地安装」,系统会自动搜索并安装刚才拷贝的安装包
  6. 安装成功后,返回主界面,在应用列表中能看到「甲骨文识别」的图标


21_二哈识图界面.jpg22_二哈识图安装模型.jpg

23_二哈识图_甲骨文识别.jpg

5.4 实际测试

点击"甲骨文识别"图标进入应用,将摄像头对准甲骨文图片:

  • 屏幕上会实时显示摄像头画面
  • 检测到甲骨文字形时,会画出矩形框
  • 框旁边显示类别名称和置信度
  • 因为是本地推理,完全没有延迟

我测试了多张不同的甲骨文图片,识别效果稳定。

24_甲骨文识别11.jpg
25_甲骨文识别21.jpg


步骤6 六、MCP 联动:让大模型"看得见"

6.1 为什么需要 MCP?

到这一步,二哈识图二已经能独立识别甲骨文了。但我想要的不只是"识别"——我还想让 AI 告诉我这个字什么意思、有什么历史故事。

这就需要把二哈识图二的识别结果,传给一个能理解和表达的大模型。MCP(Model Context Protocol)就是干这个的。

MCP 是 Anthropic 推出的开放协议,允许大语言模型与外部工具标准化通信。简单说,它让 AI 可以"调用"摄像头、传感器这些硬件设备的功能。

6.2 系统架构

二哈识图二(摄像头 + YOLO 推理) ↓ WiFi + MCP 协议 xiaozhi-mcphub(MCP 网关,运行在电脑/服务器上) ↓ MCP 协议 小智 AI(运行在 DF-K10 上) ↓ LCD 显示 + 语音播报 用户

6.3 搭建 xiaozhi-mcphub

xiaozhi-mcphub 是连接二哈识图二和小智 AI 的核心枢纽。它本质上是一个 MCP 网关服务,同时管理多个 MCP 服务端点。

环境准备

  • Node.js 环境
  • PostgreSQL 数据库(用于存储配置)

安装步骤

# 克隆源码 git clone https://github.com/huangjunsen0406/xiaozhi-mcphub.git cd xiaozhi-mcphub # 配置数据库连接,编辑 .env 文件 # export DATABASE_URL="postgresql://用户名:密码@localhost:5432/db名" # 安装依赖并启动 pnpm install pnpm dev

启动后访问 http://localhost:5173,用默认账号 admin / admin123 登录管理界面。

![Xiaozhi-MCPHub 控制面板_仪表盘](assets/比赛提交文档/26_Xiaozhi-MCPHub 控制面板_仪表盘.png)

6.4 添加 MCP 服务端点

第一步:添加小智 AI 端点

  1. 登录小智 AI 后台(https://xiaozhi.me/)
  2. 找到 DF-K10 对应的智能体
  3. 点击"获取 MCP 接入点",复制地址
  4. 在 xiaozhi-mcphub 的"小智"页面中,添加该端点
26_Xiaozhi-MCPHub 控制面板_仪表盘.png
27_Xiaozhi-MCP接入点.png
28_Xiaozhi-MCPHub_添加XiaozhiMCP接入点.png

第二步:添加二哈识图二 MCP 服务

  1. 给二哈识图二安装 WiFi 模块
  2. 在系统设置中连接 WiFi 网络
  3. 打开"MCP"应用,查看 MCP 服务地址
  4. 在 xiaozhi-mcphub 的"服务器管理"中,添加该地址
29_Xiaozhi-MCPHub_添加二哈识图MCP.png

第三步:验证连接

如果一切正常,在 xiaozhi-mcphub 前端应该能看到二哈识图二提供的工具列表(如物体检测、分类检测等)。同时在小智 AI 后台也能看到启用的 MCP 服务。

30_Xiaozhi-MCPHub_二哈识图MCP工具.png

6.5 MCP 功能测试

在正式接入小智之前,可以先用 测试一下 MCP 调用是否正常:

  1. 点开 服务器中的二哈识图2,然后点击 get_recognition_result 后的运行,并输出 get_result 做为 operation
  2. 将二哈识图2对准甲骨文图片
  3. 点击运行识别

测试通过后,说明 MCP 链路是通的,可以接入小智 AI 了。

31_Xiaozhi-MCPHub_二哈识图MCP识别.png

步骤7 七、终端交互:小智 AI 让甲骨文"开口说话"

7.1 硬件平台

  • 设备:DF-K10(基于 ESP32-S3 的小智 AI 开发板)
  • 固件:定制 df-k10 固件

DF-K10 烧录小智固件后,配置 WiFi 网络,再到小智后台激活设备即可使用。

7.2 智能体设置

在小智AI的后台,设置如下的智能体:

助手昵称:甲骨文大师

角色介绍:我是一个叫{{assistant_name}}的甲骨文大师,专门帮小朋友识别甲骨文,并引经据典,给小朋友讲述关于甲骨文的知识和故事。 如果通过mcp的get_recognition_result识别到结果,则返回结果的同时,调用设备的show_name方法,把识别到的原始的name值做为参数传入,然后显示甲骨文图片。

7.2 代码定制

为了让小智 AI 能正确展示甲骨文识别结果,我对小智的开源代码做了一些定制。

本项目关键文件

文件说明
1_select_images.py数据集处理脚本:筛选图片、画布补白、生成 YOLO 标签、data.yaml 和 map.yaml
data.yamlYOLO 数据集配置文件,Mind+ 训练时需要
map.yaml汉字名到图片路径的映射,供 serve_image.py 使用
serve_image.py本地 HTTP 图片服务,为 DF-K10 LCD 提供甲骨文字形图片
K10 定制代码https://github.com/HonestQiao/xiaozhi-esp32/tree/df-k10-oracle/main/boards/df-k10

定制内容

LCD 显示优化

  • 当收到甲骨文识别结果时,在屏幕上分区域显示:
    • 上半部分:识别到的甲骨文字形图片(通过本地 HTTP 图片服务 serve_image.py 获取)
    • 下半部分:对应的现代汉字释读
  • 根据屏幕分辨率自适应调整图片大小

甲骨文字形图片服务(serve_image.py)

为了让 DF-K10 的 LCD 屏幕能显示甲骨文字形,我写了一个轻量的本地 HTTP 图片服务:

  • 端口:5174
  • 请求方式:GET http://192.168.1.15:5174/?name=汉字名 或 POST
  • 返回:固定 128×128 的 JPEG 图片(原图等比缩放、居中补白,右下角标注红色汉字)
  • 数据来源:map.yaml(汉字名 → 对应图片路径的映射)

MCP 消息处理

  • 监听 MCP 推送的识别结果消息
  • 解析 class_id,从本地预存的 ID_to_chinese.json 中查找对应的汉字和释义
  • 同时向 serve_image.py 请求字形图片,拿到后触发 LCD 刷新显示

语音播报增强

  • 当识别到新甲骨文时,小智 AI 会用语音播报:"哇,我识别到了一个非常特别的甲骨文【㗊】字!这个字在古代很少见,是四个口聚在一起,那种热闹喧哗的感觉特别生动。"
  • 支持语音追问:"这个字是什么意思?""还有什么类似的字?"
32_Xiaozhi-甲骨文识别.jpg

7.3 完整使用流程

  1. 唤醒:对着 DF-K10 说"你好小智"
  2. 切换模式:"切换到甲骨文识别模式"
  3. 识别:将甲骨文实物或图片对准二哈识图二的摄像头(距离 10~30cm 最佳)
  4. 结果返回:二哈识图二识别 → 通过 MCP 传给小智 → 小智屏幕显示字形图片 + 现代汉字 + 语音播报
  5. 互动追问:可以语音询问更多信息

整个流程无需联网,全部在本地设备上完成。就算拿到博物馆里,没有 WiFi 也能用(前提是 xiaozhi-mcphub 和 AI 服务已经配置好)。

33_二哈识图_K10_甲骨文识别.jpg

步骤8 八、程序代码与项目文件

8.1 核心程序框架

数据集处理(Python)

YOLO 格式数据集(images + labels + data.yaml)

Mind+ V2 训练(YOLOv11n)

ONNX 模型 + yaml 配置

二哈识图二部署

MCP 服务(二哈识图二 WiFi 模块)

xiaozhi-mcphub 网关

小智 AI(DF-K10)

LCD 显示 + 语音播报

8.2 技术要点说明

1. 精确 YOLO 标注策略

1_select_images.py 的核心创新在于标注方式。传统全图标注(0.5 0.5 1.0 1.0)会让模型学到大量背景噪声。我采用了"原图保持 + 画布放大 + 精确框"的策略:

  • 原图保持原样,居中粘贴到 2 倍大小的白色画布上
  • 标注框精确计算原图在画布中的占比(宽度和高度均为 0.5)
  • 最终标签为 class_idx 0.5 0.5 0.5 0.5

这样模型学会的是识别画布中心的甲骨文字形,而非背景区域。

2. 字形图片服务

serve_image.py 为 DF-K10 的 LCD 屏幕提供甲骨文字形图片。它读取 map.yaml 中的汉字到图片路径的映射,将原图等比缩放为 128×128 的固定尺寸(居中补白),并在右下角用红色字体标注汉字名,最后以 JPEG 格式返回。小智 AI 收到识别结果后,通过 HTTP 请求获取对应字形图片并显示在屏幕上。

3. K10 定制代码

DF-K10 端的定制代码主要完成三件事:监听 MCP 推送的识别结果、解析出汉字名并向 serve_image.py 请求字形图片、控制 LCD 分上下两个区域显示(上半部分字形图 + 下半部分汉字释读),同时触发语音播报。

8.3 项目文件清单

文件说明
oracle_recognition.mpmodelMind+ V2 模型训练项目文件
dfrobot_oracle_recognition.8b0a.zip模型导出
1_select_images.py数据集处理脚本(Python):筛选图片、画布补白、生成 YOLO 标签、data.yaml 和 map.yaml
HUST-OBC-Selected.zipYOLO 数据集(快速测试)
map.yaml汉字名到图片路径的映射,供 serve_image.py 使用
serve_image.py本地 HTTP 图片服务,为 DF-K10 LCD 提供甲骨文字形图片
K10 定制代码https://github.com/HonestQiao/xiaozhi-esp32/tree/df-k10-oracle/main/boards/df-k10


步骤9 九、创新点总结

9.1 技术创新

1. 精确 YOLO 标注策略

传统的全图标注(0.5 0.5 1.0 1.0)会让模型学到大量背景噪声。我采用了"原图保持 + 画布放大 + 精确框"的策略(0.5 0.5 0.5 0.5),让模型真正学会识别字形特征,而非图片背景。

2. MCP 协议在嵌入式视觉中的创新应用

MCP 原本多用于大模型调用搜索引擎、数据库等软件工具。我把它用在了硬件设备联动上——让大模型(小智 AI)能够"调用"二哈识图二的摄像头和视觉识别能力。这是一种跨设备、跨协议的 AI 协同。

9.2 应用创新

1. 从学术论文到可触摸的工具

ACL 2024 最佳论文证明了 AI 可以辅助甲骨文破译,但那是在实验室里、在服务器集群上跑出来的。我的项目把这套能力压缩进了两台手掌大的设备里,普通人随时随地可以用。

2. AI 重构传统文化

3000 年前的文字 + 2026 年的 AI 技术,这种跨越时空的结合本身就是一件很酷的事。它不只是技术展示,更是让传统文化以新的形式"活"起来。

9.3 教育价值

这个项目可以直接用于课堂教学场景:

  • 学生拿着设备对准甲骨文实物,立刻就能看到现代汉字的释读
  • 降低了甲骨文学习的门槛,让小朋友也能产生兴趣
  • 可以作为"AI + 传统文化"跨学科课程的案例

步骤10 十、完整演示视频

步骤11 十一、复现指南

11.1 硬件清单

器材数量购买链接备注
二哈识图二 HUSKYLENS 21DFRobot 商城核心视觉识别
二哈识图二 WiFi 模块1DFRobot 商城MCP 服务需要
DF-K10 开发板1DFRobot 商城运行小智 AI

11.2 软件清单

软件版本下载地址
Mind+ V22.0 及以上https://mindplus.dfrobot.com.cn/
Python3.12+https://www.python.org/
Pillow最新pip install Pillow
xiaozhi-mcphub最新https://github.com/huangjunsen0406/xiaozhi-mcphub
Node.js18+https://nodejs.org/
PostgreSQL14+https://www.postgresql.org/

11.3 一步一步复现

Step 1:准备数据集

# 下载 HUST-OBS 数据集 # 从 https://hyper.ai/cn/datasets/33506 下载 torrent 或 zip # 解压后运行处理脚本 python3 1_select_images.py # 输出:HUST-OBC-Selected/ 目录

Step 2:训练模型(Mind+ V2)

  1. 打开 Mind+ V2 → 模型训练 → 目标检测(M2)→ 专业模式
  2. 导入 YOLO 格式数据集
  3. 创建训练任务,模型选 YOLOv11n
  4. 设置训练轮次 50,关闭随机上下翻转
  5. 开始训练
  6. 导出 ONNX 模型

Step 3:部署到二哈识图二

  1. Mind+ 模型部署 → 部署至二哈识图二
  2. 填写信息,开始转换
  3. 下载安装包
  4. USB 连接二哈识图二,拷贝安装包
  5. 本地安装

Step 4:搭建 MCP 网关

git clone https://github.com/huangjunsen0406/xiaozhi-mcphub.git cd xiaozhi-mcphub # 编辑 .env 配置数据库 pnpm install pnpm dev # 访问 http://localhost:5173

Step 5:添加 MCP 端点

  1. 小智后台获取 MCP 接入点 → 添加到 xiaozhi-mcphub
  2. 二哈识图二连接 WiFi → 打开 MCP 应用获取地址 → 添加到 xiaozhi-mcphub

Step 6:烧录小智固件

  1. 编译 df-k10 固件
  2. 烧录 df-k10 固件
  3. 配置 WiFi 并激活

Step 7:测试使用

  1. 唤醒小智:"你好小智"
  2. "切换到甲骨文识别模式"
  3. 对准甲骨文,观察识别结果

11.4 常见问题 FAQ

Q1:模型训练时上传数据集报错?

A:检查 zip 包结构是否符合 YOLO 格式,images/ 和 labels/ 目录结构必须严格对应。文件名不要有特殊字符。

Q2:二哈识图二安装模型后找不到应用?

A:确认安装包已拷贝到 HUSKYLENS 设备的应用目录,然后重启设备。如果还不行,尝试重新安装一次。

Q3:MCP 连接不稳定?

A:确保二哈识图二和小智设备在同一个 WiFi 网络下。检查 xiaozhi-mcphub 的日志输出,看是否有连接错误。

Q4:识别效果不理想?

A:检查光照条件,白光均匀环境下效果最好。另外可以尝试调整二哈识图二与目标之间的距离(10~30cm 最佳)。

步骤12 十二、结语

做这个项目的初衷其实很简单:我想用AI能做一点更有意义的事。甲骨文是中国文化的根,如果 AI 能帮助更多人认识和理解这些 3000 年前的文字,哪怕只是一点点,那也是值得的。

从找数据集、写处理脚本、调训练参数,到部署模型、搭 MCP 网关、改小智代码,整个过程花了不少时间,也踩了不少坑。但当 DF-K10 的屏幕上第一次正确显示出甲骨文字形,并且用语音解释的时候,我觉得一切都值了。

未来,我希望把这个项目扩展到更多未破译的甲骨文类别,甚至结合扩散模型做字形还原。也希望它能走进课堂,让更多孩子通过 AI 的窗口,看到中华文明的源头。

材料清单

材料清单

评论

user-avatar