0.前言

  最近在做毕业设计,没错是本科的毕业设计,双非菜狗一只,又菜又爱玩,考研成绩快出了,复试的东西有点看不进去,就想着把毕设多做一点,于是最近加班有点凶,头发感觉有点稀疏。
  我做的题目其实不是很多 RSer 愿意做的事情,coding。其实俺觉得 coding 是大多数工科专业避免不了的,与其之后受苦,不如现在早点苦。我的内容是航空遥感影像中的飞机识别,为啥选这个题目呢?

  • ✈️从小喜欢飞机,眼睛不好,就只能靠这个来看看飞机了。✈️

  • ❗在本科期间做过一个项目,做的是 “山东省的植被覆盖情况动态监测”,现在回想起来太简单了,一点没有创新,GEE 直接把你辗着跑。

  • ❗也想过做夜光遥感,听过好多讲座,后来发现,夜光遥感的局限性太大了,虽然挺有意思。

  • ❤️ 大三的时候经常听一些讲座,记得听了一个是遥感学报中的全球中尺度飞机的识别,觉得挺有意思,埋了颗种子。有一次,听星湖大讲堂的时候,听龚健雅院士讲关于人工智能的方面,就是 DL(Deep Learing) 的东西,觉得很有意思,还有幸得到了龚院士的签名,真是 Lucky dog 啊,考研初试之后,班主任问我们想做啥,自己说了3个方向。
    1. 机器学习和深度学习方面的:就是我现在这个方向。
    2. GEE 的遥感大数据的处理,不过我还是更喜欢本地 coding。不过最近看遥感学报在收这方面的稿子。不过还是不喜欢。
    3. 夜光遥感的,但是考研的时候考的是数字图像处理,所以对图像更感兴趣,而且班主任也说夜光遥感的方面点都被挖完了于是。

    所以呢,就选择了第一个题目,当时班主任还问我有数据集吗,我说有的,其实这种东西一堆,主要还是怎么做识别。想着自己在 mac 上配了 tensorflow 的 GPU 版本,就想学学看,于是前段时间一直在做 python 的学习,偶然间看到了 yolo(You Only Look Once) ,于是就想试试看。于是在我哥的旧电脑上开始了 Linux 实体机的安装,环境配置,虽然有点痛苦但是还是坚持下来了,现在互联网那么发达,只要有手有眼睛,都是能成功的,废话有点多,先看看现在做到哪里了吧。

DOTA 数据检测

RSOD-Dataset 数据检测

1.环境配置与数据准备

环境配置

   Linux 的基本环境在我之前的博客已经写的很清楚了,就不多余赘述咯,唯一需要注意的是,在 Linux 系统中,如果使用终端的话,需要进入 pytorch 的虚拟环境,才能运行后面所说的 yolo,而在编辑器中,只要选好 interpreter 为 pytorch 的虚拟环境就可以了,如下面所示咯。

记得切换当前目录,用 Linux 连当前目录和绝对路径相对路径知识都不会,之前回家放羊吧。

然后去 yolo 的 上下载 yolo 的压缩包。
English:https://github.com/ultralytics/yolov5
Chinese:https://github.com/wudashuo/yolov5

下载好之后,一开始是没有 coco 这个数据文件的,需要自己下载,也可以自己做,Chinese 已经讲的非常清楚怎么去组织文件了,好好看看吧。

目录的组织形式

下载 yolo5-master 如果要训练自己的数据的话,就得自己按照样式去创建 coco 的文件,train 和 val 下面放 images 和 labels ,这个在网上一找就是一堆。

数据准备

  数据用的是 DOTA 航空影像,下面这篇文章的博主已经把数据做好了,我用的现成的。白嫖快乐!哈哈哈哈!
https://zhuanlan.zhihu.com/p/172283684
然后第二次又用了 RSOD-Dataset 的数据检测看了看,直观效果还行,就是训练的时候 loss 变 0 了,过拟合抬走我了。
数据呢,可以看一看这篇文章 https://blog.csdn.net/hongxingabc/article/details/78833485

航空遥感影像存在一些问题:

  • 尺度不一,主要由于视角不一造成的,导致识别目标的时候大小不一。
  • 成像的条件不一,有时候会有云、光照的影响。
  • 独特的场景,其实我训练完之后去检测了吉林一号的一个视频,航空影像中的场景很难与普通的场景区分开,当然和我训练样本少有关,但是确实区分开也是一个难题。

