问题标签 [darknet]

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.

0 投票
1 回答
247 浏览

c - 重新排序连续跨步像素阵列的最有效方法是什么?

我正在 Jetson TX2(带有 ARM 处理器)上开发一个对性能至关重要的图像处理管道,其中包括读取一组图像,然后通过Darknet执行基于深度学习的对象检测。用 C 编写的 Darknet 对图像的存储方式有自己的表示,这与 OpenCV 的 IplImage 或 Python numpy 数组存储图像的方式不同。

在我的应用程序中,我需要通过 Python 与 Darknet 交互。所以,到目前为止,我正在将一批图像(通常是 16 个)读入一个 numpy 数组,然后使用 ctypes 将其作为一个连续数组传递给 Darknet。在 Darknet 中,我必须重新排列像素的顺序以从 numpy 格式变为 Darknet 的格式。

虽然输入数组是一个连续的块,按列排列,然后按行排列,然后按通道排列,然后按图像排列,但暗网格式需要先按通道排列,然后按列排列,然后按行排列:并且包含一个批处理中每个图像的行而不是连续的块。下图试图展示差异。在这个例子中,我假设一个ixj图像。(0,0)、(0,1) 等表示 (row, col),而在顶部,C0、C1、C2.. 等表示相应行中的列。请注意,在将多个图像作为批处理的一部分的情况下,输入格式将它们一个接一个地顺序排列,但 Darknet 需要它们位于不同的行上:每一行仅包含来自一个图像的数据。

在此处输入图像描述

到目前为止,我在 C 中将输入数组转换为 Darknet 格式的代码如下所示,它迭代地命中每个通道中的每个像素并将其放置在不同的位置,同时还对沿途的像素进行归一化。

有没有更有效的方法在 C 中进行这种重新排列和规范化?

  • 我正在使用 Jetson TX2:它包含一个 ARM 处理器和一个 NVIDIA GPU,因此可以访问 NEON 和 CUDA 以及 OpenMP。
  • 图像尺寸是固定的,可以硬编码:只有批量大小可以改变。
0 投票
2 回答
6768 浏览

image-processing - 使用 YOLO 进行车牌检测

我正在尝试训练一个模型来检测巴基斯坦汽车的车牌。我发现了一种更快的技术,叫做 YOLO。这是一个链接YOLOv2

我正在关注的训练 YOLOv2 的博客是这个博客

根据这个博客,我需要有汽车的图像,我需要对这些图像进行注释(需要标记车牌的位置)以准备测试数据和训练数据。问题是我已经有表格的训练数据

样本训练数据

而本教程要求我从这样的汽车图像中进行注释。

在此处输入图像描述

如果有人使用过 YOLO,请告诉我如何避免标注并使用我自己的训练数据来训练 YOLO 模型。

0 投票
4 回答
38687 浏览

yolo - 了解暗网的 yolo.cfg 配置文件

我在互联网上搜索过,但发现的信息很少,我不明白每个变量/值在 yolo 的.cfg文件中代表什么。所以我希望你们中的一些人能提供帮助,我不认为我是唯一一个遇到这个问题的人,所以如果有人知道 2 或 3 个变量,请发布它们,以便将来需要这些信息的人可以找到它们。

我想知道的主要是:

  • 细分

  • 衰变

  • 势头

  • 渠道

  • 过滤器

  • 激活

0 投票
1 回答
580 浏览

tensorflow - 我应该为我的笔记本电脑选择哪个版本的 yolo?

所以我有一台笔记本电脑,它有GTX1050ti,cpu 是i7 7700hq,我很好奇我应该选择哪个版本,这样它才能适合我笔记本电脑的性能,而且YOLO可以预测图像还是只是实时检测?

0 投票
0 回答
376 浏览

tensorflow - Darkflow 的 .pb 模型无法检测到对象,而原始的暗网权重文件能够

我正在使用暗网创建自定义训练模型,并尝试使用以下命令将生成的权重文件转换为张量流权重文件:

执行成功,生成一个.pb文件。原始权重文件能够检测到对象,但是当我运行 .pb 文件时没有检测到。

这是我运行 .pb 文件时的输出:

0 投票
0 回答
349 浏览

opencl - Darknet - OpenCL 在 clEnqueueNDRangeKernel 中奇怪的时间连续增量

