machine-learning - 为什么yolo检测不到图像中的所有物体?
问题描述
我正在尝试使用 AlexeyAB darknet 检测图像中的对象。但它只检测到 2 或 3 个对象。它无法检测到小对象(例如帽子)。我正在使用这个命令:
./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg /weight_path/ /image_path/
我该怎么做?
解决方案
根据AlexeyAB page for small objects 你可以这样做:
用于训练小对象(图像大小调整为 416x416 后小于 16x16)- 设置层 = -1, 11 而不是 https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L720 并设置 stride=4 而不是 https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L717
对于训练小型和大型对象,您可以使用修改后的模型:
同样在训练完成后,在检测阶段,您可以执行以下操作:
通过在 .cfg 文件中设置(高度=608 和宽度=608)或(高度=832 和宽度=832)或(32 的任何值倍数)来提高网络分辨率 - 这会提高精度并可以检测小物件:链接
无需再次训练网络,只需使用已针对 416x416 分辨率训练的 .weights-file
但要获得更高的精度,您应该使用更高分辨率 608x608 或 832x832 进行训练,注意:如果出现内存不足错误,
则在 .cfg 文件中您应该增加细分 = 16、32 或 64:链接
推荐阅读
- sql - 查询以检查记录是否存在并且表中的列值是否为空
- c++ - C++:如何在嵌套循环中中断/继续
- java - 在调试模式下,当 ScheduledExecutorService 运行时我无法与 GUI 交互
- python - ["'02-05-2020' 值的格式无效。它必须是 YYYY-MM-DD 格式。"]
- angular - Angular Material AutoComplete,自动选择 List 中的 Distinct Item
- python - Pandas NLTK - 标记列中的所有行以进行自然语言处理
- python - 制作一个返回任何索引结果的列表,尽管“列表超出范围错误”
- python - 如何调整此正则表达式以在我的数据框中检测正确的日期格式?
- android - 推送通知不适用于 RN0.62.2
- reactjs - npm create-react-app 命令在 Windows 8 上未成功完成