scene graph generation 一个microsoft 分享

编写不易如果觉得不错,麻烦关注一下~

github 代码地址:https://github.com/microsoft/scene_graph_benchmark

但是目前我仔细看了只有150 个目标类可以应用在这个代码中,所以.........感觉不是很实用。

{"airplane": 1, "animal": 2, "arm": 3, "bag": 4, "banana": 5, "basket": 6, "beach": 7, "bear": 8, "bed": 9, "bench": 10, "bike": 11, "bird": 12, "board": 13, "boat": 14, "book": 15, "boot": 16, "bottle": 17, "bowl": 18, "box": 19, "boy": 20, "branch": 21, "building": 22, "bus": 23, "cabinet": 24, "cap": 25, "car": 26, "cat": 27, "chair": 28, "child": 29, "clock": 30, "coat": 31, "counter": 32, "cow": 33, "cup": 34, "curtain": 35, "desk": 36, "dog": 37, "door": 38, "drawer": 39, "ear": 40, "elephant": 41, "engine": 42, "eye": 43, "face": 44, "fence": 45, "finger": 46, "flag": 47, "flower": 48, "food": 49, "fork": 50, "fruit": 51, "giraffe": 52, "girl": 53, "glass": 54, "glove": 55, "guy": 56, "hair": 57, "hand": 58, "handle": 59, "hat": 60, "head": 61, "helmet": 62, "hill": 63, "horse": 64, "house": 65, "jacket": 66, "jean": 67, "kid": 68, "kite": 69, "lady": 70, "lamp": 71, "laptop": 72, "leaf": 73, "leg": 74, "letter": 75, "light": 76, "logo": 77, "man": 78, "men": 79, "motorcycle": 80, "mountain": 81, "mouth": 82, "neck": 83, "nose": 84, "number": 85, "orange": 86, "pant": 87, "paper": 88, "paw": 89, "people": 90, "person": 91, "phone": 92, "pillow": 93, "pizza": 94, "plane": 95, "plant": 96, "plate": 97, "player": 98, "pole": 99, "post": 100, "pot": 101, "racket": 102, "railing": 103, "rock": 104, "roof": 105, "room": 106, "screen": 107, "seat": 108, "sheep": 109, "shelf": 110, "shirt": 111, "shoe": 112, "short": 113, "sidewalk": 114, "sign": 115, "sink": 116, "skateboard": 117, "ski": 118, "skier": 119, "sneaker": 120, "snow": 121, "sock": 122, "stand": 123, "street": 124, "surfboard": 125, "table": 126, "tail": 127, "tie": 128, "tile": 129, "tire": 130, "toilet": 131, "towel": 132, "tower": 133, "track": 134, "train": 135, "tree": 136, "truck": 137, "trunk": 138, "umbrella": 139, "vase": 140, "vegetable": 141, "vehicle": 142, "wave": 143, "wheel": 144, "window": 145, "windshield": 146, "wing": 147, "wire": 148, "woman": 149, "zebra": 150}

1、出现torch._six has no attribute 'PY3' 问题

利用python 直接输出torch.__six.  按tab 补齐按键看备选项,我发现了PY37 所以将代码中的PY3改为PY37即可跑通。

2、数据集的准备

利用azcopy 工具。可以使用windows 操作。

此工具为免安装版,直接将它的路径存储到Path环境变量 即可。在cmd 命令窗口中直接输入azcopy 出现 命令后缀提示信息,即为安装成功。需要链接为双引号。

https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10

path/to/azcopy copy 'https://penzhanwu2.blob.core.windows.net/sgg/sgg_benchmark/datasets/TASK_NAME' <target folder> --recursive(此处为github 中对应的代码段,可以根据自己的需求更改下载数据集。)

3、运行错误 module yaml has no attribute CLoader

请安装PyYAML

4、运行visual genome实例(因为模型太大,image batch 按照错误提示设置为1,原数值为4)

python -m torch.distributed.launch --nproc_per_node=1 tools/test_sg_net.py --config-file sgg_configs/vg_vrd/rel_danfeiX_FPN50_nm.yaml

正常是可以跑的。等结果出来再来分析

有些文件此github 找不到就有可能是mask rcnn github 中的,比如有的config caffe 文件

结果截图:

5、寻找只预测谓词,visual genome实例

 python -m torch.distributed.launch --nproc_per_node=1 tools/test_sg_net.py --config-file CONFIG_FILE_PATH MODEL.ROI_RELATION_HEAD.MODE "predcls“

