考察:「弛緩法の改善(実用に向けて)」

by ご近所のきよきよ



 若葉の基本解析プロセスのデバックが済んで、いよいよ弛緩法をコーディングするフェーズに入って来ました。基本プロセスは予想に反して、いくつかのマップ情報を設定することになりました。

・2値画像マップ

・細線化マップ

・特異点間を結ぶ線分のマップ

・最長線分の分布マップ

・領域、穴のマップ

 これらを全部使っていかないと弛緩法は完成しないと気がついたのです。線分だけでは十分な情報を得ていくことができません。線分の曲率とか、部分形状の意味とか、線分を越えて情報を得ていく必要があるとこの頃思うようになり、図形認識とはなにかなと考えていくことになったのです。つまり、図形認識は、全体の図形が何かを追及していくだけでなくて、図形がギザギザであるとか、なめらかであるかとか、そんな線画としての属性も評価していくべきだと思うわけです。それは、部分的な曲率が高いところが全体の図形でも意味がある特徴であったりするわけで、全体も部分の情報も有用なものであると気がついたのです。

 しかしながら、これら細かい情報は無数にあり、また組合せで意味が異なってくるので、あらかじめ段取りを創って解析していくこともできません。全体の図形の意味を認識しながらオンデマンドで必要に応じて、曲率などの微細情報を解析していくことが必要です。

したがって、特徴セットを認識したらそのパターンをもつ知識を検索したり、解析していくプロセスを起動する。また、プロセスで必要とする特徴セットを仮定して、それを解析するパターン知識とプロセスを起動していく。それがMapReduceのMap部分ですね。解析データを集計していくReduceは弛緩法の胆で、評価結果の最も高いものを強調し、低いものをマスクし、プロセスを刈りこんでいく。そんな機構が考えられます。弛緩法はオンデマンド解析をプランニングする過程を組み込むべきということで、かなり複雑になります。慎重に設計していかねばなりません。以下に、その一つの例をあげていってみたいと思います。


【データエリア】

・FigureDataSet

2値画像マップ、細線化マップ、要素線分情報マップ、最長線分分布マップ、領域・穴情報マップをエントリーとして持つ、図形情報データエリアです。



・MeanMapSystem

 画像マップの位置と、その位置の画像の解析結果(図形の意味情報)とその確信度(弛緩法で操作する値)を管理するテーブルです。


・Knowledge

 知識ベースです。特徴記号とこの特徴記号を解析するプロセスとプロセスが必要とするパターン情報とを連想させる知識です。また、パターン情報を定義する知識があります。



【プロセス】

・RelaxProcess.java

弛緩法を実行する総元締めのオブジェクトです。解析しながら、特徴意味記号を発見するごとに、連想するプロセスを軌道し、実際の解析を行う。結果はMeanMapSystemに登録します。MeanMapSystemは集約テーブルであり、弛緩法はRelaxProcess.java下で起動される弛緩法プロセスで評価され、最終的な認識結果として洗練されていく。それには確信度値を操作することで行います。



【その他】

・曲率

 弛緩法のオンデマンド処理の大きなものは、曲率の解析です。ひげ線とか2重線とか、どうゆうへこみをした線かといったことを必要に応じて解析します。そうして、全体の図形の属性として意味を担う記号によってマップに表現されます。その曲率の解析ですが、n連続画素で評価するのが良いのではないかとついに結論付けたのでした。細線化した画素図形を切りだして、2つのn画素離れた同一線分上の点を直線で結んで、その線と内部の線分上の点の距離を求めて、その(距離/線分の長さ)で曲率を評価するわけです。nの値を変えたり、基準となる点(細線の曲率評価点)を変えていくと、曲率の分布が見えてきます。


・デフォルト処理

 連想もデフォルトの連想と、解析を複雑に行って、文脈を考慮した連想というものがあると思うのです。連想とか解析に対するデフォルトであるともいえます。曖昧性の処理である弛緩法においてはこのデフォルトの選択というものが強力な手段になると思えます。


・若葉の弛緩法

 若葉は線分の配置関係から図形が何であるかを認識している。顔だと、眉毛は目の上。目は、口の左上と右上、鼻は目の中央に縦にある線分というぐわいです。それをコマンドで記述して、顔を仮定して、その中の線分のどれが眉毛で、目で、口で、鼻でと解析していく弛緩法設計しています。

 コマンドの記述は次の通りです。

(pattern,id=EYE;(attribute;MIDDLE)(position,case=UP;MOUSE))

【意味】「眼は口の上にあるMIDDLE属性の線分」ということを示します。

 顔ではそんな線分組は複数あります。機械的にコマンドをマッチングさせて、マッチしたら線分にEYEとかMOUSEとか名前をつけていきます。同じ命名がなんどもあればカウントし、カウントが高いほど、その命名が確からしいということです。そこが弛緩法なのです。最後に、全線分の命名をチェックしていって、もっとも確からしい命名をもって、線分認識としていきます。


 そもそも顔だと判断するのは、領域からの連想です。



 

おわり