【计算机视觉】千字汇总:一文读懂计算机视觉,干货满满记得收藏

news2025/4/16 20:59:49

文章目录

  • 一、前言
  • 二、计算机视觉为什么重要
  • 三、什么是计算机视觉
  • 四、计算机视觉的基本原理
  • 五、计算机视觉的典型任务
    • 5.1 图像分类
    • 5.2 目标检测
    • 5.3 语义分割
    • 5.4 实例分割
    • 5.5 目标追踪
  • 六、计算机视觉在日常生活中的应用场景
    • 6.1 门禁、支付宝上的人脸识别
    • 6.2 停车场、收费站的车牌识别
    • 6.3 上传视频到网站或APP时的风险识别
    • 6.4 抖音等APP上的各种自拍道具(需要先识别出人脸的位置)
  • 七、计算机视觉面临的挑战
  • 八、结语

计算机视觉(Computer Vision),通常简称CV,是一个通过技术帮助计算机“看到”并“看懂”图像的研究领域,例如使计算机理解照片或视频的内容。

一、前言

计算机视觉(Computer Vision),通常简称CV,是一个通过技术帮助计算机“看到”并“看懂”图像的研究领域,例如使计算机理解照片或视频的内容。

这篇文章将对计算机视觉进行整体介绍。本文章共分为六个部分,分别是:

  • 计算机视觉为什么重要
  • 什么是计算机视觉
  • 计算机视觉的基本原理
  • 计算机视觉的典型任务
  • 计算机视觉在日常生活中的应用场景
  • 计算机视觉面临的挑战

二、计算机视觉为什么重要

在生理学上,视觉(Vision)的产生都始于视觉器官感受细胞的兴奋,并于视觉神经系统对收集到的信息进行加工之后形成。

我们人类通过视觉来直观地了解眼前事物的形体和状态,大部分人依靠视觉来完成做饭、越过障碍、读路牌、看视频以及无数其他任务。

事实上,如果不是盲人这类特殊群体,绝大多数人对外界信息的获取都是通过视觉完成的,而这个占比高达80%以上——这个比例并不是没有根据的,著名实验心理学家赤瑞特拉(Treicher)曾通过大量的实验证实:人类获取的信息的83%来自视觉,11%来自听觉,剩下的6%来自嗅觉、触觉、味觉。

所以,对于人类来说,视觉无疑是最重要的一种感觉。

不仅人类是“视觉动物”,对于大多数动物来说,视觉也都起到十分重要的作用。通过视觉,人和动物感知外界物体的大小、明暗、颜色、动静,获得对机体生存具有重要意义的各种信息,通过这些信息能够得知,周围的世界是怎样的,以及如何和世界交互。

在这里插入图片描述

而在计算机视觉出现之前,图像对于计算机来说是黑盒的状态。

一张图像对于计算机来说只是一个文件、一串数据。计算机并不知道图片里的内容到底是什么,只知道这张图片是什么尺寸,占多少内存大小,什么格式的等等。

在这里插入图片描述

如果计算机、人工智能想要在现实世界发挥重要作用,就必须看懂图片!

因此,半个世纪以来,计算机科学家一直在想办法让计算机也拥有视觉,从而产生了“计算机视觉”这个领域。

在这里插入图片描述

网络的迅速发展也令计算机视觉变得尤为重要。

下图是2020年以来网络上新增数据量的走势图。灰色图形是结构化数据,蓝色图形是非结构化数据(大部分都是图片和视频)。可以很明显的发现,图片和视频的数量正在以指数级的速度疯狂增长。

在这里插入图片描述

互联网由文本和图像组成。

搜索文本相对简单,但为了搜索图像,算法需要知道图像包含的内容。

在很长的一段时间内,人类没有足够的技术来理解图像和视频的内容,只能依靠人工标注来获取图像或视频的描述。

如何能让计算机更好地理解这些图像信息,便是当今计算机技术面临的一大挑战。

为了充分利用图像或视频数据,需要让计算机“查看”图像或视频,并理解内容。

三、什么是计算机视觉

计算机视觉是人工智能领域的一个重要分支,简单来说,它要解决的问题就是:让计算机看懂图像或者视频里的内容。

