【已解决】matrix contains invalid numeric entries,记录bug修改

news2024/9/25 19:21:21

文章目录

  • 摘要
  • 原因
  • 解决办法
  • 图像分类网络
    • AlexNet
    • VGGNet
    • GooLeNet系列
    • ResNet
    • DenseNet
    • Swin Transformer
    • MAE
    • CoAtNet
    • ConvNeXtV1、V2
    • MobileNet系列
    • MPViT
    • VIT
    • SWA
    • EfficientNet系列
    • MOBILEVIT
    • EdgeViTs
    • MixConv
    • RepLKNet
    • TransFG
    • ConvMAE
    • MicroNet
    • RepVGG
    • MaxViT
    • MAFormer
    • GhostNet系列
    • DEiT系列
    • MetaFormer
    • RegNet
    • InternImage
    • FasterNet
  • 注意力机制
  • 物体检测
  • 行人属性识别
  • 行人跟踪
  • OCR
  • 超分辨采样
  • 弱光增强
    • RetinexNet
  • NLP
  • 多模态
  • 知识蒸馏
  • 剪枝
  • 智慧城市

摘要

在使用DeepSort做跟踪的时候,遇到了下面这个问题

matrix contains invalid numeric entries

出问题的代码如下:

def min_cost_matching(
        distance_metric, max_distance, tracks, detections, track_indices=None,
        detection_indices=None):
    if track_indices is None:
        track_indices = np.arange(len(tracks))
    if detection_indices is None:
        detection_indices = np.arange(len(detections))

    if len(detection_indices) == 0 or len(track_indices) == 0:
        return [], track_indices, detection_indices  # Nothing to match.
    for det in detections:
        print(det.tlwh,det.confidence)
    cost_matrix = distance_metric(
        tracks, detections, track_indices, detection_indices)
    print("distance_metric",cost_matrix)
    cost_matrix[cost_matrix > max_distance] = max_distance + 1e-5
    cost_matrix=np.nan_to_num(cost_matrix)
    row_indices, col_indices = linear_assignment(cost_matrix)

    matches, unmatched_tracks, unmatched_detections = [], [], []
    for col, detection_idx in enumerate(detection_indices):
        if col not in col_indices:
            unmatched_detections.append(detection_idx)
    for row, track_idx in enumerate(track_indices):
        if row not in row_indices:
            unmatched_tracks.append(track_idx)
    for row, col in zip(row_indices, col_indices):
        track_idx = track_indices[row]
        detection_idx = detection_indices[col]
        if cost_matrix[row, col] > max_distance:
            unmatched_tracks.append(track_idx)
            unmatched_detections.append(detection_idx)
        else:
            matches.append((track_idx, detection_idx))
    return matches, unmatched_tracks, unmatched_detections

由于代码来源开源代码,没有太多的注释,所以只能一步步的分析。
通过分析发现cost_matrix里包含nan
在这里插入图片描述

原因

经过初步分心是cost_matrix包含nan造成的,于是,将nan转为0,所以在代码上面加上,如下代码:

cost_matrix=np.nan_to_num(cost_matrix)

然而,为啥为nan呢?我们进一步查找,继续打印log分析,打印出detections

    for det in detections:
        print(det.tlwh,det.confidence)

发现,凡是出现nan的时候,两个检测框几乎重叠。所以,我们就锁定了bug的位置。在distance_metric中

cost_matrix = distance_metric(
        tracks, detections, track_indices, detection_indices)

这个函数是上层传入的,在tracker.py可以找到,如下图:
在这里插入图片描述
然后,我们就可以锁定iou_matching.iou_cost,继续打印log,发现iou(bbox, candidates)为nan。
所以就锁定iou函数有问题。
然后,进入iou继续找bug。发现area_intersection = wh.prod(axis=1),当出现nan的时候,area_intersection 为inf。
同时,打印wh,发现是整数数组,猜想应该溢出了。

