当前位置: 首页 > news >正文

基于超像素的多视觉特征图像分割算法研究

0.引言

背景:

经典聚类算法:Kmeans、FCM
现有问题:
1)现有算法大都是基于单一的视觉特征而设计的,eg:基于颜色特征的分割。
2)没有考虑像素周围的空间信息;分割结果:多噪声,缺乏区域性
3)像素点的数量比较大,算法时间复杂度大;
4)传统的聚类优化算法一般都是使用梯度信息来求解,该优化算法对初始值比较敏感,容易陷入局部最优

梯度信息:在指定方向每单位距离的数值变化

解决思路

1)融合颜色特征和纹理特征——基于多特征的图像分割算法
(导致对多种特征赋予相同的权重)
2)分割空间信息:1.改进目标函数,将空间信息加入到聚类目标函数中。2.首先使用预分割算法获得过分割图像,而后使用聚类算法对过分割图像块进行合并(仅是基于颜色特征,效果不好)
3)进化算法——全局优化算法:多目标空间模糊聚类算法(MSFCA)——法在适应度函数中加入了从图像中提取的非局部空间信息(仅基于颜色特征,利用像素点进行计算,时间复杂度高)

多目标进化颜色和纹理分割算法(MECTS)

优化目标:颜色+纹理
缺点:基于像素点——无法有效去除噪声+时间复杂度高
改进:基于超像素的多视觉特征图像分割算法(SRMFS)

基于超像素的多视觉特征图像分割算法(SRMFS)

1.流程:

1.首先使用 Meanshift 算法将图像划分为多个超像素区域。
2.而后提取每个超像素区域的颜色和纹理特征。分别在颜色空间和纹理空
间中设计两个聚类目标准则,并使用多目标优化算法对其进行并行优化。
3.最终在获得的 Pareto 解集中挑选出最佳分割结果。
该算法分为五部分:
(1)对原始图像进行预分割,获得一组超像素区域;
(2)分别提取超像素区域的颜色特征和纹理特征
(3)使用多目标进化算法对超像素区域进行类,获得一组 Pareto 解集,每一个解代表一种分割结果;
(4)解码每个 Pareto 解,获得整个图像的分割结果;
(5)挑选出最佳分割结果。

在这里插入图片描述

2.算法核心

2.1超像素区域

首先对原始图像进行预分割,获得一组超像素区域。
Q1:为什么选择Meanshift算法?(其他算法:分预分割
流程既可以保证图片在局域内的连通性,又能通过减
少像素规模而降低算法的时间复杂度水岭算法、SLIC)
预分割作用:1)保证图片在局域内的连通性,2)通过减少像素规模而降低算法的时间复杂度
注意:Meanshift分割区域太多——结果图像噪声点较多,时间复杂度增大;太少——导致本文分割算法过多地依赖于Meanshift算法的预分割

2.2特征提取

Q2:为什么选取颜色和纹理作为特征提取

A2: 颜色特征和纹理特征已成为图像处理中两个比较重要的特征,并且这两个特征在描述图像信息时具有极大的不相关性,颜色特征可以直观的描述图像的视觉特征,纹理特征可以描述图像局域内的空间特征

2.2.1颜色提取

从 RGB 颜色空间中提取每个像素的颜色特征

2.2.2纹理特征提取

常见提取方法:可分统计方法、几何法、模型法、信号处理法和结构方法
本文选用: Gabor 小波方法
此方法通过对滤波后的图像进行非线性操作和能量计算来得到特征图像,并用建立的特征矢量做分类。可以对每个像素提取 5 维纹理特征

2.3 多目标进化算法(RM-MEDA)

2.3.1 染色体编码

首先需要将解编码成染色体形式;
目标:将预分割获得的超像素区域聚类成具有特定意义区域的形式。
编码形式:基于 实数-标签

2.3.2 目标函数

Jmse 指标
首先对染色体解码,并计算每个类的类中心;接下来再分别计算颜色空间中的隶属度矩阵和和纹理空间的隶属度矩阵。

2.3.3 进化算子

本文算法使用的是 RM-MEDA 算法作为进化多目标优化器。该算法使用建模和采样来产生新的种群。
通过建模和采样,可获得子代种群,然后使用非支配排序和拥挤距离选择popsize(种群规模)个染色体作为第g+1代种群pop(g+1);

