YOLOv5屏蔽区域检测(选择区域检测)

news2025/1/18 19:10:32

YOLOv5屏蔽区域检测以及选择区域检测

  • 前期准备
    • labelme选择mask区域
  • 代码改动

前期准备

思路就是通过一个mask掩膜,对我们想要屏蔽或者选择的区域进行遮挡处理,在推理的时候,将有mask掩膜的图像输入,将最后的结果显示在原始图像上,即完成了屏蔽区域检测。

labelme选择mask区域

在这里插入图片描述
标注好我们想检测的区域之后,我这里将标注区域命名成了mask,然后我们点击保存导出json文件:
在这里插入图片描述
然后我们再打开终端,cd到json所在的文件夹路径下,输入如下命令:

labelme_json_to_dataset xxx.json

这里有的兄弟会遇到一些报错,主要原因还是环境的版本问题,可以在网上查到,替换一下对应版本的库就行了。

我们就会在这个路径下获得一个文件夹:
在这里插入图片描述

打开文件夹之后会看到里面有这么五个文件,我们需要的就是label.png,其他的不用管:
在这里插入图片描述
到这里,我们的前期准备工作就完成了。

代码改动

打开yolov5的项目,进入utils/datasets.py中,在代码的开头加上读取我们导出的label.png的代码:
在这里插入图片描述
读入我们导出的mask图片文件,然后将其转成灰度图,然后使用opencv的阈值函数,将大于0的像素值全部变成255,其余的都为0,得到一张mask的二值图。

然后我们再看到yolov5自带的推理代码中,即detect.py文件。看到代码中的数据加载部分:
在这里插入图片描述
我们这里是对图像进行推理,因此我们加载的是图像,不进入webcam中,因此我们加载推理数据的方法是LoadImages这个类,cltr+左键进入这个类中,在这个位置下加入以下代码:
在这里插入图片描述
这段代码主要实现了两个功能,其中flag参数决定了我们是否使用mask掩膜对目标进行遮挡检测,reverse参数决定了我们是进行选择区域检测还是屏蔽区域检测(其实这两者是一个取反的操作)。
这里我的参数是flag=1,reverse=0,因此此时如果我运行程序的话,我们会看到的结果是只对我们刚才框定的mask区域的目标进行检测,而对其他地方并不会检测:
在这里插入图片描述
可以看到,和我们预想的一样。

我们再将参数改成flag=1, reverse=1,看看结果:
在这里插入图片描述
在这里插入图片描述
此时我们检测的区域是除了mask区域的以外区域,没问题。

那么最后我们将两个参数都设置为0:
在这里插入图片描述
在这里插入图片描述
没有任何问题!

后面我也会使用openvino和tensorRT在c++进行推理部署,实现选择区域或屏蔽区域检测的功能,欢迎大家关注。

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

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

相关文章

Spring学习之【DefaultListableBeanFactory】

介绍 BeanFactory是个Factory,也就是IOC容器或对象工厂,而DefaultListableBeanFactory是Bean工厂的一个默认实现,DefaultListableBeanFactory提供了原始的BeanFactory的功能,如:对外提供getbean()方法,维护…

科技爆炸,白领办公新style,工作吩咐一声,电脑自动完成

“骂醒恋爱脑”的公司月入六七万?在刚刚过去的七夕,这个新闻可算硬核。 但对于直球程序员来说“恋爱脑”不一定存在,而赛博朋克级的浪漫可以说是独一份。 利用大模型,小帅为女友策划完美七夕,一声吩咐下,…

初识 Redis

初识 Redis 1 认识NoSQL1.1 结构化与非结构化1.2 关联和非关联1.3 查询方式1.4. 事务1.5 总结 2 Redis 概述2.1 应用场景2.2 特性 3 Resis 全局命令4 Redis 基本数据类型4.1 String4.1.1 常用命令4.1.2 命令的时间复杂度4.1.3 使用场景 4.2 Hash4.2.1 常用命令4.2.2 命令的时间…

这个实用连锁店高效技巧,让便利店工作更省心!

当今社会,随着科技的不断进步,视频监控技术正逐渐渗透到我们生活的方方面面。无论是在公共场所、商业建筑、交通系统还是家庭环境,我们都可以见到摄像头的身影。 对于连锁企业而言,视频监控已经成为一项不可或缺的管理工具&#x…

抖音seo短视频矩阵系统源代码开发原型--开源

一、系统设计 1.需求分析 抖音SEO矩阵系统的主要功能是提高视频的曝光和排名,因此,其主要需求包括: 1)关键词研究:通过分析用户搜索行为,挖掘出热门关键词,以便制定针对性的SEO策略。 2&…

无需繁琐算量计算,鹏业安装算量软件帮你搞定!

