识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割

2026-01-141.1万
精华项目
AI 快速预览详细 收起
本项目通过Mind+2.0和行空板M10,利用实例分割技术识别月相并生成相应诗词。首先介绍了月相的形成原因和分类,然后详细讲解了数据集准备、标注、平衡以及模型训练的过程。最后展示了项目的功能设计和效果。适合STEM教育场景,让学生在动手实践中理解月相变化及其文化内涵。

古今同月

一、前言
“今人不见古时月,今月曾今照古人。”
自古以来月亮寄托着人们浓厚的情感,东坡先生的“人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。”更是成为千古名句。
这个项目,我们通过月的“阴晴圆缺(月相)”,走进人的“悲欢离合(诗词)”。与古人同赏一轮山间明月!

二、月相
关于月相,我们需要弄清楚两个重要的信息:一是月相形成的原因。二是月相的分类。
【月相的形成】
1. 月相不是因为地球的遮挡形成月食是地球的遮挡,日食是月球的遮挡)。
2. 月球会围绕地球转动,转动一周约为一个月,在一个月的过程中,我们可以看到所有的月相。
3. 太阳光我们看作平行光,月球始终会有一半球面受太阳光照射(除了月食时),而月球始终会反射一半月球面的太阳光光。当月球转动到不同位置时,“被太阳照亮一的面,反射到地球上的光的比例”会发生变化,所以就有了不同的月相。

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图1

【月相的分类】
朔月(初一,不可见)- 蛾眉月(初三-初四,新月)- 上弦月(初七-初八)- 盈凸月(十一-十二)- 望月(十五-十六,满月)- 亏凸月(十七-廿二)- 下弦月(廿三-廿四)- 残月(廿五-廿九,亏眉月)- 晦月(三十,朔月前夕)

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图2

三、训练月相模型
本次要实现的功能,是能够利用行空板M10识别到月相后,将月相下来,显示在行空板M10上,然后根据月相生成诗词和图画。所以模型训练我们使用Mind+2.0的实例分割功能,具备“抠图”功能。
1. 准备数据集
在准备数据集时,有想过采集一个月真实的月亮照片做为数据,也想过直接找网上现成的月相图片做数据集。但在课堂场景中,都缺少了“实物”的真实感。所以,就找Luke帮忙设计一个“月相教具”。3D打印了一个球,黑色类比月球的暗面,白色类比月球上被太阳照射的一面。这样就可以实现“手搓月相”,让数据采集能拍到“实物”。

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图3

2.数据的标注(这一步,感兴趣的可以体验一下,不需要全部标记完,我手动标注60张花了1h左右,后续我会把我标记的数据添加附件)
将拍摄的月相画面进行数据标注。

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图5

感受下标注的过程......
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图4

3.平衡数据集
我采集并标注了20张蛾眉月、6张满月、14张上弦月、20张盈凸月。但直接用于训练,效果不会太好。
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图6
所以将上述已经标注过的数据文件直接上传至数据集,其中蛾眉月上传1次,满月上传3次,上弦月上传2次,盈凸月上传1次,用于平衡数据集。(多次重复上传操作效果提升不会太明显)。
由于标注太费时间,所以我就标注了4个类型的月相做演示。
如果是老师带学生做标注,可以让不同的学生分别标注不同的月相,再将标注的数据集导入在一起,可事半功倍。
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图7

4.模型训练-模型验证-导出模型

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图8
得到模型文件和数据文件
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图9

四、“古今同月”项目设计
1. 功能思路
  1.1 摄像头识别的画面,以图片的形式(出现在屏幕最底层),显示在行空板M10上。(便于其他屏幕效果做交互展示)
  1.2 屏幕中出现一个背景图,图中有一个圆形是透明的,这样就能将行空板获取的月相图片通过这个圆形显示出来。
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图10
  1.3 将不同月相对应的诗词图画素材和模型一起放入项目中的文件
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图11
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图12
素材中的所有的诗词图画素材中都没有月相,而最终我们会将识别到的月相,利用实例分割的功能,保存为图片,置于行空板最顶层,然后显示在素材中。
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图13
效果如图

1.4 加入交互控制的功能,按下A键识别月相,按下B键返回值主界面。
识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图14

2. 程序设计

识别月相赋诗词——Mind+2.0&行空板M10模型训练实例分割图15

五、效果展示


附件:

古今同月程序.zip

11.58 MB, 下载次数: 3640

已标注月相数据集.zip

12 MB, 下载次数: 3219

月相_model.zip

10.88 MB, 下载次数: 3159

月球模拟教具3D打印.rar

425.24 KB, 下载次数: 2264

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(8)
shzrzxlee
shzrzxlee
File "/root/mindplus2/python-block/projects/古今同月/main.py", line 6, in from model_mp_io import ImageReader ModuleNotFoundError: No module named 'model_mp_io'
shzrzxlee
shzrzxlee回复shzrzxlee
2.0.5版本出错,加载什么库呢
肖申克
肖申克
跨学科优秀案例
肖申克
肖申克回复少东
向您学习
少东
少东
作者
回复肖申克
跨学科还得肖老师来玩
阿庆
阿庆
大佬太历害了,为你点赞,同时弱弱的问一下,模型为什么不用图像分类而是用实例分割,我测试了一下,图像分类也能精确识别出来,实例分割标签太花时间了。。
少东
少东
作者
回复阿庆
实例分割可以将识别的对象掩膜保存下来,也就是你识别到的如果是你正在看的天上的月亮,那么你画面中与诗词同步生成的月亮正是你看到的。
秦时明月爱侠岚
秦时明月爱侠岚
非常棒,学习了。看看能不能复刻操练一下。
少东
少东
作者
回复shzrzxlee
这个项目环境要求是行空板固件0.4.1及以上,行空板Python版本为3.12.7。
升级固件教程:https://www.unihiker.com.cn/wiki/m10/burner
切换Python版本方法:连上行空板后在终端输入“python --version”可以查看版本;输入“pyenv global 3.12.7”可以切换python版本。
shzrzxlee
shzrzxlee回复秦时明月爱侠岚
M1O 出错 File "/root/mindplus2/python-block/projects/古今同月/main.py", line 6, in
from model_mp_io import ImageReader
ModuleNotFoundError: No module named 'model_mp_io'
rzegkly
rzegkly
学科融合AI案例,喜欢
少东
少东
作者
回复rzegkly
谢谢您的喜欢
tongtong20336
tongtong20336
可以发一下行空板3D打印的文件吗?
少东
少东
作者
回复tongtong20336
视频里一个是3D打印的月球模型,打印的模型是拼起来的,可以转动,拼装稍微麻烦点(Luke设计师的设计小巧思),自己打印一半黑一半白也够用,或者用其他材料手搓也可以。行空板底座和固定摄像头的结构没有太大意义,底座插扩展版或者任意固定方式都可以,而我视频里的摄像头上面有一个螺丝孔位的底座,和常用的不太一样。
在北京吃烧烤的虫子
在北京吃烧烤的虫子回复tongtong20336
什么是行空板3D打印的文件?
在北京吃烧烤的虫子
在北京吃烧烤的虫子
读每篇文章前,我会首先看看有没有详细的附件 作者十分好心! 训练的也不错!
少东
少东
作者
回复在北京吃烧烤的虫子
谢谢您的认可
云天
云天
创意,过程详细。
少东
少东
作者
回复云天
来自大神的认可,荣幸之至呀!
- 没有更多了 -