三、计算机视觉_02计算机视觉领域的四大基本任务

0、前言

计算机视觉是人工智能领域的一个重要分支,它是一个跨学科的领域,涉及计算机科学、人工智能、机器学习、图像处理、神经科学等多个学科的知识

计算机视觉使用计算机技术来模拟人类视觉系统的功能,使计算机能够从图像或多维数据中提取信息、识别对象/场景/活动,其目标是使计算机能够像人类一样“看”和“理解”视觉世界

计算机视觉的应用非常广泛,包括:

  • 自动驾驶汽车:使用视觉系统来识别道路标志、行人、其他车辆等
  • 医疗成像:辅助诊断,如肿瘤检测、骨折识别等
  • 安全监控:人脸识别、异常行为检测等
  • 工业自动化:质量控制、机器人导航等
  • 增强现实和虚拟现实:提供沉浸式体验,通过视觉技术增强现实世界
  • 智能手机应用:如面部识别解锁、图像搜索等

计算机视觉通常包括图像分类、目标定位、目标检测和图像分割这四大基本任务,它们是构建更复杂视觉系统的基础,其他的关键任务大多也是在这四大基本任务的基础上延伸开来的‌

1、图像分类(Image Classification)

1.1 概念

分类任务‌解决的是“是什么?”的问题,即:给定一张图片或一段视频,判断其中包含什么类别的目标,通过对图像的特征进行提取和分析,然后将图像分配到特定的类别(例如,识别一张图片中的物体是猫还是狗‌)

1.2 操作过程

Step1:数据预处理:包括图像的缩放、归一化等

Step2:特征提取:使用传统方法(如SIFT、HOG)或深度学习模型自动提取特征

Step3:分类器训练:使用提取的特征训练分类器,如支持向量机(SVM)、随机森林或深度神经网络

Step4:分类预测:将训练好的模型应用于新图像,进行类别预测

1.3 应用场景

包括但不限于以下场景:

  • 图像标注和检索
  • 内容过滤和版权保护
  • 农业中的作物病害识别

1.4 算法模型

  • 传统方法:SIFT、HOG、Bag of Visual Words等
  • 深度学习方法:CNN(如AlexNet、VGGNet、ResNet等)

【备注】

本质上是一个样本级分类,任务比较粗糙,难度较低

2、目标定位(Object Localization)

2.1 概念

定位任务通过预测目标的边界框(bounding box)来标出对象的具体位置(例如,在一张照片中,定位任务能够识别出行人、动物和其他物体,并给出它们在图像中的具体位置‌)

2.2 操作过程

Step1:图像预处理:与图像分类类似

Step2:特征提取:提取有助于定位对象的特征

Step3:边界框预测:使用分类器和回归器预测对象的类别和位置

Step4:后处理:如非极大值抑制(NMS)来去除重叠的边界框

2.3 应用场景

包括但不限于以下场景:

  • 图像编辑和增强
  • 安全监控和交通管理

2.4 算法模型

  • 传统方法:AdaBoost、级联分类器等
  • 深度学习方法:R-CNN系列(R-CNN、Fast R-CNN、Faster R-CNN)、SSD、YOLO等

3、目标检测(Object Detection)

3.1 概念

‌‌检测任务结合了分类和定位的功能,既要识别图像中的对象,又要确定它们的位置,其输出是多个目标

  • 是什么?(类别概率 Probability)
  • 在哪里?(边界框 Bounding Box)

3.2 操作过程

Step1:图像预处理:与图像分类类似

Step2:特征提取:提取有助于检测对象的特征

Step3:对象识别:使用深度学习模型识别对象并预测边界框和类别

Step4:后处理:使用NMS等技术优化检测结果

3.3 应用场景

包括但不限于以下场景:

  • 自动驾驶车辆中的行人和车辆检测
  • 视频监控中的异常行为识别

3.4 算法模型

  • R-CNN系列(R-CNN、Fast R-CNN、Faster R-CNN)、RetinaNet、SSD、YOLO等

【备注】

本质上是除了做分类之外,还得做定位,而且还是多个目标(同时识别多个类别,每个类别有多个实例,每个实例都要算概率和做定位),因此,其任务比较精细,难度比较大

解决问题的方法:

  • Step1:把图像切成一个一个的片段

  • Step2:做图像分类,看每一个小片段是否有相关的目标

    • Probability:分类概率就是目标的概率

    • Location:片段的边界框就是定位坐标

