iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解在OpenCV中实现的图像标注技术
  • 505
分享到

详解在OpenCV中实现的图像标注技术

2024-04-02 19:04:59 505人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录目录图像注解对图片注释的需求图像注解的类型分类法物体检测语义分割用OpenCV实现图像注解包围盒方法KNN方法进行分割结论参考文献图像标注在计算机视觉中很重要,计算机视觉是一种技

图像标注在计算机视觉中很重要,计算机视觉是一种技术,它允许计算机从数字图像或视频中获得高水平的理解力,并以人类的方式观察和解释视觉信息。注释,通常被称为图片标签,是大多数计算机视觉模型发展中的一个关键阶段。本文将重点讨论在OpenCV的帮助下创建这些注释。以下是将要涉及的主题。

目录

  • 图像注解
  • 对图像注释的需求
  • 图像注解的类型
  • 用OpenCV实现图像注解

机器学习模型的表现越好,你的注释的质量就越高。让我们了解一下图像注释。

图像注解

在一个特定的数据集中对图像进行分类以训练机器学习模型的过程被称为图像注释。当人工注释完成后,被标记的图片由机器学习或深度学习模型处理,以重复注释,不需要人工干预。

因此,图片注释被利用来表明你的系统需要识别的方面。监督学习是在给定标记数据的情况下训练一个ML模型的过程。

图片注解建立了模型试图复制的标准,因此标签中的任何错误也会被重复。因此,正确的图片注释为训练神经网络奠定了基础,使注释成为计算机视觉中最关键的工作之一。

图片注释可以手工完成,也可以在自动注释工具的帮助下完成。自动注释技术通常是预先训练好的算法,可以准确地对照片进行标注。他们的注释是复杂的注释工作所需要的,如构建片段掩码,这需要时间来生成。

你是否在寻找数据科学中使用的python库的完整库。 查看这里.

对图片注释的需求

对图片进行标注是功能数据集所需要的,因为它能让训练模型了解到图片的相关方面(类别),然后它可以用来在新鲜的、从未见过的图片中识别这些类别。

图像注释产生了训练数据,有监督的人工智能模型可以从中学习。注释图像的方式预测了人工智能在查看和学习图像后的行为方式。因此,在训练中经常描述糟糕的注释,导致模型做出糟糕的预测。

在应对独特的挑战和在新领域使用人工智能时,注释数据是非常重要的。对于像图像分类和分割这样的典型任务,经常有预训练的模型,它们可以通过使用转移学习以最小的输入量定制到特定的用例。

另一方面,从头开始训练一个全面的模型,经常需要大量的注释数据,分为训练集、验证集和测试集,这很难产生,也很费时。无监督算法,不需要注释数据,可以直接在原始数据上训练。

图像注解的类型

有三种盛行的图片注释方法,你为你的用例选择的方法将由项目的复杂性决定。每种使用的高质量图片数据越多,人工智能的预测就越准确。

分类法

分类是最简单、最快速的图片注释方法,因为它只需为一张图片分配一个标签。例如,你可以希望对一组杂货店货架的照片进行分类,以确定哪些照片含有苏打水,哪些不含有。

这种方法非常适合捕捉抽象信息,比如上面的例子,或者一天中的时间,如果图片中有汽车,或者从一开始就过滤掉不符合标准的照片。虽然分类法在提供单一的、高层次的标签方面是最快的,但它也是我们强调的三个类别中最模糊的,因为它不能确定物品在图像中的位置。

物体检测

注释者使用对象检测给图片中的特定事物贴上标签。因此,如果一张图片被标记为有冰激凌,这就更进一步说明了冰激凌在图片中的位置,或者如果特别是搜索可可冰激凌的位置。物体检测可以通过各种方法来完成,包括。

  • 边界框。注释者使用矩形和正方形来定义目标物体在二维中的位置。这是最经常使用的图片注释方法之一。立方体,也被称为三维边界框,被注释者用来指定目标对象的位置和深度。
  • 多边形分割。注释者采用复杂的多边形来指定不对称的目标项目的位置,而这些目标项目并不简单地适合在一个盒子里。
  • 线条。注释器检测图片中的基本边界线和曲线,用线条和样条来区分部分。例如,注释器可以为自驾车图片注释项目命名高速公路上的众多车道。

这种方法仍然不是最精确的,因为物体检测允许在使用方框或线条时出现重叠。它所提供的是项目的大致位置,同时仍然是一个相当快速的注释程序。

语义分割

语义分割克服了物体识别中的重叠问题,保证了图像的每个组成部分只属于一个类别。这种方法通常在像素层面上进行,需要注释者为每个像素分配类别(如行人、汽车或标志)。这有助于教导人工智能模型如何检测和分类某些项目,即使它们被遮挡。例如,如果一个购物车遮住了图像的一部分,可以用语义分割来定义可可冰淇淋的样子,直到像素级别,让模型知道它实际上仍然是可可冰淇淋。

用OpenCV实现图像注解

在这篇文章中,我们将使用边界框和颜色分割方法进行图像注释。

在边界框中,方法将是在物体周围手动绘制不同的边界形状,并在其中添加一些文字。