2.4 输出最佳分割图像

从 Pareto 集中挑选出最优解,根据所得标签值进行聚类,对于所有标签为 j 的区域合并成若干个完整的区域,输出最终分割后的图像,由于最终获得的分割图像数量比较少,手工挑选出最好的分割图像。

3.实验结果

实验对象:

1)颜色相近但纹理特征不同;
2)纹理特征相近,但颜色不同 ;
3)目标物体内部与边缘颜色不同,但具有相同的纹理。

对比算法:

1)基于颜色的FCM
2)基于纹理的FCM
3)结合颜色和纹理的FCM
4)增加空间信息的AFCM_S1
5)Meanshift算法
6)基于像素点的多目标颜色纹理融合算法MECTS

例子

量化分析

1)分割精度 Segmentation Accuracy
2)兰德指数 Rand Index
ps:取值范围[0,1] 正相关

优点

1)有效地对颜色和纹理特征进行结合
2)分割对象是区域而不是像素点,可以极大地降低算法的时间复杂度

展望

1)如何融合三种以上特征
2)如何自动的选择最佳分割结果

相关文章:

基于超像素的多视觉特征图像分割算法研究

0.引言 背景: 经典聚类算法:Kmeans、FCM 现有问题: 1)现有算法大都是基于单一的视觉特征而设计的,eg:基于颜色特征的分割。 2)没有考虑像素周围的空间信息;分割结果:多噪…...

mysql的三大日志

摘自https://blog.csdn.net/chuige2013/article/details/123027580 一. 初步认识 binlog二进制日志 redolog undolog 二. binlog binlog记录写入行操作 作用 1)、主从复制:在Master端开启binlog,然后将binlog发送到各个Slave端,S…...

API接口及社区电子商务化的解释

API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现数据传输的安全&#xff0c…...

[蓝帽杯 2021]One Pointer PHP

知识点&#xff1a;php 数组整型溢出&#xff0c;open_basedir 绕过分析 利用数组整型溢出绕过&#xff0c;因为PHP 会对溢出的数字处理为 float 类型。 <?php include "user.php"; if($userunserialize($_COOKIE["data"])){$count[$user->count]…...

【JAVA】xxl-job服务搭建

xxl-job服务搭建 1.下载xxl-job项目 https://github.com/xuxueli/xxl-job 2.数据库表创建 3.修改配置 注意&#xff1a;这是两个项目&#xff0c;一个是xxl-job前台&#xff0c;一个是xxl-job执行器&#xff0c;找到这两个项目得配置文件&#xff0c;修改配置。 配置文件地址…...

毕业设计 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计

基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2心率检测电路设计2.3 TFT2.4寸彩屏电路设计3、部分代码展示3.1 ADC初始化3.2 获取ADC采样值3.3 LCD引脚初始化3.3 在LCD指定位置显…...

【10k~30k的区别】=== 功能测试、自动化测试、性能测试的区别

按测试执行的类型来分&#xff1a;功能测试、自动化测试、性能测试 1&#xff0e;功能测试 功能测试俗称点点点测试。初级测试人员的主要测试任务就是执行测试工程师所写的测试用 例&#xff0c;记录用例的执行状态及bug情况。与开发人员进行交互直到bug被修复。 功能测试理论…...

《MySQL学习》 索引失效的三种特殊情况

一.条件字段使用函数 explain select * from bpm_proc_instance bpi where CREATED_AT > 2022-06-01 CREATED_AT 字段建立了索引&#xff0c;此时explain分析的结果表明能使用到索引 但如果我们对 CREATED_AT 字段使用函数 explain select * from bpm_proc_instance bpi w…...

wafw00f 防火墙探测

kali机器自带防火墙探测工具wafw00&#xff0c;它可以通过发送正常以及不正常甚至包含恶意代码的HTTP请求&#xff0c;来探测网站是否存在防火墙&#xff0c;并识别防火墙的厂商及类型。安装&#xff1a;git clone https://github.com/EnableSecurity/wafw00f.git python setup…...

MySQL学习(1)[参考书籍:mysql是怎么运行的]

