• TOP
  • >
  • gallery
  • >
  • 導入事例 | 高機能・高速GPU処理を実現した偏光カメラSDKの紹介

高機能・高速GPU処理を実現した偏光カメラSDKの紹介
Introduction of SDK for Polarization Camera
which realizes high-functioning and high-speed
GPU processing.

PDF/11.7MB
FEATURE

2018年12月に出荷開始したソニーの偏光カメラと偏光カメラ専用のSDKは高機能・高画質・高速処理を実現している。そのポイントとなるのは、専門知識を要する偏光信号処理の実装に工数を割くことなく、最小限のコストで利用できるSDKとして開発したことである。その上で、昨今のPC性能を十分に発揮するべく数値処理にGPUを活用したことで、フル解像度・フルフレームレートでの偏光処理を実現した。
本稿ではSDKの機能と特長を中心に説明する。

はじめに

偏光という物理現象については、1690年にホイヘンスにより発見されて以来300年以上に亘りさまざまな分野で研究され、活用されてきた。カメラの分野では写真の撮影時に偏光フィルタを装着し、水面やガラスに写りこむ反射を抑えるような活用をしている。産業用途でも、製造時の検査の際に写りこむ光の反射が異物や傷・汚れなどの確認で障害となっており、反射低減のため偏光フィルタが使用されている。

現在、産業用カメラの分野で大きな注目を集めているのが「偏光カメラ」である。ソニーセミコンダクタソリューションズは2018年9月に偏光技術 “Polarsens” を搭載した偏光イメージセンサIMX250(第1、2、3図)の量産を開始した。同年12月に横浜で開催された国際画像機器展では、筆者も説明員として参加したが、10社以上が「偏光カメラ」を展示し、来場者の注目の高さを実感した。

第1図 偏光イメージセンサ

第2図 偏光イメージセンサの構造

第3図 偏光イメージセンサの偏光子

ソニーが開発した偏光カメラとしては、5Mピクセル、GigEインターフェースのマシンビジョンカメラXCG-CP510、および専用SDKとしてXPL-SDKW(Windows版)があり、同年12月から出荷開始した。以下では偏光カメラとSDKを用いてできることを紹介する。

偏光フィルタから偏光カメラへ

冒頭でも述べた通り、民生用カメラで風景などを撮影する際に邪魔となる光の反射を低減させるために偏光フィルタ(PLフィルタとも呼ばれる)は有用なアクセサリである。反射低減にはフィルタを回転させ、一番効果がある角度を特定する作業が必要であり、太陽の位置や被写体との角度によって設定するフィルタの角度が変わるためその都度調整が必要である。

風景撮影など、時間に余裕のある撮影では偏光フィルタの調整に要する時間は大きな問題とならないが、製造ラインにおいての製品チェックのような現場ではその都度調整することは現実的ではない。照明と被写体の位置関係、フィルタの角度を事前に決めておき、製品固体ごとの調整が不要となるように一定環境下での撮影条件を整えておくことが重要であった。

また従来は偏光フィルタ越しに目視で傷や汚れの確認をしていたが、オープンソースの画像認識処理ソフトの出現により、以前より容易に画像認識技術をソフトに組み込むことが可能となり、確認作業の自動化が進められている。一度フィルタを通して撮影した画像はフィルタ状態を含めた静的な情報であり、後からフィルタ角度の調整をすることはできないため、偏光フィルタの設置はより重要となっている。

反射除去以外の用途でも、今までは偏光度を求めるには偏光フィルタの角度を変えて複数回撮影するか、複数台の機器を設置する必要があり、撮影の手間や視差が生じるなど精度面の問題があった。

これに対し、偏光カメラの大きな特徴は、4方向の偏光子を搭載し後段の信号処理と組み合わせることでワンショットの撮影で任意角度の偏光フィルタの状態を算出できることである。 撮影した画像には4方向の偏光子の情報が保存されているため、その画像から再度任意角度のフィルタ状態を計算して求めることができ、撮影後にオフラインで確認することも可能となる。

SDKの構成と機能

ソニーが開発したWindows版偏光カメラSDK(XPL-SDKW)について紹介する。
XPL-SDKWはWindows Installer形式で提供されており、下記から構成されている:

  • SDK本体(dll)
  • APIドキュメント
  • サンプルソースコード
  • ライセンスID取得用ツール
  • サンプルビューア(XPL Viewer)

本SDKは透過光・反射光を扱う偏光アルゴリズムを7つ提供していることが特長の一つである。本稿では、SDK付属のサンプルビューアを使用して確認できる、SDKの各機能を紹介する。

偏光度(Degree of Polarization)

