Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLIC

SLIC(Simple Linear Iterative Clustering) 再現実装

スーパーピクセルを生成するSLIC(元論文)(2012年)の実装です。

SLIC結果

SLICとは

セグメンテーション手法の1つ。各ピクセルの色や特徴の類似度から複数のピクセルをまとめたスーパーピクセルを生成。k-meansをスーパーピクセル生成に応用した手法。

アルゴリズム

  1. RGB表色系からLab表色系に変換
  2. k個の重心を画像に均等配置(kはユーザーが指定)
  3. 勾配に基づいて重心位置を調整
  4. 最大イテレーション数もしくはマンハッタン距離で計算した重心移動量が閾値以下になるまで以下の処理を続ける
  5. 画像全体ではなく、局所的な範囲で重心とピクセルの距離に基づくk-meansを適用。ただし、距離計算は色と位置、スーパーピクセルの大きさを考慮する。
  6. クラスタに含まれる全てのピクセルの色と位置の平均値から新たな重心を計算し、重心を移動

実装

解説

解説資料のpdfを公開しました 解説資料

ざっくりとした解説をZennに公開しました スーパーピクセル SLIC を学んでみた

結果

SLIC結果

仮想環境

conda env create --file env.yml
  • Python: 3.8.13
  • Numpy: 1.23.0
  • OpenCV: 4.5.5

改善

  • RGBからLabに変換する際に並列処理からnp.vectorizeに変更。約1.15倍高速になる

参考サイト

【RGB表色系からLab表色系に変換】

【SLIC】

About

SLIC(Simple Linear Iterative Clustering) 再現実装

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages