見出し画像

360 Camera DEEP HACK part1 デュアルフィッシュアイの秘密?

2025.3.1

360度カメラの仕組みとデュアルフィッシュアイについて

はじめに

はじめに自己紹介とイベント告知をさせていただきます。2025年3月16日(日曜日)に「Appleビジョンプロ」に関するイベントが開催されます。このイベントでは空間コンピューティングとAI世代のライフスタイルについてのアイデアソンが行われ、私は審査員として協力させていただくことになりました。また、同時期にAppleインテリジェンスも始まるとのことで、テクノロジーの新時代を感じさせるイベントになりそうです。


本日のセミナーには360カメラに興味のある方だけでなく、360カメラを使ってプログラミングやコンピューター関連の作業をされる方も参加されていると思いますので、この機会に併せて告知させていただきました。私自身も「初めてのRICOH THETA」やFacebookに360度イメージをアップロードする方法などの記事をnoteに書いています。これらの記事では基本的な使い方から応用テクニックまでカバーしていますので、興味のある方はぜひご覧ください。


私は「MOSA」というプログラマを支援する団体の暫定代表をしています。MOSAではセッションレポートなども公開しており、どのような活動をしているか参考になると思います。このレポートは技術的な詳細というよりは、活動の概要を伝えるものになっていますが、我々の取り組みの一端を知っていただく良い機会になるでしょう。

360度カメラの基本構造

今回はデュアルフィッシュアイという技術について詳しくお話しします。一般的に360カメラのユーザーとしては「エクイレクタングラー」という1:2の比率の画像を扱います。これは縦方向が上に90度、下に90度で合計180度、そして水平方向に360度という形になっています。このような投影法は地図製作でも使われており、球面を平面に展開する際の標準的な方法の一つです。

画像
エクイレクタングラー

カメラ内部では、魚眼レンズが2つついた「デュアルフィッシュアイ」という状態で画像が取得されます。RICOH THETAなどのカメラでは、カメラの前後に魚眼レンズが配置され、これらの2つの魚眼画像をカメラ内部で変換処理しています。THETAの場合、シャッターボタンとディスプレイのある側が背面、何もない側が前面と定義されています。撮影される画像は、前面と背面のレンズから取得された魚眼画像をカメラ内で合成して一枚の360度画像エクイレクタングラーを作成します。

画像
デュアルフィッシュアイとエクイレクタングラー

撮影自体はTHETAであってもKandao(QooCamシリーズ)であってもInsta360であっても、基本的な原理は同じです。2つの魚眼レンズが前後に配置され、それぞれが約180度以上の画角を持ち、それらの画像を合成して360度全方位の画像を生成します。

魚眼レンズの仕組みと種類

魚眼レンズには実は多くの種類があり、その特性も様々です。シグマやニコン、キヤノンといった一般的なカメラメーカーからも様々な魚眼レンズが販売されています。魚眼レンズの分類方法はいくつかありますが、主な特性として画角(どれだけ広い範囲を撮影できるか)によって区別される場合もあります。

魚眼レンズと一般的なレンズの光学的違いは、光の屈折のさせ方にあります。一般的なレンズでは「見た目通り」に撮影することを目指しています。つまり、縦線は縦線として、横線は横線として、できるだけ歪みなく被写体を記録します。ズームの効果などはありますが、基本的には人間の目で見たようにシーンを再現するよう設計されています。

一方、魚眼レンズは入ってきた光を意図的に「曲げる」ことで非常に広い画角を実現しています。一般的なレンズでは画角が広くなるにつれ、センサーサイズを大きくするか、レンズの歪みを許容する必要があります。通常のレンズでは120度程度までの画角は広角レンズで対応できますが、120度から130度を超えると実用上の限界にぶつかります。

画像
一般のレンズ

魚眼レンズはこの問題を解決するために、入ってきた光を大きく曲げて処理します。例えば、ほぼ真横から入ってきた光でもセンサーに到達するよう設計されています。RICOH THETAなどの360度カメラでは200度近くの画角を持つレンズを使用しており、レンズの後ろ側からわずかに横から入ってきた光でもイメージセンサーに届くようになっています。

画像
魚眼レンズ

魚眼レンズにも様々な種類があり、その投影方式によって特性が異なります:

  1. 等距離射影(Equidistance) - 角度に比例して像高が変化する

  2. 立体角射影(Equisolid angle) - 立体角に比例して像高が変化する

  3. ステレオ射影(Stereographic) - 特に中心部の歪みが少ない

  4. 正射影(Orthographic) - 端に行くほど圧縮される

画像
生成AIで作成した魚眼レンズの結像シミュレータ

これらの違いは、例えば動物の鼻を近接撮影した際の歪み方などに現れます。「魚眼レンズっぽい」と感じる強い歪みは、多くの場合、正射影タイプの魚眼レンズによるものです。このタイプは中心部が特に拡大されて映るという特徴があります。

デュアルフィッシュアイからエクイレクタングラーへの変換処理

