我正在尝试在图像周围绘制边界框。我有一个不同的模型来预测检测到的文本类别。 yolo 的实现到处都是基于边界框+类预测。因此,他们定义的损失函数是类别预测、置信度和给定类别概率的损失。我只希望我的损失函数仅根据边界框来定义。请建议我如何去做,或者建议我阅读一些文章。
最佳答案
So the loss function they have defined is a loss for class prediction, confidence, and the probability of given class.
实际上YOLO的损失函数由以下部分组成
- 分类损失
- 定位损失(预测边界框与地面实况之间的误差)
- 置信度损失(盒子的客观性)。
https://medium.com/@jonathan_hui/real-time-object-detection-with-yolo-yolov2-28b1b93e2088
如果您仅寻找边界框的准确性,那么您想要的称为mAP(平均平均精度)。对于目标检测新手来说,要理解 mAP 是如何计算的,需要一些时间,所以我会放一些好的链接供以后学习 https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173 。
如果您想在训练期间可视化 YOLO 模型的 mAP,您可以使用由 AlexeyAB https://github.com/AlexeyAB/darknet 创建的这个流行的 github 存储库。 .
例如,您可以通过输入 -map
标志来训练模型,如下所示:
./darknet detector train data/obj.data yolo-obj.cfg darknet53.conv.74 -map
将生成下面的图表,红线表示 mAP,蓝线表示训练模型的平均损失。
最后,训练结束后,您可以检查哪些权重最适合您(检查 mAP 值)
./darknet detector map data/obj.data yolo-obj.cfg backup\yolo-obj_7000.weights
此存储库的作者在他的 github 存储库上编写了所有内容,因此请花一些时间阅读您需要的所有步骤。
其他信息
我也为我当前的项目做了和你一样的事情。我仅使用 YOLO 来检测对象并绘制边界框。但对于分类,我使用另一个 CNN 模型。
关于python - 如何训练我的模型在图像中存在的文本周围绘制边界框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56372049/