外国語論文講読III.
Object-Oriented Programming: the CLOS Perspective MIT Press, 1993.
ここでは筆者の専門によりcomputer visionにおける知識表現を扱うが、 この分野では様々なvisionの知識表現が提案されており、それをintegrateして 扱うことのできるようなシステムが望まれる。 このようなツールは従来なかったが、CLOSを、特にMetaobject Protocolを用いて このような目的に拡張することにより、知識表現を統合的に扱うことのできる システムができると期待される。 CLOSを用いれば、新しいオブジェクト指向システムを新たに設計する必要はなく、 CLOSの柔軟な拡張性を基にdomain-specificなツールを生成することができる.
現実的な応用としてはCLOSはexperimentalにすぎるが、そのぶん柔軟で適応性の 高いプログラミングが可能になり、現在のcomputer visionの(発展中の)段階から 言って適切であろう.
この章は次のように構成される。
これを見ると、各componentが知識表現(上)とそれに対するメソッド(下)から 成っていることに注意できる. これらが独立に作用することでイメージ理解が 形成されるのではなく、これらの interation から知識表現が生まれるというのが 本章の主題である.
CLOSでは、次のように表現できる.
(class name (superclass) (slotname options) .. (slotname options))これを見てもわかるように、フレーム表現はそれ自身としてオブジェクト指向となる. 応用的な観点から見ると、フレームのスロットは2つの意味を持つ。
(defrule name rulesystem (if 左辺 then 右辺) options)
後方推論はPrologと同様目的から原因へ推論し、前方推論は問題となっている 事柄から可能な推論を行う. フレーム表現が基礎となっているので、推論は フレーム->スロット->値 の組によって行われる。 通常の推論に加え、ルール中でどんなLisp関数でも実行することができる.
relaxationは2つの部分から成る。1つは制約の条件であり、他方は制約条件を実行する interpreter部である. 次のようにして制約を生成する.
(make-constraint-set house-interpretation) ;; 可能な最大集合 house-interpretation を生成. (make-constraint c1 house-interpreation ;; 制約 c1 を生成. (valid (within window wall))) ;; 窓が壁の中にある、という条件は valid であり、validスロットに入る. (make-constraint .. 以下略.
適用可能な制約条件がなくなるまで最初の最大集合に制約条件を適用し、 残ったラベルを解釈とする. 実装としては recursion で回す、ということに なるのだろう.
これでわかるようにこのMatchingは上のRelaxationと似ているが、認識において 後で出るように part-of などの包含関係をも考えるところが違っている. コンストラクタにより、グラフの内部表現は自動生成されて隠される. 現在実装されているアルゴリズムは、画像のグラフ表現をいくつかのプロトタイプに 分類する.
3次元物体の認識に際しては、relaxationにより物体のedgeを認識して分離を行い、 プロトタイプへのグラフマッチングを用いて分離された物体の3次元構造を決定する. この物体の処理に当たっては、ルールを基にした判断により適切な処理を行う、などの 複合的な処理がなされうる.
様々はメソッドをこのように組み合わせることにより、開発においてオブジェクト指向 の利点が生かせるとともに、各アルゴリズムにおいても必要に応じて他のアルゴリズムを 呼ぶことが可能になる.
ここでは、どのcomponentもdominantではないという点を強調しておく. どのコンポーネントも、メソッドからの呼び出しやprocedural attachmentにより 他のコンポーネントを呼び出すことができ、必要なデータが不足であれば自動的に procedureが起動されてデータを推論して渡す、というような(Metaobject Protocol を用いた)システムも可能である.