pytorch深度学习-机器视觉-目标检测和边界框简介
机器视觉之目标检测和边界框简介
在图像分类任务里,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别。然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(object detection)或物体检测。
目标检测在多个领域中被广泛使用。例如,在无人驾驶里,我们需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人也常通过该任务来检测感兴趣的目标。安防领域则需要检测异常目标,如歹徒或者炸弹。
在接下来的几节里,我们将介绍目标检测里的多个深度学习模型。在此之前,让我们来了解目标位置这个概念。先导入实验所需的包或模块。
%matplotlib inline
from PIL import Image
from matplotlib import pyplot as plt
下面加载本节将使用的示例图像。可以看到图像左边是一只狗,右边是一只猫。它们是这张图像里的两个主要目标。
边界框
在目标检测里,我们通常使用边界框(bounding box)来描述目标位置。边界框是一个矩形框,可以由矩形左上角的xxx和yyy轴坐标与右下角的xxx和yyy轴坐标确定。我们根据上面的图的坐标信息来定义图中狗和猫的边界框。图中的坐标原点在图像的左上角,原点往右和往下分别为xxx轴和yyy轴的正方向。
# bbox是bounding box的缩写
dog_bbox, cat_bbox = [60, 45, 378, 516], [400, 112, 655, 493]
我们可以在图中将边界框画出来,以检查其是否准确。画之前,我们定义一个辅助函数bbox_to_rect。它将边界框表示成matplotlib的边界框格式。
def bbox_to_rect(bbox, color): # 将边界框(左上x, 左上y, 右下x, 右下y)格式转换成matplotlib格式:# ((左上x, 左上y), 宽, 高)return plt.Rectangle(xy=(bbox[0], bbox[1]), width=bbox[2]-bbox[0], height=bbox[3]-bbox[1],fill=False, edgecolor=color, linewidth=2)
我们将边界框加载在图像上,可以看到目标的主要轮廓基本在框内。
fig = plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'));
在目标检测里不仅需要找出图像里面所有感兴趣的目标,而且要知道它们的位置。位置一般由矩形边界框来表示。
pytorch深度学习-机器视觉-目标检测和边界框简介相关推荐
- PyTorch实现 | 车牌OCR识别,《PyTorch深度学习之目标检测》
注:本文选自中国水利水电出版社出版<PyTorch深度学习之目标检测>一书,有改动 福利!免费寄送图书!! 公众号[机器学习与AI生成创作]后台回复:168.即可参与免费寄送图书活动,活动 ...
- 动手学深度学习 - 9.3. 目标检测和边界框
动手学深度学习 - 9.3. 目标检测和边界框 动手学深度学习 - Dive into Deep Learning Aston Zhang, Zachary C. Lipton, Mu Li, and ...
- 综述 | 基于深度学习的目标检测算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...
- 基于深度学习的目标检测算法综述(从R-CNN到Mask R-CNN)
深度学习目标检测模型全面综述:Faster R-CNN.R-FCN和SSD 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述 ...
- 基于深度学习的目标检测算法综述(一)
基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文内容原创,作者:美图云视觉技术部 检测团队,转载请注明出处 目标检测(Object ...
- 中科院陈智能:计算机视觉经典——深度学习与目标检测
不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...
- 深度学习之目标检测(五)-- RetinaNet网络结构详解
深度学习之目标检测(五)-- RetinaNet网络结构详解 深度学习之目标检测(五)RetinaNet网络结构详解 1. RetinaNet 1.1 backbone 部分 1.2 预测器部分 1. ...
- 基于深度学习的目标检测综述(单阶段、多阶段、FPN变体、旋转目标检测等)
随着深度学习的发展,基于深度学习的目标检测方法因其优异的性能已经得到广泛的使用.目前经典的目标检测方法主要包括单阶段(YOLO.SSD.RetinaNet,还有基于关键点的检测方法等)和多阶段方法(F ...
- 动手学深度学习之目标检测基础
参考伯禹学习平台<动手学深度学习>课程内容内容撰写的学习笔记 原文链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/less ...
最新文章
- asp.net各种类型视频播放代码(全)(转)
- Linux中包的管理与程序安装
- MySQL分组查询的介绍
- win10隐藏linux,Win10如何隐藏Windows Defender任务栏图标
- android obd编程,Android蓝牙连接汽车OBD设备
- yarn在vscode里启动报错
- 学习使用常用的windbg命令(u、dt、ln、x)
- poj 1287 Networking prim最小生成树 基础!!!
- js 一个关于图片onload加载的事
- 暗黑系博客主题,欢迎访问与魔改,博客网站有搭建教程
- opensuse安装搜狗输入法
- C语言数字图像处理---3.3图像锐化
- EasyAR涂涂乐代码分析
- 携手共进 智享未来丨美格智能2023年代理商合作伙伴大会成功举办
- 不改一行代码!快速迁移 Flask 应用上云
- windows重装系统步骤及相关知识①
- 你必须得知道的人工智能领域的大师与大事
- 企业信用等级AAA认证 山东企业信用3A认证办理费用周期
- JetBrains学生账号的申请
- python做系统辨识_python实现一般最小二乘系统辨识方法
热门文章
- 电子计算机空调,电子计算机机房空调的设计规范
- [前台]---js中方法的强制返回和java中方法的强制返回
- 湖南工程学院+c语言程序设计人事档案管理系统,程序设计人事档案管理系统.doc...
- php中arraymultisort,php 数组函数array_multisort()用法
- 笨方法python_笨方法学习Python(11-20)
- mysql日期纬度表_mysql中生成时间维度表
- 电大计算机网考上机操作题,电大计算机上机考试模拟题及答案 (1)
- int转unsigned int_谢劲课题组在基于锰催化的转金属化基元反应取得系列进展
- 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)
- HTML列表内容自动排序,JS实现HTML表格排序功能