Darkflow: 优洛9000

创建于 2017-02-09  ·  41评论  ·  资料来源: thtrieu/darkflow

大家好!

感谢您的出色工作!

我正在寻找可以对 9000 个类别进行分类的 YOLO9000 模型。

我找不到 YOLO 9000 cfg

有人可以帮忙吗?

> find . -name '*.cfg' -exec cat {} \; | grep "classes"
classes=4
classes=20
classes=80
classes=2
classes=4
classes=20
classes=20
classes=4
classes=4
classes=20
classes=4
classes=2
classes=80
classes=4
classes=20
classes=80
classes=20
classes=20
classes=80

我期待像classes=9000

help wanted

最有用的评论

我让它工作了! :)

我现在只是想弄清楚如何最好地为 PR 构建我的更改。 我看到最近几天有很多事情发生了变化。

我现在有大部分是作为一个单独的darkflow/cython_utils/cy_yolo9000_findboxes.pyx ,但我大概可以把它卷成cy_yolo2_findboxes.pyx ,并在的if语句嵌入其他meta键labels的方法darkflow/darkflow/yolo/misc.py (然后在跳入循环之前在 findboxes 中的 softmax 技术之间进行拆分)。

我已经进入了misc.py标签方法中的 if 语句来添加一个hyponym_map ,它是一个字典,将父索引映射到每个数据文件的子节点列表。

另外,我目前在我的 cfg/ 文件夹中有一个 data/ 文件夹,我只是加入了配置的路径,以及meta['tree']meta['map']的文件路径。

如果你们都没有意见,我会用对我有意义的东西来做公关,否则我全神贯注!

所有41条评论

配置在这里,看来作者没有提供YOLO9000的权重文件。

感谢您及时回复! 我会尝试找到 weights9000 并将其张贴在这里以帮助其他人。

权重文件在这里: http :

你设法让这个工作吗? 我放入了权重文件和配置文件,我也下载了 9k.names 文件。 处理时间不会太长,但后期处理时间是正常 yolo.cfg 和 yolo.weights 设置的 10 倍左右。 最后,任何返回图像中都没有出现边界框。 难道我做错了什么?

我查看了yolo9000.cfg ,结果发现还有更多工作要做。 yolo9000不做通常的 softmax,而是一个分组的。 现在很忙,我会努力解决这个问题,但至少不是在本周和下周。

是的,完全不用担心。 您对这些问题的响应速度非常快 :) 非常感谢您为此所做的所有工作 - 这是一个非常好的项目。 我只是想确保我没有做错导致问题的事情 - 根本不急于解决这个问题。

有消息了吗?
我和abagshaw有同样的问题。
后处理速度慢 10 倍且没有边界框。
我是否必须更改 cfg 文件以及如何更改?

谢谢!

@thtrieu我们可以重新打开这个问题,直到它修复,因为目前我认为darkflow 没有YOLO 9000 功能吗?

我可能会在我的论文项目中使用 YOLO9000(尽管我会大量调整它),因为这是 YOLOv2 的唯一 tensorflow 实现,我想我会使用它作为基础。 完成后我会添加我的实现,但这可能需要几周的时间,所以如果有人有更多的时间,它也会对我有很大的帮助! ;)

在接下来的几天里,我确实有一些时间 - 但是我对 ML 以及这里幕后实际发生的事情的理解非常浅薄。 我不太确定需要做什么才能让 YOLO 9000 工作 - 如果它不太复杂,有人可以简要概述需要做什么,我会试一试(如果它非常复杂,请不要打扰我怀疑我会走得很远:))

@abagshaw需要做的是了解.cfg的以下参数

random=1
tree=data/9k.tree
map = data/coco9k.map

这些将被当前代码读入meta dict,唯一需要修改的代码是 post process 函数,目前没有考虑meta['random'], meta['tree'], meta['map']来解释输出张量 &绘制边界框。

但是,它是否需要完全不同的 softmax 实现(应该很简单,只需将它拆分到树的不同层)和这个 softmax 上的反向传播? (因为反向传播应该只在涉及的 softmax 节点上运行?)

是的,对不起,伙计们 - 我觉得这有点超出我的想象。 我正在梳理https://github.com/pjreddie/darknet/commit/d2dece3df743c97f2cfbb9bbf0dd0449a8730cec那里有很多我不明白的事情。 我会继续四处探索,但我认为我不会走得很远。

