【自动驾驶】鸽了很久的小物体目标检测代码【小物体目标检测】
鸽了很久的小物体目标检测代码
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:
- 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]
代码注意事项
- 数据集需要在mypath中替换
- DRN的网络pretrain需要在新的webroot下载,原链接失效
webroot = 'http://dl.yf.io/drn/'
- saver的函数有问题,
- 改一下saver.py
- small_obstacle的append路徑需要改一下
- writer的输入channel错误,需要按照mode来修改
输入为: 训练 pair , channel , 图像分辨 x*y- 根据 depth 修改 tensor = torch.zeros([batch_size, channels, 512, 512])
- 检查所有default没有的args,防止漏参数
depth & mode 是重点 - 数据集没写好
- 作者的readme是空的,需要自己探索
- condalist是本人运行环境,可以跑
论文数据集 | 代码用的 |
---|---|
cityscapes:pretrain | LF/CS |
small_obstacle:fine tune | LF/CS |
- utils/helper.py用于数据加载,有点阴间。dataloader是抄的,有条纹方法残留。阅读比较成熟的LF等代码会有帮助。
- 部分代码batchsize写死了,2,得手动换一下。看到的都改了
- 代码没写完WDNMD,matchTemplate全项目都没用到。squeezeseg没有相关代码。
- 文中context指的是: RGB+lidar
- 部分算法使用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) |
訓練流程
融合(二选一)
使用点云
- -[x] lidar檢測 照着写一下,传统算法那个
- -[x] 檢測結果过滤 角度上的过滤大障碍物x。道路分割过滤道路外障碍物。
- -[x] 检测结果 点云转换 到图像平面
- -[x] 图像平面 高斯模糊 为置信度图 (论文中说是作为第四通道RGBA)。但这样下一步是做什么的呢?
- -[x] 置信度图转化为RGB??
- -[x] 获取深度图
使用深度图
- -[x] 利用标签,给深度图mask,获取ROI区域的深度点
- -[x] 执行高斯模糊
- -[x] 作为第四维度拼接 (发现数据集BUG,标签缺失太多,无法对齐)
训练
- -[x] RGB数据集预训练(注意这里是RGB,脚本为
python train.py --dataset catyscapes
同时,参考作者的几个sh文件,需要用两阶段调整学习率的方法训练
2. -[x] 加入深度,在small_obs上训练
python train.py --dataset small_obstacle --depth
- 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转换为置信度)
使用点云
- -[x] lidar檢測(这个必须在匹配之前跑,这里在原始点云文件的5维上额外加了障碍物判定的四个维度)
- -[ ] 道路分割(lidar或rgb都可以,来不及了)
- -[ ] 檢測結果过滤(道路结果作为mask,点乘即可)
- -[x] 检测结果 点云转换 到图像平面
- -[x] 图像平面 高斯模糊 为置信度图 (论文中说是作为第四通道RGBA)。但这样下一步是做什么的呢?
- -[x] 置信度图转化为RGB??
- -[x] 获取深度图
使用深度图
- -[x] 利用标签,给深度图mask,获取ROI区域的深度点
- -[x] 执行高斯模糊(没给参数)
- -[x] 作为当前帧置信度图
- -[ ] 需要加入大概率的随机擦除,不然过拟合严重(相当于是label泄露),依赖lidar数据很重
跟蹤(置信度的时间传播)
- -[x] 选取先前帧中的ROI区域
- -[x] 当前帧中进行模板匹配
- -[ ] 利用惯性导航数据加速搜索???
- -[ ] 得到修正后的置信度图
分割
- -[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,需要改写为卷积提升效率 |
【自动驾驶】鸽了很久的小物体目标检测代码【小物体目标检测】相关推荐
- 迟来的2020年度总结,顺带附上被鸽了很久的自我介绍
介绍 大家好,我是小澎,一个热爱前端的2021届的应届毕业生,大学专业是安全工程,不,不是网络安全,而是工程安全,所以我是非科班.今天呢,想跟大家介绍介绍我自己 如何进入前端 首先,我是怎么进入前端这 ...
- 极客日报:vivo投资超49亿元建人才房;马斯克承认完全自动驾驶 “不是很好”;Edge浏览器出现无法关闭的广告
一分钟速览新闻点! 提前泄密MIX4博主赔偿 100 万 vivo 投资超 49 亿元建人才房 钉钉推出首个数字工牌产品"钉工牌" 华为研发费用激增至 10 年前 9 倍 微软 E ...
- 【自动驾驶】杜明芳:基于多尺度IPM图的车道线检测实现
摘要:针对无人车自然道路图像检测时遇到的实时性和精度相互制约矛盾,借鉴自校正自适应控制系统理论的思想,提出一种自校正闭环道路视觉检测器架构,并提出一种新型检测器实现算法--基于多尺度IPM图((Inv ...
- 小程序解析html代码,小程序怎么要解析html代码?----简易讲解
小程序上线一周多,虽然以前也会经常研究小程序的文档,但是一直有个无法逾越的鸿坑,阻挡了我继续研究的决心,就是一套不是html的代码,应该如何解析,大部分情况下,我们会去请求网络数据,并且返回的基本是h ...
- 损失37亿!Intel将彻底退出傲腾存储业务;车主因眼睛小被自动驾驶误判“开车睡觉”;微信安装包11年膨胀575倍 | EA周报...
EA周报 2022年7月29日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.微软联合 Google 甲骨文挑战亚马逊 AWS 在政府云中的地位 2.损 ...
- 自动驾驶商用,小马智行、百度Apollo各有妙招?
随着汽车智能化的迅速发展,自动驾驶技术迎来了发展的契机,无人出租车.无人配送车.无人环卫车等多种自动驾驶场景纷纷落地,市面上的大部分电动车也都已经具备了一定水平的自动驾驶功能. 不过,目前绝大部分汽车 ...
- 小鹏汽车L3自动驾驶方案---基于NVIDIA Xavier
小鹏汽车今日与芯片巨头NVIDIA(英伟达)及NVIDIA中国相助同伴德赛西威在英伟达全球GTC大会首日签订三方战略相助协议,配合研发适配中国交通情况和驾驶场景的L3级自动驾驶技术. 按照介绍,基于X ...
- 特斯拉撤诉和解,小鹏汽车沉冤得雪:警惕自动驾驶领域的“美国陷阱”
雷刚 发自 凹非寺 量子位 报道 | 公众号 QbitAI 历时2年,曾经轰轰烈烈的特斯拉状告小鹏汽车新员工一案,落锤.和解. 特斯拉最初以"商业窃密"起诉,但两年翻来覆去,最终 ...
- 自动驾驶创业公司首家:小马智行拿下北京无人路测牌照
NEW 关注Tech逆向思维视频号 最新视频→[做核酸?打疫苗?3分钟假期安全出行攻略] 出品|智能车参考 文|贾浩楠 行业头部玩家,一举一动从来都是备受瞩目. 除了代表技术前沿,其本身行为, ...
最新文章
- 升级CommunityServer2.0出现的两个问题的解决方法
- Unity3D之主菜单
- Nomad技术手册:共识协议(Consensus Protocol)
- Android 动画机制与使用技巧
- centos7查看当前cpu运行模式_杂集:centos7中设置服务开机自启的两种方法,欢迎补充...
- spring之IOC和DI关系
- Android对弹出输入法界面影响app界面布局
- 异常值检测算法 IsolationForest、EllipticEnvelope、OneClassSVM实践
- IT运维的五大基础知识
- Atitit 人工智能目前的进展与未来 包含的技术 v2 r99.docx
- C语言数据结构理解语句L = (LNode * )malloc(sizeof(LNode));
- 计算机网络抓包分析dns,DNS抓包分析详细教程
- 广发样样行提额技巧分享
- 上线了新版在线GIF压缩功能,支持指定压缩大小
- 明明现在科技发达了,互联网公司却纷纷搞起了996, 996没有未来
- Ubuntu 18.04 安装 GeForce RTX 3080
- Ubuntu翻译任何选中的文字
- 震动传感器(模拟和数字)
- t6文件服务器怎么设置,t6文件服务器设置
- LTSPICE调用下载的lib文件步骤