目录 一、mysql设计模式和技术 二、mysql服务器和客户端 启动mysql服务 启动mysql客户端程序 三、mysql存储引擎 四、mysql配置 五、mysql系统变量 六、mysql字符集 编码和解码&#xff1a; 常见字符集&#xff08;五种&#xff09;&#xff1a; 相关概念&#xff1…...

用Python制作邮件检测器

github地址&#xff1a; https://github.com/CaLlMeErIC/MailDetective 因为需求需要写一个简单的邮件检测系统的框架&#xff0c;这里记录下思路 首先第一反应,这个检测系统不应该是各个邮件收件系统都有自带的吗&#xff0c;于是搜索了下是否有相关的邮件检测开源软件&#…...

K8S---pod基础概念

目录 一、资源限制 二、Pod 的两种使用方式 三、Pod 资源共享 四、底层容器Pause 1、Pause共享资源 1.1 网络 1.2 存储 1.3 小结 2、Pause主要功能 3、Pod 与 Pause 结构的设计初衷 五、Pod容器的分类 1、基础容器&#xff08;infrastructure container&#xff09;…...

激活函数入门学习

本篇文章从外行工科的角度尽量详细剖析激活函数&#xff0c;希望不吝指教&#xff01; 学习过程如下&#xff0c;先知道这个东西是什么&#xff0c;有什么用处&#xff0c;以及怎么使用它&#xff1a; 1. 为什么使用激活函数 2. 激活函数总类及优缺点 3. 如何选择激活函数 …...

小文智能结合ChatGPT的产业未来

最近几个月&#xff0c;由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT在国内外各大平台掀起了一阵AI狂潮。短短几天时间&#xff0c;其用户量就突破了百万大关&#xff0c;注册用户之多一度导致服务器爆满。 继AI画图之后&#xff0c;ChatGPT成为了新的顶流&#xf…...

Linux-编写一个自己的命令

前言&#xff08;1&#xff09;在Linux中&#xff0c;我们对文件路径进行操作都需要输入命令。那么&#xff0c;有人可能就会有疑惑了&#xff0c;命令是什么东西&#xff1f;我们是否也可以创造出自己的命令呢&#xff1f;答案是可以的。命令本身其实就是可执行文件。但是与普…...

Nacos架构篇 - Distro协议

Distro 它是 Nacos 社区自研的一种 AP 分布式协议&#xff08;也是最终一致性协议&#xff09;。它面向临时实例&#xff0c;保证了在某些 Nacos 节点宕机后&#xff0c;整个临时实例处理系统依旧可以正常工作。作为一种有状态的中间件应用的内嵌协议&#xff0c;Distro 保证了…...

和月薪3W的聊过后,才知道自己一直在打杂...

前几天和一个朋友聊面试&#xff0c;他说上个月同时拿到了腾讯和阿里的offer&#xff0c;最后选择了阿里。 我了解了下他的面试过程&#xff0c;就一点&#xff0c;不管是阿里还是腾讯的面试&#xff0c;这个级别的程序员&#xff0c;都会考察项目管理能力&#xff0c;并且权重…...

关于Ubuntu18.04 root账户登录的问题

关于Ubuntu18.04 root账户登录的问题一、 Ubuntu 18.04添加root用户登录1. 设置root用户2. 修改/root/.profile3. 修改/etc/pam.d目录下的gdm-autologin和gdm-password4. 修改50-ubuntu.conf5. 登录root账户二、Ubuntu18.04不能远程使用root账户登录的问题1. 修改sshd_config2.…...

基于jeecgboot的flowable的H5版本在演示系统发布

目前在NBCIO 亿事达企业管理平台上发布了H5的在线演示系统&#xff0c;欢迎大家批评指正。 在nbcio-vue nbcio-vue: NBCIO 亿事达企业管理平台前端代码&#xff0c;基于ant-design-vue-jeecg的前端版本&#xff1a; 3.0.0代码和和flowable6.7.2&#xff0c;初步完成了集流程设…...

【代码训练营】day44 | 完全背包理论 518. 零钱兑换 II 377. 组合总和 Ⅳ

所用代码 java 完全背包 01背包物品只能使用一次 – 倒序遍历 for(i 0; i < weight.length; i){ 物品for (j bagWeight; j > weight[i]; j--){ 背包dp[j] max(dp[j], dp[j-weight[i]] value[i])} }完全背包物品可以使用无限次 – 正序遍历 for(i 0; i < weigh…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...