Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I turned the PS5 camera in my drawer into a depth-sensing webcam

2026年10月10日に「Dev.to」が公開したITニュース「I turned the PS5 camera in my drawer into a depth-sensing webcam」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

PS5カメラを改造し、深度センサー付きウェブカメラとしてPCで利用可能にした。2つのカメラセンサーから奥行き情報を測定し、AIに頼らず物理的な背景ぼかしを実現。ファームウェアやUSB帯域の課題を克服し、Windows標準のカメラ機能として動作するドライバを開発した。

ITニュース解説

PS5のカメラは、多くの場合、ゲーム機に接続されずに引き出しの中に眠っていることがあるかもしれない。しかし、この眠っていたカメラを、ただのWebカメラではなく、物の奥行きを感知できる特別なWebカメラに変身させるという画期的なプロジェクトが生まれた。これはシステムエンジニアを目指す初心者にとっても、ハードウェアとソフトウェアの連携、そして技術的な課題解決の面白さを教えてくれる良い事例だ。

PS5 HDカメラは、実は通常のWebカメラとは異なり、二つの1080pセンサーを持っている。このような二つの目で世界を見るカメラを「ステレオカメラ」と呼ぶ。人間の目が二つあることで立体的に物を見られるのと同じ原理で、ステレオカメラは二つのセンサーで同時に捉えた映像のわずかなずれ(これを「視差」と呼ぶ)を分析することで、写っているすべての物までの正確な距離、つまり奥行きを測定できるのだ。この奥行き情報があれば、ビデオ会議などで背景をぼかす際、単にAIが人物の輪郭を推測してぼかすのではなく、実際に距離が離れている背景だけを自然にぼかすことができるようになる。まるで一眼レフカメラで撮影したかのような、リアルで高品質な背景ぼかしを実現できるわけだ。

しかし、このアイデアを実現する道のりは決して平坦ではなかった。まず最初に直面したのは、PS5カメラをPCに接続しても、すぐに使えるWebカメラとして認識されないという問題だ。カメラは毎回、まず「ローダー」と呼ばれる状態(USB 05A9:0580)でPCに現れ、PCから「ファームウェア」、つまりカメラを動かすための基本的なプログラムを受け取って初めて、私たちが普段使う「UVCカメラ」という標準的なWebカメラ(05A9:058C)として動作し始める。このファームウェアはソニーが著作権を持つため、開発者が勝手に配布することはできない。そこで開発者は、ユーザーがソニーが公開している正規のファームウェアイメージをダウンロードし、その安全性を保証するために「SHA-256」という技術で内容が改ざんされていないかを確認した後、開発者が作成したわずか90バイトの小さなパッチを適用することで、PS5カメラの新しい機能を引き出す仕組みを考案した。これにより、著作権の問題をクリアしつつ、必要な変更を加えることに成功した。

次に大きな課題となったのは、USBの帯域幅の制限だ。通常のファームウェアでは1080pの映像を毎秒30フレーム(30fps)で送るが、開発者はこのカメラの性能を最大限に引き出し、より滑らかな1080p60fpsでの動作を可能にするパッチを適用した。しかし、深度を測定するためには二つのセンサーから同時に映像を取得する必要がある。二つの1080p60fpsの映像ストリームは、合計で毎秒約498メガバイトものデータを必要とするが、このPS5カメラがPCと接続されているUSB 3のリンクが一度に運べるデータの量は毎秒約393メガバイトまでと限られている。これでは帯域幅が足りず、両方のセンサーのフル解像度・フルフレームレートの映像を同時に送ることができない。この問題を解決するため、カメラ内部にある「ブリッジチップ」という、データの流れを制御する部品に改良を加えるパッチを適用した。具体的には、メインのセンサーからは通常の1920x1080ピクセルの映像をそのまま送り、二つ目のセンサーからは、カメラのハードウェア内部で自動的に960x540ピクセルに縮小(ダウンスケール)された映像を送るように変更した。これにより、二つのセンサーからの合計データ量を毎秒約320メガバイトに抑えることができ、USBの帯域幅に無理なく収まるようになった。そして重要なのは、奥行きの計算自体はもっと低い解像度(640x360ピクセル)で行われるため、二つ目のセンサーの映像が小さくなっても、奥行き情報の精度が損なわれることはない。ユーザーは引き続き、メインセンサーからの高画質な1080pの映像をフル視野角で受け取れるという、まさに一石二鳥の解決策だった。

