【深度学习】mask_rcnn训练自己的数据集以及模型使用(实践结合GitHub项目)

根据requirements - 开源项目默认的.txt进行库安装

环境:WIN10 + Anoconda + Pycharm + python3.6.2

mask_rcnn基本流程1、训练
1)labelme进行目标物体标记,生成json文件,含点坐标、以及各个物体的标签label;
json文件的格式:(在balloon.py中提到)
# { 'filename': '28503151_5b5b7ec140_b.jpg',#   'regions': {#       '0': {#           'region_attributes': {},#           'shape_attributes': {#               'all_points_x': [...],#               'all_points_y': [...],#               'name': 'polygon'}},#       ... more regions ...#   },#   'size': 100202# }2)修改E:\gitHubProjects\Mask_RCNN-master\Mask_RCNN-master\samples\balloon\balloon.py代码将:
if args.weights.lower() == "coco":# Exclude the last layers because they require a matching# number of classes,coco数据集含有80个类,但是对于通常来说,只有前景和背景两类,因此#需要将if。。=coco给注释掉model.load_weights(weights_path, by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc","mrcnn_bbox", "mrcnn_mask"])else:model.load_weights(weights_path, by_name=True)
改成:
model.load_weights(weights_path, by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc","mrcnn_bbox", "mrcnn_mask"])3)利用balloon.py修改后的进行训练,注意需要修改的地方:
class BalloonConfig(Config):"""Configuration for training on the toy  dataset.Derives from the base Config class and overrides some values."""# Give the configuration a recognizable nameNAME = "balloonDataset"# We use a GPU with 12GB memory, which can fit two images.# Adjust down if you use a smaller GPU.IMAGES_PER_GPU = 1 # 每个GPU同时训练的图片数,如果是CPU建议修改为1# Number of classes (including background)# 类别数,一般是你自己数据物体的类别数+1(+1是背景),coco默认的是80+1类NUM_CLASSES = 1 + 1  # Background + balloonDataset# Number of training steps per epoch # 每一个迭代循环的步长数STEPS_PER_EPOCH = 100# Skip detections with < 90% confidence 置信度,小于这个则跳过检测,提高检测效率DETECTION_MIN_CONFIDENCE = 0.9
除了上面的,还可以修改训练好的模型存放的位置,一般存放在E:\gitHubProjects\Mask_RCNN-master\Mask_RCNN-master\logs4) 利用命令行进行训练,具体命令见:见“E:\gitHubProjects\Mask_RCNN-master\Mask_RCNN-master\samples\balloon\README.md”
python3 balloon.py train --dataset=dataset_path --weights=weughts_path2、测试
1)修改E:\gitHubProjects\Mask_RCNN-master\Mask_RCNN-master\samples\coco\coco.py代码
将:
NUM_CLASSES = 1+80
改成:
NUM_CLASSES = 1+1(背景+目标)————根据自己的类别数进行修改
1)修改E:\gitHubProjects\Mask_RCNN-master\Mask_RCNN-master\samples\demo.py代码
修改MODEL_DIR、COCO_MODEL_PATH(训练好的模型)、IMAGE_DIR(测试集图片)、class_names(类别名称)=["BG","","",...]

 

github项目链接:

https://github.com/1371174718/Mask_RCNN_master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EXCEL小技巧:如何统计非空单元格

http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数&#xff1a; 1.COUNT(value1,value2,...) 统计包含数字的单元格个数 2.COUNTA(value1,value2,...) 统计非空单元格的个数 3.COUNTBLANK(range&…

easyui 页签

昨天开始搭后台框架&#xff0c;到晚上的时候遇到了一个现在觉得挺可笑但是当时一直很纠结很纠结的问题&#xff0c;这个问题刚刚解决出来&#xff0c;把它拿出来说说&#xff0c;让自己长点儿记性&#xff0c;希望大家不要犯我这个错误啊 在backstage.jsp页面中我写了一个方法…

未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

报错信息&#xff1a; 解决方案&#xff1a; 1、“设置应用程序池默认属性”/“常规”/”启用32位应用程序”&#xff0c;设置为 true。 如下图所示&#xff1a;&#xff08;已测试&#xff0c;好使&#xff09; 方法二&#xff1a;生成->配置管理器->平台->点击Any C…

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figur

“UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure”在利用mask_rcnn进行物体检测的时候出现的问题&#xff0c;主要是因为matplotlib的使用格式不对 可以检查者两个地方&#xff1a; 1、visualize.py中 import mat…

008. 限制上传文件的大小

