最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 實現(xiàn)非極大值抑制算法(Non-maximum suppression, NMS)

 更新時間:2020年10月15日 09:59:19   作者:農(nóng)大魯迅  
這篇文章主要介紹了python 如何實現(xiàn)非極大值抑制算法(Non-maximum suppression, NMS),幫助大家更好的進(jìn)行機(jī)器學(xué)習(xí),感興趣的朋友可以了解下

NMS 算法在目標(biāo)檢測,目標(biāo)定位領(lǐng)域有較廣泛的應(yīng)用。

算法原理

非極大值抑制算法(Non-maximum suppression, NMS)的本質(zhì)是搜索局部極大值,抑制非極大值元素。

算法的作用

當(dāng)算法對一個目標(biāo)產(chǎn)生了多個候選框的時候,選擇 score 最高的框,并抑制其他對于改目標(biāo)的候選框

適用場景

一幅圖中有多個目標(biāo)(如果只有一個目標(biāo),那么直接取 score 最高的候選框即可)。

算法的輸入

算法對一幅圖產(chǎn)生的所有的候選框,以及每個框?qū)?yīng)的 score (可以用一個 5 維數(shù)組 dets 表示,前 4 維表示四個角的坐標(biāo),第 5 維表示分?jǐn)?shù)),閾值 thresh

算法的輸出

正確的候選框組(dets 的一個子集)。

細(xì)節(jié)

  • 起始,設(shè)所有的框都沒有被抑制,所有框按照 score 從大到小排序。
  • 從第 0 個框(分?jǐn)?shù)最高)開始遍歷:對于每一個框,如果該框沒有被抑制,就將所有與它 IoU 大于 thresh 的框設(shè)為抑制。
  • 返回沒被抑制的框。

參考代碼

# --------------------------------------------------------
# Fast R-CNN
# Copyright (c) 2015 Microsoft
# Licensed under The MIT License [see LICENSE for details]
# Written by Ross Girshick
# --------------------------------------------------------

import numpy as np
cimport numpy as np

cdef inline np.float32_t max(np.float32_t a, np.float32_t b):
  return a if a >= b else b

cdef inline np.float32_t min(np.float32_t a, np.float32_t b):
  return a if a <= b else b

def cpu_nms(np.ndarray[np.float32_t, ndim=2] dets, np.float thresh):
  cdef np.ndarray[np.float32_t, ndim=1] x1 = dets[:, 0]
  cdef np.ndarray[np.float32_t, ndim=1] y1 = dets[:, 1]
  cdef np.ndarray[np.float32_t, ndim=1] x2 = dets[:, 2]
  cdef np.ndarray[np.float32_t, ndim=1] y2 = dets[:, 3]
  cdef np.ndarray[np.float32_t, ndim=1] scores = dets[:, 4]

  cdef np.ndarray[np.float32_t, ndim=1] areas = (x2 - x1 + 1) * (y2 - y1 + 1)
  cdef np.ndarray[np.int_t, ndim=1] order = scores.argsort()[::-1]

  cdef int ndets = dets.shape[0]
  cdef np.ndarray[np.int_t, ndim=1] suppressed = \
      np.zeros((ndets), dtype=np.int)

  # nominal indices
  cdef int _i, _j
  # sorted indices
  cdef int i, j
  # temp variables for box i's (the box currently under consideration)
  cdef np.float32_t ix1, iy1, ix2, iy2, iarea
  # variables for computing overlap with box j (lower scoring box)
  cdef np.float32_t xx1, yy1, xx2, yy2
  cdef np.float32_t w, h
  cdef np.float32_t inter, ovr

  keep = []
  for _i in range(ndets):
    i = order[_i]
    if suppressed[i] == 1:
      continue
    keep.append(i)
    ix1 = x1[i]
    iy1 = y1[i]
    ix2 = x2[i]
    iy2 = y2[i]
    iarea = areas[i]
    for _j in range(_i + 1, ndets):
      j = order[_j]
      if suppressed[j] == 1:
        continue
      xx1 = max(ix1, x1[j])
      yy1 = max(iy1, y1[j])
      xx2 = min(ix2, x2[j])
      yy2 = min(iy2, y2[j])
      w = max(0.0, xx2 - xx1 + 1)
      h = max(0.0, yy2 - yy1 + 1)
      inter = w * h
      ovr = inter / (iarea + areas[j] - inter)
      if ovr >= thresh:
        suppressed[j] = 1

  return keep

