GrabCut算法、物体显著性检测

news/2024/11/28 3:42:49/

图割GraphCus算法。利用颜色、纹理等信息对GraphCut进行改进,形成效果更好的GrabCut算法。

对图像的目标物体和背景建立一个K维的全协方差高斯混合模型。
其中,单高斯模型的概率密度函数用公式表示为:

 高斯混合模型可表示为n个单高斯模型的概率密度加权之和:
Pi为第i个高斯模型的权值。

对含有N个像素点的图像,用z=(z_{1},L,z_{n},L,z_{N})表示。
用不透明度\alpha表示像素点的值。\alpha∈{0,1} 。1表示该像素点属于目标物体,0表示像素点属于背景。

每个像素的独立GMM参数用向量k=(k_{1},L,k_{n},L,k_{N})表示,k_{n}∈{1,2,L,K}。

GrabCut算法:目标提取问题转化为求解能量函数最优解的问题,能量函数表示为:

 数据项定义为:

所以, 该算法只需构建高斯混合模型,不断交互迭代分割估计和模型参数学习过程,就可以实现目标从复杂背景中的提取。

GrabCut算法的缺点

(1)需要人工交互选出包含目标区域的矩形框——解决:模仿人视觉注意力机制的显著性算法可以获取被抓取目标的区域
(2)算法要求每个像素点对应的高斯模型的参数,参数量大,时间复杂度高——解决:超像素代替该超像素中的所有像素进行参数训练

物体显著性检测

 使用超像素结合GrabCut算法对图像进行分割

前提:改进算法得到超像素图。

假设共有N个超像素,用S={S_{1}S_{2},L,S_{n},L,S_{N}}表示每个超像素包含的图像,其中S_{n}表示第n个超像素。将超像素用作网络图的节点,对GMM参数进行估计并迭代处理,则:

 使用超像素代替原始大量像素点初始化构建GMM模型,构建网络图进行参数估计并迭代计算,对图像进行分割可以提高GrabCut的运算效率。

实现流程

 


http://www.ppmy.cn/news/30459.html

相关文章

C++基础——Ubuntu下编写C++环境配置总结(C++基本简介、Ubuntu环境配置、编写简单C++例程)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

微信小程序搭建流程

一、申请微信开发者账号虽然开发微信小程序可以使用工具提供的测试号,但是测试号提供的功能极为有限,而且使用测试号开发的微信小程序不能上架发布。因此说我们想要开发一个可以上架的微信小程序,首先必须要申请微信开发者账号。大家尽可放心…

OpenCV入门(四)快速学会OpenCV3画基本图形

OpenCV入门(四)快速学会OpenCV3画基本图形 1.画点 在OpenCV中,点分为2D平面中的点和3D平面中的点,区别就是3D中点多了一个z坐标。我们首先介绍2D中的点,坐标为整数的点可以直接用(x, y)代替,其中x是横坐标…

PHP CRUL请求GET、POST

// GET请求 public function curlGet($url,$header){ $ch curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_s…

SpringBoot常见面试题汇总(超详细回答)

1.什么是SpringBoot?Spring Boot 是一个基于 Spring 框架的开源框架,用于快速创建独立的、生产级别的、可运行的 Spring 应用程序。它采用了约定优于配置的理念,使开发者可以不需要手动配置大量的 Spring 配置文件,而快速搭建出符…

css中重难点整理(vertical-align)

一、vertical-align 在学习vertical-align的时候,可能会很困惑。即使网上有一大推文章讲veitical-align,感觉看完好像懂了,等自己布局的时候用到vertical-align的时候好像对它又很陌生。这就是我在布局的时候遇到的问题。 本来vertical-align就很不好理…

【Spring6】| GoF之工厂模式

目录 一:GoF之工厂模式 1. 工厂模式的三种形态 2. 简单工厂模式 3. 工厂方法模式 4. 抽象工厂模式(了解) 一:GoF之工厂模式 (1)GoF(Gang of Four),中文名——四人组…

Java开发 - Quartz初体验

前言 在上一篇博客中,我们对单点登录有了初步了解,这也让我们独立做系统有了最基础的保障。但在业务开发中,总是会出现一些定期处理的任务,我们首先想到的是Timer,但由于其调度功能单一,我们实际并不会用它…