图像分割通过聚类

图像分割通过聚类

简介

图像分割是基于原始图像中像素特征的过程,将图像划分为多个区域。聚类是一种将相似实体进行分组和标记的技术。因此,使用聚类进行图像分割时,可以使用聚类算法对相似像素进行聚类,并将特定聚类像素分组为单个段。

因此,让我们更深入地通过聚类来探索图像分割。

图像分割

通过聚类进行图像分割可以使用两种方法进行。

  • 凝聚式聚类

  • 分离式聚类

在凝聚式聚类中,我们将像素标记为接近聚类,并逐步增加聚类的大小。以下步骤概述了凝聚式聚类的过程。

  • 将每个像素视为一个单独的聚类

  • 合并具有较小的聚类间距(WCSS)的相似聚类

  • 重复这些步骤

在分离式聚类中,遵循以下过程。

  • 将所有像素分配给单个聚类

  • 在某些时期,聚类被分割成两个具有较大聚类间距的聚类

  • 重复这些步骤,直到达到最佳聚类数

在本文中,我们将探索用于图像分割的K-Means聚类。

用于图像分割的K-Means聚类

K-Means 是凝聚式聚类的一种类型,这里我们没有先验的像素/数据点标签。形成的聚类或群组的数量为K。这些聚类是基于像素或数据点之间的一些相似或共同特征得出的。

K-Means聚类的步骤如下:

  • 选择特定的K值

  • 选择像素的某个特征,如RGB值等

  • 使用欧几里德距离等距离度量将相似像素分组

  • 使用聚类的中心进行K-Means聚类

  • 通常会定义一个阈值,如果计算的大小在其中,就会将其分组到一个单独的聚类中

如何确定K的值

K-Means算法的目标函数是WCSS。

\mathrm{C=\sum ^{M}_{i=1}} ::\mathrm{\sum ^{N}_{k=1}}::\mathrm{|x^{i}_{k}-C_{i}|^{2}}
绘制一个图表,横坐标为WCSS,纵坐标为K,这被称为“Elbow method”(肘部法则)。找到图表出现急剧拐点的位置,并记录相应的K值。确定K值使用的是Elbow method,这是一种比较粗暴的方法。

Python实现

示例

# KMEANS IMAGE SEGMENATION
import numpy as np
import cv2
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
%matplotlib inline

image_1 = cv2.imread("/content/image_1.jpg", cv2.IMREAD_UNCHANGED)
image_2 = cv2.imread("/content/image_2.jpg", cv2.IMREAD_UNCHANGED)
vector_1 = image_1.reshape((-1,3))
vector_2 = image_2.reshape((-1,3))
kmeans_1 = KMeans(n_clusters=5, random_state = 0, n_init=5).fit(vector_1)
c = np.uint8(kmeans_1.cluster_centers_)
seg_data= c[kmeans_1.labels_.flatten()]
seg_image = seg_data.reshape((image_1.shape))
plt.imshow(seg_image)
plt.pause(1)

kmeans_2 = KMeans(n_clusters=5, random_state = 0, n_init=5).fit(vector_2)
c = np.uint8(kmeans_2.cluster_centers_)
seg_data= c[kmeans_2.labels_.flatten()]
seg_image = seg_data.reshape((image_2.shape))
plt.imshow(seg_image)
plt.pause(1)

输出

图像分割通过聚类

使用K-Means聚类的图像分割应用

  • 自动驾驶汽车−在自动驾驶车辆感知系统设计中,语义分割用于将车辆周围的物体与周围环境分离。

图像分割通过聚类

  • 在医学领域中的成像中,聚类被用于分离和识别癌细胞图像中的组织类型。

图像分割通过聚类

  • 3D场景分割−在机器人视觉技术中,系统需要识别周围环境并定位物体。生成的场景是三维的。聚类算法用于此目的。

结论

聚类是一种非常流行和有效的图像分割技术。它可以节省宝贵的时间,同时为大多数用例产生令人惊叹的结果。在这方面,K-Means聚类是胜利者。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程