比如:

  1. 图片里的宠物是猫还是狗?
  2. 图片里的人是老张还是老王?
  3. 视频里的人在做什么事情?

更进一步的说,计算机视觉就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等,并进一步做图形处理,得到更适合人眼观察或传送给仪器检测的图像。

作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取高层次信息的人工智能系统。

从工程的角度来看,它寻求利用自动化系统模仿人类视觉系统来完成任务。

计算机视觉的最终目标是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。

但能真正实现计算机能够通过摄像机感知这个世界却是非常之难,因为虽然摄像机拍摄的图像和我们平时所见是一样的,但对于计算机来说,任何图像都只是像素值的排列组合,是一堆死板的数字。

如何让计算机从这些死板的数字里面读取到有意义的视觉线索,是计算机视觉应该解决的问题。

四、计算机视觉的基本原理

用过相机或手机的都知道,计算机擅长拍出有惊人保真度和细节的照片,从某种程度上来说,计算机的人工“视觉”比人类与生自来的视觉能力强多了。但正像我们平日所说的“听见不等于听懂”一样,“看见”也不等于“看懂”,要想让计算机真正地“看懂”图像,那就不是一件简单的事情了。

图像是一个大像素网格,每个像素有颜色,颜色是三种基色的组合:红,绿,蓝。通过组合三种颜色的强度——即叫做RGB值,我们可以得到任何颜色。

最简单的、最适合拿来入门的计算机视觉算法是:跟踪一个有颜色的物体,比如一个粉色的球,我们首先记下球的颜色,保存最中心像素的RGB值,然后给程序喂入图像,让程序找最接近这个颜色的像素。

算法可以从左上角开始,检查每个像素,计算和目标颜色的差异。检查了每个像素后,最贴近的一部分像素,很可能就是球所在的像素。

这个算法并不限制于在这单张图片上运行,我们可以把算法运行在视频的每一帧图像上,跟踪球的位置。

当然,因为光线、阴影和其他因素的影响,球的颜色会有变化,不会和我们存的RGB值完全一样,但会很接近。不过在一些极端的情况下,比如晚上进行足球比赛,追踪效果就可能会非常差;而且如果其中一队的球衣颜色和球的颜色一样,算法就完全“晕了”。因此,除非环境可以严格控制,这类颜色跟踪算法很少会被真正投入使用。

而如今更多使用的计算机视觉算法一般都会涉及“深度学习”(Deep Learning)的方法和技术,其中,卷积神经网络(CNN)因为其优越的性能,使用最为广泛。

由于“深度学习”所涉及的知识过于广泛,本篇就不对其进行更详细的叙述了。

五、计算机视觉的典型任务

5.1 图像分类

图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层次视觉任务的基础。

例如下图,通过图像分类,计算机识别到图像中有人(person)、树(tree)、草地(grass)、天空(sky)。

在这里插入图片描述

图像分类在许多领域都有着广泛的应用,如:安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。

5.2 目标检测

目标检测任务的目标是给定一张图像或是一个视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。

如下图,以识别和检测人为例,用边框标记图像中所有人的位置。

在这里插入图片描述

在这里插入图片描述
而在多类别目标检测中,一般使用不同颜色的边框对检测到的不同物体的位置进行标记,如下图所示。

5.3 语义分割

语义分割是计算机视觉中的基本任务,在语义分割中我们需要将视觉输入分为不同的语义可解释类别。

它将整个图像分成像素组,然后对像素组进行标记和分类。

例如,我们可能需要区分图像中属于汽车的所有像素,并把这些像素涂成蓝色。

如下图,把图像分为人(红色)、树木(深绿)、草地(浅绿)、天空(蓝色)标签。

在这里插入图片描述

5.4 实例分割

实例分割是目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割)。

对比上图、下图可见,如以人为目标,语义分割不区分属于相同类别的不同实例(所有人都标为红色),实例分割区分同类的不同实例(使用不同颜色区分不同的人)。

在这里插入图片描述

5.5 目标追踪

目标跟踪是指对图像序列中的运动目标进行检测、提取、识别和跟踪,获得运动目标的运动参数,进行处理与分析,实现对运动目标的行为理解,以完成更高一级的检测任务。

