光のぼやけを解決しよう!OCCとBlooming Effect
① OCCと「干渉」
OCCでは、通信を行う時、LEDやディスプレイなどの光源から送出された光信号をカメラで撮影し、動画像を処理することでデータを受信します。このとき、画像上で光源の占めるピクセルを特定する必要があります。ピクセルとは、色情報の最小単位のことです。画素ともいいます。どのくらい精密な写真がとれるか、ということを表すときに使われる画素数というのは、ピクセルの数のことです。テレビに近づいてみるとちいさい四角がたくさんあることに気が付くと思います。画像はよく見るとちいさい色の単位(ピクセル)の集まりなのですね。
さて、無線通信には一般的に「干渉」と呼ばれる現象がつきものです。例えば、近くで電子レンジを使うとWi-Fiが繋がりにくくなるのは、同じ周波数の電波が衝突して乱れてしまうからです。Wi-Fiのアクセスポイントを近所にたくさん設置したときにも、電波が衝突して通信が不安定になってしまいます。このような、別の無線信号とお互いに邪魔し合う現象を「干渉」と呼ぶのです。
OCCでは、1つのカメラで多くの光源を撮影できます。電子レンジが近所にあってもまったく問題ありません!ただし、Wi-Fiのような電波とはちょっと違う「干渉」が起こることがあります。つまり、複数の光源が画像上で重なってしまうと、それぞれの光源を正しく識別して光信号を認識することが難しくなってしまいます。例えば、目の前に大きなディスプレイを置いたら、その向こう側の小さなLEDライトは見えなくなってしまいますよね。OCCを上手に利用するためには、このような「干渉」を防ぐ必要があるのです。
② Blooming Effect(BE)ってなんだろう?
OCCでは、カメラで撮影した光をコンピュータで処理し、データを読み取ることによって受信を行います。しかし、暗い環境では、光源の周囲へと光が広がって見えてしまいます。みなさんは、カメラで夜景やイルミネーションを撮影したときに、ぼやけてしまった経験はありませんか?カメラで光を撮影したときに、光が広がってしまったりぼやけてしまったりする現象を、Blooming Effect(ブルーミングエフェクト、以下BEと略記します)といいます。うか。どうやら、周囲の明るさや光源の光の強さに関係があるようです。
・BEが起きるしくみ
それでは、BEの発生原理についてみていきましょう。カメラには、イメージセンサという「眼」のようなものが搭載されています。これは、カメラのレンズから入射した光を電気信号に変換して記録するために欠かせないものです。1枚の薄い板のようになっているのですが、よく見ると、フォトダイオードと呼ばれる半導体の素子が数多く格子状に並んだ構造をしています。このフォトダイオードの1つ1つが、上述したピクセル(画素)に当たります。つまり100万画素のカメラには、小さな半導体素子が100万個も搭載されていることになります。ちなみに、フォトダイオードとは、光を検知するセンサのようなものです。広い意味でいうと、太陽電池もフォトダイオードの一種になるそうです。
現在よく使われているCMOSイメージセンサでは、フォトダイオードが受け取った光を電荷(電気の量のようなもの)に変換・増幅します。これを次の回路へと受け渡し、様々な信号処理を行うことで、各ピクセルの色の情報へと変換し、画像になります。ちなみに、各ピクセルの色は画素値またはRGB値と呼ばれる値で表現されることが多いです。
・RGB値
例えば、白 255:255:255 黄色255:255:0 赤255:0:0 黒0:0:0 といった具合に色ごとに値が定められています。推理ものでダイイングメッセージにできそうだと思いました。犯人は0:0:0服を着ていた、のように。
話がそれてしまいましたが、実はフォトダイオードが受け取れる光の量にも限界があります。さて、光が強くなり、電荷が多くなるとどうなってしまうでしょう。許容量を超えてしまうくらいの強い光を受信すると、飽和状態になってしまい、電荷を蓄えることが難しくなってしまいます。そうすると、溢れた分が隣にあるフォトダイオードへと流れ込んでしまいます。その結果、画像上では、白い筋や塊のようなものが発生してしまいます。このような現象をBEと呼ぶのです。
・・・と書くと少し分かりにくいのですが、フォトダイオードをバケツだと思えば、イメージしやすいかもしれません!つまり、バケツを格子状にたくさん並べたものがイメージセンサだとします。水(=光)が降ってくると、それぞれのバケツに水が溜まっていきますね。もし水の量が多い場所があると、真下にあるバケツが溢れてしまいます。溢れた水はどこへ向かうかというと、近所のバケツに流れ込んでしまう、というわけです。
ちなみに、BEを防ぐためには、フォトダイオードが受け取る光を少なくすることが考えられます。シャッタースピードや絞り値などのカメラの設定を変えて、露光時間を短くすることで、画像の明るさが変わります。露光時間とは、イメージセンサに光を当てる時間のことで、これが長くなるほど多くの光を取り込むため、画像が明るくなるのです。この受け取る光の量を露出と呼びます。 BEはイメージセンサが受け取った光が多すぎるときに発生するので、露出を小さくすれば防ぐことができるのです。普段写真を撮るときに、明るさの調整ができますよね。これは、露光時間を変えて光を取り込む量を調節しているということで、実はみなさんも普段から慣れ親しんだ操作だったりします。ちなみに、最近のカメラは誰でも簡単に綺麗な写真を撮ることができます。これは、綺麗な写真に見えるように、カメラの内部で様々な調整や処理が行われているからです。オートモードでは、撮った写真が最適の露出になるように設定されているものが多いようです。
③ 光源とぼやけの境目をはっきりさせよう!
今回私たちが行ったのは、BEを含めた画像上での「光の広がり」を表す数理モデルを作ることです。と言うと分かりにくいのですが、簡単に言えば「画像の中で、どこからどこまでを光源だと思えば良いか」を正しく認識できるようにする、ということです。そのために、光源のサイズやカメラとの位置関係に加えて、カメラの画素数やCMOSイメージセンサのサイズ、画角などといったパラメタを用いて「光源がカメラのどこに写るか」を計算できるようにしました。ただし、もしBEが発生すると、計算より光源が大きく見えてしまうので、これを防ぐためにBEによる光の拡散まで考慮した点が特に新しいところと言えます。実際に複数のカメラおよび環境において実験を行い、理論式が実環境において成立することを確認しました。
④ どんな実験をするのだろう?
実験の様子を、担当した小野寺さんに伺いました!
・条件ごとに2000枚!気の遠くなる作業
実験は、研究室にて光源やカメラを用意して行いました。動画を撮って、それらを静止画にし、光源を見つけ、データを集める、といった作業を行いました。部屋の明るさや露出などの条件を変えて、それぞれ2000枚の静止画を作ったそうです。気が遠くなりそうです。暗い中での光を撮影するため、夜遅くまで実験した日もあったとか。根気が必要ですね!
・困った!カメラの内部設定がわからない!
この実験では、カメラの設定に悩まされたようです。最近のカメラは誰でも簡単に美しい写真を撮ることができます。写真を撮ったとき、少し前までは、きちんと撮ったはずなのにぼやけたりぶれたりしていたこともあったのではないでしょうか。SNSで写真を発信することも普及していて、知識や技術があまりなくても手軽にきれいな写真が撮れるのは便利で嬉しいですよね。しかしながら、この便利なはずの設定がネックになりました。なぜなら、小野寺さんがカメラの設定を調整して条件ごとにデータを集めるのですが、カメラ内での処理によって、いつのまにか事前の想定と違った条件になってしまうことがあったからです。これでは、データにずれがでてしまい、思うように実験を進めることができませんでした。
内部の設定がどのようになっているか調べ、実験に最適になるように調整するのが、難しかったようです。ですが、苦労して取り組むことが楽しくもあったそうです。大変でも楽しく取り組めるのは、実験がとても好きだからなのだなと感じました!
⑤これから
今後はもっといろいろな種類のカメラを使って、より広い視野から考えられるようにしていくそうです。これから発展していくのが楽しみですね。ここまで読んでくださり、ありがとうございました。次回もお楽しみに!