鸽了很久的小物体目标检测代码

https://github.com/LT1st/SmallObstacleDetection/tree/main/code#readme

Pytorch: Small Obstacle

TODO

  • Modify for 4 channel input

Training

Follow below steps below to train your model:

  1. Input arguments: (see full input arguments via python train.py --help):

    usage: train.py [-h] [--backbone {resnet,xception,drn,mobilenet}][--out-stride OUT_STRIDE] [--dataset {pascal,coco,cityscapes}][--use-sbd] [--workers N] [--base-size BASE_SIZE][--crop-size CROP_SIZE] [--sync-bn SYNC_BN][--freeze-bn FREEZE_BN] [--loss-type {ce,focal}] [--epochs N][--start_epoch N] [--batch-size N] [--test-batch-size N][--use-balanced-weights] [--lr LR][--lr-scheduler {poly,step,cos}] [--momentum M][--weight-decay M] [--nesterov] [--no-cuda][--gpu-ids GPU_IDS] [--seed S] [--resume RESUME][--checkname CHECKNAME] [--ft] [--eval-interval EVAL_INTERVAL][--no-val][--mode]
    

代码注意事项

  1. 数据集需要在mypath中替换
  2. DRN的网络pretrain需要在新的webroot下载,原链接失效
   webroot = 'http://dl.yf.io/drn/'
  1. saver的函数有问题,

    • 改一下saver.py
  2. small_obstacle的append路徑需要改一下
  3. writer的输入channel错误,需要按照mode来修改
    输入为: 训练 pair , channel , 图像分辨 x*y

    • 根据 depth 修改 tensor = torch.zeros([batch_size, channels, 512, 512])
  4. 检查所有default没有的args,防止漏参数
    depth & mode 是重点
    • 数据集没写好
  5. 作者的readme是空的,需要自己探索
  6. condalist是本人运行环境,可以跑
论文数据集 代码用的
cityscapes:pretrain LF/CS
small_obstacle:fine tune LF/CS
  1. utils/helper.py用于数据加载,有点阴间。dataloader是抄的,有条纹方法残留。阅读比较成熟的LF等代码会有帮助。
  2. 部分代码batchsize写死了,2,得手动换一下。看到的都改了
  3. 代码没写完WDNMD,matchTemplate全项目都没用到。squeezeseg没有相关代码。
  4. 文中context指的是: RGB+lidar
  5. 部分算法使用jupyter notebook写好了再移植,如遇bug,可以试试notebook找一下

路径问题

  • misc.py
  • 尽量使用mypath.Path.db_root_dir(‘small_obstacle’)获取路径
  • 不清楚具体路径是作者私有数据集结构与开放不同,还是传递结构不同,还是写错了
  • 注意在系统路径中append当前目录

其他

baseline源于 Deeplabv3Plus-Pytorch

TODO

-[x] 搞清楚用的这几个数据集
搞不明白,耦合严重,LF\CS数据集改来的,感觉没改完(如标签加载那边)。其他的数据集没写。自己假设一个。
-[x] 做一个文件结构,整明白具体方法
-[X] SOD数据集跑起来
-[x] 训练流程明确一下

日志

报错 错因 解决
无法使用linux运行test 验证集数据无法加载 未知问题,
给模型输入一张图片时[1, 256, 1, 1]报错 BN操作的要求 法一 1036张图片,手动调整BS,防止其余1
法二 dataloader的drop_last=True
无法使用val,总是最后一个epoch报错 没写好,有时间debug
数据集读取报错 F:\Small_Obstacle_Dataset\train\seq_5\image 的27之前没有label 写了一个删除脚本,去掉没有label的img和没有img的label
windows删除没有权限 os.remove权限不够 在属性-安全中调整
os.chmod(i, stat.S_IRWXU)

訓練流程

融合(二选一)

使用点云

  1. -[x] lidar檢測 照着写一下,传统算法那个
  2. -[x] 檢測結果过滤 角度上的过滤大障碍物x。道路分割过滤道路外障碍物。
  3. -[x] 检测结果 点云转换 到图像平面
  4. -[x] 图像平面 高斯模糊 为置信度图 (论文中说是作为第四通道RGBA)。但这样下一步是做什么的呢?
  5. -[x] 置信度图转化为RGB??
  6. -[x] 获取深度图

使用深度图

  1. -[x] 利用标签,给深度图mask,获取ROI区域的深度点
  2. -[x] 执行高斯模糊
  3. -[x] 作为第四维度拼接 (发现数据集BUG,标签缺失太多,无法对齐)

