北京麦克斯泰科技有限公司
BEIJING MAXTECH TECHNOLOGY CO., LTD.
您现在的位置:
首页
/
/
图片生成 (SGG)开源框架,集成目前最全metrics

图片生成 (SGG)开源框架,集成目前最全metrics

  • 分类:前沿科技
  • 作者:汤凯华
  • 来源:
  • 发布时间:2020-04-24 14:57
  • 访问量:

【概要描述】基于facebookresearch/maskrcnn-benchmark框架作,在其基础上搭建Scene-Graph-Benchmark.pytorch。该代码不仅兼容了maskrcnn-benchmark所支持的所有detector模型。

图片生成 (SGG)开源框架,集成目前最全metrics

【概要描述】基于facebookresearch/maskrcnn-benchmark框架作,在其基础上搭建Scene-Graph-Benchmark.pytorch。该代码不仅兼容了maskrcnn-benchmark所支持的所有detector模型。

  • 分类:前沿科技
  • 作者:汤凯华
  • 来源:
  • 发布时间:2020-04-24 14:57
  • 访问量:
详情

 1、框架说明

  在过去两年做过SGG的同学应该都或多或少知道neural-motifs代码框架,真正让我下定决心要写个新的Codebase的主要原因还是因为neural-motifs的底层Faster R-CNN已经过于落后,毕竟SGG里物体的检测和识别也是非常重要的,甚至有时候比预测relationship更加重要。

  为了便于大多数有物体检测背景的同学follow,我挑选了去年最为可靠的facebookresearch/maskrcnn-benchmark框架作为基础,在其基础上搭建了我的Scene-Graph-Benchmark.pytorch。该代码不仅兼容了maskrcnn-benchmark所支持的所有detector模型,且得益于facebookresearch优秀的代码功底,更大大增加了SGG部分的可读性和可操作性(BoxList类的设计简直是人类工程智慧的结晶。

  目前框架提供的各种baseline模型,有着当之无愧的State-of-The-Art SGCls和SGGen结果(如下图,PredCls我还需要花时间调一下)。由于复现版本的VCTree为了简便省略了原文的Hybrid Learning,同时SGGen/SGCls/PredCls超参也做了统一,而非各自最优.

  2、Faster R-CNN预训练

 

  该项目的Faster R-CNN预训练部分基本完全采用maskrcnn-benchmark的源代码(虽然我们又增加了attribute_head的实现,但还没开始正式使用),仅就数据集做了更换,换成SGG的VisualGenome数据集。因此后续研究者可以完全参考maskrcnn-benchmark的代码设计新的detector,并运用于SGG中。

  主要参数文件可以参考"configs/e2e_relation_detector_X_101_32_8_FPN_1x.yaml"。注意所有config文件的default设置在"maskrcnn_benchmark/config/defaults.py"中,而优先级如下,具体每个参数的意义可以参考我Github项目中的解释。

  当然因为detector的训练费时费力费卡,而且考虑到公平起见以往大部分SGG的工作都会follow一个固定的预训练模型,即neural-motifs项目所给的预训练detector模型。我这里也release了一个我训练好的ResNeXt-101-32x8模型。考虑到国内同学可能下载不便,我这里给一个百度网盘的链接(提取码:gsfn):https://pan.baidu.com/share/init?surl=MDFgqluIe_LKhi7MP2Pjqw

 

  值得一提的是,我们的Faster R-CNN其实还支持了attribute_head,即物体的属性,但为了公平比较,我目前还没有在发表的文章中加入对应实验,欢迎大家完善这部分工作。

  3、SGG as RoI_Head

 

  关于最主要的SGG部分,我将其设计为了一个roi_head,参考其他roi_heads,如box_head的设计,我将主要代码集中于"maskrcnn_benchmark/ modeling/ roi_heads/ relation_head"目录下,结构如下:

  4、所有指标简介

  作为基础知识,我先简单介绍下SGG的三种设定: 1) Predicate Classification (PredCls): 给定所有ground-truth的物体类别和bounding boxes,求这张图的场景图。2)Scene Graph Classification (SGCls): 给定所有ground-truth物体的bounding boxes,求场景图(需要预测物体类别)3) Scene Graph Detection/Generation (SGDet/SGGen) :只给图片,自己跑detection检测物体,最后预测场景图。

  然后关于指标,之前的SGG最大的问题之一,就是过度依赖单一指标Recall@K,而这个指标因为不区分各个类别的贡献加上VisualGenome本身的长尾效应,很容易被过拟合。这导致了近年大多数SGG的文章,只是在过拟合的道路上越走越远,而非真正生成了更有意义的场景图。于是我在该框架中整合了已知的所有指标,也希望后续的工作可以report更多有意义的指标来分析算法有优缺。

  所有本框架支持的指标有:

  Recall@K (R@K): 这是最早的也是最广为接受的指标,由卢老师在https://arxiv.org/abs/1608.00187中提出。因为VisualGenome数据集的ground-truth中对relationship的标注并不完整,所以简单的正确率并不能很好的反映SGG的效果。卢老师用了检索的指标Recall,把SGG看成检索问题,不仅要求识别准确,也要求能更好的剔除无关系的物体对。

  No Graph Constraint Recall@K (ngR@K):这个指标最早由Pixel2Graph使用,由Neural-MOTIFS命名。这个指标的目的在于,传统的Recall计算里,一对物体只能有一个relation参与最终的排序,但ngR@K允许一对物体的所有relation都能参与排序。这也非常有道理,比如 human(0.9) - riding (0.6) - horse (0.9):total score=0.9x0.6x0.9,可能这对物体还有另一个relation:human(0.9) - on (0.3) - horse (0.9):total score=0.9x0.3x0.9。后者虽然分数比riding低,但也是一种可能的情况。ngR@K的结果往往大大高于单纯的R@K。

  Mean Recall@K (mR@K): 这个指标由我的VCTree和另外一个同学的KERN在2019年的CVPR中同时提出,不过我并没有作为VCTree的主要贡献,只在补充材料中完整展示了结果表。由于VisualGenome数据集的长尾效应,传统Recall往往只要学会几个主要的relation类比如on,near等,即便完全忽视大部分类别也可以取得很好的结果。这当然不是我们想看到的,所以mean Recall做了一件很简单的事,把所有谓语类别的Recall单独计算,然后求均值,这样所有类别就一样重要了。模型的驱动也从学会尽可能多个relation(有大量简单relation的重复)变成学会尽可能多种类的relation。

  Zero Shot Recall@K (zR@K):在早期的视觉关系识别中,人们也使用了Zero Shot Recall指标,但在SGG中又渐渐被人忽视了,我们在这又重新增加了这个指标,因为它可以很好的展示SGG的拓展能力。Zero Shot Recall指的并不是从来没见过的relation,而只是在training中没见过的主语-谓语-宾语的三元组组合,所有单独的object和relation类别还是都见过的,不然就没法学了。

  Top@K Accuracy (A@K):这个指标来自于某个之前研究者对PredCls和SGCls的误解,并不建议大家report到文章中,这里列出来是希望大家以后别犯这个错。该同学在PredCls和SGCls中不仅给了所有object的bounding box,还给了主语-宾语所有pair的组合,所以这就完全不是一个Recall的检索了,而是给定两个物体,来判断他们relation的正确率。

 

  Sentence-to-Graph Retrieval (S2G):最后是我在Causal-TDE中提出的ground-truth caption到SG检索,它可以看成一个理想的下游任务,可以看作一个VQA:问指定图片的SG符不符合给定描述。他的意义在于,他完全摒弃了visual feature,只使用符号化的SG。他可以测试检测出的SG是否可以用来完整地丰富地表示原图(潜台词:从而支持符号化的推理)。由于这需要额外的训练过程,所以并不能直接在SGG的val/test里输出。

 

扫二维码用手机看

上一个:
下一个:
上一个:
下一个:
北京麦克斯泰科技有限公司

7*24

多渠道服务支持

北京麦克斯泰科技有限公司

服务咨询

010-52388888

北京麦克斯泰科技有限公司

一对一

贵宾级服务

北京麦克斯泰科技有限公司

7*24

反馈与投诉意见

北京麦克斯泰科技有限公司

专业服务

云业务全流程支持

北京麦克斯泰科技有限公司

联系方式


北京市昌平区宏福创业园宏福大厦11层
邮编:102209     
电话:010-68944168

服务热线

 

400-650-3050

北京麦克斯泰科技有限公司

关注微信公众号

北京麦克斯泰科技有限公司版权所有    京公网安备XXXX010XXXXXXX号    网站建设:中企动力   北二分