超像素

article/2025/10/1 9:27:06

《超像素》

  超像素是一种以聚类思想为初衷的方法,目的是为了对较大像素的图像进行区域划分,来帮助理解,本文介绍了一个开源项目在火灾检测场景使用超像素,比较巧妙,虽然效果不是很理想,但是提供了一个很好的思路。

Key Words:超像素、火灾检测、OpenCV实现


Beijing, 2020

作者:RaySue

Code:https://github.com/tobybreckon/fire-detection-cnn

Agile Pioneer  

概念

  超像素概念是2003年Xiaofeng Ren提出和发展起来的图像分割技术,指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。

  超像素就是把一幅像素级(pixel-level)的图,划分成区域级(district-level)的图,是对基本信息元素进行的抽象。超像素最直观的解释,便是把一些具有相似特性的像素“聚合”起来,形成一个更具有代表性的大“元素”。

  • 它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤。

  • 这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。

  • 应用超像素的意义在于:超像素可以把图像分割的足够细碎,从而可以保障每个分割后的图像块都是一块具有独立语义的图像块。

  • 大大降低了数据维度,而且可以剔除一些异常像素点。

  • 理论上,任何图像分割算法的过度分割(over-segmentation),即可生成超像素。


超像素常用算法

SEEDS

  • cv2.ximgproc.createSuperpixelSEEDS
"""
参数解读:
image_width :输入图像宽度
image_height: 输入图像高度
image_channels :输入图像通道数
num_superpixels :期望超像素数目
num_levels :块级别数,值越高,分段越准确,形状越平滑,但需要更多的内存和CPU时间。
histogram_bins: 直方图bins数,默认5
double_step: 如果为true,则每个块级别重复两次以提高准确性默认false。
"""
retval = cv2.ximgproc.createSuperpixelSEEDS(image_width, image_height, image_channels, num_superpixels, num_levels[, prior[, histogram_bins[, double_step]]])slic = cv2.ximgproc.createSuperpixelSEEDS(test_img.shape[1], test_img.shape[0],test_img.shape[2], 1000, 10, 3, 5, True)slic.iterate(test_img, 10)

LSC (Linear Spectral Clustering) 线性谱聚类

  • cv2.ximgproc.createSuperpixelLSC
region_size = 30 # 超像素块的大小
slic = cv2.ximgproc.createSuperpixelLSC(test_img, region_size=region_size)
slic.iterate(10)
mask_slic = slic.getLabelContourMask()  # 获取Mask,超像素边缘Mask==1
label_slic = slic.getLabels()  # 获取超像素标签
number_slic = slic.getNumberOfSuperpixels()  # 获取超像素数目
print(mask_slic.shape)
print(label_slic.shape)
mask_inv_slic = cv2.bitwise_not(mask_slic)
test_mask = np.ones_like(test_img) * 255
# 在原图上绘制超像素边界
small_frame = cv2.bitwise_and(test_img, test_img, mask=mask_inv_slic)  

SLIC (Simple linear iterative clustering) 线性迭代聚类

  • cv2.ximgproc.createSuperpixelSLIC
# 参数解读
# image :输入图像
# algorithm:选择要使用的算法变体:SLIC、SLICO(默认)和MSLIC三种可选
# region_size:平均超像素大小,默认10
# ruler:超像素平滑度,默认10
slic = cv2.ximgproc.createSuperpixelSLIC(test_img, region_size=22, ruler=30.0)
slic.iterate(10)
mask_slic = slic.getLabelContourMask()  # 获取Mask,超像素边缘Mask==1
label_slic = slic.getLabels()  # 获取超像素标签
number_slic = slic.getNumberOfSuperpixels()  # 获取超像素数目
print(mask_slic.shape)
print(label_slic.shape)
mask_inv_slic = cv2.bitwise_not(mask_slic)
test_mask = np.ones_like(test_img) * 255small_frame = cv2.bitwise_and(test_img, test_img, mask=mask_inv_slic)  # 在原图上绘制超像素边界

评估标准

  • Under segmentation Error

    • 用于描述超像素块既包含很多物体边缘及物体,又包含很多的背景,这种像素团越多说明效果越不好
  • Boundary Recall

    • 和物体边界的重合度,越高代表超像素的边缘越贴近物体边缘
  • Compactness score

    • 可以理解为越向棋盘格子越紧实,也就是在超像素簇内部有着更低的空间方