2.让代码跑起来

  像网上说的,没有数学基础的也能做 DL, 不过那只是调 API 而已,想要系统的学习,当作饭吃,必须要扎实的数学基础,但是本科毕业论文比较急,能把这个环境和代码跑通都不容易里,还想去了解这么多东西。除非是一开始就专门在做这个方面的事情,我之前没这个实力和时间做这些事情,好不容易考完研想练一练。

  读代码, readme.md , yolo5 也一样,里面教你怎么训练怎么检测了,度娘 和 CSDN 再强也不会比作者强啊。面向 CSDN 编程简直就是毁灭 coding。

  刚下下来的时候,需要

pip install requirements.txt

检测一下是否还缺少 packages,如果缺少的话自动补全,然后就可以切换到 yolo 目录下, 使用 python detect.py 检测目标了。

检测完是这两张图,当然你也可以自己放一些目标在 images 里,然后结果会到 run 里面去,在一个一个 exp 里面。

把代码跑通是一个大飞跃的话,有点信心才会继续搞。后面就是我实验了2天之后的训练了。

3.环境配置与数据准备

   训练呢,就是一个你会就很简单,不会就跟天坑一样难的事情。网上的博客读了好久,后来自己通是啥意思了,就觉得很简单了。
首先要按照上面所说的组织好目录形式,然后把 images 和 labels 放好,然后我们需要把所有的 jpg 的文件名放入, train.txtval.txt 里面。就是下面这样的东西

你可以在 python 中用 os.path.exisits 检测一下存不存在路径。你不检测也没事儿,反正到时候会有报错的。这个 txt 怎么写呢。我自己写的脚本,网上很多方法,自己试试也行。我贴自己写的脚本,随便看看,愿意用就用吧。。

# author: neverland
# 生活不过是 shit
import ostrain_path = '/home/neverland/桌面/yolo/coco/data/train/images/'
val_path = '/home/neverland/桌面/yolo/coco/data/val/images/'
path = os.listdir(train_path)           #记得这里也得改 train 或者 val
out_file = open('train.txt','w')    #记得这里也得改 train 或者 valfor i in range(len(path)):filenames = path.pop()true_path = os.path.join(train_path,filenames)  # trainpath 就写train ,val 的话就改成  val_pathout_file.write(true_path + '\n')

记得把 train path 和 val path 改成你的路经,你的 train 和 val images 的具体路径,最好用 pwd 之后的结果,

记得要改代码里面的内容,执行2次,会在你当前的目录生成 ‘train.txt’ 和 ‘val.txt’ ,有点费嘴舌。

然后修改一些内容就可以了。

三连改之第一改

三连改之第二改

三连改之第三改

然后,如果是一种种类的话,label 里面的 class 必须从 0 开始,由于知乎大佬给的飞机种类是2,我一直报 yolov5 assert mlc < nc, ‘Label class %g exceeds nc=%g 的错,一开始有两种思路,一是修改 yolo 源代码,但是找了半天没找到相关代码。就把 2000多个 txt 里面的 开头的 2 全部改成了0 ,代码就不贴了,20分钟就能解决的问题,一般来说,只要会 python 的 txt 读写就没问题。

所有的事情整理完毕,可以丢给他们去训练了,我的电脑垃圾,训练1800多张图像, 60 个 epochs 用了9 小时,中途还怕 GPU out of memory, 风扇一直在我身边响,凌晨 4 点醒了就一直被风扇吵着,功夫不负有心人,早上7点多起床终于 OK 了。

看看三条曲线吧

检测指标,其实就是 mAP、P、R 等等。都是一些简单的计算而已~-~找找书籍或者相关内容就行。

4.写最后的话

   从前的我是有开源精神的,觉得好东西就应该分享,直到之前的实习,BOSS 肮脏的嘴脸,让我不再相信别人了,我只相信,生活是 shit 。
   当然毕设还得做定量分析,我还打算用别的网络看看,杨学大神的代码,对于航空影像检测最好,特别想试试,就是搭一搭 tf 的环境。今天刚看到文章。
   毕设一定拿一个优秀,等到老师问,你有这能力为啥没能保研的时候,我要傲娇的反问回去:老师,这不是系里做的决定吗?Oh,辣鸡测绘!