有任何更新吗?

是的,抱歉,我决定在 tensorflow 中将 yolo9000 分类层粘贴在 fast-RCNN 上会更快。 当我的论文完成时,我可能会考虑一起爱好一些东西,但这不会再等 4 个月了 ;)

Drat - 那太糟糕了。 我试图围绕整个 WordNet 树分类在 yolo9000 中是如何工作的。 我希望我能更好地理解这些东西,以便我可以提供帮助。 希望有人有时间尽快添加此功能:)

伙计们,我为 YOLO 9000 创建了一个存储库。这里解释了一切。 一探究竟:

https://github.com/philipperemy/yolo-9000

它使用暗网而不是暗流,但我认为移植它应该很容易。

@abagshaw @TheLaurens @saiprabhakar @thtrieu @frey123

@philipperemy谢谢,也许我遗漏了一些东西 - 但我不确定这如何让我们更接近于在暗流中实现 YOLO9000?

如果你想将 YOLO9000 移植到 darkflow 上,那就太棒了 :) :)

@abagshaw让它为暗网工作是第一步。 现在我将专注于如何使其适用于darkflow!

@philipperemy太棒了! 保持我们的消息:)

@philipperemy让 YOLO9000 在暗流中工作的任何进展? :)

抱歉还是没有大的进展! 我现在忙我的工作:)

谢谢大家。

我可以问一些与此主题相关的问题吗?
目前我将 yolo.cfg 更改为对 2 个类进行分类。 对于重量,我使用 yolo.weights。 在我训练模型后,它工作得很好。

Q1:从这个问题来看,我似乎需要不同数量的班级的不同权重。 我记得 yolo.weights 至少用于 20 个类。 我对吗?

Q2:我可以将这个 yolo.weights 用于多少个类?

Q3:是否可以将一个模型的检查点用于 2 个类作为另一个模型的起始权重,比如说 3 个类?

再次感谢。

@ chengs2000您的问题与 YOLO9000 并没有真正的相关性 - 也许将您的问题发布到一个新问题中,然后可以在那里解决。

嗨,除非有人已经这样做了(@philipperemy?)我会尝试。 过几天再来汇报结果。

@relh请继续! 我没有太多时间专注于此。

@relh 有什么进展吗? 😃

我让它工作了! :)

我现在只是想弄清楚如何最好地为 PR 构建我的更改。 我看到最近几天有很多事情发生了变化。

我现在有大部分是作为一个单独的darkflow/cython_utils/cy_yolo9000_findboxes.pyx ,但我大概可以把它卷成cy_yolo2_findboxes.pyx ,并在的if语句嵌入其他meta键labels的方法darkflow/darkflow/yolo/misc.py (然后在跳入循环之前在 findboxes 中的 softmax 技术之间进行拆分)。

我已经进入了misc.py标签方法中的 if 语句来添加一个hyponym_map ,它是一个字典,将父索引映射到每个数据文件的子节点列表。

另外,我目前在我的 cfg/ 文件夹中有一个 data/ 文件夹,我只是加入了配置的路径,以及meta['tree']meta['map']的文件路径。

如果你们都没有意见,我会用对我有意义的东西来做公关,否则我全神贯注!

@relh 太棒了! 非常感谢你在这方面的工作!!

对于我的 2 美分:如果您的cy_yolo9000_findboxes.pyx代码与已经用cy_yolo2_findboxes.pyx编写的代码完全不同,那么创建新文件不是问题 - 但如果它们共享大部分相同的代码尝试将更改滚动到现有文件中(以避免添加重复代码)可能是一个更好的主意。 我很难在没有看到您所做的更改的情况下提供更多输入(我非常不熟悉 YOLO9000 与 YOLOv2 的确切区别) - 所以我会根据您的最佳判断来决定如何进行这些更改。

期待公关!

@relh非常感谢!! 对不起,我最近很忙,没有时间做这个!

@relh这是个好消息。 期待公关。

伟大的! (期待关闭此问题)。

这个问题关闭了吗? 我们有 YOLO9000 的 tensorflow 实现吗? 请指点我。 谢谢。

本期问题:pjreddie 在他的YOLO 网站上将 YOLO9000 称为 YOLOv2。 如果您转到“版本 2 中的新功能”部分并单击该论文的链接,它将打开 YOLO9000 论文。