应用场景

  该技术已经被广泛的应用到图像分割、姿势估计、目标跟踪、目标识别等多个计算机视觉任务等。

  利用超像素来理解 CNN 到底学到了什么,安利论文:“Why Should I Trust You?” Explaining the Predictions of Any Classifier

  配合分类模型做 目标定位 比如:一个火灾检测的项目就用到了超像素“Experimentally Defined Convolutional Neural Network Architecture Variants for Non-temporal Real-time Fire Detection”

  配合粒子滤波做 目标跟踪 比如:“Superpixel Tracking”


超像素在火灾检测中的应用

   对所有的有火灾和没有火灾的图片进行二分类,然后利用超像素算法,对每个超像素块移动到中心,保持模型训练尺度的大小进行分类,所有有多少超像素块就分多少类,效果如下:


Q&A

Q: AttributeError: module ‘cv2.cv2’ has no attribute ‘ximgproc’

A: 如果没有按照opencv-contrib就会报错,pip install opencv-contrib-python解决


参考

[1] https://www.zhihu.com/question/27623988
[2] https://www.cnblogs.com/blog4ljy/p/9449915.html
[3] https://blog.csdn.net/WZZ18191171661/article/details/91039457
[4] https://blog.csdn.net/zhangyonggang886/article/details/51494122?locationNum=2&fps=1
[5] https://blog.csdn.net/qq_26129959/article/details/90760028
[6] https://blog.csdn.net/qq_40268412/article/details/103915197
[7] https://blog.csdn.net/chengyq116/article/details/98470820


http://chatgpt.dhexx.cn/article/EKbuqKbn.shtml

相关文章

超像素学习笔记(1)——概念及判别条件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、超像素的概念二、超像素判别条件:一般参考三个指标1.Undersegmentation Error(UE)——欠分割误差2.Boundary Recall&…

超像素(superpixel)——SLIC和深度学习法

定义 可以理解成在图像上做的聚类问题。超像素的做法是将感知上相似的像素组在一起,称为一个超像素,以此来提供图像数据的紧凑表示。然后在后续的处理,处理单位就变成了超像素,而不是我们常用的像素。 一般超像素的结果可以为下…

学习笔记4:ubuntu常用命令

cd //打开路径cd.. //回到上一级目录cd ~ //回到主目录ls //列表touch demo.c //创建一个“demo.c”文件mkdir project //创建一个“project”文件夹vi . //进入当前目录删除文件 pwd //显示当前路径ifconfig //查看本机IP地址mv 文件名 /PATH //移动文件到某一目…

Ubuntu常用命令(持续更新)