被写体の偏光度合いを算出する機能であり、白く表示される箇所ほど偏光していることを示す。束ねた電源コードのようにコントラストが低く、画像ではつぶれて視認が難しい被写体や、背景と同色のためカメラで認識しにくい物体でも、偏光度を求めることにより物体の形状を確認することができる(第4、5図)。

第4図 電源コード(元画像)

第5図 偏光度による表示

面法線(Surface Normal)

偏光情報から被写体の面の法線を算出することができ、SDKでは被写体に対して画素ごとに面法線を計算する機能を提供している。また求めた面法線をカラー化して表示する機能も提供しており、面の向きの違いを色で表現することができる。この機能も偏光度と同様に、カメラでは認識困難な同系色の物体(第4図)に使用することで、面の向きを見やすく立体的に表示できるため(第6図)、3D計測や形状認識に利用できる。

第6図 面法線

応力(Retardation)

物体内部にかかる力を応力という。応力は外から力をかけた時に発生し、外力を除いた後にも物体内に残ることがある(残留応力)。応力が生じた時のひずみの大きさと向きに応じて、複屈折の大きさと向きが変化する物質を光弾性体という。 透明・半透明の光弾性体に偏光光をあてると、ひずみの大小によって複屈折した偏光に位相差が生じる。これを観測することで物体にかかる応力の大小を確認でき、サンプルビューアでは観測された位相差を色で視覚化して表示している。第7図はアクリル板の右側側面に金属の棒を挟み込み、左右から万力で圧力を加えている図である。人の目ではわからないが、第8、9図のように応力を観測すると、金属が支点となりアクリル板に応力がかかっていることがわかる。

第7図 Retardation(元画像)

第8図 Retardation(弱い圧力)

第9図 Retardation(強い圧力)

反射除去・強調・抽出(Reflection Cancel / Enhance / Extract)

無偏光光が被写体の表面で反射するとその角度に応じて偏光するという性質があり、偏光フィルタではこの特定方向の偏光を遮断することで反射光を除去(Cancel)することができる。偏光フィルタでは除去するだけだが、偏光カメラではSDKでの数値計算処理により反射光の強調(Enhance)表示や反射成分のみを抽出(Extract)することもできる。
反射除去(第11図)のメリットとしては、車のフロントガラスや水面などの写りこみ部分を除去することによる視認性向上があげられる。 また反射強調(第12図)はガラスのように透過率の高い物体に対して、反射成分を強調することで通常のカメラでは困難だった位置や形状を特定することができる。

偏光カメラSDKでは反射除去の機能としてManualとAutoの2つを用意しており、用途に応じて最適な除去方法を選択できる。

  • Manualは本来Brewster角でなければ完全には除去できない反射を、反射面の角度を手動で指定することで除去することができる
  • Autoは各画素単位で被写体の偏光(反射成分)を求め、自動で低減できる

第10図 元画像

第11図 反射除去

第12図 反射強調

ストークスベクトル(Stokes Vector)

ストークスベクトルとは、ストークスパラメータと呼ばれる4成分𝑆0、𝑆1、𝑆2、𝑆3から構成され、偏光状態を表現するための列ベクトルであり、
𝑆 = (𝑆0、𝑆1、𝑆2、𝑆3)t で表される。それぞれのストークスパラメータは測定可能な光の「強度」で表現される。光学素子についてMueller行列𝑀を定義し、ストークスベクトルに行列計算をすることで、光学素子を通過した後の光の状態変化を知ることができる(𝑆′=𝑀𝑆 )。

SDKからこのストークスベクトルを取得することができ、サンプルビューアでストークスパラメータの各状態を表示することができる。𝑆3は偏光イメージセンサで取得できないため、SDKでは扱っていない。

第13図 ストークスベクトルの表示画面

  • 𝑆0 : 光強度(第13図・画面左上)
  • 𝑆1 : 水平直線優越偏光成分(0°−90°成分)(第13図・画面左下)
  • 𝑆2 : 45°直線優越偏光成分(45°−135°成分)(第13図・画面右下)
  • 𝑆3 : 右向き円優越偏光成分(右円−左円成分)
ソニー製SDKの特長

本節ではソニーのSDK(偏光アルゴリズムを除く)ならではの特長について説明する。

デモザイク処理による画質の向上

