1 Star 0 Fork 0

fsy / 火星撞击坑识别

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

火星撞击坑识别

介绍

火星撞击坑是火星表面最为普遍且显著的地貌单元和地质构造标志,撞击坑数目繁多、形态不一,是研究火星地质演化过程的最直接依据,也是研究太阳系陨石撞击历史和空间环境的关键,同时是进一步研究其他星系的启发点和重要突破口。

通过研究撞击坑大小和分布情况,能够确定火星表面该地区的地质年龄,能够了解火星表面的地质活动情况,能够分析表面物质结构和元素构成[1]。另外在现实应用中,研究识别撞击坑能够实现探测物导航、避障,使太空探测器能够完成安全可靠的着陆定位。

然而目前撞击坑数据集不完善,撞击坑识别不全面。对现有撞击坑图像进行研究,实现自主提取和识别撞击坑,并将算法应用于未来新采集的星球表面图片进行撞击坑识别,从而能够进一步完善星球表面结构和特征数据库。

确定行星表面地质单元得到形成年代是研究撞击坑的应用之一。通过了解表面撞击坑密度分布的一般规律,与该地质单元的绝对年龄建立定量关系,从而推测未知地质单元的绝对年龄,该撞击坑统计定年法,在众多研究者的持续工作下,理论分析愈发成熟,应用范围更加广泛,目前已成为行星科学中一个重要而活跃的研究领域。

两阶段模型拥有更高的准确率和公共数据集上更突出的表现,但一阶段模型检测速度更快,因此更适用于目标的实时检测。考虑火星探测器将实现载火星表面实时识别,本项目采用一阶段模型代表YOLO来实现。

模型架构

模型架构说明

经训练比较,选择P、R值都更高的YOLOv8来进行模型预测

YOLOv3 YOLOv5 YOLOv7 YOLOv8
P 0.734921 0.818 0.826 0.832
R 0.758935 0.796 0.797 0.798

撞击坑统计定年法

使用教程

  1. 下载代码

  2. 在运行环境下导入项目所需要的库 pip install ultralytics

    根据官方的解释,pip 的 ultralytics 库包含了YOLOv8的 requirements.txt中的所有库

  3. 创建数据集

    本项目用到的数据集以存放在ultralytics/datasets

    存放格式参照文件夹

datasets
├─images
│  ├─train
│  └─val
├─labels
│  ├─train
│  └─val
└─pre
└─mycoco.yaml

修改ultralytics/datasets/mycoco.yaml文件中存储训练集图片路径、类别数、类别名称

train: /yolov8-ultralytics/ultralytics/datasets//images/train
val: /yolov8-ultralytics/ultralytics/datasets/images/val

nc: 1

names: ['crater']
  1. 模型训练
yolo task=detect mode=train model=weights/yolov8n.pt data=datasets/mycoco.yaml batch=16 epochs=50 imgsz=640 workers=16 device=0

输入图片说明

最终共进行280个epoch训练

  1. 模型预测

    运行ultralytics/detect.py

输入图片说明 由预测结果显示,预测一张图片大约需要5ms

更改预测图像路径,使用训练结果中的best.pt模型进行预测,将会创建txt文件保存预测结果,即图像中所有撞击坑位置和大小标签

输入图片说明 输入图片说明

  1. 结合统计定年法完成后续计算

需要统计预测结果中撞击坑直径和频数,将公式编写成代码格式,完成结果直接输出 输入图片说明 输入图片说明

参与贡献

  1. 收集撞击坑数据集
  2. 训练YOLOv3、v5、v7、v8、v9模型,选定精确率和召回率最高的模型
  3. 使用训练好的模型进行图片预测
  4. 记录所有bounding box位置,统计大小和频数,结合统计定年公式进行定年分析

思考

  1. 考虑要对撞击坑的直径进行统计,后续应该对数据集标注进行筛选,只保留完整撞击坑的标注,否则预测出的残缺撞击坑直径无法进行统计;
  2. 目前模型还有可强化的地方,筛选数据集和继续尝试YOLOv9模型

空文件

简介

YOLOv8应用, YOLOv3、v5、v7、v9比较分析 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/fu-shuying/2024-2-graduation_project.git
git@gitee.com:fu-shuying/2024-2-graduation_project.git
fu-shuying
2024-2-graduation_project
火星撞击坑识别
master

搜索帮助