HOI项目no_frills_hoi_det执行过程

下载HICO-Det数据集

将从HICO-Det网站下载的数据集存储到hico_clean文件夹中

这些数据文件(版本0160224)包括

图像和标注(.tar.gz)

HOIs列表(.txt)

Verbs列表(.txt)

Objects列表(.txt)

对下载的tar.gz文件使用下面的命令来提取图片和标注

tar xvzf <path to tar.gz file> -C <path to hico_clean directory>

-C标志指定了所提取文件存储的目标路径

经过这一步之后ls -l data_symlinks/hico_clean的输出结果应该是

anno_bbox.mat

anno.mat

hico_list_hoi.txt

hico_list_obj.txt

hico_list_vb.txt

images

README 

tools

处理HICO-Det文件

HICO-Det数据集包含以.mat和.txt文件形式存储的图像和标注数据。使用下面的命令将这些文件转换成json文件,并存储到hico_processed文件夹中

bash data/hico/process.sh

 process.sh文件分别调用下面的文件:
data/hico/split_ids.py:将样本id划分为train, val, train_val(train和val的并集),以及test集

data/hico/hoi_cls_count.py:统计每一个HOI类别的训练样本数

训练和评估都需要划分好的片段。类计数仅用于评估,以计算基于可训练样本所生成的HOI类别组的mAP

执行物体检测

自己创建

Step 1: 准备运行faster-rcnn所需的数据

python -m exp.detect_coco_objects.run --exp exp_detect_coco_objects_in_hico

执行上面的命令将在hico_exp/detect_coco_objects_in_hico中生成faster_rcnn_im_in_out.json文件,该文件指定运行目标检测器的图片路径,以及保存结果的目标位置路径

对每张具有唯一<global_id>的图片,物体检测器将下面的文件写到hico_processed/faster_rcnn_boxes文件夹中:

  • <global_id>_scores.npy
  • <global_id>_boxes.npy
  • <global_id>_fc7.npy
  • <global_id>_nms_keep_indices.npy

Step 2: 运行faster-rcnn

这一步需要前一步生成的faster_rcnn_im_in_out.json文件。Faster-RCNN pytorch实现中包含一个脚本文件,获取json文件,并将输出以指定格式写到hico_processed文件夹中

Faster-RCNN pytorch实现中执行下面的命令:

python -m tools.extract_boxes_scores_features --im_in_out_json <path to im_in_out.json>

来提取检测到的边界框,物体类别分数,nms保留ids,以及在下游应用程序中可能用到的最有一层特性

保存了faster-rcnn特征后,使用下面的命令将所有的特征写到单独的hdf5文件中

python -m exp.hoi_classifier.data.write_faster_rcnn_feats_to_hdf5

Step 3: 从所有预测中为每个物体种类选择候选框

对每张图片,Faster-RCNN预测多达300个区域的类分数(针对80个COCO类)和框回归偏差(每一类)。在这一步中,对每个COCO类,通过运行以下命令,在非极大值抑制后挑选10个高置信度预测:

python -m exp.detect_coco_objects.run --exp exp_select_and_evaluate_confident_boxes_in_hico

这将在hico_exp/select_confident_boxes_in_hico目录中生成selected_coco_cls_dets.h5py文件

运行人体姿态检测器

通过将下面命令中的<subset>替代为train2015和test2015来提取姿态

./build/examples/openpose/openpose.bin --face --hand --num_gpu 2 --num_gpu_start 6 --display 0 --render_pose 0\
    --image_dir <subset> \
    --write_json <subset> \

训练HOI分类器 

Step 1: 从候选物体,缓存框和姿态特征中生成HOI候选对象

bash exp/hoi_classifier/scripts/preprocess.sh 

Step 2: 训练模型 

按要求修改exp/hoi_classifier/scripts/train.sh中的标志并执行:

bash exp/hoi_classifier/scripts/train.sh <GPU ID>

这将在hico_exp/hoi_classifier中生成factors_rcnn_det_prob_appearance_boxes_and_object_label_human_pose文件夹 

评价模型

Step 1: 选择评价的模型

可以根据在tensorboard中记录的验证损失来选择模型,通常选择大约在30000次迭代的模型

Step 2: 对测试集进行预测

bash exp/hoi_classifier/scripts/eval.sh <GPU ID> <MODEL NUM>

这将生成一个pred_hoi_dets.hdf5文件

Step 3: 计算mAPs

bash exp/hico_eval/compute_map.sh

Step 4: 可视化

排名最高的检测结果

可视化600种HOI类别中排名最高的检测结果

bash exp/hoi_classifier/scripts/visualize.sh <MODEL NUM>

这将为训练实验目录中的每一个HOI生成vis/top_boxes_per_hoi_wo_inference/<hoi_id>_<verb>_<object>/ 目录,每个目录都有一些.png文件以及可视化.png文件的index.html文件

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值