2010/08/17

久々の更新

  先週、StarCraftIIというパソコンのゲームを買ってしまい、
研究そっちのけでゲームをやってました。

ちょっと落ち着いたので今週はマシンビジョンの研究に戻ります。

さて、前回やっていたジグソーパズルを解くプログラムですが、
重大な欠陥を発見してしまいました。

普通のパズルだと当たる確立ほぼゼロという、非常に悲しいものです。
チラシを切って作ったものだと大体あたるのですが、
実際に買ってきたジグソーパズルだとひどい結果となりました。

買ってきたのは、
「108ピース となりのトトロ 五月晴れの日に」
という初心者向けのパズルです。

完成品は20cm x 26cm程度の大きさ(A4と同じぐらいです)になりますが、
パッケージに載っている完成図の大きさが7cm x10cmと小さめでした。
とりあえず持っているデジカメのズームを使って高解像度(6Mピクセル)で撮影したものを
使い実験したところ、結果はボロボロ。

気を取り直して一度パズルを完成させ、それを撮影したものでやってみましたがこちらもボロボロ。

前回はここで力尽きました。

ジグソーパズルの解き方のコツを検索したところ、
1.外周のピースを抽出し、外周を作成する。
2.特徴量の多いピースを抽出し、部分的に作成する
3.外周、もしくは特徴量の多いピースの塊から領土?を拡大させていく
4.わかんないピースはとりあえず放置。 あとでひたすらあわせてみる
というものでした。

外周のピースを抽出するためには、各ピースの輪郭情報が必要となるので、
今度は輪郭マッチング方式でやってみることにしました。

プログラムの概要
1.スキャナーのガラス台の上にピースを適当な間隔をあけて並べます。(ひとまずグレースケールでスキャン)
2.スキャンした画像から、各ピースの輪郭を抜き出します。
3.各ピースの輪郭を順次比較して、似たような輪郭を持つグループに分けます。
4.ピースのグループのうち、1辺もしくは2辺が直線になっているもの(=外周ピース)を抽出します。
5.外周ピースを輪郭マッチングにかけます。
6.その後、外周ピースの1つ内側から輪郭マッチングをかけて、パズルを埋めていきます。

ここで重要なのが輪郭マッチングで、どうやってやったらよいものかを悩んでるところです。

パズルのピースは四角形の各辺がへこんだり出っ張ったりしているので、パズルの各辺を
へこんでる → -1
直線のまま →  0
出っ張ってる→ +1
で表すと、パズルを組み合わせたときの各辺の総和がゼロになっていれば
完成とみなせるはずです。

問題はこの組み合わせ方をどうするかですね~

ちょっとググって探してみようかな。。

0 件のコメント:

コメントを投稿