civ*_*ivy 8 tensorflow tensorboard object-detection-api
在评估 Tensorflow 的对象检测 API 中的实例分割模型时,我希望拥有自定义的指标列表,可以总结如下;
我目前测试的是通过调整 pycocotools 的 PythonAPI 中的一些代码以及 Tensorflow 研究模型中的附加指标文件来修改现有的 coco 评估指标。目前COCO评估的默认输出值如下
Precision/mAP
Precision/mAP@.50IOU
Precision/mAP@.75IOU
Precision/mAP (small)
Precision/mAP (medium)
Precision/mAP (large)
Recall/AR@1
Recall/AR@10
Recall/AR@100
Recall/AR@100 (small)
Recall/AR@100 (medium)
Recall/AR@100 (large)
Run Code Online (Sandbox Code Playgroud)
coco_detection_metrics
所以我决定首先在我的领域使用eval_config
.config文件里面用于训练
eval_config: {
metrics_set: "coco_detection_metrics"
}
Run Code Online (Sandbox Code Playgroud)
并通过向统计列表和统计摘要字典中添加更多项目来进行多次编辑cocoeval.py
(cocotools.py
与值的数量成比例),以获得所需的结果。出于演示目的,我仅展示一个示例,即在 IOU=0.5 的精度之上添加 IOU=0.55 的精度。
所以,这是cocoeval.pyCOCOeval
中类的修改方法
def _summarizeDets():
stats[1] = _summarize(1, iouThr=.5, maxDets=self.params.maxDets[2])
stats[12] = _summarize(1, iouThr=.5, maxDets=self.params.maxDets[2])
Run Code Online (Sandbox Code Playgroud)
以及coco_tools.pyCOCOEvalWrapper
中类下编辑的方法
summary_metrics = OrderedDict([
('Precision/mAP@.50IOU', self.stats[1]),
('Precision/mAP@.55IOU', self.stats[12])
for category_index, category_id in enumerate(self.GetCategoryIdList()):
per_category_ap['Precision mAP@.50IOU ByCategory/{}'.format( category)] = self.category_stats[1][category_index]
per_category_ap['Precision mAP@.55IOU ByCategory/{}'.format( category)] = self.category_stats[12][category_index]
Run Code Online (Sandbox Code Playgroud)
了解一种更有效的方法来处理我的问题并轻松请求自定义评估指标列表而无需调整现有的 COCO 文件将很有用。理想情况下,我的主要目标是
我的次要目标是
归档时间: |
|
查看次数: |
1943 次 |
最近记录: |