图像分类策略在目标检测中的应用涉及到特征提取和分类这两个主要步骤,根据操作步骤顺序的不同,可分为以下两种方式:

  • 先切原图,再针对每个片段抽特征,做分类:

    • MTCNN:如上所述,MTCNN通过级联的方式逐步精细化目标检测结果,它首先生成候选窗口(切图),然后对这些窗口进行特征提取和分类
  • 先对原图提特征,然后切特征图,再做分类:

    • SSD(Single Shot MultiBox Detector):SSD在不同尺度的特征图上进行检测,能够检测不同大小的目标,它首先对整个图像进行特征提取,然后在这些特征图上生成边界框和类别概率

    • YOLO(You Only Look Once):YOLO将目标检测问题转化为一个回归问题,直接在图像上预测边界框和类别概率,它首先对整个图像进行特征提取,然后在这些特征图上进行目标检测

4、图像分割(Image Segmentation)

4.1 概念

分割任务‌进一步细化了检测任务,不仅识别并定位图像中的对象,还要对每个对象进行像素级的分割,具体可分为语义分割实例分割这两种类型

语义分割将图像中的每个像素分配给特定的类别,而实例分割则对每个独立对象进行像素级的分割(例如,在一张图片中,语义分割会区分出天空、树木、建筑物等不同类别,而实例分割则会区分出每只猫或每只狗的具体位置和轮廓‌)

4.2 操作过程

Step1:图像预处理:包括去噪、增强等

Step2:分割网络:使用深度学习模型对每个像素进行分类

Step3:后处理:如形态学操作来改善分割结果

4.3 应用场景

包括但不限于以下场景:

  • 医学成像中的组织和病变分割
  • 自动驾驶中的路面和障碍物分割

4.4 算法模型

  • 传统方法:阈值分割、区域生长、分水岭算法等
  • 深度学习方法:FCN、U-Net、Mask R-CNN等

5、版本之子——YOLO

YOLO(You Only Look Once)是一种流行的计算机视觉模型,它最初被设计用于目标检测任务,随着版本的更新,YOLO已经扩展到能够处理包括图像分类、目标定位、目标检测和图像分割在内的多种视觉任务

目前,YOLO以其速度快和准确性高的特性,已经成为目前计算机视觉领域中非常流行和强大的算法,YOLO特别适合于需要实时处理的场景,比如视频监控、自动驾驶等

几乎可以这么说:当今世界,计算机视觉≈YOLO

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

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

相关文章

Docker: ubuntu系统下Docker的安装