解决办法

将数组转为float类型。代码如下:

    wh =np.maximum(0., br - tl).astype(float)
    area_intersection = wh.prod(axis=1)
    area_bbox = bbox[2:].astype(float).prod()
    area_candidates = candidates[:, 2:].astype(float).prod(axis=1)
    return area_intersection / (area_bbox + area_candidates - area_intersection)

图像分类网络

在这里插入图片描述

AlexNet

【第61篇】AlexNet:CNN开山之作

VGGNet

【第1篇】VGG

GooLeNet系列

【第2篇】GooLeNet

【第3篇】Inception V2

【第4篇】Inception V3

【第62篇】Inception-v4

ResNet

【第5篇】ResNet

DenseNet

【第10篇】DenseNet

Swin Transformer

【第16篇】Swin Transformer

【第49篇】Swin Transformer V2:扩展容量和分辨率

MAE

【第21篇】MAE(屏蔽自编码器是可扩展的视觉学习器)

CoAtNet

【第22篇】CoAtNet:将卷积和注意力结合到所有数据大小上

ConvNeXtV1、V2

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

【第64篇】ConvNeXt V2论文翻译:ConvNeXt V2与MAE激情碰撞

MobileNet系列

【第26篇】MobileNets:用于移动视觉应用的高效卷积神经网络

【第27篇】MobileNetV2:倒置残差和线性瓶颈

【第28篇】搜索 MobileNetV3

MPViT

【第29篇】MPViT:用于密集预测的多路径视觉转换器

VIT

【第30篇】Vision Transformer

SWA

【第32篇】SWA:平均权重导致更广泛的最优和更好的泛化

EfficientNet系列

【第34篇】 EfficientNetV2:更快、更小、更强——论文翻译

MOBILEVIT

【第35篇】MOBILEVIT:轻量、通用和适用移动设备的Vision Transformer

EdgeViTs

【第37篇】EdgeViTs: 在移动设备上使用Vision Transformers 的轻量级 CNN

MixConv

【第38篇】MixConv:混合深度卷积核

RepLKNet

【第39篇】RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计

TransFG

【第40篇】TransFG:用于细粒度识别的 Transformer 架构

ConvMAE

【第41篇】ConvMAE:Masked Convolution 遇到 Masked Autoencoders

MicroNet

【第42篇】MicroNet:以极低的 FLOP 实现图像识别

RepVGG

【第46篇】RepVGG :让卷积再次伟大

MaxViT

【第48篇】MaxViT:多轴视觉转换器

MAFormer

【第53篇】MAFormer: 基于多尺度注意融合的变压器网络视觉识别

GhostNet系列

【第56篇】GhostNet:廉价操作得到更多的特征

【第57篇】RepGhost:一个通过重新参数化实现硬件高效的Ghost模块

DEiT系列

【第58篇】DEiT:通过注意力训练数据高效的图像transformer &蒸馏

MetaFormer

【第59篇】MetaFormer实际上是你所需要的视觉

RegNet

【第60篇】RegNet:设计网络设计空间

InternImage

【第73篇】InternImage:探索具有可变形卷积的大规模视觉基础模型

FasterNet

【第74篇】 FasterNet:CVPR2023年最新的网络,基于部分卷积PConv,性能远超MobileNet,MobileVit

注意力机制

【第23篇】NAM:基于标准化的注意力模块

物体检测

【第6篇】SSD论文翻译和代码汇总

【第7篇】CenterNet

【第8篇】M2Det

【第9篇】YOLOX

【第11篇】微软发布的Dynamic Head,创造COCO新记录:60.6AP

【第12篇】Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

【第13篇】CenterNet2论文解析,COCO成绩最高56.4mAP

【第14篇】UMOP

【第15篇】CBNetV2

【第19篇 】SE-SSD论文翻译

【第24篇】YOLOR:多任务的统一网络

