使用no_frills_hoi_det检测其它数据集中的Human Object Interaction的过程

no_frills_hoi_det主要由三个部分组成

第一个部分用faster_rcnn对输入图片x中包含人类的每个物体生成一组候选框

第二个部分对输入图片x运行OpenPose来得到骨骼关键点

第三个部分用提出的分解模型对HOI候选对进行排序

在执行上述三个部分之前要先对数据进行预处理。运行物体检测之前,需要先生成faster_rcnn_im_in_out.json文件,文件中指定了图片的路径和保存检测结果的目标位置。

no_frills_hoi_det的代码中根据anno_list来生成对应的images_in_out.json文件,主要的代码片段在exp\detect_coco_objects\prepare_data_for_faster_rcnn.py的prepare_hico函数中,如下所示。

其中anno_list是在执行bash data/hico/process.sh命令时,调用data/hico/mat_to_json.py中的函数生成的,函数主要是将anno.mat文件中的内容转换为json形式存储

在执行下面的命令时会生成images_in_out.json文件

python -m exp.detect_coco_objects.run --exp exp_detect_coco_objects_in_hico
images_in_out = [None]*len(anno_list)
    for i, anno in enumerate(anno_list):
        global_id = anno['global_id']
        image_in_out = dict()
        image_in_out['in_path'] = os.path.join(
            data_const.images_dir,
            anno['image_path_postfix'])
        image_in_out['out_dir'] = os.path.join(
            data_const.proc_dir,
            'faster_rcnn_boxes')
        image_in_out['prefix'] = f'{global_id}_'
        images_in_out[i] = image_in_out

images_in_out.json中记录了每张图片的global_id,hois,image_path_postfix,image_size,neg_hoi_ids,pos_hoi_ids

其中主要的就是hois列表,里面有一个记录属性的字典,含有connections,human_bboxes(人体在图片中的位置),id(标记的hoi类别),invis,object_bboxes(物体在图片中的位置)

要用no_frills_hoi_det检测其它数据集中的HOI,首先要根据数据集生成对应的images_in_out.json文件。

  1. 根据data/hico/mat_to_json.py中的create_anno_list函数生成对应数据集的anno_list。在这一步中,需要对构造的图片列表进行目标检测,再将有效的检测结果写入到自己生成的anno_list文件中。
  2. 将data/hico/hico_constants.py中HicoConstants类和utils\constants.py中ExpConstants类中有关hico数据集的路径改为kinetics数据集
  3. 接着根据prepare_hico类改写一个prepare_kinetics类,其实主要是改images_in_out_json的路径

剩下的就和no_frills_hoi_det中的过程差不多,主要的改动就是根据要检测的数据集来生成anno_list.json文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值