このプロジェクトの最も注目すべき点は、AIに頼らずに深度を計算していることだ。背景ぼかしなどの映像処理では、近年AIが多用されるが、ここでは純粋な画像処理技術とGPU(グラフィック処理装置)の計算能力を組み合わせて深度マップを作成している。その処理の流れは以下の通りだ。まず「Census transform」という手法で、各ピクセルとその周囲の明るさの関係性を62ビットの「署名」として記録する。この方法は明るさの絶対値ではなく、相対的な明るさの順序を比較するため、二つのセンサーの明るさの感度が多少異なっていても問題なく処理できる。次に「Semi-global matching」という手法で、二つのセンサーで撮影された映像の各ピクセルが、お互いの映像のどこに対応するかを探し出す。これにより、各ピクセルまでの距離のずれ(視差)を計算し、深度を割り出す。この際、画像のエッジ(輪郭)部分で深度が急激に変化する場合には、それを考慮して計算のペナルティを小さくすることで、より自然な深度マップを作成する。計算された深度マップには、まだノイズや不正確な部分があるため、次に「Clean-up」という工程で、一貫性のチェック、穴埋め、そして時間的な平滑化を行い、ちらつきのない滑らかな深度マップにする。その後、「Guided filter」という技術を使って、640x360ピクセルで計算された深度マップを、元の高解像度映像の輪郭情報を参考にしながら、フル解像度の深度マップへと拡大する。最後に、顔の深度を基準として、顔の奥にある髪や耳も人物の一部としてシャープに保ち、壁などの遠い背景だけを効果的にぼかすための処理を加える。これにより、まるでプロのカメラで撮影したかのような美しい背景ぼかし(「Bokeh」と呼ばれる効果)を実現している。これらの複雑な計算は、現代の高性能なGPUであるRTX 3060 Tiのようなグラフィックカードを使えば、1080pの映像1フレームあたりわずか約9ミリ秒という驚異的な速さで処理される。

この技術は、Windowsのカメラ機能に非常にスマートに統合されている。開発者は、別の仮想カメラアプリを常に起動させておくような煩わしい方法ではなく、Windowsが正式にサポートしている「Device MFT(Media Foundation Transform)」という仕組みを利用した。これは、Windowsのカメラフレームサーバーが、カメラから送られてくる映像をリアルタイムで加工するために、カメラのパイプライン(データの処理経路)の中にロードするプログラムだ。このプログラムはユーザーモード、つまりOSの核となる部分に影響を与えない領域で動作するため、高度なカーネルドライバの署名プロセスが不要となり、安全かつ簡単に導入できる。その結果、ユーザーはWindows上で「PS5 Camera」という一つのカメラデバイスだけを認識し、そのぼかし機能はWindows自身が提供する「背景効果」設定の中で、他の標準的なエフェクトと同じように手軽に切り替えられる。これにより、OSに深く統合された、非常に使いやすいソリューションが実現した。この技術はWindowsだけでなく、Linux環境でも利用可能で、Windows版と同じGPU計算処理を「Vulkan」というグラフィックAPIと「SPIR-V」という中間言語を使い、Linuxの仮想カメラデバイス(v4l2loopback)に映像を書き出すことで実現している。macOSでも1080pの映像出力は可能だが、カメラの拡張機能にはApple開発者の署名が必要となるため、深度ぼかし機能の提供は今のところ難しい状況だ。

このプロジェクトは、単なる趣味の範疇を超え、既存のハードウェアに新たな価値を与え、ソフトウェアの力でその可能性を最大限に引き出すという、システムエンジニアリングの醍醐味を示している。開発者はこの成果をGPL-3.0ライセンスのもとで無償公開しており、特に様々なGPU環境(特に内蔵グラフィックス)での動作報告を求めている。これは、オープンソースの精神と、コミュニティの力を借りてさらに技術を磨き上げようとする開発者の姿勢をよく表している。この取り組みは、引き出しに眠るデバイスが、少しの工夫と高度な技術によって、いかに驚くべき新しい機能を手に入れられるかを示す素晴らしい例だと言えるだろう。

関連コンテンツ

関連IT用語

関連ITニュース