当前位置: 首页 > wzjs >正文

杭州电商网站开发wap版网站建设方案

杭州电商网站开发,wap版网站建设方案,已经有网站域名如何做网页,医院网站和公众号建设方案一、引言 在目标检测任务中,边界框(Bounding Box)的坐标表示与转换是核心基础操作。本文将演示如何: 实现边界框的两种表示形式(角点坐标 vs 中心坐标)之间的转换 使用Matplotlib在图像上可视化边界框 验…

一、引言

在目标检测任务中,边界框(Bounding Box)的坐标表示与转换是核心基础操作。本文将演示如何:

  1. 实现边界框的两种表示形式(角点坐标 vs 中心坐标)之间的转换

  2. 使用Matplotlib在图像上可视化边界框

  3. 验证坐标转换的正确性


二、环境准备

import torch
from d2l import torch as d2l
  • PyTorch 1.12+

  • d2l 0.17.0+

  • Matplotlib 3.5+

三、代码实现与解析

1. 图像加载与显示

d2l.set_figsize()  # 设置画布大小
img = d2l.plt.imread('./data/catdog.jpg')  # 读取图像
d2l.plt.imshow(img)  # 显示图像

2. 坐标转换函数

角点坐标 → 中心坐标
def box_corner_to_center(boxes):x1, y1, x2, y2 = boxes[:,0], boxes[:,1], boxes[:,2], boxes[:,3]cx = (x1 + x2) / 2  # 中心x坐标cy = (y1 + y2) / 2  # 中心y坐标w = x2 - x1         # 宽度h = y2 - y1         # 高度return torch.stack((cx, cy, w, h), axis=-1)
中心坐标 → 角点坐标
def box_center_to_corner(boxes):cx, cy, w, h = boxes[:,0], boxes[:,1], boxes[:,2], boxes[:,3]x1 = cx - w/2  # 左上角xy1 = cy - h/2  # 左上角yx2 = cx + w/2  # 右下角xy2 = cy + h/2  # 右下角yreturn torch.stack((x1, y1, x2, y2), axis=-1)

3. 转换验证

dog_bbox = [10.0, 50.0, 80.0, 110.0]  # 狗的边界框(左上x,左上y,右下x,右下y)
cat_bbox = [90.0, 40.0, 160.0, 110.0] # 猫的边界框
boxes = torch.tensor([dog_bbox, cat_bbox])# 验证转换的正确性
print(box_center_to_corner(box_corner_to_center(boxes)) == boxes)

输出结果

tensor([[True, True, True, True],[True, True, True, True]])

4. 边界框可视化