毕设之 yolo5 航空影像飞行器检测相关推荐

  1. #每天一篇论文#229/365 基于卷积神经网络航空影像的电力线绝缘子缺陷检测

    Detection of Power Line Insulator DefectsUsing Aerial Images Analyzed WithConvolutional Neural Netwo ...

  2. 手把手带你从0完成医疗行业影像图像检测三大经典模型InceptionV3-RestNet50-VGG16(附python源代码及数据库)——改变世界经典人工智能项目实战(一)手把手教学迁移学习

    手把手带你从0完成医疗行业影像图像检测三大经典模型InceptionV3-RestNet50-VGG16 1.迁移学习简介 2.项目简介 3.糖尿病视网膜病变数据集 4.考虑类别不平衡问题 5.定义模 ...

  3. 遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)

    我国高分辨率对地观测系统重大专项已全面启动,高空间.高光谱.高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源.未来10年全球每天获取的观测 ...

  4. 地图服务器控件GIS Map Server v3.6发布,新增航空影像数据集功能

    GIS Map Server是一款地图服务器控件,它将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用.GLG地图服务器控件将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独 ...

  5. 基于PyTorch深度学习无人机遥感影像目标检测、地物分类及语义分割

    随着无人机自动化能力的逐步升级,它被广泛的应用于多种领域,如航拍.农业.植保.灾难评估.救援.测绘.电力巡检等.但同时由于无人机飞行高度低.获取目标类型多.以及环境复杂等因素使得对无人机获取的数据处理 ...

  6. 基于改进 YOLOv5 的航空发动机表面缺陷检测模型如何制作?

    建立基于改进 YOLOv5 的航空发动机表面缺陷检测模型主要需要以下步骤: 收集航空发动机表面缺陷的数据集.这些数据可以包括训练图像和标签数据,其中标签数据包含了航空发动机表面缺陷的位置信息. 利用 ...

  7. OpenCV反解法数字微分纠正,生产单张航空影像的正射影像

    OpenCV实现反解法数字微分纠正,生产单张航空影像的正射影像 一.原理 我也没法解释清楚,再甩个ppt链接https://wenku.baidu.com/view/b9db4025590102020 ...

  8. 【开源】近期遥感航空影像的检索、检测、跟踪、计数、分类相关工作

    本篇收录遥感航空影像相关论文,其中应用到超分辨率.检索.对齐.检测.跟踪.计数与分类技术.共计 5 篇.       01       Unsupervised Remote Sensing Supe ...

  9. 开源 | 近期遥感航空影像的检索、检测、跟踪、计数、分类相关工作

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:公众号:我爱计算机视觉 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pd ...

  10. 遥感影像云检测-现有光学遥感卫星数据参数合集

    现有光学遥感卫星 1.MODIS卫星介绍 1.1.MODIS传感器简介 1.2.MODIS传感器基本参数 1.3.MODIS 数据特点及波段分布特征 1.4.MODIS 数据产品产品级别及类型 1.4 ...

最新文章

  1. 2018-2019-1 20165310 20165315 20165226 实验一 开发环境的熟悉
  2. ftl不存在为真_FreeMarker 处理不存在的变量
  3. 树的存储结构-孩子兄弟表示法
  4. Delphi纯代码连SQLite数据库,同时支持数据库的加密解密
  5. Snagit安装教程 Snagit 2021主要功能 Snagit 2021 Mac最新版
  6. 不符合C语言语法常量,C语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合C语言语法的表达式?...
  7. 《3D数学基础:图形与游戏开发 》
  8. 计算机毕业设计源码分享 题目推荐
  9. vivo x6plus支持html,vivo x6plus手机USB驱动
  10. 第七版自顶向下 第一章中文版 计算机网络课后习题答案
  11. 无线路由器与交换机配合使用,图解
  12. Espresso环境搭建及其基本使用
  13. 富怡CAD计算机在哪,富怡CAD的工具介绍之一
  14. 电脑wps可以语音录入吗_怎样用word进行语音录入文字
  15. C++问答1 语言基础
  16. 颜值爆表!Redis 官方客户端工具,功能强大,且支持可视化监控!
  17. Volume数据存储详解
  18. 魔兽世界官方小说android,魔兽世界官方小说(套装共6册)
  19. C#环境下GDAL / OGR环境配置与入门
  20. html图片叠,很棒的CSS3图片堆叠效果

热门文章

  1. python爬虫-scrapy基于selenium进行网页截图
  2. 【区块链开发】区块链技术的电商平台开发
  3. 基于CIM的新型智慧城市发展政策解析
  4. 【Usaco2008 Mar】土地购买
  5. 高通X12平台XO信号干扰灵敏度的解决方案
  6. 傲腾readyboost_使用ReadyBoost加速Windows Vista计算机
  7. 使用GPG加密通讯,设置git提交验证密钥
  8. 计算机网络——集线器与交换机
  9. linux安装xbox无线手柄,win10系统如何连接xbox360无线手柄
  10. 敏捷开发项目管理软件