使用detectron进行初步的图像检测、训练

https://zhuanlan.zhihu.com/p/37257790

一、图像检测

进行图像检测的前提是已经有相应的模型进行训练过,那么可以直接进行检测。

以tool/infer_simple.py为例,根据其中的parse_args()函数可知道需要附加的参数有哪些?

使用detectron进行初步的图像检测、训练_第1张图片

假设图片保存路径是demo,结果输出在/tmp/detectron-visualizations,采用mask rcnn、ResNet-101-FPN Backbone进行训练的话,执行:

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_1x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

其中--cfg加载backbone模型,--output-dir指定输出的检测可视化结果;--image-ext表示图片的格式;--wts 表示加载的模型权重;demo表示图片的保存路径。

运行结果示例如下:

使用detectron进行初步的图像检测、训练_第2张图片

如果用faster rcnn进行检测的话,首先需要训练相应的模型。由于我只有一个GPU,因此我进行单GPU训练:

python2 tools/train_net.py \
    --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml \
    OUTPUT_DIR /tmp/detectron-output

训练完成后,在 /tmp/detectron-output文件夹会有generalized_rcnn/model_final.pkl,model_final.pkl就是模型训练的权重。

训练完成后,开始做检测。

python3 tools/infer_simple.py \
--cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \
--output-dir demo/output \
--image-ext jpg \
--wts model_final_kp.pkl \
demo/input

则会出现相应的检测结果,其检测结果只包含bbox的,没有mask。其检测结果可能如下:

使用detectron进行初步的图像检测、训练_第3张图片

PS:--wts 权重可以先下载下来,然后直接给出其路径。

你可能感兴趣的:(计算机视觉)