那么如果Darkflow中没有YOLO9000的实现,那么在Darkflow的上下文中YOLOv2究竟是什么?

Yolo9k 是使用边界框学习方法在 imagenet 上训练的模型,而默认的 yolov2 是在 COCO 上训练的。

@philipperemy

1) 似乎您的代码只能在 CPU 上运行,您知道为什么吗?
2)现在你的项目和暗网有什么区别?

谢谢!

@moskiteau代码在 GPU 上运行良好
我的项目基于暗网,包含运行 YOLO9000 的所有内容。

使用 CPU 标志编译:

seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   544 x 544 x   3   ->   544 x 544 x  32
    1 max          2 x 2 / 2   544 x 544 x  32   ->   272 x 272 x  32
    2 conv     64  3 x 3 / 1   272 x 272 x  32   ->   272 x 272 x  64
    3 max          2 x 2 / 2   272 x 272 x  64   ->   136 x 136 x  64
    4 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    5 conv     64  1 x 1 / 1   136 x 136 x 128   ->   136 x 136 x  64
    6 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    7 max          2 x 2 / 2   136 x 136 x 128   ->    68 x  68 x 128
    8 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
    9 conv    128  1 x 1 / 1    68 x  68 x 256   ->    68 x  68 x 128
   10 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
   11 max          2 x 2 / 2    68 x  68 x 256   ->    34 x  34 x 256
   12 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   13 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   14 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   15 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   16 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   17 max          2 x 2 / 2    34 x  34 x 512   ->    17 x  17 x 512
   18 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   19 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   20 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   21 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   22 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   23 conv  28269  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x28269
   24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 13.577125 seconds.
Tuareg: 25%
wild horse: 27%
goat herder: 82%
Shetland pony: 86%
German shepherd: 48%
Gordon setter: 51%
seb@PHQ-4035-En:~/projects/stockshot/darknet$

并使用 GPU 标志编译:

seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   544 x 544 x   3   ->   544 x 544 x  32
    1 max          2 x 2 / 2   544 x 544 x  32   ->   272 x 272 x  32
    2 conv     64  3 x 3 / 1   272 x 272 x  32   ->   272 x 272 x  64
    3 max          2 x 2 / 2   272 x 272 x  64   ->   136 x 136 x  64
    4 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    5 conv     64  1 x 1 / 1   136 x 136 x 128   ->   136 x 136 x  64
    6 conv    128  3 x 3 / 1   136 x 136 x  64   ->   136 x 136 x 128
    7 max          2 x 2 / 2   136 x 136 x 128   ->    68 x  68 x 128
    8 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
    9 conv    128  1 x 1 / 1    68 x  68 x 256   ->    68 x  68 x 128
   10 conv    256  3 x 3 / 1    68 x  68 x 128   ->    68 x  68 x 256
   11 max          2 x 2 / 2    68 x  68 x 256   ->    34 x  34 x 256
   12 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   13 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   14 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   15 conv    256  1 x 1 / 1    34 x  34 x 512   ->    34 x  34 x 256
   16 conv    512  3 x 3 / 1    34 x  34 x 256   ->    34 x  34 x 512
   17 max          2 x 2 / 2    34 x  34 x 512   ->    17 x  17 x 512
   18 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   19 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   20 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   21 conv    512  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x 512
   22 conv   1024  3 x 3 / 1    17 x  17 x 512   ->    17 x  17 x1024
   23 conv  28269  1 x 1 / 1    17 x  17 x1024   ->    17 x  17 x28269
   24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 0.060738 seconds.
African: 25%
worker: 82%
horse: 86%
working dog: 48%
hunting dog: 50%

./darknet 检测器测试 cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg -thresh .25 -hier .001

有人可以解释一下 9000 标签树的结构是什么吗? 在文件9k.tree中,例如n0000245 -1, n0566538625 4,-1和4是什么意思? 如何使用此文件 9k.tree 构建树结构?

@亚雄池
-1 表示树的根
4:父节点的索引

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

pribadihcr picture pribadihcr  ·  5评论

jubjamie picture jubjamie  ·  4评论

hrshovon picture hrshovon  ·  5评论

ShawnDing1994 picture ShawnDing1994  ·  4评论

bareblackfoot picture bareblackfoot  ·  4评论