研究生做的稍微有点水平的就这两个项目了:一个是利用SVM做手绘草图的分类,另一个是利用JointBoost+CRF做手绘草图的分割。总结得出的经验是做研究的方法就是将别人大神的代码看懂然后改成适合自己项目的代码,转而这次记录的是另一个项目就是利用JointBoost+CRF做手绘草图的分割。


引言


手绘草图的分割就是语义上的分割,如下面两个图:

  

左图是未标记的"手绘草图",右图是人工标记了的手绘草图,我们想训练一个分类模型能够对手绘草图上的样点进行语义分类,即判断某点所属类别(头、脚、身体或者尾巴)。而我们采用的方法就是Conditional Random Field 称为条件随机场。虽然名字高大上,但是思想还是很简单的,而这个方法的实现是来自一篇论文,见参考文献1。借用该论文的一段话,来将手绘草图分割的任务具体化:

Many tasks in computer vision involve assigning a label (such as disparity) to every pixel. A common constraint is that the labels should vary smoothly almost everywhere while preserving sharp discontinuities that may exist, e.g., at object boundaries. These tasks are naturally stated in terms of energy minimization.


能量函数是什么


上面英文翻译就是:在机器视觉中的许多任务都要涉及到为每一块像素加标签。一个常规的约束就是所加的标签要尽可能的平滑,然而在物体边界上所加标签的要保留较强的不连续性,然后这样的任务(要求)通常可以用能量函数的最小化表示。我的理解就是如上右图,我们既需要保持同一标签的样点的内部不会突然出现其他标签(smoothly),也要保持在不同标签边界处的标签混淆更少(sharp discontinuities)。上面这段话总结来说就是要解决两个问题:这个能量函数怎么设计,和能量函数怎么最小化。


E_smooth项的选取



V的性质(度量与半度量)



GraphCut迭代算法总流程



 a-b-swap、a-expansion是什么



图割是什么?



证明:求一个图的最小割等价于步骤3.1



参考文献与代码


参考文献1. Fast Approximate Energy Minimization via Graph Cut

参考文献2. Learning 3D Mesh Segmentation and Labeling

参考文献3. Sharing Visual Features for Multiclass and Multiview Object Detection

本人论文. Component Segmentation of Sketches Used in 3D model retrieval

图割参考代码:http://vision.ucla.edu/~brian/gcmex.html

JointBoost参考代码:https://people.cs.umass.edu/~kalo/papers/LabelMeshes/index.html


最后


只能说学到了一种基于序列数据的机器学习的算法,但是感觉高大上应该还有更基础的算法可以学学吧。后面写点Hadoop的东西了,毕业了,工作要用,这个CRF最后的大坑也算填上了。

JointBoost+CRF+GraphCut做手绘草图的分割的更多相关文章

  1. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  2. UWP 手绘视频创作工具 “来画Pro” 技术分享系列

    开篇先来说一下我和来画的故事,以及写这篇文章的初衷. 今年年初时,我还在北京,在 Face++,做着人脸识别技术的 Windows 和 Android 端,做着人工智能终将实现世间所有美好的梦.这时的 ...

  3. UWP 手绘视频创作工具技术分享系列

    开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做 ...

  4. UWP 手绘视频创作工具技术分享系列 - 手绘视频导出

    手绘视频最终的生成物是视频文件,前面几篇主要讲的是手绘视频的创作部分,今天讲一下手绘视频的导出问题.主要以 UWP 为例,另外会介绍一些 Web 端遇到的问题和解决方法. 如上所述,手绘视频在创作后, ...

  5. UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频

    AI(Artificial Intelligence)正在不断的改变着各个行业的形态和人们的生活方式,图像识别.语音识别.自然语言理解等 AI 技术正在自动驾驶.智能机器人.人脸识别.智能助理等领域中 ...

  6. UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial

    本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen ...

  7. UWP 手绘视频创作工具技术分享系列 - 手绘视频与视频的结合

    本篇作为技术分享系列的第三篇,详细讲一下手绘视频中结合视频的处理方式. 随着近几年短视频和直播行业的兴起,视频成为了人们表达情绪和交流的一种重要方式,人们对于视频的创作.编辑和分享有了更多的需求.而视 ...

  8. UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制

    本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式. 首先看一下文字绘制在手绘视频中的应用场景 文字是手绘视频中很重要的表 ...

  9. UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频

    从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...

随机推荐

  1. 从零自学Hadoop(11):Hadoop命令上

    阅读目录 序 概述 Hadoop Common Commands User Commands Administration Commands File System Shell 引用 系列索引 本文版 ...

  2. sql server 里面的 dynamic Data Masking

    有时候啊,当我们存放在数据库里面的数据,需要明文存放,但是对于前台查询出来的,又不太希望明文放出去的时候(比方说客户的手机啊,邮箱啊)之类有点敏感的信息,之前通常是保存个明文,然后在前台展现的时候再特 ...

  3. Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)

    本节我们讨论 Suspend/Resume 和 Rescue/Unrescue 这两组操作. Suspend/Resume 有时需要长时间暂停 instance,可以通过 Suspend 操作将 in ...

  4. Linux学习笔记1_用户和权限

    自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...

  5. centos yum update kernel

    1.查看当前kernel版本 uname -r 2.查看已安装版本 rpm -q kernel 3.查看可升级kernel版本 yum list kernel 4.升级kernel版本 yum upd ...

  6. 国内经典BI系统架构分析

    谈起商业智能BI,也许大家并不陌生,但你是否了解国内的各类BI系统架构? 自国内商业智能发展以来,就系统结构方面已经历了多次优化性的变革.目前国内商业智能BI系统的经典架构的模式包括数据层.业务层和应 ...

  7. 报表开发工具Finereport移动端app js接口列表【全】

    应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...

  8. 【2016-10-20】【坚持学习】【Day10】【反射2】

    Type类的属性:        Name 数据类型名        FullName 数据类型的完全限定名(包括命名空间名)        Namespace 定义数据类型的命名空间名        ...

  9. java Socket编程-基于UDP

    package com.wzy.UDPTest; import java.net.DatagramPacket; import java.net.DatagramSocket; import java ...

  10. P1546 最短网络 Agri-Net

    题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其 ...