技术标签: PaddlePaddle 深度学习+torch专栏 目标检测 深度学习 mmdetection windows
① 安装pytorch及虚拟环境
conda create -n mmd python=3.7
conda activate mmd
执行下面添加源的命令,否则找不到torchvision-
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes # 设置搜索时显示通道地址
#再加入Pytorch的Anaconda第三方镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
开始安装pytorch及其组件
conda install pytorch=1.6 torchvision cudatoolkit=10.1
(下面这个命令不需要编译mmcv,直接就可以安装,减少了很多手动编译的错误)
pip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html
② 安装完上述后,cd/d 到mmdetection 文件夹,执行如下语句
pip install -r requirements.txt
python setup.py develop
pip install opencv-python==4.2.0.34(官方给的mmd2.6opencv适配版本,否则会报错)
③ 测试1:
此时,我们已经将mmdetection的环境装好了,输入下面的命令进行测试:
python demo/webcam_demo.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
此命令需要无驱摄像头,连接即可实时检测
测试2:
python demo/image_demo.py demo/demo.jpg configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
此命令就是测试一下demo图片
数据集的准备
标注软件选用labelme,将已标注的图片和每一个图片标注完后生成的json文件同时放入data/coco/train2014文件夹中
接着在val2014文件中放入已标注的图片及json文件作为验证集,最后在test2014文件夹中只放入预测的图片即可。
在数据集的位置放置正确后,运行每一个文件夹中已经存在的labelme2coco.py脚本,语句为python .\labelme2coco.py。运行完之后会在当前文件夹里生成一个大的instances_train2014.json文件,将该文件放入data/coco/annotations文件夹中。
修改根目录下的change.py的num_class = 类别并运行,这一步的目的是下载我们的预训练权重,运行之后就会在mmdetection2.6文件夹下生成适合所需要训练类别的backbone。
跟mmdetection1.x版本不同的是现在的配置文件分为了三个,所以要修改三次,首先修改mmdetection2.6\configs_base_\models\faster_rcnn_r50_fpn.py,其num_classes = 类别;接着修改mmdetection2.6\configs_base_\schedules\schedule 1x.py,学习率lr和训练此时total_epochs都可以修改(尽量都是十的倍数);最后修改mmdetection2.6\configs_base\default_runtime.py,第一个interval是每隔多少次保存权重文件,第二个interval是val2014文件夹图片数目。
修改mmdetection2.6\configs_base_\datasets\coco_detection.py,将’annotations/instances_train2017.json’修改为’annotations/instances_train2014.json’,test和val同理,一共改六个部位的数字。
修改mmdetection2.6\mmdet\datasets\coco.py,将其原有类别注释,修改为自己的数据类别
修改mmdetection\configs_base_\default_runtime.py,将load_from = ‘你的model’,
定位到(每个人的路径可能不一样)D:\ProgramData\Anaconda3\envs\mmd26\Lib\site-packages\mmcv\runner\epoch_based_runner.py 172行改为:shutil.copy(filepath, dst_file),否则训练时会出现保存权重的错误,这是因为platform是windows,如果是linux就不会有错误。
在anaconda中进入虚拟环境,cd到mmdetection文件夹,执行语句:
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
开始训练,如下图所示:
在训练过程中可以在mmdetection\work_dirs中看到训练日志,可以获取数据画曲线图。
在anaconda中进入虚拟环境,cd到mmdetection文件夹,执行语句:
python demo/image_demo.py demo/00000.bmp configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs/faster_rcnn_r50_fpn_1x_coco/epoch_20.pth
用训练好的权重文件来测试自己的图片
问题描述: 昨天测试上传,本地操作,上传ok,今天在测试,和正式试过了,都报错错误提示的路径前缀也确实是不对的,后来对比了之前写的另一个接口,发现不同,才定位到这里我使用了相对路径,而服务器配置的也是相关路径,从而存储路径就和预期不同了,接口改为获取绝对路径后,问题解决本地设置的时绝对路径,所以一直是ok的...
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1015倒过来做就ok了。#include <cstdio>#include <cstring>const int maxn = 400005, maxm = 200005;int n, m, t1, t2, ans[maxn], cnt;...
国内yum源1.首先进入/etc/yum.repos.d/目录下,新建一个repo_bak目录,用于保存系统中原来的repo文件[[email protected] ~]# cd /etc/yum.repos.d/[[email protected] yum.repos.d]# mkdir repo_bak[[email protected] yum.repos.d]# mv *.repo repo_bak/2.在CentOS中配置使用网易和阿里的开源镜像到网易和阿里开源镜像站点下载系统对应版本的repo
本章是《定制ASP NET 6.0框架系列文章》的第四篇。在本章,我们将学习ASP.NET Core的Kestrel配置和自定义HTTPS,好我们开始正文。在ASP.NET Core中,默认情况下HTTPS处于打开状态,这个不是问题,我们无需禁用它。因为如果你的服务是在防火墙后面,是属于后台服务,不对外网提供服务,启用HTTPS也是有意义的。通常,在Windows上,启用...
文章目录关联背景日志库调研Google 关键词表格总结log4cxxLog4cpplog4clog4cplusgoogle glogz-logspdlogc-logsyslog-ngGitHub 搜索GItHub 村外有村总结成系列地址简 述: 准备在个人的项目中添加 Log 日志模块,便于项目日后定位和调试。因前面数月,有感受到了日志的威力,故决定调研后选取一个合适的日志模块 spdlog 。最后意外的惊喜发现,检索需要一点技巧,可遇村外有村,好风凭借力。本文初发于 “偕臧的小站”,同步转载
gcc目 录gccmakefile写法 gcc_egcs使用 gdb使用 gcc常用选项对代码的影响一般情况 -O 编译选项 -O2 编译选项 -fomit-frame-pointer 编译选项 -fomit-frame-pointer &amp;&amp; -O2 -fPIC 编译选项 -static 编译选项 AT&...
点击左上方蓝字关注我们开源的开放性使得诸多的开发者可以加入其中,自2016年开源以来,飞桨一直致力于建设开源开放的开发者社区,也正是有了众多contributor们的加入,飞桨社区得以不断...
题目链接题目描述在你的养牛场,所有的奶牛都养在一排呈直线的牛栏中。一共有 nn 头奶牛,其中第 ii 头牛在直线上所处的位置可以用一个整数坐标 pi (0 ≤ pi ≤ 108) 来表示。在无聊的日子里,奶牛们常常在自己的牛栏里与其它奶牛交流一些八卦新闻。每头奶牛发出的声音响度是一样的,而由于声波的能量衰减,某头奶牛发出的声音只能被与它距离不超过 d(0 ≤ d ≤ 104 ) 的奶牛所听到,这样这对奶牛就称为可以相互交流的。现在给出所有奶牛的位置和声音所能传播的最远距离 d ,请你编个程序来计算你的养
过程中,如果手机没有任何反应,或者电脑上打开的iTunes显示无法识别设备等,均为进入DFU模式失败,需要重新操作。此方法不排除因后续iOS系统升级或其它原因等而失效,取证时应找相关设备再次验证后再对检材操作!由于本人能力有限,纯粹做个记录,文中如有不妥和错漏之处欢迎批评指正。【著作所有权归作者蘇小沐所有,转载请注明文章出处】名称时间开始编辑日期2021 年 11 月 18 日最后编辑日期2022 年 11 月 28 日。
射频识别技术漫谈(13)——Mifare S50与Mifare S70
考试排名Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 19617Accepted Submission(s): 6788Proble...
目录1.问题2.思路3.实现4.资料1.问题如图1.1所示,有红色和蓝色两个点,如何判断点相对于矩形的位置呢?2.思路首先,我们知道OpenCV中有一个函数:pointPolygonTest()。它的作用是判断一个点是否在轮廓中,基本用法如下:C++: double pointPolygonTest(InputArray contour, Point2f p...