训练

  1. -[x] RGB数据集预训练(注意这里是RGB,脚本为
python train.py --dataset catyscapes

同时,参考作者的几个sh文件,需要用两阶段调整学习率的方法训练
2. -[x] 加入深度,在small_obs上训练

python train.py --dataset small_obstacle --depth
  1. linux服务器上的完整脚本的格式如下:
cd /data1/data_test/small_obstacle_discovery-master-linux; mkdir /root/.cache/;mkdir  /root/.cache/torch/; mkdir /root/.cache/torch/hub/; mkdir /root/.cache/torch/hub/checkpoints/; cp ../drn_d_54-0e0534ff.pth /root/.cache/torch/hub/checkpoints/drn_d_54-0e0534ff.pth ; pip install tensorboardX;python train.py --epochs 80 --batch-size 16 --mode train --dataset cityscapes --logsFlag Cityscapes --no-val

推理流程

檢測(生成置信度圖)(由lidar转换为置信度)

使用点云

  1. -[x] lidar檢測(这个必须在匹配之前跑,这里在原始点云文件的5维上额外加了障碍物判定的四个维度)
  2. -[ ] 道路分割(lidar或rgb都可以,来不及了)
  3. -[ ] 檢測結果过滤(道路结果作为mask,点乘即可)
  4. -[x] 检测结果 点云转换 到图像平面
  5. -[x] 图像平面 高斯模糊 为置信度图 (论文中说是作为第四通道RGBA)。但这样下一步是做什么的呢?
  6. -[x] 置信度图转化为RGB??
  7. -[x] 获取深度图

使用深度图

  1. -[x] 利用标签,给深度图mask,获取ROI区域的深度点
  2. -[x] 执行高斯模糊(没给参数)
  3. -[x] 作为当前帧置信度图
  4. -[ ] 需要加入大概率的随机擦除,不然过拟合严重(相当于是label泄露),依赖lidar数据很重

跟蹤(置信度的时间传播)

  1. -[x] 选取先前帧中的ROI区域
  2. -[x] 当前帧中进行模板匹配
  3. -[ ] 利用惯性导航数据加速搜索???
  4. -[ ] 得到修正后的置信度图

分割

  1. -[x] 置信度图结合RGB输入,執行分割

数据集

small obstacle dataset (SOD)(IIIT)

标签 名称
0 道路外
1 道路
>1 障碍物,9个具体类
5 箱子

Lost and Found (lnf)(LF)

成熟了,网上多

cityscapes

成熟了,网上多

2022.2.26状态

发现但是没解决的BUG

BUG 尝试的解决方法 跳过方式
代码在windows上ok,但是在linux的val部分,会卡死在最后一个epoch 放弃最后一个epoch 使用–no-val,模型训练完了再验证
epoch=1时。网络结构的BN操作报错 dataloader的drop_last=True 或者 计算好epoch,不落单
高斯模糊参数未知 消融实验没发现有啥变化 未知
small obstacle的数据集加载部分,速度可优化50%以上(参考LF数据集)
多卡计算速度异常,两张卡速度和一张差不多
cityscapes预训练来不及做 用的是LNF做预训练
为了算法可读性,保留了冗余变量
环带检测跳变的计算距离中使用什么范数好 没做实验
环带检测跳变中,边界点未处理(两处)
功能来不及整合,点云中的障碍物检测(utils/lidar.py)
功能来不及整合,历史帧匹配(utils/match_Template.py)
功能不完善,历史帧匹配(utils/match_Template.py)需要多模板匹配多目标,模板匹配需要多尺度、NMS等提升acc,需要改写为卷积提升效率

【自动驾驶】鸽了很久的小物体目标检测代码【小物体目标检测】相关推荐

  1. 迟来的2020年度总结,顺带附上被鸽了很久的自我介绍

    介绍 大家好,我是小澎,一个热爱前端的2021届的应届毕业生,大学专业是安全工程,不,不是网络安全,而是工程安全,所以我是非科班.今天呢,想跟大家介绍介绍我自己 如何进入前端 首先,我是怎么进入前端这 ...

  2. 极客日报:vivo投资超49亿元建人才房;马斯克承认完全自动驾驶 “不是很好”;Edge浏览器出现无法关闭的广告

    一分钟速览新闻点! 提前泄密MIX4博主赔偿 100 万 vivo 投资超 49 亿元建人才房 钉钉推出首个数字工牌产品"钉工牌" 华为研发费用激增至 10 年前 9 倍 微软 E ...

  3. 【自动驾驶】杜明芳:基于多尺度IPM图的车道线检测实现

    摘要:针对无人车自然道路图像检测时遇到的实时性和精度相互制约矛盾,借鉴自校正自适应控制系统理论的思想,提出一种自校正闭环道路视觉检测器架构,并提出一种新型检测器实现算法--基于多尺度IPM图((Inv ...

  4. 小程序解析html代码,小程序怎么要解析html代码?----简易讲解

    小程序上线一周多,虽然以前也会经常研究小程序的文档,但是一直有个无法逾越的鸿坑,阻挡了我继续研究的决心,就是一套不是html的代码,应该如何解析,大部分情况下,我们会去请求网络数据,并且返回的基本是h ...

  5. 损失37亿!Intel将彻底退出傲腾存储业务;车主因眼睛小被自动驾驶误判“开车睡觉”;微信安装包11年膨胀575倍 | EA周报...

    EA周报 2022年7月29日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.微软联合 Google 甲骨文挑战亚马逊 AWS 在政府云中的地位 2.损 ...

  6. 自动驾驶商用,小马智行、百度Apollo各有妙招?

    随着汽车智能化的迅速发展,自动驾驶技术迎来了发展的契机,无人出租车.无人配送车.无人环卫车等多种自动驾驶场景纷纷落地,市面上的大部分电动车也都已经具备了一定水平的自动驾驶功能. 不过,目前绝大部分汽车 ...

  7. 小鹏汽车L3自动驾驶方案---基于NVIDIA Xavier

    小鹏汽车今日与芯片巨头NVIDIA(英伟达)及NVIDIA中国相助同伴德赛西威在英伟达全球GTC大会首日签订三方战略相助协议,配合研发适配中国交通情况和驾驶场景的L3级自动驾驶技术. 按照介绍,基于X ...

  8. 特斯拉撤诉和解,小鹏汽车沉冤得雪:警惕自动驾驶领域的“美国陷阱”

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 历时2年,曾经轰轰烈烈的特斯拉状告小鹏汽车新员工一案,落锤.和解. 特斯拉最初以"商业窃密"起诉,但两年翻来覆去,最终 ...

  9. 自动驾驶创业公司首家:小马智行拿下北京无人路测牌照

    ‍ ‍ NEW 关注Tech逆向思维视频号 最新视频→[做核酸?打疫苗?3分钟假期安全出行攻略] 出品|智能车参考 文|贾浩楠 行业头部玩家,一举一动从来都是备受瞩目. 除了代表技术前沿,其本身行为, ...

最新文章

  1. 升级CommunityServer2.0出现的两个问题的解决方法
  2. Unity3D之主菜单
  3. Nomad技术手册:共识协议(Consensus Protocol)
  4. Android 动画机制与使用技巧
  5. centos7查看当前cpu运行模式_杂集:centos7中设置服务开机自启的两种方法,欢迎补充...
  6. spring之IOC和DI关系
  7. Android对弹出输入法界面影响app界面布局
  8. 异常值检测算法 IsolationForest、EllipticEnvelope、OneClassSVM实践
  9. IT运维的五大基础知识
  10. Atitit 人工智能目前的进展与未来 包含的技术 v2 r99.docx
  11. C语言数据结构理解语句L = (LNode * )malloc(sizeof(LNode));
  12. 计算机网络抓包分析dns,DNS抓包分析详细教程
  13. 广发样样行提额技巧分享
  14. 上线了新版在线GIF压缩功能,支持指定压缩大小
  15. 明明现在科技发达了,互联网公司却纷纷搞起了996, 996没有未来
  16. Ubuntu 18.04 安装 GeForce RTX 3080
  17. Ubuntu翻译任何选中的文字
  18. 震动传感器(模拟和数字)
  19. t6文件服务器怎么设置,t6文件服务器设置
  20. LTSPICE调用下载的lib文件步骤

热门文章

  1. 关于使用ComponentName连接俩个Activity运行闪退的问题
  2. java文件下载错误提示_java文件下载出错
  3. 俞敏洪在清华励志演讲
  4. 利用 Global mapper制作地图瓦片
  5. 内部类的作用是什么?什么情况下使用匿名内部类?
  6. JS时间戳转YY-MM-DD
  7. 二手车价格预测数据探索
  8. 计算机凭据分配在哪里,电脑策略没有凭据分配怎么办
  9. 建立个人网站的基本步骤
  10. modbustcp测试工具怎么用_年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员...