问题标签 [non-maximum-suppression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
computer-vision - 非最大抑制
我们已经了解到,您可以获得与atan(dy/dx)
边缘正交的方向的梯度方向。现在我们有一个作业,我们应该将此方向离散化为四个类别(x 和 y 方向以及两个对角线),然后检查最佳匹配方向上的两个像素邻居以进行非最大抑制。
我没有完全得到解决方案。显然我们有四种情况:
abs(angle) < pi/8
,所以梯度(大致)指向x方向,因此我们检查img(i, j-1)
和img(i, j+1)
(假设图像原点在左上角)angle > pi/8 && angle <= 3*pi/8
,所以梯度指向右上角。现在我认为我们需要检查img(i-1, j+1)
,img(i+1, j-1)
但我们检查img(i-1, j-1)
并且img(i+1, j+1)
看起来像正交对角线。
其他两种情况是等价的。我试图改变这一点,但边缘看起来真的很奇怪,所以这似乎是正确的,但我不明白为什么。
谁可以给我解释一下这个?
c++ - 如何在 C++ 中实现 imhmin()
我想在 C++ 中实现 matlab 的 imhmin() 函数。首先,我检查了算法。它抑制最小像素强度值。非最大抑制码为:
imhmin() 函数返回抑制值。但是,非最大抑制返回二进制值。我该如何处理?
python - 如何在 Python 中使用 OpenCVcornerSubPix()?
我正在尝试获取并绘制图像中的角点。现在,我有一个具有以下格式的元组列表:((row,column,scale)
比例是因为我使用的是高斯金字塔),手动从 harrisCornerDetector 和 nonMaximumSupression 过程获得。这份清单是featuresy1
。
我的代码如下:
其中 image 是具有三个相同形状的灰度图像。如您所见,我将cornerSubPix
这样的结构作为第二个参数:[(x1,y1,scale1),(x2,y2,scale2),...,(xn,yn,scalen)]
.
这引发以下错误:
出于这个原因,我想知道应该用什么类型、格式或结构featuresy1
来cornerSubPix()
工作。这是我唯一做错的事情吗?没有太多关于此的文档。
谢谢!
python - tf.image.non_max_suppression 给出未初始化的张量
我tf.image.non_max_suppression
在 Faster-RCNN 网络中使用 tensorflow。张量流图构建成功并且运行也没有错误,但是在运行图时,输出是空张量,其维度取决于输入的大小为 0(例如,我得到形状为 (0,4) 的输出张量)。所以我用tfdbg
工具来看看发生了什么。我发现张量值是Uninitialized tensor
针对tf.image.non_max_suppression
操作的。取决于 nms op 输出的所有后续张量也显示为Unintialized tensor
.
我已经训练了这个 Faster-RCNN 网络并使用tf.train.Saver(..).save(..)
. 当我训练网络时,我使用 python numpy 函数来做 NMS,并使用 op wrapper 将其插入网络tf.py_func
,然后在模型训练完成后,我决定将 python 函数更改为 tensorflow 实现。
tf.image.non_max_suppression
没有可学习的参数,所以我不明白为什么当我现在加载保存的模型并运行图形时,张量未初始化。我也尝试sess.run(tf.global_variables_initializer())
在加载模型之前做,tf.train.Saver(..).restore(..)
但没有任何变化,仍然看到Uninitialized tensor
NMStfdbg
和后续操作。
关于这种行为以及如何解决它的任何想法?
这就是我的使用方式tf.image.non_max_suppression
:
ios - IOS app中的Tensorflow对象检测开发——nonmaxsuppressionV2
我正在尝试使用 ssd_mobilenet_v1_coco 模型检测对象。我自己训练的模型文件 .pb 文件用于检测。成功构建后,单击运行按钮,我收到以下错误。
我可以在下面的链接中为已经训练好的 .pb 模型文件执行和启动 ios 应用程序。请给出解决上述问题并启动 ios 应用程序的解决方案。 https://github.com/JieHe96/iOS_Tensorflow_ObjectDetection_Example
python - 嵌套循环不会执行超过第一个内部 if 循环
编码和 Python 的新手。我有这段代码,由于某种原因,它只会通过我的第一个 if 语句。我已经看了好几个小时,老实说我不知道为什么?
所以基本上我希望它通过一个二维数组。我有另一个称为 shape 的二维数组(与 trex 相同的形状),其角度为 0、45、90。首先我查看点 [i,j] 的角度,然后根据它的角度,我希望它看起来在该点的邻居处的 trex 值。如果相邻点都低于中间点,那么我什么也不做。否则,我将中间点 ([i,j]) 设置为 0。但是当我运行我的代码时,它只会将角度为 0 的那些设置为 0。所以它永远不会归结为我的 elif 或 else 语句。我不知道为什么:'(希望这是有道理的,非常感谢任何帮助!
tensorflow - 如何阅读 tensorflow 非极大值抑制方法源码?
我正在尝试在这一行中阅读 Tensorflow 非最大抑制方法的源代码。它是从gen_image_ops
文件中导入的,但我在 tensorflow 源代码中的任何地方都找不到该文件。
是否有任何来源可以访问此方法的代码?
tensorflow - TensorFlow 高误报率和非最大抑制问题
我正在使用faster_rcnn_inception_v2_coco作为预训练模型在 Windows 10 上训练Tensorflow 对象检测。我在 Windows 10 上,在 NVIDIA GeForce GTX 1080、CUDA 9.0 和 CUDNN 7.0 上使用 tensorflow-gpu 1.6。
我的数据集仅包含一个对象“手枪”和 3000 张图像(2700 个训练集,300 个测试集)。图像的大小从 ~100x200 到 ~800x600。
我训练这个模型进行了 55k 次迭代,其中mAP约为 0.8,TotalLoss似乎收敛到 0.001。但是,但是,看到评估,在同一个检测到的对象上有很多多个边界框(例如this和this),并且有很多误报(房屋被检测为手枪)。例如,在我拍摄的这张照片中(后来应用了模糊滤镜),模型将人和汽车检测为手枪,以及正确检测。
数据集与 tfrecords 和标签映射一起上传到此处。我使用了这个配置文件,其中我唯一更改的是:num_classes为 1、fine_tune_checkpoint、train 和 eval的input_path和label_map_path以及num_examples。 由于我认为多个框是一个非最大抑制问题,我将score_threshold(第 73 行)从 0 更改为 0.01,将iou_threshold(第 74 行)从 1 更改为 0.6。使用标准值,结果比这差得多。
我该怎么做才能获得良好的检测?我应该改变什么?也许我错过了一些关于参数调整的东西......
谢谢