pointRCNN原理与复现

pointRCNN原理与复现:

整体思路:

https://zhuanlan.zhihu.com/p/71564244

原理:

https://blog.csdn.net/taifengzikai/article/details/96840993
https://zhuanlan.zhihu.com/p/97716398

涉及到的了解知识

图像中的掩模mask是什么: https://blog.csdn.net/bitcarmanlee/article/details/79132017
弱监督学习: https://zhuanlan.zhihu.com/p/81404885
监督学习的训练数据由两部分组成:描述事件/对象的特征向量(x),以及 groud-truth 的标签(y)。
非监督学习的训练数据只有一个部分:描述事件/对象的特征向量(x),但是没有标签(y)。
分类问题和回归问题是监督学习的代表,聚类学习是非监督学习的代表。在分类中,标签对应于训练样本属于哪一类。在回归中,标签对应于该示例的真实值响应。

由于数据标注过程的成本太高,很多任务很难获得如全部真值标签这样的强监督信息。而无监督学习由于学习过程太过困难,它的发展缓慢。因此,希望机器学习技术能够在弱监督状态下工作。

弱监督学习可以分为三种典型的类型,不完全监督(Incomplete supervision),不确切监督(Inexact supervision),不精确监督(Inaccurate supervision)。
不完全监督是指,训练数据中只有一部分数据被给了标签,有一些数据是没有标签的。
不确切监督是指,训练数据只给出了粗粒度标签。我们可以把输入想象成一个包,这个包里面有一些示例,我们只知道这个包的标签,Y或N,但是我们不知道每个示例的标签。
不精确监督是指,给出的标签不总是正确的,比如本来应该是Y的标签被错误标记成了N。

复现:

建虚拟环境: conda create -n pointRCNN python=3.6
进入虚拟环境: conda activate pointRCNN
下载项目代码: git clone --recursive https://github.com/sshaoshuai/PointRCNN.git
会将项目下载到命令行所在目录下,我的在桌面上.
下载相关库:

conda install easydict
conda install tqdm
conda install tensorboardX
conda install scipy
#还有fire,skimage(报超时错误,解决:https://blog.csdn.net/weixin_43051346/article/details/103823493。),numba,yaml(conda install pyyaml)

安装pytorch1.0.0

conda install pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch

打开python,并运行:import torch 载入该模块,未报错则成功。
问题:系统cuda对应pytorch版本与要求版本不一致,对应的高版本〉1.4,项目要求低版本1.0.0。
解决:不用管系统,conda不同虚拟环境会自动安装对应版本cuda。

conda list查看已安装包

安装一些库:sh build_and_install.sh
出警告如下:未理会。
在这里插入图片描述

数据集下载

已有师兄下载好的KITTI,放到自己项目指定目录下:/media/omnisky/31c564ef-57f3-4fdf-9777-faea0d03db40/yuanshuai/Kitti/object
将下载的预训练模型PointRCNN.fph文件放到路径:/home/omnisky/PointRCNN/tools

评估预训练模型

python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt PointRCNN.pth --batch_size 1 --eval_mode rcnn --set RPN.LOC_XZ_FINE False

训练:

python generate_gt_database.py --class_name 'Car' --split train

CUDA_VISIBLE_DEVICES=1,2 python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 16 --train_mode rpn --epochs 200 --mgpus
#(我用了多GPU训练)查看gpu静态使用情况:nvidia-smi

出错:
在这里插入图片描述

未解决,猜测是数据集plane文本文件最后有换行.反正最后没解决.
我直接将lib\datasets\kitti_rcnn_dataset.py文件里的279~282行注释掉了,不让他调用数据增强函数apply_gt_aug_to_one_scene(。。。。)。反正plane数据集也是可选的。

训练结果如下:
在这里插入图片描述

查看gpu静态使用情况:nvidia-smi
使用固定RPN网络训练RCNN网络以使用在线GT增强:

CUDA_VISIBLE_DEVICES=1,2,3 python train_rcnn.py --cfg_file cfgs/default.yaml --batch_size 4 --train_mode rcnn --epochs 70  --ckpt_save_interval 2 --rpn_ckpt ../output/rpn/default/ckpt/checkpoint_epoch_200.pth –mgpus
#我只训练了10次.

在这里插入图片描述

结果可视化

https://blog.csdn.net/tiatiatiatia/article/details/97765165

安装opencv-python时出错,解决:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
安装库conda install mayavi -c conda-forge出错:

CondaError: Downloaded bytes did not match Content-Length

解决:conda config --set remote_read_timeout_secs 600.0

进入目录:cd kitti_object_vis

运行可视化:

python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes

报错:

Traceback (most recent call last):
  File "kitti_object.py", line 11, in <module>
    import cv2
  File "/home/omnisky/anaconda3/lib/python3.7/site-packages/cv2/__init__.py", line 5, in <module>
    from .cv2 import *
ImportError: /home/omnisky/anaconda3/bin/../lib/libgio-2.0.so.0: undefined symbol: g_build_filename_valist

???解决:未.。反正又不报错了。

结果:
在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值