OpenCV 未知层类型运行暗网检测

Posted

技术标签:

【中文标题】OpenCV 未知层类型运行暗网检测【英文标题】:OpenCV unknown layer type running darknet detect 【发布时间】:2018-09-30 05:51:06 【问题描述】:

我正在尝试从使用 Yolo v2 切换到 Yolo v3,但无法进行检测。我收到了错误

OpenCV Error: Parsing error (Unknown layer type: shortcut) in ReadDarknetFromCfgFile

有人知道我该如何解决这个问题吗?使用 Yolo v2 中的 cfg 文件可以正常工作。

【问题讨论】:

YoloV3 支持刚刚添加到 PR#11322 并合并到 Opencv 3.4 分支中。它应该很快也会添加到 master 分支中。 所以升级你的opencv版本-pip install --upgrade opencv-python 【参考方案1】:

OpenCV 主分支 (3.4.3) 添加了对运行 YOLOv3 的支持。

您应该能够将 YOLOv3 config 和 weights 与 OpenCV DNN 模块一起使用来执行对象检测。

net = cv2.dnn.readNet(args.weights, args.config)

blob = cv2.dnn.blobFromImage(image, scale, (416,416), (0,0,0), True, crop=False)

net.setInput(blob)

outs = net.forward(get_output_layers(net))

完整代码here.

查看 OpenCV 的 github repo 上的 samples/dnn 目录中的 object detection 示例。

这篇blog post(由我编写)详细解释了如何使用预训练的 YOLOv3 权重在 COCO dataset 上执行对象检测,以在上下文中检测 80 common objects。

希望这会有所帮助。

【讨论】:

如果您想推广或推荐自己的产品/博客,请注意,有一些guidelines in place 可以这样做。关注它们将帮助您避免给人留下垃圾邮件的印象。您能否编辑以明确说明您的隶属关系?谢谢。 (如果您实际上没有隶属关系,则可能也值得一提。) 感谢@Filnor 指出。我已经明确说明了我的隶属关系。博客文章真实地详细解释了解决方案。如果需要,我可以删除链接。 不,你不需要删除链接,你的帖子现在看起来很好。

以上是关于OpenCV 未知层类型运行暗网检测的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 4.x+ 需要启用 C++11 支持编译暗网致命错误

C++ 中的 OpenCV:“未知类型名称”

请教,jni调用,类型转换.用opencv进行静态人脸检测

Opencv 断言因暗网而失败

请教,jni调用,类型转换.用opencv进行静态人脸检测

Android OpenCV实现人脸检测JNI层添加打印时间