机器视觉之目标检测和边界框简介

在图像分类任务里,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别。然而,很多时候图像里有多个我们感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,我们将这类任务称为目标检测(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深度学习-机器视觉-目标检测和边界框简介相关推荐

  1. PyTorch实现 | 车牌OCR识别,《PyTorch深度学习之目标检测》

    注:本文选自中国水利水电出版社出版<PyTorch深度学习之目标检测>一书,有改动 福利!免费寄送图书!! 公众号[机器学习与AI生成创作]后台回复:168.即可参与免费寄送图书活动,活动 ...

  2. 动手学深度学习 - 9.3. 目标检测和边界框

    动手学深度学习 - 9.3. 目标检测和边界框 动手学深度学习 - Dive into Deep Learning Aston Zhang, Zachary C. Lipton, Mu Li, and ...

  3. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  4. 基于深度学习的目标检测算法综述(从R-CNN到Mask R-CNN)

    深度学习目标检测模型全面综述:Faster R-CNN.R-FCN和SSD 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述 ...

  5. 基于深度学习的目标检测算法综述(一)

    基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文内容原创,作者:美图云视觉技术部 检测团队,转载请注明出处 目标检测(Object ...

  6. 中科院陈智能:计算机视觉经典——深度学习与目标检测

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

  7. 深度学习之目标检测(五)-- RetinaNet网络结构详解

    深度学习之目标检测(五)-- RetinaNet网络结构详解 深度学习之目标检测(五)RetinaNet网络结构详解 1. RetinaNet 1.1 backbone 部分 1.2 预测器部分 1. ...

  8. 基于深度学习的目标检测综述(单阶段、多阶段、FPN变体、旋转目标检测等)

    随着深度学习的发展,基于深度学习的目标检测方法因其优异的性能已经得到广泛的使用.目前经典的目标检测方法主要包括单阶段(YOLO.SSD.RetinaNet,还有基于关键点的检测方法等)和多阶段方法(F ...

  9. 动手学深度学习之目标检测基础

    参考伯禹学习平台<动手学深度学习>课程内容内容撰写的学习笔记 原文链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/less ...

最新文章

  1. asp.net各种类型视频播放代码(全)(转)
  2. Linux中包的管理与程序安装
  3. MySQL分组查询的介绍
  4. win10隐藏linux,Win10如何隐藏Windows Defender任务栏图标
  5. android obd编程,Android蓝牙连接汽车OBD设备
  6. yarn在vscode里启动报错
  7. 学习使用常用的windbg命令(u、dt、ln、x)
  8. poj 1287 Networking prim最小生成树 基础!!!
  9. js 一个关于图片onload加载的事
  10. 暗黑系博客主题,欢迎访问与魔改,博客网站有搭建教程
  11. opensuse安装搜狗输入法
  12. C语言数字图像处理---3.3图像锐化
  13. EasyAR涂涂乐代码分析
  14. 携手共进 智享未来丨美格智能2023年代理商合作伙伴大会成功举办
  15. 不改一行代码!快速迁移 Flask 应用上云
  16. windows重装系统步骤及相关知识①
  17. 你必须得知道的人工智能领域的大师与大事
  18. 企业信用等级AAA认证 山东企业信用3A认证办理费用周期
  19. JetBrains学生账号的申请
  20. python做系统辨识_python实现一般最小二乘系统辨识方法

热门文章

  1. 电子计算机空调,电子计算机机房空调的设计规范
  2. [前台]---js中方法的强制返回和java中方法的强制返回
  3. 湖南工程学院+c语言程序设计人事档案管理系统,程序设计人事档案管理系统.doc...
  4. php中arraymultisort,php 数组函数array_multisort()用法
  5. 笨方法python_笨方法学习Python(11-20)
  6. mysql日期纬度表_mysql中生成时间维度表
  7. 电大计算机网考上机操作题,电大计算机上机考试模拟题及答案 (1)
  8. int转unsigned int_谢劲课题组在基于锰催化的转金属化基元反应取得系列进展
  9. 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)
  10. HTML列表内容自动排序,JS实现HTML表格排序功能