zoukankan      html  css  js  c++  java
  • 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文本文件最后有换行.反正最后没解决.

    我直接将libdatasetskitti_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

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

    结果:

  • 相关阅读:
    什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
    软件产品质量特性
    目前主要的测试用例设计方法是什么?
    软件的安全性应从哪几个方面去测试?
    软件配置管理的作用?软件配置包括什么?
    HDOJ1003(DP)
    HDOJ5650
    POJ1068(模拟)
    POJ2586(贪心)
    HDOJ1548(BFS)
  • 原文地址:https://www.cnblogs.com/xjxy/p/13619128.html
Copyright © 2011-2022 走看看