在颜色分割中,我们将使用KNN算法来分割查询图像中物体的颜色。颜色将根据 "K "值被分割,"K "是最近的邻居的数量,图像上被分割的部分可以被视为注释的部分。

包围盒方法

导入必要的库

import cv2 
import numpy as np
import matplotlib.pyplot as plt

读取查询图像

input_img=cv2.imread('annotation_image.jpg',cv2.IMREAD_COLOR)

查询图像

在本文中,我们使用的是彩色图像,所以我们需要使用 "cv2.IMREAD_COLOR"。因为它指示加载一个彩色图片。任何图片的透明度都会被忽略。这是默认设置。我们也可以为这个标志传递整数值1。

在对象上画一条线

image_line=input_img.copy()
cv2.line(image_line, (900,150), (1100,150), (0,255,255), thickness=5,lineType=cv2.LINE_AA)
plt.figure(figsize=(10,10))
plt.imshow(image_line[:,:,::-1])
plt.show()

cv2.line需要输入直线的起点和终点的坐标,以及直线的厚度、透明度和颜色。

印度分析杂志

在物体周围画一个圆

image_circle=input_img.copy()
cv2.circle(image_circle, (1030,340),200, (0,255,255), thickness=5,lineType=cv2.LINE_AA)
plt.figure(figsize=(10,10))
plt.imshow(image_circle[:,:,::-1])
plt.show()

cv2.circle'接收半径和圆的坐标作为输入。其余部分与前面讨论的直线函数相同。

印度分析》杂志

在物体周围画一个矩形

image_rect=input_img.copy()
cv2.rectangle(image_rect, (900,150),(1100,530), (0,0,255), thickness=5,lineType=cv2.LINE_AA)
plt.figure(figsize=(10,10))
plt.imshow(image_rect[:,:,::-1])
plt.show()

它需要左上角的坐标和右下角的坐标来绘制矩形。

印度分析》杂志

KNN方法进行分割

导入必要的库

import cv2 
import numpy as np
import matplotlib.pyplot as plt

读取和预处理

img = cv2.cvtColor(input_img,cv2.COLOR_BGR2RGB)
image_reshape = img.reshape((-1,3))
image_2d = np.float32(image_reshape)

改变颜色的顺序,因为在OpenCV中,图像的颜色是以蓝、绿、红(BGR)来读取的。要求是红、绿、蓝(RGB)。

应用KNN

criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 1.0)
K = 4
attempts=10
ret,label,center=cv2.kmeans(twoDimage,K,None,criteria,attempts,cv2.KMEANS_PP_CENTERS)
center = np.uint8(center)
res = center[label.flatten()]
result_image = res.reshape((img.shape))

由于图像是一个高分辨率的图像,所以有很多数据点需要处理,如果迭代次数多,就会耗费时间。我们将迭代次数限制为100次,并且将ε值设置为最高值。k近邻被设置为4,尝试次数为10。

plt.figure(figsize=(10,10))
plt.imshow(result_image[:,:,::-1])
plt.show()

印度分析杂志

该算法对颜色进行了很好的分割。可以看到蓝色、白色、灰色和棕色被分开。人们可以对图像进行屏蔽,并进一步调整算法。

结论

处理数据最耗时的方面之一是数据收集和注释。然而,它是训练算法的基础,必须在可行的情况下以最大的精度执行。适当的注释经常会在后期创建模型的过程中节省大量的时间。通过这篇文章,我们已经了解了不同类型的注释和它们的实现。

参考文献

  • 上述代码的链接
  • 阅读更多关于注释的信息

The postImage annotation techniques with implementation in OpenCVappeared first onAnalytics India Magazine.

到此这篇关于在OpenCV中实现的图像标注技术的文章就介绍到这了,更多相关OpenCV图像标注内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解在OpenCV中实现的图像标注技术