デュアルフィッシュアイ状態の画像をエクイレクタングラー形式に変換する際には、いくつかの技術的課題があります。

  1. レンズ間の位置のずれ: カメラの厚みがあるため、2つのレンズの位置が物理的に離れています。通常、数センチ程度の距離があり、これにより特に近距離の被写体では、両方のレンズからの画像に視差(パララックス)が生じます。例えば、手に持っているときなどはこの差が明確に現れます。

  2. 画像の重なり: 2つの魚眼レンズは各190度から200度近くの画角を持つため、同じ部分を撮影している重複領域があります。実際、両方のレンズで180度以上の部分が重なっているのですが、レンズ特性の違いにより完全に同じには写りません。この重複領域をどのようにブレンドするかが重要な課題となります。

  3. 色収差の問題: 広角レンズの端の方では「パープルフリンジ」と呼ばれる色収差が発生します。これは光の波長によって屈折率が異なるために生じる現象で、特に明るい背景で直線がはっきりと映っている場合に紫や緑の縁取りのように見えます。例えば、空を背景にした建物の輪郭などで顕著に現れます。


画像
デュアルフィッシュアイの例
画像
幾何学中心と実写中心の違いをイメージした例

これらの問題は、単に2つの画像を繋ぎ合わせるだけでは解決できません。実際のカメラでは、デュアルフィッシュアイ画像を分析すると、レンズの中心が機械的な中心から微妙にずれていたり、魚眼の投影範囲が完全な円形ではなかったりするのが分かります。これにより、単に180度ずつを切り取って繋げただけでは、反対側で画像がずれてしまいます。

カメラの内部処理と技術的挑戦

RICOH THETAなどの360度カメラは、合成を前提としたカメラです。通常のカメラはファインダーで見たままを撮影するだけですが、360度カメラは2つのカメラ画像を合成して1枚に見せる必要があります。これには様々な技術的挑戦があります。

撮影時には以下のような処理を行っています:

  • センサーの同期: 前後カメラのセンサーの走査方向を合わせて、時間差が発生しないようにしています。通常のカメラセンサーは上から下へと順番に読み出すため、動く被写体を撮影すると「ローリングシャッター歪み」が発生します。360度カメラでは両方のセンサーの読み出しを完全に同期させることで、動く被写体でも綺麗に繋がるようにしています。

画像
センサーの同期を考察する
  • 露出の調整: 2つのカメラの明るさを揃えるために、ISO感度で調整しています。シャッタースピードで調整すると動いている被写体の流れる長さが変わってしまうため、ISO感度での調整を優先しているようです。前後で光の当たり方が大きく異なる場合(例えば、太陽に向かって撮影する場合など)でも、繋ぎ目で明るさが急激に変わらないよう処理しています。

  • キャリブレーション: 製造時にレンズごとの個体差をキャリブレーションし、そのデータをカメラに内蔵しています。各カメラのレンズには微妙な個体差があり、完全に同じ特性を持つレンズは存在しません。そのため、1台1台のカメラについて、レンズやセンサーの特性の違いを測定し、それを補正するデータを内蔵しています。

これらの複雑な処理のため、タイマー撮影時にカウントダウンが終わった瞬間ではなく、わずかに遅れて撮影されることがあります。これは、カメラが2つのレンズからの画像を適切に合成するための準備時間が必要なためと予想されます。

興味深いのは、DNG(RAW)形式で保存された画像のバイナリーデータを解析すると、標準的なEXIFデータには含まれない「メーカータグ」という情報が見つかることです。この情報は公式には公開されていませんが、恐らく製造時のキャリブレーションデータが含まれていると考えられます。これによって、RAW現像ソフトでも適切な合成が可能になっています。

画像
メタデータの例

パノラマ処理の詳細な仕組み

360度画像を生成する際には、以下のような複雑な処理を行っています:

  • 露出と色調の調整: 2枚の画像の明るさ・色味を合わせるための基本的な画像処理を行います。前後のレンズで光の当たり方が異なるため、単純に繋ぎ合わせると明らかな境界線が生じます。そのため、画像全体の露出レベルを測定し、部分的に明るさや色味を調整します。特に継ぎ目となる部分は慎重に処理されます。

  • 特徴点検出と位置合わせ: 写真内の特徴点を探し出して位置合わせを行います。重複領域内の同じ被写体を自動的に認識し、それらが正確に合うように微調整していると思われます。例えば、建物の角や木の枝など、識別しやすい特徴が使われます。

  • レンズ補正: レンズの収差や被写体までの距離による影響を補正します。レンズの特性は単純な数式では表現できないため、実際の測定データに基づいて補正を行います。また、被写体までの距離によっても映り方が変わるため、近距離と遠距離の被写体で異なる補正が必要になります。

  • ブレンド処理: 境目をなめらかにするためのブレンド処理を行います。単純に切り替えるのではなく、重複領域でグラデーション状に徐々に切り替えることで、境界線を目立たなくします。興味深いことに、このブレンド領域は画像の内容によって動的に変わり、均一の幅ではありません。

