不使用机器学习的机器视觉

监督式机器学习的一个大问题是需要大量的标记数据。 这是一个大问题,尤其是如果您没有标记的数据,即使在充满大数据的世界中,我们大多数人也没有。

尽管少数公司可以访问大量特定种类的标记数据,但对于大多数组织和许多应用程序而言,创建足够数量的正确种类的标记数据是成本过高或不可能的。 有时,域就是其中没有太多数据的域(例如,在诊断罕见疾病或确定签名是否与一些已知示例匹配时)。 在其他时候,所需数据量乘以Amazon Turkers或夏季实习生的人工标签成本太高了。 付钱给电影长度视频的每一帧加标签,即使在一分钱的帧上也能快速累加。

大数据需求的大问题

我们小组着手解决的一个具体问题是:是否可以训练一个模型,以自动将简单的配色方案应用于黑白字符,而无需手工绘制数百或数千个示例作为训练数据?

  • 基于规则的小型数据集极端扩充策略
  • 借用了TensorFlow图像到图像转换模型Pix2Pix,以非常有限的训练数据自动进行卡通着色

我见过Pix2Pix (一种机器学习的图像到图像转换模型,在论文中进行了描述(Isola等人撰写的 “使用条件对抗网络进行图像到图像转换”)),该图像在对AB对进行训练后为风景着色A是景观B的灰度版本。我的问题似乎很相似。 唯一的问题是训练数据。

我需要的训练数据非常有限,因为我不想为了训练模型而绘制和绘制终身供应的卡通人物。 深度学习模型经常需要成千上万个示例,这些都是不可能的。

根据Pix2Pix的示例,我们至少需要400到1,000个草图/彩色对。 我愿意抽几张? 也许是30岁。我画了几十只卡通花和小龙,问我是否可以将它变成训练集。

80%的解决方案:按组分颜色

由组件规则着色的字符

当缺乏培训数据时,第一个要问的问题是针对我们的问题是否有一种基于非机器学习的好的方法。 如果没有完整的解决方案,是否有部分解决方案,部分解决方案对我们有好处吗? 我们甚至需要机器学习为花朵和龙着色吗? 还是可以指定着色的几何规则?

如何按组件着色

一个非机器学习的方法来解决我的问题。 我可以告诉一个孩子我如何使我的图纸着色:将花朵的中心变成橙色,将花瓣变成黄色。 将龙的身体变成橙色,将尖峰变成黄色。

首先,这似乎没有帮助,因为我们的计算机不知道中心,花瓣,身体或尖峰是什么。 但是事实证明,我们可以根据连接的零部件定义花或龙的零件,并为大约80%的工程图着色提供几何解决方案。 尽管80%还不够,但是我们可以使用策略性违反规则的转换,扩充和机器学习将基于局部规则的解决方案引导到100%。

使用Windows Paint(或类似应用程序)时,连接的组件是彩色的。 例如,在为二进制黑白图像着色时,如果单击白色像素,则在不跨越黑色的情况下达到的白色像素将被着色为新颜色。 在“符合规则”的卡通龙或花朵素描中,最大的白色成分是背景。 其次是身体(加上胳膊和腿)或花朵的中心。 其余的是穗状花序或花瓣,除了龙眼,可以通过与背景的距离来区分。

使用战略规则突破和Pix2Pix达到100%

我的一些草图不符合规则。 粗略画出的线可能会留下间隙。 后肢会像尖刺一样变色。 居中的小雏菊将切换花瓣和中心的着色规则。

违反规则的图像

对于20%的人,我们无法使用几何规则着色,我们需要其他东西。 我们转向Pix2Pix,它需要至少400到1,000个草图/彩色对的训练集(即Pix2Pix论文中最小的训练集),其中包括违反规则的对。

因此,对于每个违反规则的示例,我们都手工完成了着色(例如,后肢)或采取了一些符合规则的草图/彩色对并打破了规则。 我们删除了A中的一条线,或者使用相同的函数( f )转换了一个胖的,居中的花对A和B,以创建新的对f (A)和f (B)-一个小的居中的花。 那使我们进入了训练场。

具有高斯滤波器和同胚的极值增强

在计算机视觉中,通常会通过旋转,平移和缩放等几何变换来增强图像训练集。

但是,如果我们需要将向日葵变成雏菊或使龙鼻子的球茎变尖或变尖,该怎么办?

或者,如果我们只需要在不过度拟合的情况下大幅增加数据量呢? 在这里,我们需要一个比开始时大10到30倍的数据集。

向日葵变成r的雏菊-> r立方

高斯滤波器增强