偏光イメージセンサはワンショットで4方向の偏光を取得できるメリットがある一方、4方向の情報を元に数値計算を行っているため、各偏光方向の画像は全画素の1/4の解像感になってしまうデメリットがある。XCG-CP510で搭載している偏光イメージセンサIMX250の場合、約507万の有効画素で最大 2464×2056の解像度を持つが、偏光の情報量という意味ではこれが 1232×1028の解像度となる。
また偏光イメージセンサの各方向の偏光子は、製造上のバラツキがあるため感度が微妙に異なる。サンプルビューアのRaw出力を選択し、映像を拡大すると格子状の表示(第14図)が確認できるが、これは偏光によるものと、感度のバラツキの両方が要因である。結果的に偏光イメージセンサからの情報は人間の目で確認した映像と差異が生じ、モザイク処理されているように感じる。
これに対し当社SDKでは偏光アルゴリズムの計算前に、各方向の画素の補間と空間方向の位相ずれを合わせる処理をすることで、モザイク状の映像を目視に近い状態に変換する「デモザイク」処理を行っている。偏光子の配列に最適化した独自のデモザイク処理により、偏光イメージセンサの有効画素数と同等の情報量に復元でき、同時に画質面の向上を実現している(第15図)。

第14図 Raw画像

第15図 デモザイク処理の効果

FFC(Flat Field Correction)

前述した通り、偏光イメージセンサの素子は画素ごと・偏光方向ごとに感度のバラツキがある。またレンズを使用したカメラの場合、画像の中央部より周辺部の方が暗くなるシェーディングという現象があり、これらを補正するためFFCという機能をSDKに実装した。カメラ本体にもシェーディング補正機能があるが、507万画素を扱うには本体では計算量が大きいため完全な補正を行うことは難しい。計算リソースにGPU(Graphics Processing Unit)を活用できるPC側で実行することで、質の高い補正を実現している。

GPU活用による高速処理の実現

偏光アルゴリズムはカメラから出力された画像の全画素に対して数値演算を行う必要があり、最新のCPUであっても全画像をリアルタイムに処理することは現状困難である。CPUだけで対処するには計算量を削減するしかなく、扱う画像サイズの縮小やフレームレートの間引き、もしくは偏光アルゴリズムの簡略化が必要となる。しかしながら偏光アルゴリズムの用途によってはこれらの対処は用途の制限につながる可能性があり、用途を特定しないSDKという形態にはそぐわない。

近年、PCに搭載されるGPUは画像処理を行うだけでなく、高い並列計算能力を大規模な数値演算に活用することが一般的になっている。偏光カメラSDKでは偏光カメラから出力される画像をリアルタイムに偏光処理することを目標とし、計算処理にGPUを活用することで高速な処理を実現した。GPUを計算に利用するには、以前はGPUベンダーごと、もしくはプラットホームによって手段が別れていた(CUDA、 AMD Stream、 DirectComputeなど)が、現在ではOpenCL(クロノス・グループにより定められた標準規格)を使用することでGPUベンダーに依存することなくGPU演算を行うことができる。偏光カメラSDKでもOpenCLを使用して偏光処理を実現しており、最近のWindows PCであれば多くの環境でCPUより高速な処理を体感することができる。なおフル解像度・フルフレームレートの処理をする場合はNVIDIA GeForce GTX 1070/1080など高性能なGPUの使用を推奨している。

オンライン/オフライン対応

偏光カメラSDKは、オンライン(偏光カメラが接続された状態)だけでなく、オフライン(ファイルに保存された状態)のRaw画像も扱うことができる。Raw画像をファイルに保存しておくことで後日そのファイルを読み込み、すべての偏光処理を再現することができるため、例えば反射除去で最適な角度を選択したい場合でも時間をかけて確認することができる。

おわりに

説明員として参加した国際画像機器展では来場者の方々から偏光カメラについてさまざまなお話を伺うことができた。被写体も細胞のように小さなものから大地のように大きなものまで、また用途も医療・製造・交通・研究・宇宙・スポーツと多岐にわたり、筆者の想像より活用できる市場がはるかに大きいことを実感した。
偏光の世界は古くから知られていたが、偏光カメラという新しい技術が世に出たことで新たな活用方法が考案され、ますます大きく広がっていくことだろう。ソニーが開発したカメラとSDKがそのお役に立てることを願っている。
製品の詳細についてはホームページを参照いただきたい:
Polarsens およびは、ソニー株式会社の商標です。その他、本稿で登場するシステム名、製品名は、一般に各開発メーカーの登録商標あるいは商標です。なお、本文中で®、TMマークは明記しておりません。

著者紹介

著者名 : 三ッ堀 裕之
会社名 : ソニーイメージングプロダクツ&ソリューションズ株式会社
部署名 : プロフェッショナル・プロダクツ&ソリューション本部 ソフトウエア技術第2部門

著者名 : 佐々木 勝昭
会社名 : ソニーイメージングプロダクツ&ソリューションズ株式会社
部署名 : プロフェッショナル・プロダクツ&ソリューション本部 商品設計第2部門

関連製品

Image
Sensing
Products

安心安全な世界を創る