- ベストアンサー
画像認識
将来、大学院に進む際に興味がある分野なのですが、 コンピューターは、なぜ画像認識ができないのですか? 参考になるサイトがあれば教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
これは、難しい問題で、現在AIとか、コンピュータによる形態認識で、どういう研究が行われているのか知りませんので、原理的な部分を、想定を交えて考えてみます。 現在のコンピュータによる「画像認識」は、基本的には、領域分割して、領域ごとの情報を集計して、パターン解析し、それに当てはまる近似パターンを「解」として、パターン認識を行うのが原理だと思います。 無論、画面全体について領域分割で解析するのでなく、ターゲットを絞って、計算量を減らすことがまずあるでしょう。 境界認識だと、あまり細かい領域分割はせず、領域ごとで、隣接する領域とのあいだの色の相関を調べて、近似した色の領域を「小領域」とすることで、この小領域と隣接するが、しかし違う色領域の小領域のあいだに「境界」があると判断して、こういう操作を画面全体で行うと、境界検出ができるでしょう。 大ざっぱに検出した輪郭を、その輪郭に沿って、もっと細かく色の推移や相関を調べることで、境界が本物か、擬似的なものかの判断もできるでしょう。 文字の読みとりなどは、バーコードとか、昔の独特の形をしていた数字などは、一方向にパターンを流して行くと、10個か20個ほどの光センサーで、白か黒か、どの信号かというのを判断し、1番と3番が白で他が黒なら、何の数字というような、認識です。バーコードの場合は、白と黒の通過時間比を元に、二進符号に変換すると、読みとりが可能です。 OCRなどだと、2500とか1万のドットに分け、線画に変換した後、連続している領域について、四つの角などの形態特徴から、この特徴に合うのは何か、という候補を条件で篩い落として行き、残るが候補でしょう。 全体としてのパターン認識は無理ですから、局所特徴を分析して、条件を加えて行って絞るのだと考えられます。 また、道路上で、人の認識は、動いているかどうか、という区別に加え、赤外線領域でも見ていると、背景と人間は識別できます。熱を出す物体の輪郭を単純化すると、人間の外形に合うものと合わないものが、局所的特徴の解析の重ね合わせで出てきます。 人間のパターン認識は、もの凄く高度なものですが、基本的に、図形を、円か四角か三角か、などで大きく解析し、円なら、この候補があるとか、三角ならこの候補があるというなかで、もっと細かい解析を行って局所条件を取り出して、候補を絞って行くという過程が、何段、何十段にも繰り返し、ほぼ同時的に行われているのだと思えます。 生まれたばかりの赤ちゃんでも、人の顔の表情が判別できるようで、これは、他の情報なども総合しての判断で、単に視覚像だけではないでしょうが、単純には、福笑いのような、単純なパーツの合成として、人の顔を抽象化して把握しているのでしょう。 赤ちゃんは、上に丸が一個あって、下側に、二つの丸がある線画に反応します。これは、母親のパターンで、胸の有無が、パターン認識に大きな意味を持っているのです。 丸とか四角とか、三角、星印などを見せると、反応する脳細胞が特定的にあることが分かっており、これが、最初に述べた、全体を、単純な幾何図形で、まず把握するということの根拠で、こういうパターン認識は、何度でも使われ、その反応条件の重ね合わせで、どの条件パターンに合うのが、何か、というような学習を行って行くのでしょう。 網膜上に映った像が、視覚細胞を刺激するとして、確か、おかしなことに、視神経繊維は、視覚細胞の数よりずっと少なかったはずなのです。細胞の反応情報が、そのまま、脳に伝えられているのでなく、すでに、神経繊維へと置き換わる時、前処理されています。 人間の認識は、ドット解析の積み重ねではなく、全体を単純化して、丸か四角か三角か、放射パターンかなどに分け、それから、局所部分で同じことをし、全体から局所へとパターン解析が進むようになっているようです。 現在のコンピュータの画像解析は、こういうことを行っているのではなく、ドットの相関を解析して、局所特徴を見いだし、段々、解析の範囲を大きく相関させて行くという順序を取っています。人間の画像処理も、こういう過程があるはずなのですが、それは基礎部分で、生まれた直後、目が開いた時点で、すでにそういう処理能力はあるようです。 従って、あかちゃんの認識は、全体の抽象認識から始まり、全体から局所へと進みます。人間の視覚パターン認識も、全体から局所へと進みます。 現在のコンピュータの処理過程の遙か先を、進んでいることになります。人間は色々な感覚パターンも解析し、諸感覚のあいだの解析を総合してパターン認識をしており、動態認識も行っているので、現在のコンピュータの処理過程などは、すべて、胎児の脳が発達して行く過程で、基本生理構造として築かれているようで、だから、ずっと先を、人間の意識・無意識のパターン認識は進んでいるのです。 このギャップがなかなか、埋まらないと言うか、埋めようがないほど、離れているということです。人間の場合、何千階層もの情報解析が同時に進行している可能性があり、このようなものをモデル化する数学も、現時点ではまだありません。(そういう数学を、造ろうという野望を、遙か昔、わたしが若かった頃、持っていました。実はいまでも持っています。持っているだけですが)。
その他の回答 (4)
- k-841
- ベストアンサー率27% (129/465)
まず、「できない」わけではありません。 画像認識の実用例は、 古いものでは郵便番号の自動読み取りやプリント基板上の部品実装の位置決め、 最近のものでは道路白線認識による自動車運転補助、 顔画像や指紋、網膜や虹彩などの認識によるセキュリティシステムなどです。 最近では、欧州をはじめとする自動車メーカーが、 画像から路上の歩行者を検出して運転補助をする研究を行っているようです。 近年のコンピュータの発達により、 画像処理による認識は複雑なものまでできるようになってきていますが、 それでもなお比較的単純な認識にとどまっている大きな理由は、 その膨大な計算量にあると思います。 アルゴリズムに関しては、単なるテンプレートマッチングから、 ニューラルネットワークなど、いろいろな方式が提案されており、 計算時間を無視すれば複雑なものまで対応できるようです。
- k-family
- ベストアンサー率34% (180/523)
「画像認識ができない」というのは何のことをさしているのかわかりませんが、一般的な用語という範疇で考えるなら、ある程度はできていると思います。 「完璧にはできていない」と言うことならその通りかもしれません。でも人間でも完璧な画像認識はできない訳ですから、できているかどうかではなく、どの程度までできているか、という様な話ではないでしょうか。 たとえば、人の顔を認識して「○○さんこんにちは」というような物は既にできています。工場でプリント基板上の半田付け不良を認識する機械も実用化されています。郵便番号の自動読み取りは既に20年(←自信なし)近く前から実用化されています。 ----- 画像認識のような技術が難しいのは、プログラミングが必要、と言う点が大きいです。プログラミングはアルゴリズムが無いとできません。でも我々はどの様なアルゴリズムで画像認識しているかと言うことを自覚していません。ですからプログラミングができません。 現在の画像認識ソフトは、人のアルゴリズムとは関係ない方法で行っているのが大半です。ですからできたプログラムでは、微妙なところで、人の認識結果とは異なる可能性が高いです。 脳の働きをシミュレーションするようなコンピュータができたら、認識結果も同じ様になると思います。
- vortexcore
- ベストアンサー率63% (46/73)
どのレベルの画像認識かにもよると思いますが、 http://digital.ni.com/worldwide/japan.nsf/webcustsol/6FC18F1764796CDE4925698800030D24?OpenDocument&node= のような画像認識は普通に行われています。 物体と背景の境目の検出なんかはレタッチソフトの「エッジ検出」なんかでも普通にやっていますよね。 FFTや相関解析なんかを併用すれば、特定の用途では人間よりもずっと高性能の「画像認識」が出来ます。 くせ字の読み取りみたいな「パターン認識」はパターンをどう数値化するか、という問題があって難しいのだと思いますが。参考URLにパターン認識の研究例を挙げておきました。
物体の境目の認識が難しいからでしょう。 たとえば、今目の前に人物の写真があったとします。 その写真には必ず「人物」と「背景」が写っているはずですが、では、それらの境目をどうやって判定するんでしょう。 「色が変わったところ」で単純に判定できればいいんですが、「どの色が何色に変わったら、それが何を表すのか」については、知識の蓄積が必要です。この世には莫大な量の「物体」と「その背景」がありますから、これらすべてをデータベース化することは不可能ですし、できても活用できるコンピュータが存在しないでしょう。 また、それに合わせて形や動きも認識しなければいけません。 人間は1枚の絵を1度に認識しています。つまり、「絵を2次元で」見ているわけです。 ところがコンピュータが画像を認識するとき、点1つ1つを順番に見ています。つまり、0次元での認識を繰り返すことで1次元で認識しています。 1次元アップくらいは簡単なので、2次元で物を見る人間が3次元を認識することは容易でしょう。 しかし、もともと0次元で物を見るコンピューターには、2次元を認識することすら大変難しいので、ましてや3次元など、かなり高い能力が必要とされるわけです。