标签: object-detection

对象检测的步骤是什么?

我是图像处理的新手,我想在对象检测中做一个项目.所以通过建议这个项目的分步过程来帮助我.感谢名单.

image-processing object-detection

9
推荐指数
1
解决办法
9240
查看次数

EMGU CV SURF图像匹配

我一直在使用EMGU CV库中的SURF特征检测示例.

到目前为止它的工作令人惊讶; 我可以检测到2个给定图像之间的匹配对象,但是我遇到了关于图像不匹配的问题.

我一直在寻找论坛的支持,但他们从我所处的地方开始.有谁知道哪些参数决定图像是否匹配.当我使用不匹配的2张图像进行测试时,代码仍会像匹配一样进行,并且即使没有匹配也会在图像的随机位置绘制模糊的粗红线.

如果没有匹配,我希望打破代码,不再继续.

附录:

      static void Run()
      {
          Image<Gray, Byte> modelImage = new Image<Gray, byte>("HatersGonnaHate.png");
         Image<Gray, Byte> observedImage = new Image<Gray, byte>("box_in_scene.png");
         Stopwatch watch;
         HomographyMatrix homography = null;

         SURFDetector surfCPU = new SURFDetector(500, false);

         VectorOfKeyPoint modelKeyPoints;
         VectorOfKeyPoint observedKeyPoints;
         Matrix<int> indices;
         Matrix<float> dist;
         Matrix<byte> mask;

         if (GpuInvoke.HasCuda)
         {
            GpuSURFDetector surfGPU = new GpuSURFDetector(surfCPU.SURFParams, 0.01f);
            using (GpuImage<Gray, Byte> gpuModelImage = new GpuImage<Gray, byte>(modelImage))
            //extract features from the object image
            using (GpuMat<float> gpuModelKeyPoints = surfGPU.DetectKeyPointsRaw(gpuModelImage, null))
            using (GpuMat<float> gpuModelDescriptors = …
Run Code Online (Sandbox Code Playgroud)

c# image-processing object-detection surf emgucv

9
推荐指数
1
解决办法
1万
查看次数

SIFT匹配和识别?

我正在开发一个应用程序,我使用SIFT + RANSAC和Homography来查找对象(OpenCV C++,Java).我面临的问题是,在有很多异常值的情况下,RANSAC表现不佳.

出于这个原因,我想尝试一下SIFT的作者所说的非常好:投票.

我已经读过我们应该在4维特征空间中投票,其中4个维度是:

  • 位置[x,y](有人说Traslation)
  • 规模
  • 取向

虽然使用opencv很容易获得匹配scale并且orientation:

cv::Keypoints.octave
cv::Keypoints.angle
Run Code Online (Sandbox Code Playgroud)

我很难理解如何计算位置.

我找到了一个有趣的幻灯片,只有one match我们能够绘制一个边界框:

但我不知道如何只用一场比赛就可以画出那个边界框.有帮助吗?

opencv object-detection computer-vision sift

9
推荐指数
1
解决办法
4130
查看次数

在pascal voc xml中注释图像

我需要一个工具来用矩形边界框注释图像.输出将采用pascal voc xml格式.注释和图像将成为卷积神经网络用于对象检测的训练数据集的一部分.我将自己手动注释图像.

我考虑过以下工具,但它们不支持pascal-voc.

Labelme,懒惰,Pilab,没有名字

有没有一个注释工具可以节省我的时间?

machine-learning image-processing object-detection computer-vision

9
推荐指数
2
解决办法
2万
查看次数

来自utils import label_map_util导入错误:没有名为utils的模块

我试图运行object_detection.ipynb类型程序,但它是一个普通的python程序(.py).它工作得很好,但在..models/research/object_detection文件夹内运行时,但主要问题是当我试图在另一个目录中运行此代码时sys.append,我最终得到以下错误:

Traceback(最近一次调用最后一次):

文件"obj_detect.py",第20行,in

from utils import label_map_util
Run Code Online (Sandbox Code Playgroud)

ImportError:没有名为utils的模块

如果我尝试将文件从..models/research/object_detection文件夹导入到不同目录中的python程序中,那么我最终会得到更多错误,如下所示:

Traceback(最近一次调用最后一次):

文件"classify_image.py",第10行,in

import object_dt
Run Code Online (Sandbox Code Playgroud)

文件"/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py",第18行,in

from utils import label_map_util
Run Code Online (Sandbox Code Playgroud)

文件"/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py",第22行,in

from object_detection.protos import string_int_label_map_pb2
Run Code Online (Sandbox Code Playgroud)

ImportError:没有名为object_detection.protos的模块

如何解决这个问题?

python import object-detection python-2.7 tensorflow

9
推荐指数
1
解决办法
2万
查看次数

找不到 `protoc` 命令

当我运行这个:

protoc --python_out=. .\object_detection\protos\anchor_generator.proto
Run Code Online (Sandbox Code Playgroud)

在命令行上的 tensorflow 对象检测文件上,我得到:

'protoc' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我按照protoc object_detection/protos/*.proto: No such file or directory 中的所有说明进行操作,但它们从来没有为我工作过

除了我进行的搜索之外,我还尝试了以下命令:

py-3.6 -m pip install protobuf
Run Code Online (Sandbox Code Playgroud)

它对我有用。

我再次输入命令

python_out=. .\object_detection\protos\anchor_generator.proto 
Run Code Online (Sandbox Code Playgroud)

但它仍然失败,这是:

C:\Users\laptop market\Downloads\bin\protoc object_detection/protos/*.proto --py_out=.
Run Code Online (Sandbox Code Playgroud)

也失败了。

python object-detection protoc tensorflow

9
推荐指数
3
解决办法
3万
查看次数

如何减少 YOLOv3 文件中的类数?

我正在使用 YOLOv3 来检测视频中的汽车。我下载我的代码中使用了三个文件coco.namesyolov3.cfg并且yolov3.weights被培养为80个不同类别的对象被检测到。代码工作但非常慢,每帧需要超过 5 秒。我相信如果我减少类的数量,它会运行得更快。我可以从 中删除不必要的类coco.names,但不幸的是,我无法理解 中的所有内容yolov3.cfg,甚至无法阅读yolov3.weights. 本来想训练自己的模型,但是遇到了很多问题,所以放弃了这个想法。谁能帮我修改这些文件?

opencv object-detection emgucv yolo

9
推荐指数
2
解决办法
1万
查看次数

如何向预训练的对象检测模型添加额外的类并训练它检测所有类(预训练 + 新的)?

我关注了这个博客 --> https://medium.com/@teyou21/training-your-object-detection-model-on-tensorflow-part-2-e9e12714bdf,并构建了一个预先训练的 SSD Mobilenet 模型在名为“ssd_mobilenet_v2_quantized_coco”的 COCO 数据集上。

这里发生的事情是它完美地检测了我的新课程,但我也想包括预训练的课程。

我尝试将类数更改为 96(90 个预训练 + 6 个新),并使用 COCO 数据集中所有标签的名称和相应 id 编辑“labelmap.pbtxt”,最后从 ids 添加新类91 - 96。

它仍然只检测新类。

我应该怎么做才能检测到预训练的和新的类?

python object-detection deep-learning tensorflow

9
推荐指数
1
解决办法
922
查看次数

如何根据对象位置旋转图像?

首先,对不起帖子的长度。

我正在开展一个项目,根据叶子的图像对植物进行分类。为了减少数据的方差,我需要旋转图像,以便茎在图像的底部水平对齐(270 度)。

到目前为止我在哪里...

到目前为止,我所做的是创建一个阈值图像,然后从那里找到轮廓并在对象周围绘制一个椭圆(在许多情况下,它无法涉及整个对象,因此省略了茎......),之后,我创建 4 个区域(带有椭圆的边缘)并尝试计算最小值区域,这是因为假设在任何一点都必须找到茎,因此它将是人口较少的区域(主要是因为它将被 0 包围),这显然不像我想的那样工作。

之后,我以两种不同的方式计算旋转角度,第一个涉及atan2函数,这只需要我想要移动的点(人口最少的区域的质心)以及 wherex=image width / 2y = height。这种方法在某些情况下有效,但在大多数情况下,我没有得到所需的角度,有时需要一个负角度,它会产生一个正角度,最终茎在顶部。在其他一些情况下,它只是以一种可怕的方式失败。

我的第二种方法是尝试基于 3 个点计算角度:图像的中心、人口最少的区域的质心和 270º 点。然后使用一个arccos函数,并将其结果转换为度数。

这两种方法对我来说都失败了。

问题

  • 你认为这是一种正确的方法还是我只是让事情变得比我应该的更复杂?
  • 我怎样才能找到叶子的茎(这不是可选的,它必须是茎)?因为我的想法行不通...
  • 如何以稳健的方式确定角度?由于第二个问题中的相同原因......

这是一些示例和我得到的结果(二进制掩码)。矩形表示我正在比较的区域,椭圆上的红线是椭圆的主轴,粉红色圆圈是最小区域内的质心,红色圆圈表示 270º 参考点(角度) ,白点代表图像的中心。

原图 在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

我目前的解决方案

    def brightness_distortion(I, mu, sigma):
        return np.sum(I*mu/sigma**2, axis=-1) / np.sum((mu/sigma)**2, axis=-1)
    
    
    def chromacity_distortion(I, mu, sigma):
        alpha = brightness_distortion(I, mu, sigma)[...,None]
        return np.sqrt(np.sum(((I - alpha * mu)/sigma)**2, axis=-1))
    
    def bwareafilt ( image ):
        image = image.astype(np.uint8)
        nb_components, output, stats, centroids = cv2.connectedComponentsWithStats(image, connectivity=4) …
Run Code Online (Sandbox Code Playgroud)

python opencv object-detection computer-vision

9
推荐指数
1
解决办法
331
查看次数

如何将 YOLO 注释 (.txt) 转换为 PASCAL VOC (.xml)?

我已经构建了一个数据集来训练 YOLOv4,并且我拥有 YOLO 格式的所有标签(我使用了 LabelImg)。现在我想使用相同的数据集训练 SSD,因此我需要 PASCAL VOC 格式的标签。我已经看到了一些进行相反转换(voc 到 yolo)的方法,但不是我正在寻找的方法。由于我有数千张图像,我想找到一种方法来自动化整个过程,而不必逐一检查每个图像/标签。

有谁对如何解决这个问题有任何想法?

提前致谢!

label object-detection computer-vision yolo

9
推荐指数
3
解决办法
1万
查看次数