单位圆盘的某些同胚性可以很好地发挥作用(例如r-> r cubed ),而高斯滤波器会改变龙的鼻子。 两者对于为我们的数据集创建增幅和产生所需的增幅量都非常有用,但是它们也开始以仿射变换无法改变的方式来改变图纸的样式。

除了如何使简单的配色方案自动化之外,这还引发了其他问题:是什么定义了艺术家的风格,无论是外部观众还是艺术家? 没有算法,艺术家什么时候可以采用他们自己的绘画? 主题何时变得无法识别? 工具,助手和协作者之间有什么区别?

我们能走多远?

在停留在可以被识别为艺术家的主题和风格的同时,我们可以为输入画多少图,可以创造多少变化和复杂度? 我们需要做些什么来制作无数的长颈鹿,龙或花的游行队伍? 如果我们有一个,该怎么办?

这些是我们在以后的工作中将继续探讨的问题。

但是到目前为止,规则,扩充和Pix2Pix模型都可以使用。 我们可以很好地为花朵上色,而龙也不错。

结果:模型在花朵上训练出的花朵上色

结果:以模型训练的龙训练


要了解更多信息 ,请在PyCon Cleveland 2018上参加Gretchen Greene的演讲“ DragonPaint-将小数据引导到彩色卡通作品” 。

翻译自: https://opensource.com/article/18/4/dragonpaint-bootstrapping

不使用机器学习的机器视觉

不使用机器学习的机器视觉_使用机器学习为卡通着色相关推荐

  1. 不使用机器学习的机器视觉_我关于使用机器学习进行体育博彩的发现使博彩公司总能胜出

    不使用机器学习的机器视觉 One afternoon, in the middle of my holidays the thought of using machine learning to pr ...

  2. 不使用机器学习的机器视觉_如何在约10分钟内开始使用机器学习

    不使用机器学习的机器视觉 by Tirmidzi Faizal Aflahi 通过提尔米兹·法扎尔·阿弗拉希 With the rise of Machine Learning inside indu ...

  3. 使用机器学习预测天气_使用机器学习的二手车价格预测

    使用机器学习预测天气 You can reach all Python scripts relative to this on my GitHub page. If you are intereste ...

  4. 机器学习 客户流失_通过机器学习预测流失

    机器学习 客户流失 介绍 (Introduction) This article is part of a project for Udacity "Become a Data Scient ...

  5. 27个机器学习图表翻译_使用机器学习的信息图表信息组织

    27个机器学习图表翻译 Infographics are crucial for presenting information in a more digestible fashion to the ...

  6. 机器学习诗词创作_通过机器学习创作音乐

    机器学习诗词创作 In Sweden, there's something called the Allemansrätten, which literally translates to " ...

  7. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

  8. 机器学习模型 非线性模型_调试机器学习模型的终极指南

    机器学习模型 非线性模型 You've divided your data into a training, development and test set, with the correct pe ...

  9. 使用机器学习预测天气_使用机器学习来预测患者是否会再次入院

    使用机器学习预测天气 We are in a age where machines are utilizing huge data and trying to create a better worl ...

最新文章

  1. 谈钱太俗!难道开源软件只能讲道义?
  2. hdu 2514 Another Eight Puzzle
  3. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
  4. Latex指南(part2)--Latex入门之组织文档结构
  5. 决策树信息熵计算_决策树熵|熵计算
  6. unity2D相机跟随
  7. Tensorflow 获取model中的变量列表,用于模型加载等
  8. multipartfile获取文件路径_已知路径,通用获取文件名、后缀、类型
  9. webstorm快捷键生成html页面,webStorm快捷键总结
  10. CityEngine建模全流程解析与分享【系列文章之一】
  11. laravel框架解决sql注入问题
  12. Java实现第三方短信接口发送短信验证码
  13. 北理大编程作业:确定母亲节
  14. opengl 知识点2
  15. XAMP安装Apacher无法启动
  16. 基于javaweb的在线点餐+外卖配送系统
  17. 什么是非关系型数据库,Redis概述、安装及部署Redis群集
  18. 期权常见的六大交易误区
  19. 前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配
  20. mysql 公历变农历_经过完整测试的农历-公历相互转换

热门文章

  1. 基于jedis的Redis工具类
  2. RedisUtils工具类
  3. 使用JDBC来实现一个简单的增删改查
  4. Keepalived + Nginx 实现高可用 Web 负载均衡
  5. ES6中的迭代器(Iterator)和生成器(Generator)(一)
  6. java 将list按指定大小等分,最后多余的单独一份
  7. 让nginx支持文件上传的几种模式
  8. 艾伟:C# Design Patterns (1) - Factory Method
  9. jvm学习笔记(2)——java对象的内存布局
  10. react使用less预编译语言和本地代理配置