config-file 同4

6、可能(我认为6可以不看,如果其他部分有错误可以参考,但是好像这里的数据集并不需要instances_minival2014.json. 所以请避开这一部分,这里只是为了留住调试语句)

还有编码问题:

则将分支的load 的函数添加一个latin1编码即可

由于没有

故将instances_val2014的名词改为instances_minival2014.json

程序又可以继续run .... 

但是一次运行时间太长:尝试构建小型json

正常是可以跑的。等结果出来再来分析

又蹦出bug,

方法中缺少一个参数

之后又找到了所谓的minival2014

https://github.com/facebookresearch/Detectron/blob/master/detectron/datasets/data/README.md#coco-minival-annotations

7、结语

经过九九八十一难,【秘籍】就是将上面生成图生成的数据文件,例如 sgg_configs/vg_vrd/rel_danfeiX_FPN50_nm.yaml,而且要准备neural motif 的参数文件,zoo_model 下载即可,我选择的bias 模式,model_final.pth 文件即可。而且为了成功,因为中间10407左右图片数据有问题,所以只让模型dataloader 使用前100个图片数据进行测试!天机不可泄露~

终于好像可以了。但是为了应用在自己的数据集上,还需要学会准备数据集的tsv格式

下面展示的测试集的前100个图片,使用的NeuralMotif 模型参数:

原文中 predcls 的截图如下,看着还有那么一回事。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 场景图生成是指将图像或视频中的物体和场景转化为一种图形结构,以便计算机能够理解和处理。这种技术可以用于计算机视觉、机器人、虚拟现实等领域。场景图生成的过程包括物体检测、物体识别、物体关系建模等步骤,最终生成一张包含物体和它们之间关系的图形结构。 ### 回答2: Scene graph generation(场景图生成)是一种计算机视觉技术。它的目的是将图像中的对象及其关系转化成为一种语义结构、层次图或图表,以便计算机更好地理解图像内容。这种技术是自动化场景理解的基础。在深度学习领域,基于神经网络的场景图生成技术由于其高度的可解释性已经成为了研究的热点。 场景图是一种形式化的描述图像语义的方法,通过将图像中的各种元素(物体、人、颜色、位置、关系等)组织成一种树形结构,来表示图像中物体的属性、关系和语义信息。它不仅可以支持对特定物体的检测和识别,还可以将物体之间的关系进行建模。这种方法可以被用于图像检索、目标跟踪、可视化以及更高级别的任务,如图像问答和基于图像的推理。 生成 scene graph 的技术可以分为两种:基于目标检测的方法和基于全局信息的方法。基于目标检测的方法是利用物体检测器来先分别找到物体,再整合场景图;而基于全局信息的方法是直接提取图像中物体和它们之间的关系的特征,为每个对象生成一个向量,然后用这些向量生成场景图。这两种方法各有优缺点,实际应用中需要根据实际情况来选择。 总之,场景图生成技术是计算机视觉领域的热门研究方向,它在图像理解、人机交互、自动驾驶、机器人等领域都有着广泛的应用价值。 ### 回答3: 场景图(Scene Graph)是指一种数据结构,它描述了场景中的物体、他们的关系、以及物体之间的作用。而场景图生成(Scene Graph Generation)是指将图像或视频中的内容转换为类似场景图的结构的任务。场景图生成通常涉及物体检测、实例分割、语义分割等计算机视觉任务。 场景图生成有着广泛的应用,例如图像描述生成、视觉问答、图像修复、物体识别、目标跟踪等任务。场景图还可以被用于智能辅助驾驶系统、机器人视觉导航和处理3D模型等领域。 实现场景图生成的方法有许多,其中主要包括基于模板的方法、基于神经网络的方法以及基于图像和视频分析的方法。在基于模板的方法中,人们会根据已有的场景图模板来填充场景中的物体和关系。在基于神经网络的方法中,人们会使用深度学习模型来自动地检测和分割图像或视频中的物体,并从中提取出物体之间的关系。而基于图像和视频分析的方法,则通过对图像或视频进行语义分析、物体检测以及图像分割,提取出场景中的各个元素,进而生成场景图。 然而,场景图生成仍然是一个非常挑战的任务,存在许多问题需要被解决。例如,如何处理多个物体之间的复杂关系、如何消除物体之间的干扰、如何处理图像中遮挡的问题等等。因此,对于场景图生成,仍然存在大量的研究的空间和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值