【第31篇】探索普通视觉Transformer Backbones用于物体检测

【第36篇】CenterNet++ 用于对象检测

【第45篇】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

行人属性识别

【第66篇】行人属性识别研究综述(一)

【第66篇】行人属性识别研究综述(二)

行人跟踪

【第47篇】BoT-SORT:强大的关联多行人跟踪

【第65篇】SMILEtrack:基于相似度学习的多目标跟踪

【第70篇】DeepSort:论文翻译

【第72篇】深度学习在视频多目标跟踪中的应用综述

OCR

【第20篇】像人类一样阅读:自主、双向和迭代语言 场景文本识别建模

【第44篇】DBNet:具有可微分二值化的实时场景文本检测

超分辨采样

【第33篇】SwinIR

弱光增强

RetinexNet

【第52篇】RetinexNet: Deep Retinex Decomposition for Low-Light Enhancement

【第50篇】迈向快速、灵活、稳健的微光图像增强

NLP

【第17篇】TextCNN

【第18篇】Bert论文翻译

多模态

【第43篇】CLIP:从自然语言监督中学习可迁移的视觉模型

知识蒸馏

【第54篇】知识蒸馏:Distilling the Knowledge in a Neural Network

剪枝

【第55篇】剪枝算法:通过网络瘦身学习高效卷积网络

【第71篇】DepGraph:适用任何结构的剪枝

智慧城市

【第51篇】用于交通预测的时空交互动态图卷积网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMOS图像传感器——三星ISOCELL HP2技术解析

在之前有写文章介绍三星在2022年技术日活动分享的包括图像传感器在内的各种系统相关技术的最新改进和未来愿景,可以回顾下看看。 三星ISOCELL——2022 改进与展望_沧海一升的博客-CSDN博客三星ISOCELL最新改进和未来发展趋势https://blog.csdn.net/qq_21842097/article/detai…

Stable Diffusion AI 绘画入门指南

Stable Diffusion AI 绘画入门指南 市面上用的最多的AI绘画工具是 Stable-Diffusion(SD) 和 Midjourney(Mid),SD是在本地运行的服务,开源,门槛高,但自控性极高。而Mid作为在线的服务…

Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)

初识Redis Redis为键值型数据库,数据以键值形式存储。没有表,没有约束。 认识NoSQL mysql就是典型的关系型数据库(SQL)。 目的都是数据的增删改查,但数据存储方式不一样。 关系型和非关系型在结构上有差异 关系型的结构一般定好后就很少修…

基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)基于 FFmpeg 的跨平台视频…

【unity小技巧】委托(Delegate)的基础使用和介绍

文章目录 一、前言1. 什么是委托?2. 使用委托的优点 二、举例说明1. 例12. 例2 三、案例四、泛型委托Action和Func1. Action委托2. Func委托 五、参考六、完结 一、前言 1. 什么是委托? 在Unity中,委托(Delegate)是一…

2FRE-10B-35-G24电比例调速阀控制器

2FRE-06B-20-G24、2FRE-10B-35-G24、2FRE-10B-50-G24、2FRE-16B-80-G24、2FRE-16B-115-G24、2FRE-16B-160-G24电比例调速阀,通过给定电信号,控制阀出口流量大小,并且采用压力补偿原理,保证输出流量大小不受负载压力影响维持恒定;该…

低代码平台实用吗?有哪些大型企业在用低代码?

一、目前正在使用低代码平台的企业有哪些? (例举一些各行业规模较大的企业) 制造行业:施耐德电气、吉利汽车、科大能通、伟星集团、远东控股、一汽大众、老板电器、双菱电梯、君乐宝。 建筑行业:中国交建、筑福集团…

【C++STL】“vector“用法 入门必备 超详细

vector用法 什么是vector?vector的使用vector的定义(构造函数)vector iterator 的使用迭代器演示范围for vector 空间增长扩容机制 vector 的增删查改assignvector 迭代器失效问题。 🍀小结🍀 🎉博客主页:小智_x0___0x…