我遇到了 OpenCL 版本的 Darknet 的问题。我深入研究了实现并意识到问题出在softmax内核的调用中(发生在https://github.com/ganyc717/Darknet-On-OpenCL/blob/c13fefc66a13da5805986937fccd486b2b313c24/darknet_cl/src/blas_kernels_cl.cpp# L1020 )。我在 github ( https://github.com/ganyc717/Darknet-On-OpenCL/issues/4 ) 上的一个问题中报告了它。但与此同时,我试图了解可能发生的事情。 在此处输入图像描述

我分析了算法执行预测所需的时间,并且它会随着运行而增加。出于好奇,我决定在每次运行之前重新加载所有网络,然后算法预测所花费的时间保持稳定,因此在我看来,这取决于算法的持续执行。

对我来说奇怪的是,随着时间的推移,它似乎变慢的是对内核的调用,即对 clEnqueueNDRangeKernel 的调用。我不是 OpenCL 专家,但多次执行内核变慢似乎不合逻辑。会不会是内存问题?它对执行时间有何影响?我有点失落,任何帮助表示赞赏。

PD:在 OpenCL 中的“clEnqueueNDRangeKernel”的一个奇怪的 Timinig 问题中报告了一个类似的问题,但未标记答案。它有一个与测量时间的方式有关的评论,但我认为这不是我的情况,因为时间显然在增长。

编辑:我修改了代码以启用 CL_QUEUE_PROFILING_ENABLE。然后我添加了以下几行来分析 enqueue 调用:

这些时间度量保持稳定......这让我更加困惑。似乎 GPU 运行它自己需要相同的时间,但是当 cpu 调用的度量时它会随着时间增长:

0 投票
1 回答
344 浏览

c++ - Opencv 断言因暗网而失败

我曾经在 Ubuntu 18.04 上安装过 OPENCV 3.4.1。我试图在我的机器上编译 YOLO3,但编译失败导致我遇到了这个问题。该问题中的一项建议建议使用 3.4.0 并且它有点工作。

我将这些选项与 cmake 一起使用:

然后我做了

使用 opencv 3.4.0 我能够编译它。但是,当我尝试运行它时,我收到了错误(如下所示)。这很奇怪,因为我刚刚安装了 3.4.0,它显示了一些与 3.4.1 相关的错误。

当我什至没有安装它时,它不应该显示 3.4.1 错误。我还删除了我之前编译 3.4.1 的目录,但错误仍然指向已删除的目录(<local_path>/opencv-3.4.1/)。位于我的主文件夹中,其中包含许多名称奇怪的目录。因此我将其排除在外以避免任何混淆。

我能够确认 3.4.0 安装了:

我想知道是什么导致了上面提到的错误(与断言有关的错误)

0 投票
0 回答
132 浏览

logistic-regression - 当网络更深时,逻辑回归总是预测相同的值

我使用暗网训练逻辑回归模型。但它总是为不同的输入图像输出相同的预测。

但是当我删除一些卷积层时,它似乎变得正常了。(不同输入图像的不同输出)

模型cfg文件如下:

[net]
一些参数...
[convolutions]
[convolutions]
[shortcut]
...
[avgpool]
[connected]
batch_normalize=1
output=1
activation=linear

[logistic]

我尝试了不同的学习率,动量。不行。
并且训练数据是平衡的。两个班级,每个班级15000张图片。
有什么建议吗?谢谢。

0 投票
1 回答
4175 浏览

opencv - 演示需要 OpenCV 用于网络摄像头图像

我正在尝试使用来自官方网站的 YOLO 进行对象检测:https ://pjreddie.com/darknet/yolo/ 但是我无法将 OpenCV 与它集成,尽管我已经在我的 python 版本 python 和 python3 中安装了 OpenCV 她是错误:

所以任何人都可以帮我解决这个问题,我已经尝试解决了一个多星期,但我做不到。如果有人给我解决方案,我会很高兴。先感谢您。

0 投票
0 回答
303 浏览

python - 从视频流中执行接近实时的人员检测的问题

目标:从给定的远程视频流中以最小的延迟/延迟实时检测人。

设置 :

  • Raspberry Pi (2) 带 USB 网络摄像头,使用 Flask 提供图像/视频流。
  • 本地机(macbook pro)获取视频流,通过OpenCV、Darknet/DarkFlow/Yolo、Tensorflow处理图像。
  • 显示检测到的人获得的处理流。检测到的人周围会有一个矩形。
  • 蟒蛇 3

我目前有基本功能工作,但是,它似乎相当慢。当我需要在不到一秒的时间内处理图像时,大约每隔几秒钟就会处理一次图像。所以结果是一个视频,它显示了流后面的更新方式并且断断续续。通过四处搜索,这似乎是一个常见问题,但我似乎还没有找到一个直接的答案。

正如一些论坛所说,我已经将流抓取实现为自己的线程,但我相信现在的问题只是处理抓取的图像所需的时间。

是否可以提高性能?我是否需要在提供良好 GPU 的系统上在云中进行此处理,以便我可以利用这种性能提升?我是否使用了错误的 yolo 权重和 cfg?我知道 yolov3 已经出局了,但我认为我在使用我的环境时遇到了问题。