視覚のハッキングについての考察
以前書いたように、作成中のリアルタイムGPUを用いた電脳メガネの作成を企て中です。
そこで電脳メガネの究極の目的は視覚のハッキングと以前書きましたが、視覚のハッキングとは何か、ということをもう少し考察しておこうと思います。
考察に先立って、人がものを見て認識するということは何か?そもそも認識の主体者である自我とは何か? といったところから話をスタートしてみたいと思います。
少なくとも私は、私を私だと認識していて、今この文章を書いている自分のそれが自我がだと認識しています。ただ、他の人が自分を自分と認識しているかどうかは知る由も確める術もありません。なので、ここでは自分以外にも自我が存在し、それが他人だろうが、AIだろうが、自分を自分と認識する何か上がればそれは自我だという定義の元で、話を進めます。
ここに、AさんとBさんの2つの自我としての意識が存在したとして、それぞれが現実空間の同じものを見たときに、その認識までが同じとは限りません。
例えば赤いりんごがあったとして、その「赤」という部分の認識が、脳内で人それぞれ同じという保証は何も無いわけです。各認識がそれぞれ脳内でそれを「赤」として学習していれば、それは内部認識が異なってもなんの問題も無いわけです。実際には色だけではなく形の捕らえ方含めて視覚から入ってくるものだけでも実に様々な要素が様々な捕らえ方で人それぞれで異なる認知がなされていると思われます。
この場合、現実世界(リアル)は、まったく異なる脳内認識をしているAさんとBさんのコミュニケーションとして中間言語として機能します。
Aさんの認識の為の視神経の回路は、400nm~750nmの間の波長の分布を、Aさんの意識にとっての「赤」に現実世界で見たものを変換してくれます。そして外部に情報を発信する際に、共通言語としての「あか」という発音を声帯の筋肉を震わせることによって発します。Bさんも同様に現実世界の「あか」という発音を、Bさんの認識にとっての「赤」に変換して意識しているわけです。これは仮に自我をもったAIが発生しても同じことです。
さて、こういった中で、リアルと意識との間にコンピューティングを介在させることが出来れば、現実世界以外に、AさんとBさんのコミュニケーション経路が作れるかもしれません。
例えば、バーチャルな空間を作って、そこを現実世界の代替となる中間言語として機能させるわけです。例えばオンラインゲームの世界では、自分のアバターを操作して、オンラインで他者とコミュニケーションできる点でそういった要素も含んでいるかと思います(将来AIと会話する時代が来れば、別の意味でももっと重要かもしれません。)
ただ、今回はもっとリアルに近いところでのハッキングを考えています。藤井直敬先生のSubstitutional Realityなどはかなりリアルに迫っていると思いますが、それでもまだリアルとARのシームレスなスイッチなので、もっと密結合したMixed Realityを考えてみたいと思います。
ではいったい、現実世界と意識の間で、どこをハッキングすればそれが可能になるでしょうか?
例えば、電脳コイルというアニメでは、メガネによって視覚の入り口で視野を自在に制御しています。攻殻機動隊のような世界観では、光学迷彩のような物理世界のハックから、作中でゴーストと呼んでいる意識界面ぎりぎりのハックまで多彩に存在します。
現実でも脳とコンピュータを繋ぐ実験もあれば、夢を記録する装置までいろいろあり、脳内の認識の仕組みも解明は進んでいくと思われます。将来的には脳の中まで迫ったコンピューティングもできるかもしれません。ただ、そのあたりはデバイスの問題で私の専門ではないので接続方法は一旦置いておいて、計算機として純粋にこういった箇所に適用したときに耐えられるスペックとは何かを考えてみたいと思います。
人間の5感の中で、もっとも人間が頼っている情報が視覚で、一説には情報量の8割を占めているとも言われます。
また、人間が応答する上で、障害物を避けるなどで、リアルタイム性をもっとも必要とするのも視覚です。一方で、コンピューティングとして考えた場合、処理対象の情報が非常に多く、且つ、高い応答周波数を出すのが難しい領域でもあります。
視覚のハッキングを行うのは、光に対する刺激が、意識に届くまでの過程のどこかに演算を差し込めれば良い訳ですが、現時点ではもっともやりやすい方法は情報が光であるうちに加工してしまうことでしょうか。
光が光源をでて、桿体細胞/錐体細胞にて受光されるまでのどこかに処理を差し込めれば良い訳です。
光源側に手を入れるのが、いわゆるリアルタイムプロジェクションマッピングの領域で、後者がリアルタイムヘッドマウントディスプレイになってくるわけです。前者については方々でそれなりの評価を頂きつつありますが、今回は後者に対する試みです。
演算場所はデバイスに依存して変わっていくにせよ、コンピューティングとして画像処理を考えた場合、そこにリアルタイム性が必須です。
この分野、リアルタイム画像処理といったときに、スループットとして、現実に合う帯域が出せれば「リアルタイム処理達成」と言ってしまうケースが多々あるので、ここで一度、真のリアルタイム処理の定義をしておきたいと思います。
一般の画像処理は、TVが生まれた当初からのNTSC規格が60Hz程度で来たこともあり、16.6ms程度の処理速度をリアルタイムと言ってしまうことが多々あります。
一方で、現実世界を考えた場合、ちょっとHMDをつけて首を振っただけで、16.6msあれば見たい対象は数ピクセル以上ずれてしまいます。これではMixed Realityは成り立ちません。
これでは真のリアルタイム処理とはいえません。結局のところ画像処理したい対象の物理的なダイナミクスに対して、必要十分な応答周波数を出せるレスポンス性が無ければリアルタイム処理とは言えないと思います。
必要な応答周波数は、シーンごとに変わってしますが、筆者の経験上、最低でも数ms程度、出来れば数百usオーダーの応答速度が出せれば現実世界と認識の間でシームレスな画像処理を用いた作用が可能になってきます。
まずは、解像度とか画質とか、そういったパラメータは一旦置いておいてよいので、応答周波数の一点だけに絞って、限界点を確認しつつ、新しい世界を垣間見てみたいと思っている次第です。