def bbox_to_rect(bbox, color):return d2l.plt.Rectangle(xy=(bbox[0], bbox[1]),  # 左上角坐标width=bbox[2]-bbox[0],  # 宽度height=bbox[3]-bbox[1], # 高度fill=False, edgecolor=color, linewidth=2)fig = d2l.plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))  # 添加蓝色狗框
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'))   # 添加红色猫框

可视化效果

  • X轴范围:0-150

  • Y轴范围:0-125

  • 蓝色矩形框标注狗的位置

  • 红色矩形框标注猫的位置


四、完整代码

import torch
from d2l import torch as d2l# 设置画布并加载图像
d2l.set_figsize()
img = d2l.plt.imread('./data/catdog.jpg')
d2l.plt.imshow(img)# 坐标转换函数
def box_corner_to_center(boxes):x1, y1, x2, y2 = boxes[:,0], boxes[:,1], boxes[:,2], boxes[:,3]cx, cy = (x1+x2)/2, (y1+y2)/2w, h = x2-x1, y2-y1return torch.stack((cx, cy, w, h), axis=-1)def box_center_to_corner(boxes):cx, cy, w, h = boxes[:,0], boxes[:,1], boxes[:,2], boxes[:,3]x1, y1 = cx-w/2, cy-h/2x2, y2 = cx+w/2, cy+h/2return torch.stack((x1, y1, x2, y2), axis=-1)# 定义边界框并验证转换
dog_bbox, cat_bbox = [10.0,50.0,80.0,110.0], [90.0,40.0,160.0,110.0]
boxes = torch.tensor([dog_bbox, cat_bbox])
print(box_center_to_corner(box_corner_to_center(boxes)) == boxes)# 可视化边界框
def bbox_to_rect(bbox, color):return d2l.plt.Rectangle((bbox[0], bbox[1]), bbox[2]-bbox[0], bbox[3]-bbox[1], fill=False, edgecolor=color, linewidth=2)fig = d2l.plt.imshow(img)
fig.axes.add_patch(bbox_to_rect(dog_bbox, 'blue'))
fig.axes.add_patch(bbox_to_rect(cat_bbox, 'red'))

五、关键点解析

  1. 坐标表示形式

    • 角点表示:(左上x, 左上y, 右下x, 右下y)

    • 中心表示:(中心x, 中心y, 宽度, 高度)

  2. 转换验证

    • 通过两次转换后与原值对比,全True结果证明转换正确性

  3. 可视化技巧

    • 使用Matplotlib的Rectangle对象创建边界框

    • 通过add_patch方法将图形元素添加到坐标轴


六、总结

本文实现了目标检测中边界框的坐标转换与可视化,验证了:

  1. 两种坐标表示形式的等价性

  2. 边界框在图像上的准确定位

  3. 转换函数的正确性

该技术可应用于目标检测数据预处理、结果可视化等场景。读者可以尝试修改边界框坐标,观察不同位置的可视化效果。


实际运行效果示意图

(注:需自行准备包含猫狗的图像,保存为./data/catdog.jpg


文章转载自:

http://bSUbF41j.trwkz.cn
http://y1yyprPg.trwkz.cn
http://n8BhD3J0.trwkz.cn
http://dPm50OSt.trwkz.cn
http://4nWxGLe4.trwkz.cn
http://1lkbEaNZ.trwkz.cn
http://gh2bgjpS.trwkz.cn
http://XM85MbNe.trwkz.cn
http://oStUj9oS.trwkz.cn
http://Z31TUYKF.trwkz.cn
http://TyNRTgBY.trwkz.cn
http://GeaxXFEQ.trwkz.cn
http://qJCYHiT2.trwkz.cn
http://G4d7ZyIO.trwkz.cn
http://z1Omz38h.trwkz.cn
http://UgFDl3r1.trwkz.cn
http://DRyhBqoM.trwkz.cn
http://FRUAuV16.trwkz.cn
http://L31CmT0n.trwkz.cn
http://4UEHTVRr.trwkz.cn
http://wQr8W0qw.trwkz.cn
http://XzG4tANz.trwkz.cn
http://6930HAZE.trwkz.cn
http://CCRPhCYv.trwkz.cn
http://H44PR9NW.trwkz.cn
http://rYr33Tq4.trwkz.cn
http://aaeSgN6D.trwkz.cn
http://OLezP7Wx.trwkz.cn
http://LjB3FUpd.trwkz.cn
http://pUCbsBcc.trwkz.cn
http://www.dtcms.com/wzjs/640701.html

相关文章:

  • 北京手机网站设计公司中山网络推广公司
  • 如何建立自己的商城网站做网站都可以做什么
  • wordpress网站文章排版插件网站建设网站源码
  • 东莞技术支持 骏域网站建设网站建设分工方案
  • 乌克兰网站后缀网页制作教程哔哩
  • 婚庆公司网站模板织梦pt官网
  • 两栏式网站做国外网站赚钱
  • 西部数码 网站建设网站租用空间
  • 中国住房和城乡建设部招标网站公司网站模板下载
  • 淄博做淘宝网站酒店电子商务网站建设
  • 南通长城建设集团有限公司网站如何在云服务器上搭建网站
  • 手机设置管理网站三字广告公司名称
  • 网站空间的选择如何使用华为云虚拟主机建设网站
  • wamp 多网站WordPress是静态吗
  • 网站正在备案中4.1进行网站建设与推广
  • 山东网站建设网站设计广告一般用什么软件
  • 佛山市网站建设 乾图信息科技访问自己做的网站
  • 网站建设要花多少钱网站空间和虚拟主机
  • wordpress文章页不显示侧边郑州seo顾问外包
  • 重庆网站建设重庆网站制作出售自己的网站
  • 郑州建设企业网站找哪个公司网站程序如何制作
  • 普陀网站开发培训学校网站建设 投资合作
  • 商用网站开发计划书正规seo多少钱
  • 献县网站建设公司王也天演过的电视剧
  • 湘潭做网站价格咨询磐石网络从零开始建网站
  • 淘宝联盟自己做网站php网站权限设置
  • 东莞做网站 南城信科wordpress接入官方号
  • 视频网站 wordpress主题自己公司内网网站和外网怎么做同步
  • 网站怎么做图片动态图片不显示不出来的做网站应该了解什么软件
  • 腾讯专门做数据标注的网站是珠海网站建设优化推广