2018年3月29日星期四

Mask R-CNN神应用:像英剧《黑镜》一样屏蔽人像

黑镜之《白色圣诞节》中的黑科技:屏蔽。

用法

Person Blocker 可使用以下命令行调用并输出结果:

python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck' 

这个命令如下有一些参数来控制模型的推断效果:

  • -i/--image:指定输入图像的路径与文件。

  • -m/—model:加载预训练 COCO 模型权重的路径,默认情况下为当前目录。如果没有指定路径,且当前目录下不存在权重文件,那么模型将自动下载预训练权重至当前目录。

  • -c/—color:指定掩码的颜色,它可以是引号内的 16 进制或 RGB 三元素元组的格式,默认为白色。

  • -o/--object:遮掩目标的可用列表或具体目标的 ID,我们可以在文件 classes.py 中看到所有可遮掩的目标,或直接使用-names flag,默认的遮掩目标为「person」。

  • -l/—labeled:通过检测的目标和对应的目标 ID 标注图像并保存。

  • -n/—names:打印目标的类别选项,并退出。

这一份脚本可输出两种图像,即静态的 png 图像和动态的 gif 图像。我们可选的遮掩目标有 80 种,如下 classes.py 文件中给出了所有的目标类别:

def get_class_names():     return np.array(['BG', 'person', 'bicycle', 'car', 'motorcycle', 'airplane',                      'bus', 'train', 'truck', 'boat', 'traffic light',                      'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird',                      'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear',                      'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie',                      'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball',                      'kite', 'baseball bat', 'baseball glove', 'skateboard',                      'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup',                      'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',                      'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza',                      'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed',                      'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote',                      'keyboard', 'cell phone', 'microwave', 'oven', 'toaster',                      'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors',                      'teddy bear', 'hair drier', 'toothbrush']) 

使用案例

python3 person_blocker.py -i images/img1.jpg 

python3 person_blocker.py -i images/img2.jpg -c '#c0392b' -o 'giraffe'

python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'

遮掩特定的目标需要两个步骤:首先执行推断模型并获取所有的目标 ID,然后再根据 ID 选择性地遮掩这些目标。

python3 person_blocker.py -i images/img4.jpg -l 

python3 person_blocker.py -i images/img4.jpg -o 1 

最后,如果读者想使用或测试该脚本,那么它需要的依赖库与 Mask R-CNN 基本相同:

  • Python 3.4+

  • TensorFlow 1.3+

  • Keras 2.0.8+

  • Numpy, skimage, scipy, Pillow, cython, h5py

  • matplotlib, imageio

]]> 原文: https://ift.tt/2GkNqcy
RSS Feed

机器知心

IFTTT

没有评论:

发表评论

JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!- InfoQ 每周精要848期

「每周精要」 NO. 848 2024/09/21 头条 HEADLINE JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧! 精选 SELECTED C++ 发布革命性提案 "借鉴"Rust...