Mask RCNN(Mask_RCNN-master)简单部署

一.注意事项

1.本文主要是引用大佬的文章(侵权请联系,马上删除),做的工作为简单补充

二.介绍

①简介:

Mask R-CNN(Mask Region-based Convolutional Neural Network)是一种用于目标检测语义分割的深度学习模型,它是对 Faster R-CNN 模型的扩展。Mask R-CNN 可以同时预测目标的边界框和像素级的掩码,从而实现了对图像中对象的精确定位分割

Mask R-CNN 的架构包括三个主要组件

1Backbone Network:通常使用的是预训练的卷积神经网络(如 ResNet、ResNeXt、或者 MobileNet),用于提取输入图像的特征。

2Region Proposal Network (RPN):RPN 在输入图像上滑动,并提出候选的对象边界框。这些边界框被用来定位图像中的目标。

3Mask Head:Mask Head 是 Mask R-CNN 的关键部分,它在每个候选的对象边界框周围生成目标的像素级掩码。这个过程可以视为是对边界框中的像素进行分类,从而确定哪些像素属于目标对象。

Mask R-CNN 的训练过程涉及到多个损失函数,包括目标检测的边界框损失和语义分割的掩码损失。这些损失函数共同作用于网络的不同部分,以确保网络能够准确地检测目标的位置和分割对象的像素。

Mask R-CNN 在许多计算机视觉任务中取得了state-of-the-art的结果,如图像分割、实例分割、和目标检测。它被广泛应用于医学图像分析、自动驾驶、视频分析等领域。

②流程图:

③结构图

④效果图:

理论知识建议阅读:【Mask RCNN】论文详解(真的很详细)_mask rcnn论文-CSDN博客)

三.正文

1.大体流程按照:

使用Mask_RCNN训练自己数据_哔哩哔哩_bilibili

2.准备工作:

①视频中getdata代码

import json

import os

import numpy as np

path = 'image/val'

files = []

# 找到所有的 JSON 文件

for file in os.listdir(path):

    if file.endswith('.json'):

        files.append(file)

via_region_data = {}

# 遍历每个 JSON 文件

for file in files:

    # 读取 JSON 文件内容

    with open(os.path.join(path, file)) as f:

        data = json.load(f)

    one_image = {}

    one_image['filename'] = file.split('.')[0] + '.jpg'

    regions = {}

    # 处理每个区域

    for i, shape in enumerate(data['shapes']):

        points = np.array(shape['points'])

        all_points_x = list(points[:, 0])

        all_points_y = list(points[:, 1])

        regions[str(i)] = {

            'region_attributes': {},

            'shape_attributes': {

                'name': shape['label'],

                'all_points_x': all_points_x,

                'all_points_y': all_points_y

            }

        }

    one_image['regions'] = regions

    one_image['size'] = 0  # 这里可能需要根据实际情况修改

    via_region_data[file] = one_image

# 将数据保存到 JSON 文件中

with open('image/val/via_region_data.json', 'w') as f:

    json.dump(via_region_data, f, sort_keys=False, ensure_ascii=True)

(注意:val/train一定要自己修改)

②视频中的predicton代码

import cv2

image=cv2.imread('images/val/pig5.jpg')

from mrcnn.config import Config

from mrcnn import  model as modellib,utils

class BalloonConfig(Config):

    NAME = 'balloon'

    IMAGES_PER_GPU = 1

    NUM_CLASSES = 1+1

    DETECTION_MIN_CONFIDENCE = 0.8

config=BalloonConfig()

model=modellib.MaskRCNN(mode='inference',config=config,model_dir='logs')

model.load_weights(r'logs\balloon20240502T2045\mask_rcnn_balloon_0003.h5',by_name=True)

result=model.detect([image])

class_names=['BG','pig']

from mrcnn.visualize import display_instances

display_instances(image, result[0]['rois'],result[0]["masks"], result[0]['class_ids'], class_names,

                      scores=None, title="",

                      figsize=(16, 16), ax=None,

                      show_mask=True, show_bbox=True,

                      colors=None, captions=None)

3.结果式样

(本人标签打的不好所以结果不是特别理想)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

两个手机在一起ip地址一样吗?两个手机是不是两个ip地址

在数字时代的浩瀚海洋中,手机已经成为我们生活中不可或缺的一部分。随着移动互联网的飞速发展,IP地址成为了连接手机与互联网的桥梁。那么,两个手机在一起IP地址一样吗?两个手机是不是两个IP地址?本文将带您一探究竟&a…

Apipost使用心得,让接口文档变得更清晰,更快捷

Idea和Apipost结合使用 Idea 安装插件Apipost-Helper-2.0 在【file】–>【settings】–>【Plugins】搜索 “Apipost-Helper-2.0”–>【install】,重启Idea 编写controller接口 在idea中编写业务功能及接口之后,在controller中鼠标【右键】单…

亚马逊Amazon商品详情和关键词搜索API接口分享

一、亚马逊Amazon商品详情API接口 亚马逊商品详情API接口是亚马逊平台为开发者提供的一项重要服务,它允许开发者通过程序调用API来获取亚马逊商品的相关数据。这个接口为获取商品数据提供了便利的途径,有助于用户进行商品搜索、商品分类以及数据分析等操…

Stable Diffusion基础:ControlNet之人体姿势控制

