画像処理決定部の目的は、モデル獲得部によって得られた物体の機能と生の画 像上の特徴とを関連付けることである。試行錯誤による自動処理によって、様々 な画像処理モジュール(2値化や境界抽出)を組み合わせることで、適切な画 像処理列を生成することが可能である。
いくつかのルールベースのシステムも自動的な試行錯誤の処理によってゴール 状態に到達することができる。しかしそういったシステムでは、その自動処理 を制御する知識をあらかじめ生成しチューニングしなければならない。我々の 画像処理決定部では、前提知識として画像処理モジュールを相互に接続すると きのデータ型に関する拘束だけしか与えない。画像処理決定部は、たくさんの 試行の結果得られた偶発的な成功例を蓄積し組織化することで画像処理のデー タベースを作成する。
コンパスの典型的な機能である蝶番は、通常円形をしている。しかし、初期状 態では画像処理決定部はこの画像上での蝶番の特徴については何も知らない。 この場合モデル獲得部は、与えられたシルエット画像より、蝶番の存在確率と 予想位置を推定する。そして、画像処理決定部にその情報を与えることで、画 像上の特徴から蝶番を認識することを要求する。画像処理決定部は、画像上の 予想位置を特徴として認識できるようになるまで、画像処理モジュールを試行 錯誤的に組み合わせる探索を行う。成功は、蝶番の認識に対応する画像処理列 が生成されたことを意味する。
生成された機能と画像上の特徴との対応は、物体の種類に依存しない。つまり、 信頼できる画像処理列が生成されれば、それを用いてモデル獲得部の助けを得 ずに未知の物体の内部構造(この場合蝶番)を知ることができる。
画像処理決定部は、主に次の2つの処理を行う。
1. 画像処理列の生成
効率的な試行錯誤処理として、我々は次に示す4段階からなる経験的な手法を 用いた。
成功例の画像処理列を集めた集合から一つを選択する。
新しい画像処理列を、成功例の画像処理列から導出する。(例えば、A-B-C と B-C-D の2つの画像処理列からA-B-C-D が導かれる)
選択もしくは導出された画像処理列を変換する。
突然変異 ある画像処理列上でのモジュールの挿入・削除・交換、順番 の逆転・パラメータ値の変更
交叉 画像処理列群から一つの画像処理列を生成
入力の白黒画像と、全体の認識結果として要求されるデータの型とを結ぶ画像 処理モジュール列を、データ型による拘束のみで生成する。
優先権は、最初は1番目、次に2番目、そして3番目に与えられる。それでも 正しい画像処理列が生成されなかった場合は、4番目に頼るしかない。それぞ れの方法は、ランダムな試行によって進められる。この手法は、一種の遺伝的 アルゴリズムを基礎とした最適化手法である。
2. 画像処理列の組織化
正しい画像処理列は、そのまま蓄積されるだけではなく、「導出」に都合がよ いように階層的に組織化される。画像処理列はUranus1によって次の様に表される。
| (assertz | (hinge *P *Q *in *out) |
| (hist *P *R1 *in *h) | |
| (othd *R1 *R2 *h *t) | |
| (bina *R2 *R4 *in *t *b) | |
| (bndr *R3 *R4 *b *bn) | |
| (circ *R4 *R5 *bn *c) | |
| (ctop *R5 *Q *c *out)) |
次の要求(query)は、蝶番検出画像処理列を変数 *seq に返す。
| (hinge *seq () gray puts) |
ここで、''hist''はヒストグラムモジュールを表し、''othd''は自動閾値検出 モジュールを表し、''bina''は2値化、''bndr''は境界検出、''circ''は円検 出、''ctop''は円から点への変換(重心検出)を表す。これらは次に様に表さ れる。
| (assertz | (hist *P *Q *X *Y) |
| (delete *P (hist *X *Y) *Q)) | |
| (assertz | (othd *P *Q *X *Y) |
| (delete *P (othd *X *Y) *Q)) |
それぞれの画像処理モジュールのデータ型による拘束ルールは、フレームを用 いて表される。組織化は、CFG導出の枠組みを利用して実現される。
MIRACLE-IVの学習過程の例を示した後、画像処理決定部の詳細について説明す る。