博客已迁移
博客已迁移,详细请查看文章:https://blog.csdn.net/u011434330/article/details/99549811
MATLAB月球坑识别和降落避障
此为全国大学生数学建模大赛2014年的A题,参加了学校的数模培训,期间第一轮模拟赛就是这个题,再加上之前有看过CNN的算法,突发奇想魔改了一下CNN的算法,没想到最后的识别效果还能够看,特此纪念下
题目
4)粗避障段:粗避障段的范围是距离月面2.4km到100m区间,其主要是要求避开大的陨石坑,实现在设计着陆点上方100m处悬停,并初步确定落月地点。
嫦娥三号在距离月面2.4km处对正下方月面2300×2300m的范围进行拍照,获得数字高程如附图5所示(相关数据文件见附件3),并嫦娥三号在月面的垂直投影位于预定着陆区域的中心位置。
该高程图的水平分辨率是1m/像素,其数值的单位是1m。例如数字高程图中第1行第1列的数值是102,则表示着陆区域最左上角的高程是102米。
(5)精避障段:精细避障段的区间是距离月面100m到30m。要求嫦娥三号悬停在距离月面100m处,对着陆点附近区域100m范围内拍摄图像,并获得三维数字高程图。分析三维数字高程图,避开较大的陨石坑,确定最佳着陆地点,实现在着陆点上方30m处水平方向速度为0m/s。附图6是在距离月面100m处悬停拍摄到的数字高程图(相关数据文件见附件4)。
该数字高程的水平分辨率为0.1m/像素,高度数值的单位是0.1m。
暂且不考虑题目要求用的高程图,我就要上魔改版CNN硬刚 ╯▽╰
效果
因为程序还有点小bug,卷积的边界处仅仅只依靠了题目中相等的边长长度来补全,导入非正方形的图亲测会将坐标标出边界框外…其次是暂时不支持500x500以下分辨率,多多少少会出奇怪的问题,题目中的2300x2300和100x100刚刚好没问题;以及高度太高导致坑过于密集也会对识别造成影响。
放了个demo出来,还有bug和需要优化的地方,等后续有空再拐回来修好了。
不多说了,上图
-
粗避障
-
细避障
-
测试图1