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

目标检测基础之IOU计算

目标检测基础之IOU计算

  • 概念理解——什么是IOU
  • demo
  • 后记

概念理解——什么是IOU

IOU 交并比(Intersection over Union),从字面上很容易理解:计算交集在并集的比重。从网上截张图看看
在这里插入图片描述
IOU=A∩BA∪BIOU = \frac{A \cap B}{A \cup B} IOU=ABAB

demo

在这里插入图片描述

import cv2
import matplotlib.pyplot as pltdef draw_box(img, box,color):x,y,x1,y1 = boxcv2.rectangle(img, (x,y), (x1, y1), color, 2)# (x,y)左上顶点,(x1,y1)右下顶点return imgdef iou(bbox1, bbox2):"""计算两个矩形的交并比"""bbox1 = [float(x) for x in bbox1]bbox2 = [float(x) for x in bbox2](x0_1, y0_1, x1_1, y1_1) = bbox1(x0_2, y0_2, x1_2, y1_2) = bbox2# get the overlap rectangleoverlap_x0 = max(x0_1, x0_2)overlap_y0 = max(y0_1, y0_2)overlap_x1 = min(x1_1, x1_2)overlap_y1 = min(y1_1, y1_2)# check if there is an overlapif overlap_x1 - overlap_x0 <= 0 or overlap_y1 - overlap_y0 <= 0:return 0# if yes, calculate the ratio of the overlap to each ROI size and the unified sizesize_1 = (x1_1 - x0_1) * (y1_1 - y0_1)size_2 = (x1_2 - x0_2) * (y1_2 - y0_2)size_intersection = (overlap_x1 - overlap_x0) * (overlap_y1 - overlap_y0)size_union = size_1 + size_2 - size_intersectionreturn size_intersection / (size_union+1e-6)if __name__ == "__main__":img_path = "test.png"img = cv2.imread(img_path)img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)plt.imshow(img)plt.show()person_box_1 = [375, 169, 785, 586]person_box_2 = [320, 269, 833, 460]img = draw_box(img, person_box_1,(0,0,255))img = draw_box(img, person_box_2,(0,255,0))iou_result = iou(person_box_1, person_box_2)print(f"The result of IOU is :{iou_result}")cv2.imwrite("result.jpg", img)plt.imshow(img)plt.title(f"IOU:{iou_result}")plt.show()

后记

最近在研究segment anything,后面会不定期更新与目标检测和图像分割的相关东西!

http://www.lryc.cn/news/59134.html

相关文章:

  • 从spring boot泄露到接管云服务器平台
  • 大数据技术——spark集群搭建
  • 嵌入式学习笔记汇总
  • Python 全栈系列220 Tornado的服务搭建
  • ESXi安装CentOS
  • WebTest搭建
  • 什么性格的人适合报考机械类专业?(高考志愿填报选专业)
  • 进程概念详解
  • C语言基础——指针
  • 反序列化渗透与攻防(二)之Java反序列化漏洞
  • 优先级队列的模拟实现(仿函数)
  • Python pandas和numpy用法参考(转)
  • mysql数据库的在线数据备份与数据恢复
  • Vue3自定义指令之前端水印功能实现
  • 文章生成器写出来的原创文章
  • 2023年全国最新高校辅导员精选真题及答案49
  • 【STL十】关联容器——set容器、multiset容器
  • 什么是Node.js
  • 比GPT-4 Office还炸裂,阿里版GPT全家桶来袭
  • mysql 建表约束
  • 在Vue项目中使用tinymce富文本编辑器
  • GPT-4 和ChatGPT API的定价分析
  • 基于html+css的盒子展示2
  • 【持续更新篇】SLAM视觉特征点汇总+ORB特征点+VINS前端
  • 【C语言】初阶指针(指针及其类型以及野指针)
  • UDS统一诊断服务【六】访问时序参数0X83服务
  • Linux应用编程(文件属性与目录)
  • 第十四届蓝桥杯嵌入式详解
  • 新建论文三线表模板,一键格式刷
  • 攻防世界-web2(逆向加密算法)