第一种方法: 利用web.config的配置文件项, 进行设置; 前端aspx示例: <% Page Language"C#" AutoEventWireup"true" CodeFile"sendOutEmail.aspx.cs" Inherits"sendOutEmail" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHT…

查询实例及其代码

一、 设有一数据库&#xff0c;包括四个表&#xff1a;学生表&#xff08;Student&#xff09;、课程表&#xff08;Course&#xff09;、成绩表&#xff08;Score&#xff09;以及教师信息表&#xff08;Teacher&#xff09;。四个表的结构分别如表1-1的表&#xf…

pyinstaller打包执行exe出现“ModuleNotFoundError: No module named ‘scipy.spatial.transform._rotation_group”

这个是因为打包后的第三方库中缺少了pyd文件 具体的解决方法&#xff1a; 去环境下找到相应的py文件&#xff0c;根据https://blog.csdn.net/qq_41007606/article/details/109565069文章写的方法&#xff0c;将py编译成pyd文件&#xff0c;然后将pyd文件复制到dist相应的第三…

浙江中医药大学第十一届程序设计竞赛题解

官方题解&#xff1a;http://www.jnxxhzz.com/Article/article/9.html 2019: 特产 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 548 Solved: 154[Submit][Status][Web Board]Description Input Output 输出一个整数表示dd带回来的特产重量 Sample Input 2 3 6 1 3Sample …

vijos p1002——过河(noip2005提高组T2)

描述 在河上有一座独木桥&#xff0c;一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子&#xff0c;青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数&#xff0c;我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点&#xff1a;0&…

JNI学习

1. 目前调用关系已经搞清楚&#xff0c;需要编译一个so或者dll的动态库给java调用。 2. env有很多方法现在还不清楚&#xff0c; 获得属性句柄。 JNI方法描述符&#xff0c;主要就是在括号里放置参数&#xff0c;在括号后面放置返回类型&#xff0c;如下&#xff1a;&#xff0…

【项目实战】——USB双路继电器电脑控制灯的开关(Python)

环境&#xff1a;window10、Python3.7.9 依赖库&#xff1a;pyserial 硬件&#xff1a;220V灯带、220V吊灯、USB双路继电器、电笔 1、安装Python第三方库pyserial 2、清楚插座的零火线&#xff08;用电笔去测试&#xff0c;灯亮为火线&#xff09; 3、清楚灯的零火线&#…

字符串去掉空格

2019独角兽企业重金招聘Python工程师标准>>> String s1s.trim().replaceAll("\\s*", ""); 转载于:https://my.oschina.net/u/2842177/blog/1587850

cntk-notes

cntk Embedding layer “Embedding” refers to representing words or other discrete items by dense continuous vectors. This layer assumes that the input is in one-hot form. E.g., for a vocabulary size of 10,000, each input vector is expected to have dimensio…

ubuntu安装配置elasticSearch(vagrant)

安装jdk sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer sudo update-alternatives --config java 安装elasticSearch mkdir /usr/local/elasticsearch/ su…

深入理解javascript函数进阶系列第一篇——高阶函数

前面的话 前面的函数系列中介绍了函数的基础用法。从本文开始&#xff0c;将介绍javascript函数进阶系列&#xff0c;本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数&#xff0c;一般地&#xff0c;有以下两种情况 1、函数可以作为参数被传递 2…

ANSYS WORKBENCH——参数化建模以及参数优化(结果导出为Excel)

目录 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 ​

centos 安装软件

1&#xff09;一种是软件的源代码&#xff0c;您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包&#xff08;后缀为.tar.gz&#xff09;。2&#xff09;另一种是软件的可执行程序&#xff0c;你只要安装它就可以了。这种软件安装包通常被是一个RPM包&#xff08…

【图像处理】——傅里叶变换、DFT以及在图像上的应用

目录 1、傅里叶变换 2、DFT 1)一维离散傅里叶变换: 离散傅里叶变换例子

JAVA开发Web Service几种框架介绍

下面分别介绍一个这几种Web Service框架的基本概念 1、JWS是Java语言对WebService服务的一种实现&#xff0c;用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。 2、Axis2是Apache下…

基于CMake构建MSVC_CUDA及MinGW编译环境下的的OpenCV项目

前言 第一次搭建OpenCV开发环境的时候各种报错&#xff0c;内心那个烦啊&#xff0c;简直了。当时只能针对某个特定的错误去寻找特定的解决方法&#xff0c;在OpenCV构建过程中出现最多的问题就是各个模块文件的下载问题&#xff0c;本质上这类问题的解决思路都是一样的&#…