Ubuntu常用命令(持续更新) 检查更新并升级切换至root账号修改root账号密码下载文件命令wget,举例:安装.deb文件(在文件所在目录打开终端)查看本机ip地址(注意和windows系统的区别ipconfig&#…

Ubuntu常用命令 (超详细版)

1.切换到 root 用户 ,输入 “sudo -i ”, 退出 “exit” pwd 显示当前目录, pwd print working directory ls 列出目录下当前文件 cp 复制文件/目录 cp (源文件或目录) (目标文件或目录) cp -r 复制文件夹 包括子目录和文件 r…

Ubuntu 常用命令大全——长期不定时更新

1. 系统相关 uname -a 显示当前系统相关信息sudo 临时获取超级用户权限su root 切换 root 用户sudo shutdown 关机sudo reboot 重启sudo nautilus 进入有 root 权限的文件管理器ps -A 查看当前有哪些进程kill 5 位进程号 结束进程 sudo fdisk -l 查看磁盘信息sudo mount /dev/…

爆料一家互联网中厂的年终奖,真香。

前不久刷到宇宙条32岁员工14万的月薪截图,突然想起来已经快四月底了,正是各大互联网公司年终奖开奖的时候,但相比以往,今年互联网圈好像安静了很多。各种“凡尔赛”的年终奖金额刷屏的情况不复存在。 各家大厂都暗戳戳地分完了奖…

OPPO K9试水“捆绑销售”,消费者“赚了”还是“亏了”?

【原创】 号称“充电5分钟,开黑两小时”的OPPO新品K9于5月6日正式发布,这句“似曾相识”的OPPO“过气”广告语,又重新出现在了江湖,说是词穷也好,为了突出手机卖点也罢,反正新品是上了。 出了新品&#x…

2021年多媒体技术圈年终事件大回顾

今年的年终总结,虽迟但到,回看往年的总结: 2018年多媒体技术圈年终事件大回顾 2019年多媒体技术圈年终事件大回顾 2020(我鸽了) 以下内容均为个人见解,大佬轻拍~ 一月 一月属于WebRTC,W3C和…

OPPO AI Lab 核心岗位开放招聘:至美之路,等你加入!

国产手机越来越受青睐,在中国,更多年轻人选择 OPPO 拍照手机。 十年来,OPPO 一直专注手机拍照的技术创新,开创了“手机自拍美颜”时代。 如今,全球超过 2 亿年轻人正在使用 OPPO 拍照手机。 关于OPPO 使命&#xff1a…

8月顺利拿到OPPO公司Android架构师offer,一面+部长面

上周喜提oppo面试offer,本人在深圳,有4年多的Android项目经验,普通本科学历。面试是相互选择的过程,而OPPO给我的印象确实如其核心价值观所说:本分。 一面、部长面和HR面都蛮顺利(一千个人可能要了一百左右…

十年老码农吐血经验:跳槽千万不能选高年终低base的公司,超过15薪就要慎重!...

低base高年终VS高base低年终,哪个更好? 一个工作十年的老码农总结了自己的经验:跳槽千万不能选年终月数多的公司,超过15薪就要好好掂量掂量。能选外企就选外企,奖金基本就是一个月,不会坑你。 一网友惊呼&a…

干翻华为才有年终奖,“性感”小米发布MIX3,滑盖全面屏只要3299元

Are you ok? 小米又发新机了! 这次发布会开到故宫了。虽然不知道故宫的花花草草和皇家御喵是不是米粉,但是正戏开始前还是先来一遍Are you ok清新洗脑一下吧! 话不多说,先前在8月份和OPPO撞脸的小米MIX 3终于在今天…

一荣俱荣,豪取多项冠军后荣耀着手年终奖改革

企业的效益好了,员工的福利也会相应变好,最近荣耀手机就证明了这个理。 这两天《荣耀品牌手机单台提成奖金方案》曝了出来。据任正非亲自签发的这份内部文件显示,为了激发员工斗志,提升荣耀品牌手机的销售规模,特批准荣…

上汽董事长称不接受与华为合作自动驾驶;曝OPPO给离职员工补发年终奖,此前遭克扣;Google Play 将启用AAB格式应用...

EA周报 2021年7月2日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事、掌握IT核心技术。 周报看点 1、OPPO给离职员工补发年终奖,此前遭克扣,未来将制定方案 2、诺基亚回应“使用鸿蒙传闻”:提供安卓体验的承…

罗永浩宣布春节后回归科技界;2021年年终奖人均水平为2.3万元;消息人士:字节跳动日均进账10.07亿 | EA周报...

EA周报 2022年1月21日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事、掌握IT核心技术。 周报看点 1、消息人士:字节跳动日均进账10.07亿 2、罗永浩宣布春节后回归科技界 3、英特尔跌落神坛!CEO回应:是我们骄…

曝 OPPO 给离职员工补发年终奖,此前遭克扣

整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 7月1日,话题#OPPO补发年终奖#登上热搜前三。有网友爆料称OPPO和vivo将为离职员工补发年终奖。 认证ID为岳灵珊的网友发文解释OPPO补发年终奖的原因:此前公司中层领导克…

百度员工发文抱怨:1月离职,年终奖为0,网友:怪你心太大

程序员求职面试(ID:CoderJob)整理内容参考自:脉脉 如果员工年底离职,公司是否还要支付该员工上一年度的年终奖金呢?想必很多人也想知道这个问题的答案。 日前,有位百度员工在脉脉上发帖吐槽&…

百度员工抱怨:1月离职,没有年终奖。。。

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 如果员工年底离职,公司是否还要支付该员工上一年度的年终奖金呢?想必很多人也想知道这个问题的答案。 日前,有位百度员工在脉脉上发帖吐槽:1月离职,年终奖为0&am…

OPPO 员工称被强制离职起诉公司,当事人败诉:7 万元年终奖没了,获 2N 赔偿

本文转载自 IT之家 近日,此前 OPPO 员工质疑公司违法解除劳动合同一事迎来最新进展,根据该员工公布的法院判决,其要求的支付 7 万元年终奖未获法院支持,但 OPPO 需要支付 2N 的赔偿。 今年 1 月,在脉脉上认证为 OPPO …