在这里插入图片描述

六、计算机视觉在日常生活中的应用场景

计算机视觉的应用场景非常广泛,下面列举几个生活中常见的应用场景。

6.1 门禁、支付宝上的人脸识别

在这里插入图片描述

6.2 停车场、收费站的车牌识别

在这里插入图片描述

6.3 上传视频到网站或APP时的风险识别

在这里插入图片描述

6.4 抖音等APP上的各种自拍道具(需要先识别出人脸的位置)

在这里插入图片描述

七、计算机视觉面临的挑战

目前,计算机视觉技术发展迅速,已具备初步的产业规模。未来计算机视觉技术的发展主要面临以下挑战:

一是如何在不同的应用领域和其他技术更好的结合,计算机视觉在解决某些问题时可以广泛利用大数据,已经逐渐成熟并且可以超过人类,而在某些问题上却无法达到很高的精度;

二是如何降低计算机视觉算法的开发时间和人力成本,目前计算机视觉算法需要大量的数据与人工标注,需要较长的研发周期以达到应用领域所要求的精度与耗时;

三是如何加快新型算法的设计开发,随着新的成像硬件与人工智能芯片的出现,针对不同芯片与数据采集设备的计算机视觉算法的设计与开发也是挑战之一。

八、结语

计算机视觉作为人工智能细分领域中发展最快、应用最为广泛的技术之一,它如同人工智能的“眼睛”,为各行各业捕捉和分析更多信息。随着算法的更迭、硬件算力的升级、数据的大爆发,以及未来5G技术发展带来的高速网络,计算机视觉在应用方面也将会有更加广阔的发展空间,让我们拭目以待吧!

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

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

相关文章

Android——布局管理器(十一)

1. 线性布局管理器:LinearLayout 1.1 知识点 (1)布局管理器简介; (2)线型布局管理器的配置; (3)通过Activity程序进行线型布局 1.2 具体内容 在android中&#xff…

java elasticsearch 实现以图搜图效果

前言: 现在需要用javaelasticsearch的方式实现以图搜图的效果,根据下面的文章内容做了一点修改 相关文章:https://blog.csdn.net/m0_52640724/article/details/129357847 一、相关环境 java:jdk11 elasticsearch:7.17…

行情不好进阶困难?那是因为你没有选对方向

关注“软件测试藏经阁”微信公众号,回复暗号【软件测试】,即可获取氪肝整理的全套测试资源 IT行情彻底崩盘了? 相信凡是在抖音关注过互联网相关内容的同学,应该会经常听到这句话吧!没错就是号称“某蛙之父”的那个人天…

【LeetCode】HOT 100(13)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

JavaScript中getElementById与querySelector区别

JavaScript中getElementById与querySelector区别 1、getElement(s)Byxxxx 的用法1.1 getElementById() 方法1.2 getElementsByClassName() 方法1.3 getElementsByTagName() 方法 2、querySelector() 和 querySelectorAll() 用法2.1 querySelector() 方法2.2 querySelectorAll()…

Big O示例与Python数据结构的Big O

在Big-O示例部分的第一部分,我们将介绍各种Big-O函数的各种迭代。 让我们从一些简单的例子开始,探索大O是什么。 O(1) Constant def func_constant(values):Prints first item in a list of values.print(values[0])func_constant([1,2,3])# 1请注意&a…

避雷器计数器测试仪

原理 图1所示为JS动作记数器的原理接线图。图1(a)为JS动作记数器的基本结构,即所谓的双阀片式结构。当避雷器动作时,放电电流流过阀片R1,在R1上的压降经阀片R2给电容器C充电,然后C再对电磁式记数器的电感线…

easyX基本概念(注释版)

0.前言 本次我给您带来easyX库系列的博文,本系列博文目的在于对原easyX库文档进行一个补充和注解,重在补充测试样例和实践。 easyX库本身并不值得过于学习,但是作为有C语言基础的C爱好者,学习easyX能让您对IT技术更加感兴趣。用…

AI完成音频创作,击败99%作者

