ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pointRCNN原理与复现

2020-09-05 18:34:29  阅读:524  来源: 互联网

标签:install -- 标签 python conda 复现 https 原理 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还有fireskimage报超时错误,解决: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

???解决:未处理就又成功了。

结果:

标签:install,--,标签,python,conda,复现,https,原理,pointRCNN
来源: https://www.cnblogs.com/xjxy/p/13619128.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有