本文链接: https://www.lsjlt.com/news/118709.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解在OpenCV中实现的图像标注技术
    目录目录图像注解对图片注释的需求图像注解的类型分类法物体检测语义分割用OpenCV实现图像注解包围盒方法KNN方法进行分割结论参考文献图像标注在计算机视觉中很重要,计算机视觉是一种技...
    99+
    2024-04-02
  • 详解图像上的OpenCV算术运算
    目录OpenCV 简介添加图像图像减法位运算图像的 AND 位运算图像的 OR 位运算图像的NOT位运算图像的 XR 位运算OpenCV的结论OpenCV 简介 图像可以进行算术运算...
    99+
    2024-04-02
  • 详解在OpenCV中如何使用图像像素
    目录切片操作获取感兴趣区域的坐标值使用切片操作裁剪图像1.加载并显示原始图像2.获取图像的空间维度3.裁剪图像4.使用尺寸将部分图像设置为特定颜色。总结 像素是计算机视觉中图像的重要...
    99+
    2024-04-02
  • 详解Python+OpenCV实现图像二值化
    目录一、图像二值化1.效果2.源码二、图像二值化(调节阈值)1.源码一2.源码二一、图像二值化 1.效果 2.源码 import cv2 import numpy as np im...
    99+
    2024-04-02
  • Python+Opencv实现图像模板匹配详解
    目录引言一、匹配方法 二、匹配单个对象 三、匹配多个对象引言 什么是模板匹配呢? 看到这里大家是否会觉得很熟悉的感觉涌上心头!在人脸识别是不是也会看见&...
    99+
    2024-04-02
  • Python OpenCV实现图像增强操作详解
    目录创作背景图像亮度增强和降低旋转水平镜像和垂直镜像高斯噪声其它图像增强的方法创作背景 最近在忙着两个YOLOv7项目,通过看大量的论文,发现很多的相关的论文都会在收集图像后进行图像...
    99+
    2024-04-02
  • Python OpenCV超详细讲解图像堆叠的实现
    目录准备工作水平堆叠垂直堆叠图像栈堆叠准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库,import num...
    99+
    2024-04-02
  • OpenCV实现图像去噪算法的步骤详解
    目录一、函数参考1、Primal-dual算法2、非局部均值去噪算法三、OpenCV源码1、源码路径2、源码代码四、效果图像示例一、函数参考 1、Primal-dual算法 Prim...
    99+
    2024-04-02
  • Python+OpenCV实现图像基本操作的示例详解
    目录1. 计算机眼中的图像2. 图像的表示3. 基础操作 图像的读取4. 截取部分图像数据(ROI)5. 视频的读取6. 边界填充7. 图像的加法 图像的加法1. 计算机眼中的图像 ...
    99+
    2023-05-16
    Python OpenCV图像基本操作 Python OpenCV图像操作 Python OpenCV图像 Python OpenCV
  • python OpenCV实现图像特征匹配示例详解
    目录目标Brute-Force匹配器的基础使用ORB描述符进行Brute-Force匹配什么是Matcher对象?带有SIFT描述符和比例测试的Brute-Force匹配基于匹配器的...
    99+
    2023-05-17
    python OpenCV图像特征匹配 python OpenCV
  • Python+OpenCV实现图像识别替换功能详解
    OpenCV-Python是一个Python库,旨在解决计算机视觉问题。 OpenCV是一个开源的计算机视觉库,1999年由英特尔的Gary Bradski启动。Bradski在访学...
    99+
    2024-04-02
  • OpenCV学习之图像加噪与滤波的实现详解
    目录一、实验内容二、实验环境和配置三、实验原理及操作1. 添加噪声2.噪声二值化3. 滤波处理四、实验结果2.椒盐噪声二值图与白噪声二值图3.椒盐噪声处理图经处理后图像4.白噪声处理...
    99+
    2023-02-16
    OpenCV图像加噪 滤波 OpenCV图像加噪 OpenCV图像滤波 OpenCV图像
  • 详解C++ OpenCV实现图像拼接的原理及方法
    目录前言一、图像拼接相关原理 图像特征采集特征提取算法透视变换透视矩阵图像拷贝二、案例实现Step1:导入目标图片Step2:特征点提取和匹配 Step3:图像配...
    99+
    2024-04-02
  • C++OpenCV实现图像双三次插值算法详解
    目录前言一、图像双三次插值算法原理二、C++ OpenCV代码1.计算权重矩阵2.遍历插值3. 测试及结果前言 近期在学习一些传统的图像处理算法,比如传统的图像插值算法等。传统的图像...
    99+
    2024-04-02
  • python用opencv将标注提取画框到对应的图像中
    目录前言相应的思路读取前缀列表找出json结构中对应框坐标位置,画出对应的框前言 问题需求: 拥有两个文件夹,一个保存图片image,一个保存标签文件,要求把标签文件中的标注提取出来...
    99+
    2024-04-02
  • OpenCV实现图像背景虚化效果原理详解
    目录0 写在前面1 小孔成像2 光学成像3 虚化效果4 代码实战0 写在前面 相信用过相机的同学都知道虚化特效,这是一种使焦点聚集在拍摄主题上,让背景变得朦胧的效果,例如本文最后实现...
    99+
    2024-04-02
  • Java绘图技术的详解及实例
    Java绘图技术的详解及实例简单实例public class Demo1 extends JFrame{ MyPanel mp=null; public static void main(String[] args){ Dem...
    99+
    2023-05-31
    java 绘图 ava
  • 在React中用canvas对图片标注的实现
    在审核业务中难免会有需要对图片进行标注的需求,本次用一个最小demo来演示如何对图片进行矩形标注。 首先我们要理解canvas是一块画布,而这块画布需要在我们要标注的图片上层,图片和...
    99+
    2024-04-02
  • 详解Python调用华为API实现图像标签
    目录1.华为云API介绍1.1 华为云图像标签1.2 应用场景1.3 调用华为云API实现图像标签2.实验过程2.1实验代码2.2运行结果2.3 问题注释1.华为云API介绍 1.1...
    99+
    2024-04-02
  • 如何利用Opencv实现图像的加密解密
    目录1、基础:基于异或操作实现图像加密解密Opencv-python代码实现效果展示:2、进阶:基于混沌序列构成异或模板实现图像加密解密结果展示:总结1、基础:基于异或操作实现图像加...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作