はじめに
ばら積みされたタオルから3Dカメラを使用した把持位置認識の際にGraph Based Segmentation
のアルゴリズムが使用されていました。
今回はそのGraph Based Segmentation
について知識を深めるために、画像に対してそのアルゴリズムを使用したものを試してみました。
準備
1.まずソースコードを以下のサイトからダウンロードします。
2.入力画像の取得
入力する画像を決めるのですが、入力する画像はppm形式でなくてはいけません。
jpgなどを使用したい場合は次のようなサイトでppm形式に変換します。
使ってみる
それでは使ってみます。
1.ビルド
cd segment
make
2.実行
READMEに記載があるのですが実行する際に引数を入れる必要がありその順番は次のようになります。
segment sigma k min input output
それぞれのパラメータの意味は以下の通りです。
sigma:セグメンテーションをする前の平滑化に使用
k:しきい値関数の値
min:最小の領域サイズ
input:入力画像
output:出力画像
それでは実行してみます。
./segment 0.5 500 50 pengin.ppm pengin2.ppm
生成された画像は次のようになりました。
次に、しきい値の値を500から200に下げて実行してみます。
./segment 0.5 500 50 pengin.ppm pengin2.ppm
そして次にmin(最小コンポーネントサイズ)を50から20に減らしてみます。
./segment 0.5 500 50 pengin.ppm pengin2.ppm
さいごに
Graph Based Image Segmentation
というアルゴリズムを使用した画像のセグメンテーションを行いました。
今後は3Dカメラから取得した点群に対してもこのアルゴリズムを適用できるよう,今回使用したソフトウェアの内部のグラフセグメンテーション部分についての知識を深めていきたいです。