赞
踩
vd .bash_history 注释:查看所有在ubuntu终端输入的命令
history是最近的输入命令的历史记录
conda create -n mmd python=3.7 -y
conda activate mmd
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html
#上面那个安装更靠谱,不行用下面的
#pip install mmcv-full
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
#cd ..
pip install -v -e .
# or "python setup.py develop"
直接跑个demo测试效果
python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth --device cpu
#其中checkpoints文件下载链接: https://pan.baidu.com/s/1L3u0Kqjk1ZfDUK6QIcD6RQ 密码: 57dd
–来自百度网盘超级会员V1的分享
改类别,coco数据集20个类别改3个
mmdetection-master\mmdet\core\evaluation\class_names.py
mmdetection-master\mmdet\datasets\coco.py
改分类类别
class CocoDataset(CustomDataset): CLASSES = ('Benign', 'Malignant', 'none') # CLASSES = ('person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', # 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', # 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', # 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', # 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', # 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', # 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', # 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', # 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', # 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', # 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', # 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', # 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', # 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush')
改gpu数量和分类数量,以及数据位置等
data = dict( samples_per_gpu=1, workers_per_gpu=1, train=dict( type='RepeatDataset', times=3, dataset=dict( type=dataset_type, ann_file=data_root + 'VOC2012/ImageSets/Main/trainval.txt', img_prefix=data_root + 'VOC2012/', pipeline=train_pipeline)), val=dict( type=dataset_type, ann_file=data_root + 'VOC2012/ImageSets/Main/test.txt', img_prefix=data_root + 'VOC2012/', pipeline=test_pipeline), test=dict( type=dataset_type, ann_file=data_root + 'VOC2012/ImageSets/Main/test.txt', img_prefix=data_root + 'VOC2012/', pipeline=test_pipeline))
改完之后激活,再跑demo
pip install -v -e .
python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth --device cpu
python faster-rnn.py
python tools/train.py cf/faster_rcnn_r50_fpn_1x_coco.py
懒得具体说了,反正就是踩坑
The `num_classes` (3) in Shared2FCBBoxHead of MMDataParallel does not matche
RuntimeError: nms_impl: implementation for device cuda:0 not found.
nms_impl: implementation for device cuda:0 not found.
cuda10.0在理论上应该这么装,但是一直用不了,再调试新的
"""
conda create -n mmd python=3.7 -y
conda activate mmd
conda install pytorch=1.8.1 cudatoolkit torchvision=0.9.1
pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
pip install mmcv-full=1.3.10
pip install -v -e .
python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth --device cpu
git clone https://github.com/open-mmlab/mmdetection.git
python tools/train.py cf/faster.py
"""
sys.platform: linux Python: 3.7.10 (default, Jun 4 2021, 14:48:32) [GCC 7.5.0] CUDA available: True GPU 0: GeForce RTX 2080 Ti CUDA_HOME: /usr/local/cuda-10.0 NVCC: Cuda compilation tools, release 10.0, V10.0.130 GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 PyTorch: 1.8.1 PyTorch compiling details: PyTorch built with: - GCC 7.3 - C++ Version: 201402 - Intel(R) oneAPI Math Kernel Library Version 2021.3-Product Build 20210617 for Intel(R) 64 architecture applications - Intel(R) MKL-DNN v1.7.0 (Git Hash 7aed236906b1f7a05c0917e5257a1af05e9ff683) - OpenMP 201511 (a.k.a. OpenMP 4.5) - NNPACK is enabled - CPU capability usage: AVX2 - CUDA Runtime 10.1 - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37 - CuDNN 7.6.3 - Magma 2.5.2 - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.1, CUDNN_VERSION=7.6.3, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.8.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, TorchVision: 0.9.1 OpenCV: 4.5.3 MMCV: 1.3.10 MMCV Compiler: GCC 7.3 MMCV CUDA Compiler: 10.1 MMDetection: 2.14.0+ -----------------------
# coding=utf-8
import os
import os.path
import xml.dom.minidom
file_path = "/home/psdz/桌面/mmd-faster-rnn/mmdetection-master/data/voc/VOC2012/Annotations" # 替换图片保存路径 picture_path = "/home/psdz/桌面/mmd-faster-rnn/mmdetection-master/data/voc/VOC2012/JPEGImages" files = os.listdir(file_path) # 得到文件夹下所有文件名称 s = [] for xmlFile in files: # 遍历文件夹 if not os.path.isdir(xmlFile): # 判断是否是文件夹,不是文件夹才打开 print(xmlFile) # xml文件读取操作 # 将获取的xml文件名送入到dom解析 dom = xml.dom.minidom.parse(os.path.join(file_path, xmlFile)) ###最核心的部分,路径拼接,输入的是具体路径 root = dom.documentElement # 获取标签对path之间的值 original_path = root.getElementsByTagName('path') # 原始信息 p0=original_path[0] path0=p0.firstChild.data #原始路径 print(path0) # 修改 jpg_name=path0.split('\\')[-1] #获取图片名 print(jpg_name) modify_path=picture_path+'/'+jpg_name #修改后path p0.firstChild.data=modify_path # 保存修改到xml文件中 with open(os.path.join(file_path, xmlFile), 'w') as fh: dom.writexml(fh) print('修改path OK!')
这块单独写吧
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。