亲爱的朋友们,大家好!今天非常高兴为大家带来一款极具智能、专业和效率的算量神器——鹏业安装算量软件!这款软件将彻底改变你的算量工作方式,让你轻松完成各种预算、审计和施工任务。 首先,鹏业安装算量软件自动识别图…

数字孪生引领智慧港口新纪元

随着数字化时代的到来,港口行业也在不断寻求创新,以提高运营效率、优化资源分配,并实现可持续发展。数字孪生技术作为一种强大的虚拟仿真工具,正日益成为智慧港口解决方案的核心。本文带大家一起探讨数字孪生在智慧港口领域的应用…

gdb call 函数调用

在 gdb 里可以用 call 命令来调用函数,跟代码里调用效果是一样的。在任一断点处都可以用 call 来调用函数,但不知是否需要debug 信息来支持,我这里实际操作的都是带debug信息的程序。首先打一个断点,如: 当断点触发时&…

Java之AbstractQueuedSynchronizer

要让你写一个java版的并发同步库,你会怎么思考设计???先思考三五分钟 请先拜读下老外的paperhttp://gee.cs.oswego.edu/dl/papers/aqs.pdf 1. 简介 AbstractQueuedSynchronizer,简称AQS,中文翻译为抽象队…

LeetCode--HOT100题(41)

目录 题目描述:102. 二叉树的层序遍历(中等)题目接口解题思路代码 PS: 题目描述:102. 二叉树的层序遍历(中等) 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地&am…

【C语言进阶(6)】字符串函数的使用方法 + 模拟实现

文章目录 Ⅰ 字符操作函数⒈字符分类函数⒉字符转换函数 Ⅱ 字符串操作函数⒈strlen⒉strcpy⒊strcat⒋strcmp⒌strncpy⒍strncat⒎strncmp⒏strstr⒐strtok⒑strerror Ⅲ 模拟实现字符串函数⒈模拟实现 strlen⒉模拟实现 strcpy⒊模拟实现 strcat⒋模拟实现 strcmp⒌模拟实现 …

ABB DI651电源模块

数字输入: DI651模块是用于读取数字输入信号的设备。它可以接收来自传感器、开关、按钮等外部设备的数字信号。 信号类型: 这种模块通常可以处理不同类型的数字信号,例如开关信号、脉冲信号、状态信号等。 通道数量: DI651模块可…

浪涌保护器的工作原理和应用

浪涌保护器是一种用于限制瞬态过电压和泄放浪涌电流的装置,主要用于保护低压电力系统和电子设备免受雷击或其他因素引起的电压冲击的损害。浪涌保护器的工作原理是利用其内部的非线性元件,在正常状态下呈现高阻抗,不影响电路的正常运行&#…

企业财务管理,重点指标分析

一、偿债能力指标 偿债能力指标是一个企业财务管理的重要管理指标,是指企业偿还到期债务(包括本息)的能力。偿债能力指标包括短期偿债能力指标和长期偿债能力指标,衡量短期偿债能力的指标主要有流动比率、速动比率和现金流动负债…

PlantUML文本绘制类图

记录下文本绘制类图的语法 参考 https://juejin.cn/post/6844903731293585421 类的UML表示 使用UML表示一个类,主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、 表示 private、protected、public。 如图所示,表示A类有一个…

1007 Maximum Subsequence Sum

Given a sequence of K integers { N1​, N2​, ..., NK​ }. A continuous subsequence is defined to be { Ni​, Ni1​, ..., Nj​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its elements. For example, g…

电商数据采集和分析

什么是电商数据采集? 数据采集一般是指利用人工或者爬虫技术,对电商平台上的公开数据进行抓取采集,采集完成后,去除客户不需要的无关的杂质数据,再进行交付。 电商数据采集要注意哪些点? 首先是采集平台&…

vue 简单实验 自定义组件 局部注册

1.概要 2.代码 <html> </html> <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <body><div id"counter"><component-a></component-a></div> </body&g…

【方案】安防监控EasyCVR智慧工地视频监管风险预警平台的应用

智慧工地方案是一种结合现代化技术与工地管理实践的创新型解决方案。它通过实时监控、数据分析、人工智能等技术手段&#xff0c;使工地管理更加高效、智能化。在建设智慧工地的过程中&#xff0c;除了上述提到的利用物联网技术实现设备互联、数据采集及分析以外&#xff0c;还…

快捷支付和网上支付、协议支付都有哪些区别?

协议支付是指客户通过与银行签订协议&#xff0c;将客户的银行账户连接到商户的相关账户&#xff0c;并在支付时直接输入相关账户的支付密码。通过与特定商户共同为客户提供的电子支付方式&#xff0c;客户在中国银行开立的银行账户与客户在特定商户的用户ID绑定&#xff0c;并…