日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python矩形语句_浅谈Python3实现两个矩形的交并比(IoU)

發布時間:2024/9/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python矩形语句_浅谈Python3实现两个矩形的交并比(IoU) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

因為最近剛好被問到這個問題,但是自己當時特別懵逼,導致沒有做出來。所以下來后自己Google了很多IoU的博客,但是很多博客要么過于簡略,要么是互相轉載的,有一些博客圖和代碼還有點問題,也導致自己這個萌新走了不少彎路。所以自己重新整理了看的博客,力求以更簡單的方式展現這個問題的解答辦法,方便日后自己回顧。如果朋友們覺得寫的有問題的地方,非常歡迎大家在下面留言交流,避免因為我的問題導致讀者走彎路。

二、交并比的概念及應用

假設平面坐標中有一個矩形,并且這個矩形的長和寬均分別與x軸和y軸平行。

那么矩形在平面坐標中的唯一位置可以通過對角線上的兩個頂點坐標來確定(這里不做證明)。

如下圖所示:這個矩形的唯一位置可以用左上和右下的頂點坐標,即:(xmin, ymax, xmax, ymin)來確定,也可以用左下和右上頂點坐標,即(xmin, ymin, xmax, ymax)來確定。

接下來說一下自己踩的坑:網上的大部分博客,圖是標的是左上和右下的頂點坐標,但是代碼清一色是通過左下和右上頂點坐標來確定矩形位置的。所以一開始看著特別暈圈。

理論上兩種確定方式都可以,不過相對而言,通過左下和右上兩個頂點坐標,即(xmin, ymin, xmax, ymax)來確定矩形位置更符合我們的習慣,我想這也是網上大部分代碼都是這樣的原因吧。

矩形的面積很好求,長X寬就行:

矩形的面積 = (xmax -xmin) X (ymax - ymin)

好了,理清楚怎么確定矩形的位置后,接下來我們就來解決交并比的計算問題。

交并比(Intersection over Union, IoU)是目標檢測任務中的一個非常重要的概念。它是產生的預測框(Predicted bounding box)與原標記框(Ground-truth bounding box)的交疊率,即它們的交集(相交面積)與并集(總面積)的比值。最理想情況是完全重疊,即比值為1。一般來說,這個score > 0.5 就可以被認為是一個不錯的結果。這個標準用于測量真實和預測之間的相關度,相關度越高,該值越高,它可以評估算法的準確度。

假設平面坐標中有兩個矩形:原標記框(Ground-truth bounding box, G)和預測框(Predicted bounding box, P),其中G為手動標記的框,P為算法預測的框,并且這兩個矩形的長和寬均分別與x軸和y軸平行。如下圖所示:

IoU計算公式:

所以有:矩形G(gxmin, gymin, gxmax, gymax)和矩形P(pxmin, pymin, pxmax, pymax)

求交并比的關鍵是求出相交矩形G∩P的面積。

解決這個問題,我們只要確定相交矩形的左下(xmin, ymin)和右上(xmax, ymax)頂點坐標即可,即確定(xmin, ymin, xmax, ymax)。

通過看圖,我們可以清楚的觀察到:

?

如果一下沒有看明白,可以自己在紙上多畫畫,理解下。

得到了相交矩形的坐標(xmin, ymin, xmax, ymax)那么相交矩形的面積就非常簡單了。

area(G∩P) = 長 X 寬

w = xmax - xmin # 計算相交矩形的長

h = ymax - ymin # 計算相交矩形的寬

area(G∩P) = w X h # 計算相交矩形的面積

這里還有最后一個問題,當計算得到的寬或者長為0或者負數時,說明兩個矩形不相交,相交面積為0,那么最后的IoU就為0。這里我們有兩種處理方式:

1. 用if語句來分類討論:

?

2. 用max()方法來處理:

?

三、Python3 實現代碼

經過以上分析,思路應該已經非常清晰了,這里我就直接放出完整Python3代碼。

?

這里也放一下通過左上和右下頂點坐標來確定矩形的位置的Python3代碼。原理是一樣的,不要弄混就好。

?

以上這篇淺談Python3實現兩個矩形的交并比(IoU)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_27283619/article/details/92616159

總結

以上是生活随笔為你收集整理的python矩形语句_浅谈Python3实现两个矩形的交并比(IoU)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。