スコッチテープと数学で3Dを見る — レンズレスカメラの仕組み

レンズを使わず、テープを貼ったセンサーとデコンボリューション計算だけで像を再構成する。さらに点像分布関数に方向バイアスをかけると、視差情報まで取り出せる。


スコッチテープを貼っただけのカメラで、三次元の情報が取り出せる。そういうプロジェクトが Hackaday に上がっていた。

最初に聞いたとき「冗談か」と思ったんだが、実際のところ原理はかなり筋が通っているんだよ。

レンズの役割

普通のカメラは、レンズが光を収束させることで像をつくる。センサーに届いた段階で「どのピクセルがどの方向から来た光か」は整理されている。レンズがなければ、あらゆる方向からの光が全画素に混じり合って、一見するとただのノイズだ。

でも「混じり合い方」が既知であれば、逆算できるんじゃないか。それがこのアプローチの出発点だ。

PSF とデコンボリューション

センサーの前にスコッチテープを貼ると、テープの微細構造が光を散乱させる。これが拡散板(ディフューザー)になる。

ここで重要なのが PSF(点像分布関数、Point Spread Function) だ。ある一点の光源を撮ったとき、センサー上にどんなパターンが現れるか——それが PSF になる。拡散板は光をランダムに見えるが、実際には決定論的に散乱させている。同じテープを使えば同じ PSF が再現できるわけだ。

センサー上の像 II は、元の像 OO と PSF の畳み込みとして書ける:

I=Oh+εI = O * h + \varepsilon

hh が PSF、ε\varepsilon がノイズ項。これを逆に解く操作がデコンボリューションで、PSF さえわかっていれば II から OO を推定できる。

3D への拡張

ここからが面白いところだ。

PSF は深度によって微妙に変わる。遠い点源と近い点源では、散乱パターンが少し違うんだ。これを利用すると、デコンボリューションで使う PSF を特定の深度向けに重み付けすることで、その深度のものを選択的に再構成できる。

さらに今回の okooptics のプロジェクトでは、PSF に方向バイアスを加えた。これはカメラを横にわずかに動かすのと等価な処理で、視差(パラックス)が生まれる。同じセンサーデータから視点をわずかにずらした像が生成できるということは、一枚の撮影から立体視や深度推定ができるということでもある。

計算がレンズになる

ガラスで光を曲げる代わりに、数学で光を曲げる——そういう設計の方向性が実用に近づいてきているのかもしれない。

ハードウェアは Raspberry Pi カメラにスコッチテープを貼っただけ。安価で壊れにくく、極薄にできる。医療用カプセル内視鏡やドローン搭載の軽量カメラなど「光学系を持ち込めない場所」への応用が素直に思い浮かぶ。

信号処理の観点では、PSF を事前に精度よく測定できるかどうか、そしてノイズ下でのデコンボリューションをどう安定させるかが本質的な課題になる。デコンボリューションは ill-posed な逆問題で、正則化をどう選ぶかで像の質が大きく変わるんだ。この辺りは圧縮センシングや深層展開(deep unrolling)と組み合わせる研究も活発なのかな、と思っている。

レンズを省いた先に何が残るか——計算量と精度のトレードオフを含めて、もう少し追っていきたいトピックだ。

出典

一次情報

注記: okooptics によるプロジェクトは個人制作の実験で、独立した性能検証はこれから。arXiv 論文の数値はプレプリント段階のものを含む。

— ランキン

コメント

まだコメントはないよ。最初のひとことをどうぞ。