关于将Leetcode上代码直接复制到自己环境中的问题

实例代码(不考虑代码的优劣性): 注:我用的是一个在线平台的编译器 Problem1 NameError:name ‘List’ is not defined 解决方法:添加下面代码: from typing import ListProblem2 TypeError…

Android Glide预加载preload ,kotlin

Android Glide预加载preload ,kotlin val imageView findViewById<ImageView>(R.id.image_view)Glide.with(this).asBitmap().load(image_file.path).signature(ObjectKey(image_file.path)).addListener(object : RequestListener<Bitmap> {override fun onLoadF…

抓取唯美图库(BeautifulSoup)

使用BeautifulSoup 1、拿到主页面的源代码&#xff0c;然后提取到子页面的简介地址&#xff0c;href 2、通过href拿到子页面的内容。从子页面中找到导图片的下载地址 img -> src 3、下载图片 import requests from bs4 import BeautifulSoupurlhttps://www.umei.cc/bizhi…

qt 闹钟实现

实现一个闹钟 自定义时间 按下开始后 开始计时&#xff0c;结束计时会播报语音 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QTimerEvent> #include <QDateTime> #include <QTime> #include …

【Leetcode】37.解数独(困难)

一、题目 1、题目描述 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字…

UVM中测试用例的启动

一、命令行指定 ./simv -l simv.log UVM_TESTNAMEmy_case0 其中 UVM_TESTNAMEmy_case0 中的my_case0就是测试用例的名字 二、文件结构 在test文件夹中my_case0.sv对应case的名字 三、文件说明 3.1 my_case0.sv 其中其他都是写死的&#xff0c;只有红框的部分根据具体的代码…

温度反转效应Temperature Inversion(载流子迁移率与过阈值电压 谁占主导)

In general, as temperature increases, the delay of standard cells increases because of mobility degradation at higher temperatures.    But in lower technology nodes the impact of temperature on the delay of the cell is inverse. In lower nodes, the delay …

上海亚商投顾:沪指维持震荡 光伏等新能源赛道走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日集体反弹&#xff0c;沪指高开后维持震荡走势&#xff0c;创业板指盘中涨超2%&#xff0c;午后涨幅有…

ts开发npm依赖包(插件)demo

序&#xff1a;涉及如下几个点 1、用js开发依赖包&#xff08;换个说法&#xff1a;你在开发第三方的\node_modules的插件了&#xff09; 2、用ts开发依赖包 3、解决本地开发的npm包重命名后不生效的问题 一、js版&#xff08;简单的&#xff09; 你直接在你的项目的\node_mod…

ndp48-web.exe_ndp48-x86-x64-allos-enu.exe_ndp48-x86-x64-allos-chs.exe下载地址

ndp48-web.exe、ndp48-x86-x64-allos-enu.exe、ndp48-x86-x64-allos-chs.exe下载地址 我发现网上几乎找不到地方直接下载&#xff0c;费了我九牛二虎的搜商&#xff0c;才发现原来可以这么下载。 我们可以去微软官方地址下载&#xff1a;下载 .NET Framework 4.8

react 利用antd-mobile实现楼层效果

首先是js模块 import React, { useEffect, useRef, useState } from react import { SideBar } from antd-mobile import ./louceng.css import { useThrottleFn } from ahooksconst items [{ key: 1, title: 第一项, text: <div>12313212313第一项12313212313第一项1…

图床项目之公网发布和测试

项目发布和测试 一、http服务测试1.1、ab http压力测试1.2、post测试&#xff08;注册请求和登录请求&#xff09; 二、性能测试2.1、生成测试脚本2.2、上传测试2.2.1、单客户端测试本地上传到本机服务器2.2.2、如果使用集群的方式进行测试 2.3、下载测试2.4、删除测试2.5、测试…