前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资源 | Mask R-CNN神应用:像英剧《黑镜》一样屏蔽人像

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

作者头像
机器之心
发布2018-05-08 15:48:57
6480
发布2018-05-08 15:48:57
举报
文章被收录于专栏:机器之心机器之心

选自GitHub

机器之心编译

参与:思源、黄小天

黑镜特别篇《白色圣诞节》中有种名为「屏蔽」的黑科技,每个人安装上智能眼,可以凭意愿屏蔽动态视界中的任何人(及其相关的任何影像和声音),变成一团移动的白色马赛克。被屏蔽者无法解除这种屏蔽,除非死亡。相比之下,朋友圈的屏蔽是不是弱爆了?本文作者给出了一种自动「屏蔽」人像的脚本(不同于黑镜中的视频屏蔽),底层实现是在 MS COCO 数据集上预训练的 Mask R-CNN,但它不需要 GPU!此外,它不仅可屏蔽人像,还可以屏蔽包括长颈鹿和汽车在内的多达 80 种不同类型的物体,向黑镜中的黑科技迈出了第一步。

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

用法

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

代码语言:javascript
复制

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

  • -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 文件中给出了所有的目标类别:

代码语言:javascript
复制
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'])

使用案例

代码语言:javascript
复制
python3 person_blocker.py -i images/img1.jpg
代码语言:javascript
复制

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

代码语言:javascript
复制
python3 person_blocker.py -i images/img4.jpg -l
代码语言:javascript
复制
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

本文为机器之心编译,转载请联系本公众号获得授权。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档