看SparseInst论文发现论文里有些地方没讲清楚;遂找SparseInst源码来看模型结构
我选择从推理代码来找模型结构:
经探索,在SparseInst代码里,推理需要执行代码
python demo.py --config-file configs/sparse_inst_r50_base.yaml --input datasets/coco/val2017/* --output image_results --opt MODEL.WEIGHTS sparse_inst_r50_base_ff9809.pth INPUT.MIN_SIZE_TEST 512
查阅得知建立模型很可能在
找到VisualizationDemo的实现:
发现关键代码在
self.predictor = DefaultPredictor(cfg)
如此得到的self.predictor(image)可以直接接受图片,所以self.predictor就是模型网络部分。
搜索文本DefaultPredictor得知DefaultPredictor在detectron2.engine.defaults包下
查询DefaultPredictor定义得知build_model(self.cfg)是实际用来创建模型的部分
而build_model的定义在detectron2.modeling包下
查找到build_model的定义如下
上方代码里的get方法会跳转到使用装饰器注册模块,这就是SparseInst的网络结构
继续向下运行,可以看到decoder的定义文件
即可查到最开始问题的答案