以上就是python 實現(xiàn)非極大值抑制算法(Non-maximum suppression, NMS)的詳細(xì)內(nèi)容,更多關(guān)于python 非極大值抑制算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文教會你用Python3獲取網(wǎng)頁源代碼

    一文教會你用Python3獲取網(wǎng)頁源代碼

    學(xué)了python后,之前一些我們常用的方法,也可以換一種思路用python中的知識來解決,下面這篇文章主要給大家介紹了關(guān)于如何使用Python3獲取網(wǎng)頁源代碼的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 如何基于Django實現(xiàn)上下文章跳轉(zhuǎn)

    如何基于Django實現(xiàn)上下文章跳轉(zhuǎn)

    這篇文章主要介紹了如何基于Django實現(xiàn)上下文章跳轉(zhuǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 淺談Django前端后端值傳遞問題

    淺談Django前端后端值傳遞問題

    這篇文章主要介紹了淺談Django前端后端值傳遞問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python實現(xiàn)ssh及sftp功能(實例代碼)

    python實現(xiàn)ssh及sftp功能(實例代碼)

    這篇文章主要介紹了python實現(xiàn)ssh及sftp功能 ,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • python 處理telnet返回的More,以及get想要的那個參數(shù)方法

    python 處理telnet返回的More,以及get想要的那個參數(shù)方法

    今天小編就為大家分享一篇python 處理telnet返回的More,以及get想要的那個參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python?特殊屬性及方法詳細(xì)解析

    python?特殊屬性及方法詳細(xì)解析

    這篇文章主要介紹了python?特殊屬性及方法詳細(xì)解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Python安裝官方whl包和tar.gz包的方法(推薦)

    Python安裝官方whl包和tar.gz包的方法(推薦)

    下面小編就為大家?guī)硪黄狿ython安裝官方whl包和tar.gz包的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python入門基本操作列表排序用法詳解

    Python入門基本操作列表排序用法詳解

    本篇文中主要介紹列表的基本的組成,怎么訪問列表、列表的切片、列表的排序、列表的添加、列表的刪除等內(nèi)容,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python機(jī)器學(xué)習(xí)k-近鄰算法(K Nearest Neighbor)實例詳解

    Python機(jī)器學(xué)習(xí)k-近鄰算法(K Nearest Neighbor)實例詳解

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)k-近鄰算法(K Nearest Neighbor),結(jié)合實例形式分析了k-近鄰算法的原理、操作步驟、相關(guān)實現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-06-06
  • Django模板中變量的運(yùn)算實現(xiàn)

    Django模板中變量的運(yùn)算實現(xiàn)

    這篇文章主要介紹了Django模板中變量的運(yùn)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

文安县| 扎鲁特旗| 东辽县| 博兴县| 兰考县| 察隅县| 凤山县| 尼玛县| 汶上县| 宁都县| 和田市| 东明县| 九龙城区| 慈利县| 石柱| 巴中市| 沁水县| 武城县| 疏勒县| 长岭县| 临湘市| 边坝县| 精河县| 黄大仙区| 通州区| 桐庐县| 五莲县| 福建省| 原阳县| 长春市| 潍坊市| 彭泽县| 汤阴县| 洪洞县| 阿拉善左旗| 开鲁县| 会宁县| 西藏| 甘德县| 江达县| 临湘市|