当前位置:网站首页>Interpretation of deepsort source code (II)
Interpretation of deepsort source code (II)
2022-07-27 07:02:00 【Delin enbao】
Catalog
deepsort Principle and analysis summary
iou_matching.py
# vim: expandtab:ts=4:sw=4
from __future__ import absolute_import
import numpy as np
from . import linear_assignment
def iou(bbox, candidates):
"""Computer intersection over union.
Parameters
----------
bbox : ndarray
A bounding box in format `(top left x, top left y, width, height)`.
candidates : ndarray
A matrix of candidate bounding boxes (one per row) in the same format
as `bbox`.
Returns
-------
ndarray
The intersection over union in [0, 1] between the `bbox` and each
candidate. A higher score means a larger fraction of the `bbox` is
occluded by the candidate.
"""
bbox_tl, bbox_br = bbox[:2], bbox[:2] + bbox[2:]
candidates_tl = candidates[:, :2]
candidates_br = candidates[:, :2] + candidates[:, 2:]
tl = np.c_[np.maximum(bbox_tl[0], candidates_tl[:, 0])[:, np.newaxis],
np.maximum(bbox_tl[1], candidates_tl[:, 1])[:, np.newaxis]]
br = np.c_[np.minimum(bbox_br[0], candidates_br[:, 0])[:, np.newaxis],
np.minimum(bbox_br[1], candidates_br[:, 1])[:, np.newaxis]]
wh = np.maximum(0., br - tl)
area_intersection = wh.prod(axis=1)
area_bbox = bbox[2:].prod()
area_candidates = candidates[:, 2:].prod(axis=1)
return area_intersection / (area_bbox + area_candidates - area_intersection)
def iou_cost(tracks, detections, track_indices=None,
detection_indices=None):
"""An intersection over union distance metric.
Parameters
----------
tracks : List[deep_sort.track.Track]
A list of tracks.
detections : List[deep_sort.detection.Detection]
A list of detections.
track_indices : Optional[List[int]]
A list of indices to tracks that should be matched. Defaults to
all `tracks`.
detection_indices : Optional[List[int]]
A list of indices to detections that should be matched. Defaults
to all `detections`.
Returns
-------
ndarray
Returns a cost matrix of shape
len(track_indices), len(detection_indices) where entry (i, j) is
`1 - iou(tracks[track_indices[i]], detections[detection_indices[j]])`.
"""
if track_indices is None:
track_indices = np.arange(len(tracks))
if detection_indices is None:
detection_indices = np.arange(len(detections))
cost_matrix = np.zeros((len(track_indices), len(detection_indices)))
for row, track_idx in enumerate(track_indices):
# take time_since_update=1 Of track Assign infinite cost
if tracks[track_idx].time_since_update > 1:
cost_matrix[row, :] = linear_assignment.INFTY_COST
continue
bbox = tracks[track_idx].to_tlwh()
candidates = np.asarray([detections[i].tlwh for i in detection_indices])
# Calculation track With all the unmatched_detections Of iou cost
cost_matrix[row, :] = 1. - iou(bbox, candidates)
return cost_matrix
边栏推荐
- 基于SSM学生学籍管理系统
- Significance of NVIDIA SMI parameters
- CdS quantum dots modified DNA | CDs DNA QDs | near infrared CdS quantum dots coupled DNA specification information
- Inventory of the world's six most technologically competent smart contract audit companies in 2022
- newest! SASAC releases new measures for digital transformation of state-owned enterprises
- ES6 new features (getting started)
- 脱氧核糖核酸DNA改性近红外二区砷化镓GaAs量子点|GaAs-DNA QDs|DNA修饰GaAs量子点
- DataScience:数据生成之在原始数据上添加小量噪声(可自定义噪声)进而实现构造新数据(dataframe格式数据存储案例)
- MangoDB
- 聊聊大火的多模态
猜你喜欢

newest! SASAC releases new measures for digital transformation of state-owned enterprises

Introduction to the official functions of easyrecovery14 data recovery software

C语言怎么学?这篇文章给你完整答案

Future, futuretask and completable future are often asked in interviews

Linux Installation and uninstallation of MySQL

Keras OCR instance test

Express框架

vscode运行命令报错:标记“&&”不是此版本中的有效语句分隔符。

正则表达式

How to avoid loopholes? Sunflower remote explains the safe use methods in different scenarios
随机推荐
Build cloud native operating environment
Sunflower popularizes Science in an all-round way to avoid loopholes for your remote control equipment in time
Why can cross entropy loss be used to characterize loss
How to make the minimum API bind the array in the query string
Px4 source code compilation to establish its own program module
Variance and covariance
deepsort源码解读(二)
deepsort源码解读(五)
Numpy array and image conversion
MangoDB
PNA modified polypeptide arms PNA PNA DNA suc aapf PNA suc - (ALA) 3 PNA
Boostrap
AI: play games in your spare time - earn it a small goal - [Alibaba security × ICDM 2022] large scale e-commerce map of risk commodity inspection competition
DNA(脱氧核糖核酸)供应|碳纳米管载核酸-DNA/RNA材料|DNA/RNA核酸修饰磁性纳米颗粒
Go language learning
TS学习(八) :TS中的类
Li Hongyi 2020 deep learning and human language processing dlhlp core resolution-p21
Many of the world's top 500 enterprises gathered at the second digital Expo, and the digital industry curtain is about to open!
ZnS DNA QDs near infrared zinc sulfide ZnS quantum dots modified deoxyribonucleic acid dna|dna modified ZnS quantum dots
DNA科研实验应用|环糊精修饰核酸CD-RNA/DNA|环糊精核酸探针/量子点核酸探针