使用AI完成音频创作 ,击败99%同类创作者 ,享受持续广告变现收益 ,下面我们来看下如何使用把~ 音频生成和投放可以分为以下两步骤: 使用AI效能公众号完成内容创作;利用喜马拉雅云剪辑发布内容 1. 内容生成 打开AI效能公…

Altium Designer 15 (AD15)新建元件库

1. 连接线 1.1 设置连接线的默认颜色,宽度:点击图标 --》按Tab键 1.2 默认使用蓝色,通用 2. 调出来元件库,然后按照元件的英文名字搜元件,拖到左边画图区域就可以了 3. 自己画一个元器件,自定义元器件 3.1…

6.14 消息队列

目录 消息队列 消息队列结构 消息队列使用步骤 消息队列创建/打开-msgget 消息队列创建/打开 - 示例 消息发送 – msgsnd 消息格式 消息发送 - 示例 笔记 消息队列 消息队列是System V IPC对象的一种 消息队列由消息队列ID来唯一标识 消息队列就是一个消息的列表。…

解决Idea中日志文件log4j.xml中http//jakarta.apache.org/log4j爆红,报错此 uri is not registered

在Idea中&#xff0c;配置log4j.xml出现“http //jakarta.apache.org/log4j/ uri is not registered”的错误信息&#xff0c;解决步骤如下&#xff1a; 1、原始的log4j.xml配置文件&#xff1a; <?xml version"1.0" encoding"GB2312" ?> <!…

ESP32(Micro Python)LVGL 四路ADC

本程序布局与上一个程序相同&#xff0c;引脚不重合&#xff0c;可以在不更换外设的情况下切换程序。由于仪表盘显示的数值范围不可调&#xff0c;实际显示的值为测量值占量程的百分比。 代码如下 import lvgl as lv import time from espidf import VSPI_HOST from ili9XX…

chatgpt赋能python:Python如何在输入之前等待30秒

Python如何在输入之前等待30秒 作为一名编程工程师&#xff0c;程序的性能和用户体验都是非常重要的。在用户输入数据之前等待一段时间可以帮助我们避免不必要的错误和提高程序的稳定性。本文将介绍如何使用Python等待30秒在输入数据。 使用Python的time模块 Python的time模…

【强烈推荐】 十多款2023年必备国内外王炸级AI工具 (免费 精品 好用) 让你秒变神一样的装逼佬感受10倍生产力 (4) AI办公

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

SLAM实战项目(2) — ROS下运行ORB-SLAM2稠密地图重建

目录 1 运行步骤 (1) 创建工作空间 (2) 修改CmakeList.txt (3) 编译 (4) 下载bag文件 (4) 编写roslaunch文件 2 运行报错 报错1&#xff1a; 报错2&#xff1a; 报错3&#xff1a; 报错4&#xff1a; ROS学习文档&#xff1a;Introduction Autolabor-ROS机器人入门…

Bert模型精讲

1.Autoregressive语言模型与Autoencoder语言模型 1.1 语言模型概念介绍 Autoregressice语言模型&#xff1a;指的是依据前面(或后面)出现的单词来预测当前时刻的单词&#xff0c;代表有ElMo, GPT等。 Autoencoder语言模型&#xff1a;通过上下文信息来预测被mask的单词&…

Linux GCC,GDB,Shell脚本,Vim的简单使用

这里写目录标题 GCC命令GDB命令Shell脚本VIM指令 GCC命令 GCC&#xff08;GNU Compiler Collection&#xff0c;GNU编译器套件&#xff09;是由GNU开发的编程语言译器 编译一个简单的.c程序&#xff1a; 四步分开写&#xff1a; gcc -E -o hello.i hello.c // 预处理 gcc -…

chatgpt赋能python:Python怎么绕过登录爬取数据

Python怎么绕过登录爬取数据 在进行网站爬取时&#xff0c;经常会发现需要登录才能访问所需要的数据&#xff0c;这给我们的爬虫程序带来了一定的难度。本文就介绍一些Python绕过登录的方法&#xff0c;让你获取到所需的数据。 1. Session维持登录状态 当我们登录一个网站时…

运维实践 | 运维打工人必备 CentOS-Linux/Stream-8 服务器系统基础安装与配置实践...

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xf…