大家好!
感谢您的出色工作!
我正在寻找可以对 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
配置在这里,看来作者没有提供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:父节点的索引
最有用的评论
我让它工作了! :)
我现在只是想弄清楚如何最好地为 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']
的文件路径。如果你们都没有意见,我会用对我有意义的东西来做公关,否则我全神贯注!