Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测

简介: Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测
+关注继续查看

输出结果


image.png

image.png

image.png








设计思路

image.png




核心代码


# -*- coding: utf-8 -*-

import os

import sys

import argparse

import numpy as np

import coco

import utils

import model as modellib

import imageio

import visualize

def create_noisy_color(image, color):

   color_mask = np.full(shape=(image.shape[0], image.shape[1], 3),

                        fill_value=color)

   noise = np.random.normal(0, 25, (image.shape[0], image.shape[1]))

   noise = np.repeat(np.expand_dims(noise, axis=2), repeats=3, axis=2)

   mask_noise = np.clip(color_mask + noise, 0., 255.)

   return mask_noise

def string_to_rgb_triplet(triplet):

   if '#' in triplet:

       # http://stackoverflow.com/a/4296727

       triplet = triplet.lstrip('#')

       _NUMERALS = '0123456789abcdefABCDEF'

       _HEXDEC = {v: int(v, 16)

                  for v in (x + y for x in _NUMERALS for y in _NUMERALS)}

       return (_HEXDEC[triplet[0:2]], _HEXDEC[triplet[2:4]],

               _HEXDEC[triplet[4:6]])

   else:

       # https://stackoverflow.com/a/9763133

       triplet = make_tuple(triplet)

       return triplet

……

if __name__ == '__main__':

   parser = argparse.ArgumentParser(

       description='Person Blocker - Automatically "block" people '

                   'in images using a neural network.')

   parser.add_argument('-i', '--image',  help='Image file name.',

                       required=False)

   parser.add_argument(

       '-m', '--model',  help='path to COCO model', default=None)

   parser.add_argument('-o',

                       '--objects', nargs='+',

                       help='object(s)/object ID(s) to block. ' +

                       'Use the -names flag to print a list of ' +

                       'valid objects',

                       default='person')

   parser.add_argument('-c',

                       '--color', nargs='?', default='(255, 255, 255)',

                       help='color of the "block"')

   parser.add_argument('-l',

                       '--labeled', dest='labeled',

                       action='store_true',

                       help='generate labeled image instead')

   parser.add_argument('-n',

                       '--names', dest='names',

                       action='store_true',

                       help='prints class names and exits.')

   parser.set_defaults(labeled=False, names=False)

   args = parser.parse_args()

   if args.names:

       print(get_class_names())

       sys.exit()

   person_blocker(args)

全部代码和设计思路解释每周六将公布!!!


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 上一篇文章中一直围绕着CNN处理图像数据进行讲解,而CNN除了处理图像数据之外,还适用于文本分类。
1405 0
ZooKeeper运维之使用SnapshotFormatter可视化快照数据
在ZooKeeper的运维过程中,我们经常会碰到这样的问题,就是快照数据文件越来越大,但是ZooKeeper上的数据节点数量并没有相应的增加。 这说明什么问题:一定是有客户端在将ZooKeeper当数据库使用了。长此以往,必然会引起ZooKeeper内存数据过大而影响性能及集群间的数据同步。 那
2683 0
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(下)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 在上一篇文章中,已经介绍了Keras对文本数据进行预处理的一般步骤。
1743 0
技能学习:学习使用node.js + vue.js,开发前端全栈网站-1.工具和本地环境
Node.js 运行环境是引领前端开发人员的“一道光”,让前端开发人员**仅**利用已掌握的 js 语言就可以实现对网站服务器环境的搭建与运行。打破了以往前后端分工合作、交流对接的惯性习惯。 相对于传统PHP、JAVA开发,Node.js 附带的npm更方便、快捷地让前端开发人员更快、更方便地使用和获取其他前端大神封装好的 js 类库和精美UI样式库,舍去不同语言和不同编码的切换过程。
128 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7743 0
让keras训练深度网络时使用多个显卡
1、使用nvidia-smi pmon 查看linux系统的gpu情况,如下: 显然是2张显卡,如何让它们都工作呢 2、keras提供了keras.utils import multi_gpu_model使用多个显卡的功能: 在原来的model基础上使用multi_gpu_model函数指定一...
1917 0
Asp.Net Web API 2第十课——使用OWIN自承载Web API
原文:Asp.Net Web API 2第十课——使用OWIN自承载Web API 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程主要来展示在控制台应用程序中如何通过OWIN来承载Web API。
1030 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载