安装依赖 操作系统版本 Ubuntu Kinetic 22.10Ubuntu Jammy 24.04 (LTS)Ubuntu Jammy 22.04 (LTS)Ubuntu Focal 20.04 (LTS)Ubuntu Bionic 18.04 (LTS) CPU架构支持 ARMx86_64 查看我们的系统版本信息 uname -a通过该命令查得cpu架构是x86_64的; cat /etc/*re…

【已解决】 Tomcat10.1.x使用JSTL标签库

IDEA创建Java EE项目,使用Spring Spring MVC MyBatis框架,使用maven管理依赖。项目当前的环境是: Tomat 10.1.28Maven 3.6.3JDK 17 项目的功能:读取数据库的report表中的数据,返回一个List集合对象reportList在JSP…

LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…

数据分析24.11.13

Excel 函数 求和 函数 sum() sumif() SUMIF(range, criteria, [sum_range]) sumifs() average() count() max() min() 逻辑 函数 if() iferror() 查询函数 VLOOKUP()

DveOps-Git-版本控制

1. 概述 分布式版本控制系统 版本控制 2. Git极速上手指南 官方传送门:Git - Branching and Merging 2.1 安装 ## windows https: git-scm.com/download/## Linux(CentOS/Fedora/Rocky Linux/RHEL) yum install -y git ## MacOS brew install git## Ubuntu/Debian apt in…

DevOps工程技术价值流:加速业务价值流的落地实践与深度赋能

DevOps的兴起,得益于敏捷软件开发的普及与IT基础设施代码化管理的革新。敏捷宣言虽已解决了研发流程中的诸多挑战,但代码开发仅是漫长价值链的一环,开发前后的诸多问题仍亟待解决。与此同时,虚拟化和云计算技术的飞跃,…

Tensorflow基本概念

简介:本文从Graph讲到Session,同时讲解了tf.constant创建tensor的用法和variable需要初始化的知识点,可以给你打好一个学习Tensorflow的基础。本文都是基于TensorFlow1.14.0的版本下运行。 本专栏将会系统的讲解TensorFlow在1.14.0版本下的各…

【React】响应事件

1.添加事件处理函数 按照如下三个步骤&#xff0c;即可让它在用户点击时显示消息&#xff1a; 在 Button 组件 内部 声明一个名为 handleClick 的函数。实现函数内部的逻辑&#xff08;使用 alert 来显示消息&#xff09;。添加 onClick{handleClick} 到 <button> JSX …

初遇Python-----python/anaconda/PyCharm安装应用问题

作为一名医学生,小编之前从未用过python,一直将R视为数据分析的利器,至于到底R好用还是Python好用,一直是广大网友们争论的热点,小编资历尚浅,对此就不予评价了。最近需要对部分数据进行建模工作,奈何三方工具完全基于python语言编写的,迫不得已小编也只能挠头学习了。本…

基于reads的宏基因组与宏转录组医学分析流程正式上线!

随着生物医学领域的快速发展&#xff0c;宏基因组学和宏转录组学正逐渐成为研究微生物群落及其在人体健康与疾病中作用的关键技术。然而&#xff0c;医学研究样品往往存在微生物含量较低的情况&#xff0c;这给数据分析带来了挑战。为了解决这一难题&#xff0c;并适应不断增长…

使用Aria2实现离线下载

最近有需要BT下载&#xff0c;但有的资源很冷门&#xff0c;速度很慢&#xff0c;总不能一直开着电脑下载&#xff0c;于是想到部署个离线下载。想起之前用雨云服务器拿来部署兰空图床感觉效果不错&#xff0c;发现内存剩的还挺多&#xff0c;所以继续压榨一下&#x1f60f; 提…

第三百二十三节 Java线程教程 - Java同步器

Java线程教程 - Java同步器 同步器对象与一组线程一起使用。 它维护一个状态&#xff0c;根据它的状态&#xff0c;它让一个线程通过或强迫它等待。 本节将讨论四种类型的同步器&#xff1a; SemaphoresBarriersLatchesExchangers 信号量 信号量用于控制可以访问资源的线程…

HTB:Active[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many SMB shares are shared by the target? 使用nmap对靶机TCP端口进行开放扫描 2.What is the name of the share that allows anonymous read access? 使用smbmap通过SMB服务对匿名用户共享权限情况进行扫描 3.Which file has…

vue3【组件封装】S-icon 图标 ( 集成 iconify )

1. 安装依赖 npm i -D iconify/jsonnpm i --save-dev iconify/vue2. 组件封装 src/components/S-icon.vue <script setup lang"ts"> // 搜索图标 https://icon-sets.iconify.design/ import { Icon } from iconify/vue defineProps({icon: {type: String,requ…

AI视觉小车基础--1.开发前的准备

1. 结束开机大程序 为了能够方便体验小车的APP功能&#xff0c;系统中增加了一个程序&#xff0c;此程序集合了APP的控制功能和玩法&#xff0c;所以称做“大程序”&#xff0c;而且在主板系统开机时&#xff0c;此程序会自动启动&#xff0c;所以称做“开机自启动大程序”。 开…

6.传输层协议、ACL

TCP和UDP协议 TCP/IP协议组的传输层协议 TCP(Transmission Control Protocol ) 传输控制协议 UDP&#xff08;User Datagram Protocol &#xff09; 用户数据报协议 TCP协议 TCP是面向连接的、可靠的进程到进程通信的协议 TCP提供全双工服务&#xff0c;即数据可在同一时间双…

避免数据丢失!在NAS上保存Docker容器配置的正确姿势

引言 如果你使用NAS来管理家庭或小型企业的数据,那么Docker容器一定不陌生。它能快速部署各种应用,比如Jellyfin、Plex等多媒体服务器。然而,很多人却踩过一个坑:NAS关机重启后,Docker容器的配置居然丢了!辛苦搭建的环境瞬间化为乌有。别担心,今天就来分享一套实用的技…

【Java的动态代理】

Java中有两种实现动态代理的方式jdk动态代理和CGLIB动态代理 jdk动态代理: 基于接口的动态代理, 目标对象必须实现接口cglib动态代理: 基于字节生成技术(ASM代码生成库), 能在运行时对java类和接口进行扩展实现 那么动态代理这个技术到底能帮我们干啥? 个人感觉这个技术在框…

python怎么安装numpy

1、在python官网https://pypi.python.org/pypi/numpy中找到安装的python版本对应的numpy版本。 例如&#xff1a; python版本是&#xff1a; 下载的对应numpy版本是&#xff1a; 2、将numpy下载到python的安装目录下的scripts文件夹中&#xff1b; 3、然后在cmd中执行以下命…

计算机三级 数据库技术

第一章 数据库应用系统开发方法 1.1 数据库应用系统生命周期 软件工程:软件工程的思想&#xff0c;即用工程的概念、原理、技术和方法对软件生产、开发的全过程进行跟踪和管理 软件开发方法:瀑布模型、快速原型模型、螺旋模型 DBAS生命周期模型 1.2 规划与分析 系统规划与定…