アナログからデジタルが難しい分野
アナログをデジタルにする難しさを、AIの耳と目の機能を例にしてお伝えします。
前書き
今回は、プログラミング関係の専門学校で学んだ経験から、機械の側からどのように見えているのかという観点で、アナログをデジタルにする難しさをお伝えする内容です。
今回はAIでいう耳と目の役割をする部分に焦点を当てています。実際にそうした機能を用いる際、仕組みを簡単に知っていただくと同時に、プログラマが払った努力を想像しながら読んでいただけるとありがたいです。
ちなみに私は、音声認識、文字認識や手書き認識、物体認識のプログラムを組んだことはありません。難易度が高いということが分かっているので、手を出したくないのです。
音声認識
音声データはどのようなデータかというと、ただの数値の羅列です。
上の図のような波形の線の高さを表す数値だけで、人の声かそうでないか、人の声であれば何を話したのかを特定する必要があります。
それで、フーリエ変換等を用いて、1つの音波を複数の周波数に分解し、その周波数成分を分析するという手法が用いられる思われます。
もしそうするためのライブラリが出来上がったなら、ただの一次元配列の数値だけから判別して、ライブラリを作った人がいることを思いに止めて頂ければと思います。
文字認識
視覚情報は機械の目からどう見えているのかというと、ただの碁盤目の色のマスです。マスの中は1色しか入りません。
この単なる碁盤目状の色データから、どの部分が文字で、それが何の文字なのかを判別しなければなりません。
手書きを認識するソフトやゲームであれば、ペンに仕組んだり、座標や書き順の情報をあらかじめ付与することができるかもしれません。ただ、それでも難易度は高いです。
しかし、既に書かれている文章や、既に人が書いた字を判別するかもしれない、AIを搭載予定のロボットになると純粋に、ただの碁盤目状の色データから文字を判別していると思われます。
もしそうするためのライブラリが出来上がったなら、ただの碁盤目のマスだけから判別して、ライブラリを作った人がいることを思いに止めて頂ければと思います。
物体認識
機械の目から見て、ただの碁盤目のマスである点は同じです。
しかし上の画像だけではどれが動いているのかは判別できません。
そこで、2つの碁盤目と比較して、変化があった部分を動いた物体と認識します。上の2つの画像からは、白い四角の物体が動いたことが分かります。
自動運転は大凡このような仕組みで物体を認識していると思われます。しかし、2つの画像と比較して物体を認識している関係上、急な飛び出しには弱いと思われます。
もしそうするためのライブラリが出来上がったなら、ただの碁盤目のマスの差分だけから判別して、ライブラリを作った人がいることを思いに止めて頂ければと思います。
まとめ
音声認識、物体認識、文字認識等、アナログからデジタルの作業は、プログラマからすると、鬼のような作業であることを理解していただけたでしょうか?
音声認識:ただの数値の羅列から判別する
文字認識:色情報だけが入った、ただの碁盤目状のマスだけで判別
物体認識:前後の碁盤目状のマス2枚の差分で判別