実際に、同じデュアルフィッシュアイ画像から合成する実験をすると、ブレンド部分の微妙な違いが分かります。例えば、赤と緑のラインで180度の境界を指定して合成した場合と、自動合成した場合では、微妙に異なる結果が得られます。これは、カメラがシーンの内容に応じて最適なブレンド方法を動的に選択していることを示しています。

画像
デュアルフィッシュアイ合成の実験素材
画像
デュアルフィッシュアイ合成の実験結果

これらの処理はシャッターを押した瞬間に実行されますが、処理に時間がかかると少し遅れて撮影されているように感じることがあります。特に光の条件が難しい場所や、近距離と遠距離の被写体が混在するシーンでは、より複雑な処理が必要となります。

360度カメラの応用と表現技法

360度カメラの普及には、「リトルプラネット」と呼ばれる表現方法の登場が大きく貢献しました。これは360度画像を球面に投影したような表現で、まるで小さな惑星のように見える効果があります。この表現方法が登場する前は、360度カメラは主に不動産業界や観光業界で使われることが多かったのですが、SNSでの共有が容易になり、一般ユーザーにも広がりました。

画像
リトルプラネットの例

リトルプラネットのような表現は、実はデュアルフィッシュアイの片方だけを使って作ることもできます。例えば、水たまりの反射を利用した写真では、上半分を反転して下に貼り付けるだけで同様の効果が得られます。これは必ずしも360度全体のデータが必要ないケースがあることを示しています。

360度カメラの特徴を活かした他の表現方法としては、「タイニーワールド」や「ラビットホール」などがあります。これらはエクイレクタングラー形式の画像を異なる方法で投影することで生まれる効果です。また、動画においては「タイムシフト」という技術もあり、同じ場所で時間を変えて撮影した複数の360度映像をシームレスに繋ぎ合わせることができます。

こうした創造的な表現方法の登場により、360度カメラは単なる記録デバイスから、新しい視覚表現のためのツールへと進化しました。VRやARなどの技術とも組み合わせることで、さらに可能性が広がっています。

RAW現像とキャリブレーションデータの重要性

360度カメラで撮影した画像をRAW(DNG)形式で保存し、後処理で編集する場合、カメラ内蔵のキャリブレーションデータが重要になります。通常のJPEG形式で保存する場合は、カメラ内部でこれらの補正が自動的に適用されますが、RAW現像では別途このデータが必要になります。

RICOH THETAのステッチャーソフトウェアを使用する際には、現像しようとしている画像だけでなく、元のDNGファイルも同時に読み込む必要があります。これは、DNGファイル内に含まれるキャリブレーションデータを参照するためです。このデータがないと、適切な合成やレンズ補正ができません。

さらに、カメラの傾きやピッチなどの情報も、上下方向を合わせるために必要です。これらのデータを総合的に利用することで、2つの魚眼画像から1つの360度画像が適切に生成されます。

まとめ

360度カメラは一見単純な仕組みに見えますが、実際には非常に複雑な技術が組み合わさって機能しています。2つの魚眼レンズからの画像を適切に合成するために、設計上のスペックと個体差を1台1台測定し、キャリブレーションデータとして内蔵しています。

JPEGで書き出す際はカメラの中でこれを処理していますが、RAW現像ソフトなどでは、DNGファイルに含まれるキャリブレーションデータを使用して処理する必要があります。そのため、RICOH THETAステッチャーなどの専用ソフトは、現像したものと元のDNGファイルを一緒に読み込む必要があります。

この仕組みを理解することで、360度カメラの特性や限界をより深く理解し、より効果的に活用することができるでしょう。また、将来的な技術発展の方向性も見えてきます。例えば、レンズ間の距離をさらに縮めることで近距離での視差を減らしたり、より高性能なセンサーと処理アルゴリズムで画質を向上させたりといった改良が期待されます。

360度カメラは、私たちの視覚体験を拡張する重要なツールとして、今後もさらに進化していくことでしょう。

この記事は、次のオンラインセッションの収録動画と連動して作成しました。


RICOH THETAアンバサダープログラムについて

RICOHでは「THETAアンバサダープログラム」を運営しており、私もこのプログラムに登録しています。このプログラムではFacebookグループを通じて情報交換が行われ、THETA製品の所有者であれば基本的に誰でも参加できます。

画像
RICOH THETA アンバサダープログラム

アンバサダープログラムでは、イベントへの参加やアンケートへの回答によってポイントが貯まる仕組みがあります。例えば、アンケートに回答すると5ポイントが付与され、50ポイント貯まるとTシャツがもらえるなど、様々な特典があります。また、300ポイント以上になると、より豪華な特典も用意されています。

このプログラムは単に特典を得るだけでなく、他のTHETAユーザーとの情報交換の場としても機能しており、撮影テクニックやソフトウェアの使い方などについて学ぶ機会が得られます。特にTHETAを持っている方は、ぜひ参加されることをお勧めします。

いいなと思ったら応援しよう!

コメント

ログイン または 会員登録 するとコメントできます。
360 Image and Code Evangelist. MOSA Multi-OS Software Artist Interim Director
360 Camera DEEP HACK part1 デュアルフィッシュアイの秘密?|ikejun360
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1