parse_args()函数什么意思?

此代码片段定义了一个用于解析命令行参数的函数,涉及人体检测和姿态估计模型配置、权重文件、视频列表、输出文件名等,用于为自定义视频数据集生成2D关键点标注,支持分布式设置。
摘要由CSDN通过智能技术生成
def parse_args():
    parser = argparse.ArgumentParser(
        description='Generate 2D pose annotations for a custom video dataset')
    # * Both mmdet and mmpose should be installed from source
    # parser.add_argument('--mmdet-root', type=str, default=default_mmdet_root)
    # parser.add_argument('--mmpose-root', type=str, default=default_mmpose_root)
    parser.add_argument('--det-config', type=str, default=default_det_config)
    parser.add_argument('--det-ckpt', type=str, default=default_det_ckpt)
    parser.add_argument('--pose-config', type=str, default=default_pose_config)
    parser.add_argument('--pose-ckpt', type=str, default=default_pose_ckpt)
    # * Only det boxes with score larger than det_score_thr will be kept
    parser.add_argument('--det-score-thr', type=float, default=0.7)
    # * Only det boxes with large enough sizes will be kept,
    parser.add_argument('--det-area-thr', type=float, default=1600)
    # * Accepted formats for each line in video_list are:
    # * 1. "xxx.mp4" ('label' is missing, the dataset can be used for inference, but not training)
    # * 2. "xxx.mp4 label" ('label' is an integer (category index),
    # * the result can be used for both training & testing)
    # * All lines should take the same format.
    parser.add_argument('--video-list', type=str, help='the list of source videos')
    # * out should ends with '.pkl'
    parser.add_argument('--out', type=str, help='output pickle name')
    parser.add_argument('--tmpdir', type=str, default='tmp')
    parser.add_argument('--local_rank', type=int, default=0)
    # * When non-dist is set, will only use 1 GPU
    parser.add_argument('--non-dist', action='store_true', help='whether to use distributed skeleton extraction')
    parser.add_argument('--compress', action='store_true', help='whether to do K400-style compression')
    args = parser.parse_args()
    if 'LOCAL_RANK' not in os.environ:
        os.environ['LOCAL_RANK'] = str(args.local_rank)
    args = parser.parse_args()
    return args

这是一个用于解析命令行参数的函数 parse_args()。下面是这个函数的输入和输出的解释:

输入:

输出:

  • args:包含解析后的命令行参数的命名空间(Namespace)对象。

函数的功能是解析命令行参数并返回一个包含这些参数的命名空间对象。具体的解释如下:

  1. 创建一个 argparse.ArgumentParser 对象 parser,用于解析命令行参数。

  2. 添加各种命令行参数选项,包括检测模型和姿态模型的配置文件路径、检测模型和姿态模型的权重文件路径、检测阈值、目标框面积阈值、视频列表、输出文件名等参数。

  3. 调用 parser.parse_args() 解析命令行参数,并将解析结果赋值给 args

  4. 检查是否存在环境变量中的 LOCAL_RANK,如果不存在,则将 args.local_rank 的值转换为字符串并设置为环境变量中的 LOCAL_RANK

  5. 再次调用 parser.parse_args() 解析命令行参数,并将解析结果赋值给 args

  6. 返回包含解析后的命令行参数的命名空间对象 args

因此,这个函数的输入是空的,输出是一个包含解析后的命令行参数的命名空间对象,可以通过对象的属性来访问解析后的参数值。

def parse_args():
    parser = argparse.ArgumentParser(
        description='Generate 2D pose annotations for a custom video dataset')
    # * Both mmdet and mmpose should be installed from source
    # parser.add_argument('--mmdet-root', type=str, default=default_mmdet_root)
    # parser.add_argument('--mmpose-root', type=str, default=default_mmpose_root)
 
    # parser.add_argument('--det-config', type=str, default='../refe/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco-person.py')
    # parser.add_argument('--det-ckpt', type=str,
    #                     default='../refe/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth')
    parser.add_argument(
        '--det-config',
        # default='../refe/faster_rcnn_r50_fpn_2x_coco.py',
        default=default_det_config,
        help='human detection config file path (from mmdet)')
 
    parser.add_argument(
        '--det-ckpt',
        default=default_det_ckpt,
        help='human detection checkpoint file/url')
 
    parser.add_argument('--pose-config', type=str, default=default_pose_config)
    parser.add_argument('--pose-ckpt', type=str, default=default_pose_ckpt)
    # * Only det boxes with score larger than det_score_thr will be kept
    parser.add_argument('--det-score-thr', type=float, default=0.7)
    # * Only det boxes with large enough sizes will be kept,
    parser.add_argument('--det-area-thr', type=float, default=1300)
    # * Accepted formats for each line in video_list are:
    # * 1. "xxx.mp4" ('label' is missing, the dataset can be used for inference, but not training)
    # * 2. "xxx.mp4 label" ('label' is an integer (category index),
    # * the result can be used for both training & testing)
    # * All lines should take the same format.
    parser.add_argument('--video-list', type=str, help='the list of source videos')
    # * out should ends with '.pkl'
    parser.add_argument('--out', type=str, help='output pickle name')
    parser.add_argument('--tmpdir', type=str, default='tmp')
    parser.add_argument('--local_rank', type=int, default=1)
    # pdb.set_trace()
 
    # if 'RANK' not in os.environ:
    #     os.environ['RANK'] = str(args.local_rank)
    #     os.environ['WORLD_SIZE'] = str(1)
    # os.environ['MASTER_ADDR'] = 'localhost'
    # os.environ['MASTER_PORT'] = '12345'
 
    args = parser.parse_args()
    return args

这段代码是前面提供的 parse_args() 函数的一个修改版本。下面是这段代码的区别和中文解释:

  1. 注释掉了 --mmdet-root 和 --mmpose-root 参数:这段代码不再使用 --mmdet-root 和 --mmpose-root 参数,这些参数之前可能用于指定 mmdet 和 mmpose 的安装路径。

  2. 更新了 --det-config 和 --det-ckpt 参数的默认值:这段代码修改了 --det-config 和 --det-ckpt 参数的默认值。之前的默认值是注释掉的路径,而现在使用了名为 default_det_config 和 default_det_ckpt 的变量作为新的默认值。

  3. 更新了 --det-area-thr 参数的默认值:这段代码修改了 --det-area-thr 参数的默认值。之前的默认值是 1600,而现在修改为 1300。

  4. 注释掉了 pdb.set_trace():这段代码注释掉了 pdb.set_trace(),这是一个调试工具,用于在代码中设置断点进行调试。

  5. 注释掉了与环境变量相关的代码:这段代码注释掉了与环境变量相关的代码,包括 os.environ['RANK']os.environ['WORLD_SIZE']os.environ['MASTER_ADDR'] 和 os.environ['MASTER_PORT']

总结起来,这段代码是对前面提供的 parse_args() 函数进行了修改。主要修改包括更新了部分参数的默认值,注释掉了调试工具的断点设置,并注释掉了与环境变量相关的代码。

参考:

基于pyskl的poseC3D训练自己的数据集-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值