在AI绘画中精确控制图片是一件比较困难的事情,不过随着 ControlNet 的诞生,这一问题得到了很大的缓解。 今天我就给大家分享一个使用Stable Diffusion WebUI OpenPose ControlNet 复制照片人物姿势的方法,效果可以参考上图。 OpenPose 可以…

不得不聊的微服务Gateway

一、 什么是Gateway? 1.网关的由来 单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务 2.网关的作用 Spring Cloud Gateway是Spring Cloud生态系统中的一员,它被设计用于处理所有微服务的入口流量。作为一…

Dice Semimetric Losses: Optimizing the Dice Score with Soft Labels

文章目录 Dice Semimetric Losses: Optimizing the Dice Score with Soft Labels摘要方法实验结果 Dice Semimetric Losses: Optimizing the Dice Score with Soft Labels 摘要 Soft Dice Loss(SDL)在医学图像领域的许多自动分割中发挥了关键作用。在过…

【数据库原理及应用】期末复习汇总高校期末真题试卷07

试卷 一、填空题(每空1分,共10分) 1.数据库管理系统在外模式、模式和内模式这三级模式之间提供了两层映象,其中 映象保证了数据的逻辑独立性。 2. 数据模型通常由 、数据操作和完整性约束三部分组…

vue 文本中的\n 、<br>换行显示

一、背景&#xff1a; 后端接口返回数据以\n 作为换行符&#xff0c;前端显示时候需要换行显示&#xff1b; demo&#xff1a; <p style"white-space: pre-wrap;">{{ info }}</p>data() {return {info: 1、优化图片\n 2、 优化时间\n}},项目上&#…

通配符证书价格350元

通配符SSL证书是一种特殊的域名SSL证书&#xff0c;这款SSL证书默认保护主域名以及主域名下的所有子域名&#xff0c;因此&#xff0c;子域名比较多的个人或者企事业单位开发者都倾向于选择通配符SSL证书来简化SSL证书管理过程&#xff0c;节省购买SSL证书的资金&#xff0c;降…

前端如何设置div可滚动,且设置滚动条颜色

在前端中&#xff0c;设置 div 为可滚动并通过 CSS 自定义滚动条的颜色并不是所有浏览器都直接支持的功能&#xff0c;因为滚动条的样式在很大程度上取决于操作系统和浏览器的默认样式。然而&#xff0c;你可以使用某些 CSS 属性来尝试自定义滚动条的外观&#xff0c;这些属性在…

JavaEE概述 + Maven

文章目录 一、JavaEE 概述二、工具 --- Maven2.1 Maven功能 仓库 坐标2.2 Maven之项目构建2.3 Maven之依赖管理 三、插件 --- Maven Helper 一、JavaEE 概述 Java SE、JavaEE&#xff1a; Java SE&#xff1a;指Java标准版&#xff0c;适用于各行各业&#xff0c;主要是Java…

2024 Flutter 一季度热门 issue/roadmap 进展和个人感触闲聊

因为最近的《Flutter&#xff1a;听说你最近到处和人说我解散了&#xff1f;》相关事件之后&#xff0c;不少人对于目前 Flutter 的一些进度情况比较关心&#xff0c;刚好这里做一个简要汇总&#xff0c;报告几个过去一季度相关的热门 issue/roadmap 情况&#xff0c;另外这些天…

邮件群发系统的效率怎么样?如何评估性能?

邮件群发系统的使用方法&#xff1f;邮件群发工具的关键功能&#xff1f; 邮件群发系统已成为企业、组织及个人进行信息沟通的重要工具。然而&#xff0c;当我们谈论邮件群发系统的效率时&#xff0c;我们需要从多个维度来全面分析和评估。AokSend就来介绍一下。 邮件群发系统…

ReactFlow的ReactFlow实例事件传参undefined处理状态切换

1.问题 ReactFlow的ReactFlow实例有些事件我们在不同的状态下并不需要&#xff0c;而且有时候传参会出现其它渲染效果&#xff0c;比如只读状态下我们不想要拖拉拽onEdgesChange连线重连或删除的功能。 2.思路 事件名称类型默认值onEdgesChange(changes: EdgeChange[]) >…

AI大模型探索之路-训练篇17:大语言模型预训练-微调技术之QLoRA

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

浅谈消息队列和云存储

1970年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;RocketMQ&…

基于大数据+Hadoop的豆瓣电子图书推荐系统实现

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列文章目录 基于大数…

组合模式(Composite)——结构型模式

组合模式(Composite)——结构型模式 组合模式是一种结构型设计模式&#xff0c; 你可以使用它将对象组合成树状结构&#xff0c; 并且能通过通用接口像独立整体对象一样使用它们。如果应用的核心模型能用树状结构表示&#xff0c; 在应用中使用组合模式才有价值。 例如一个场景…

新能源汽车充电站智慧充电电能服务综合解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★解决方案 ✔目的地充电-EMS微电网平台 基于EMS解决方案从设备运维的角度解决本地充电的能量管理及运维问题&#xff0c;与充电管理平台打通数据&#xff0c;为企业微电网提供源、网、荷、储、充一体化解决方案。 ✔运营场站--电能服务…

​「Python绘图」绘制太极图

python 绘制太极 一、预期结果 二、核心代码 import turtlepen turtle.Turtle()print("开始绘制太极")radius 100 pen.color("black", "black") pen.begin_fill() pen.circle(radius/2, 180) pen.circle(radius, 180) pen.left(180) pen.circ…
最新文章