深度学习之——目标检测基础

目标检测基础主要包括四方面。

1.边界框

边界框是正好能够包含物体的矩形框。

检测任务需要同时预测物体的类别和位置,通常使用边界框来表示物体的位置。

通常有两种边界框:

1:xyxy,(x1,y1,x2,y2),用两个点坐标来表示矩形框的位置,(x1,y1)表示矩形的左上角坐标,(x2,y2)表示右下角坐标。

2:xywh,(x,y,w,h),用一个中心点以及矩形框的宽度与高度来表示(x,y)表示矩形框的中心点坐标,w,h则分别表示矩形框的宽度与高度。

2.锚框

锚框是用于生成候选区域的一种技术。锚框通过先设定好大小和形状,预定义一些矩形框,分布在图像的不同位置和不同尺度上,通过锚框与图像中的实际目标进行匹配得到一系列的候选区域。

  1. def draw_rectangle(currentAxis, bbox, edgecolor = 'k', facecolor = 'y', fill=False, linestyle='-'):  
  2.     # currentAxis,坐标轴,通过plt.gca()获取  
  3.     # bbox,边界框,包含四个数值的list, [x1, y1, x2, y2]  
  4.     # edgecolor,边框线条颜色  
  5.     # facecolor,填充颜色  
  6.     # fill, 是否填充  
  7.     # linestype,边框线型  
  8.     # patches.Rectangle需要传入左上角坐标、矩形区域的宽度、高度等参数  
  9.     rect=patches.Rectangle((bbox[0], bbox[1]), bbox[2]-bbox[0]+1, bbox[3]-bbox[1]+1, linewidth=1,  
  10.                            edgecolor=edgecolor,facecolor=facecolor,fill=fill, linestyle=linestyle)  
  11.     currentAxis.add_patch(rect)  

首先是定义了一个函数draw_rectangle,用于绘制矩形框,该函数通过接受一个坐标轴对象currentAxis,边界框坐标数组bbox,以及边框线条颜色edgecolor、填充颜色facecolor等参数。函数内部使用了patches.Rectangle函数创建矩形对象,并将其添加到坐标轴中。

  1. # 使用xyxy格式表示物体真实框  
  2. bbox1 = [214.29, 325.03, 399.82, 631.37]  
  3. bbox2 = [40.93, 141.1, 226.99, 515.73]  
  4. bbox3 = [247.2, 131.62, 480.0, 639.32]  
  5.   
  6. currentAxis=plt.gca()  
  7.   
  8. draw_rectangle(currentAxis, bbox1, edgecolor='r')  
  9. draw_rectangle(currentAxis, bbox2, edgecolor='r')  
  10. draw_rectangle(currentAxis, bbox3,edgecolor='r')  

接着是绘制物体真实框的代码,分别定义了三个边界框的坐标数组bbox1,bbox2,bbox3。在获取当前坐标轴对象后,分别调用draw_rectangle函数在照片上绘制了三个矩形框,表示物体的真实框。

  1. def draw_anchor_box(center, length, scales, ratios, img_height, img_width):  
  2.     """ 
  3.     以center为中心,产生一系列锚框 
  4.     其中length指定了一个基准的长度 
  5.     scales是包含多种尺寸比例的list 
  6.     ratios是包含多种长宽比的list 
  7.     img_height和img_width是图片的尺寸,生成的锚框范围不能超出图片尺寸之外 
  8.     """  
  9.     bboxes = []  
  10.     
  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值