ステレオビジョン方式とは、2つの目を前面にもつ生き物が対象物との距離やその移動速度を認識してきたという、われわれ人間を始めとする狩りをする動物が進化の過程で得た物体認識と同じ方法である。
そのため、ステレオビジョン方式による3Dビジョンは、われわれの日常生活環境で稼動するシステム用のセンサとしての利用に親和性が最も高い方式であるといえる。
本稿では、ステレオビジョンの特性と弱点、弊社3Dビジョンセンサである、aeroTAP(エアロタップ)3Dカメラの特徴とその応用の具体例について紹介したいと思う。
ステレオビジョン方式について
距離を計測する方法は、図1のようにさまざまな技術が存在する。
その中で、三角測量法による計測には複数の技術があるが、弊社の3Dビジョンセンサは、ステレオビジョン方式を採用したシンプルなパッシブ方式のステレオビジョンである。
ステレオビジョン方式の原理は単純で、同期された2つのイメージセンサから得られた画像における各ピクセルの対応ピクセルを求め、その視差(Disparity)マップを生成することにある。
視差(Disparity)の値は、弊社製品では、8Bitまたは、11Bit(製品に依存)で表現され、あらかじめ生産工程でのキャリブレーション処理で得られた距離データへの変換テーブルを使って距離(mm単位)に変換して深度マップ(Depth Map)を得る。
ステレオビジョンで得られた深度マップは、弊社製品の場合、カラー画像に完全に対応しているため、カラー画像と深度マップとの対応付けのための処理は不要である。
しかし、ステレオビジョンによる3Dビジョンセンサは今まで商用製品として全く普及していない。なぜか?これは、シンプルな原理と方式であるにもかかわらず非常に大きな計算コストがかるためである。
たとえば、現在のPCに搭載されている高性能CPUを利用しても2つのWebカメラ(VGAサイズとしても)画像から視差を計算する場合、30fps速度での実装ができないほど計算量が多い。さらに高解像度のHD(1,280×720)で60fpsなど実現することは到底困難になる。
多くの場合、画像内の特徴点群を抽出し、特徴点群の視差を計算する方法であったり、またこれをFPGAや最近ではエッジコンピュータで計算することで実現している製品があるが、その場合、製品コストを低くすることができず、非常に高価なものになっているのが実情である。
弊社では、これらの計算を行うICチップを採用することにより小型化、低価格化、モジュールのシンプル化を実現し、商用製品としての3Dビジョンセンサ、aeroTAP 3D USBカメラを開発し、比較的安価な価格で販売することに成功した。
従来高価であったり、入手が困難であったステレオビジョン方式の3Dビジョンセンサをより広く一般に普及させたいという目的である。
弊社タッチレスインタフェイスと3Dセンサ
3Dセンサの開発を始める以前に、弊社では、市販のWebカメラを利用して画像処理によるタッチレスインタフェイスシステムの開発と販売を行っていた。
これは、カメラをPCに接続して、触れることなく、手のひらでPCの操作を可能にするインタフェイスである。しかし、市販のWebカメラは、人物など被写体をより美しく撮影するために設計されているため、逆にこれが性能を上げられない障害となった。
たとえばフォーカス、ホワイトバランス、露出を環境や被写体に合わせて自動調整する技術が、物体検出やトラッキングには、逆に邪魔になってしまうのである。
さらに産業用のカメラとレンズを使う方法も試みたが、価格が高価になり、また専用ドライバのインストールが必要になるなど取扱いが面倒になってしまった。このような事情からタッチレスインタフェイス用の独自カメラの開発に至った次第である。
こうして最初に商用化したaeroTAP 3D USBカメラは、QVGA(320×240)、VGA(640×480)およびWVGA(640×400)での深度マップをUSB2.0/3.0インタフェイスからカラー画像とともに取得できるものとなった(図2)。
タッチレスインタフェイスaeroTAP(エアロタップ)に使うカメラとして最も重要視したことは、ホストCPUリソースの消費を如何に軽減するか、手のひらで簡単にコンピュータを操作できるインタフェイスの設計で、本来わき役であるインタフェイス機能がホストPCのCPUを消費しないようにすることであった。
開発したaeroTAP 3D USBカメラは、QVGAをサポートしている。手のひら形状検出を行うには、FOV64(水平視野角64度)レンズとQVGA解像度で1.5m程度の距離でも十分可能であった。
USB2.0から直接QVGAカラー画像と深度マップを得られることがタッチレスインタフェイスaeroTAPの稼働時のCPUリソース消費の軽減化を実現している要因の1つである。
因みに、現在のバージョンでは、Intel i5 CPU環境でのCPU消費は3~7%程度である。世の中でもっともCPU消費の少ないジェスチャーインタフェイスである(当社調査による)。
開発当時、すでにジェスチャーインタフェイス用としてのセンサはWebカメラだけでなく、Microsoft社のKinect/Kinect2やLeap社のLeap Motionが市場に出ていた。
技術的には、これらのデバイスを使ってもタッチレスインタフェイスaeroTAPと同じような機能をもたすことは可能であるものの、これらのデバイスでは、POST処理でホスト側の計算リソース(CPU/GPU)を多く消費し、アプリケーションで利用するリソースを圧迫することを多くの方はすでに経験していることであると思う。
つまり、これらのデバイスを使ってホストCPU消費の低いジェスチャーインタフェイスの実現はおよそ不可能であった。弊社では、3Dビジョンセンサをより使い易くするには、ホストCPUリソースの消費も軽減しなければならないと考えたのである。
タッチレスインタフェイスaeroTAPのような物体検出に3Dデータの情報を使う利点として、2D画像だけでは誤検出となる物体が、3Dにより誤検出を軽減できること、また距離フィルタにより処理画像データを小規模化して、計算量を軽減したり、検出した物体(手のひら)の距離情報を使ったアクションを機能に加えるなど多くの利点があった。
こうした利点は、他の認識技術でも同様に、たとえば顔認識、顔認証など顔を検出する際の誤検出の軽減であったり、顔を識別する際に、2Dでの相対的な顔の部品間の距離を実際の大きさとして判別することで誤認証や模造による不正認証の軽減に役立つことになった。
3Dビジョンセンサがより気軽に使えるようになると、セキュリティカメラなどにおいても従来の2Dカメラに置き換えることで性能を向上することができる。
こうした要望に応えるために、新しくaeroTAP 3D GS80 USBカメラの開発と販売を開始した。従来のカメラと比較して3Dセンサとしての性能を重視した設計としたものだ。より精細に3Dキャプチャが可能になった(図3)。
2台のステレオビジョン3Dセンサでの応用
タッチレスインタフェイスは、物体の認識トラッキングに応用した弊社の実例であるが、最近の応用として、3Dキャプチャ装置としての例を1つ紹介する。
本システムでは、80cmから120cmの距離での距離計測精度上げるために狭角レンズ(FOV 30)を採用した2台のステレオビジョン3Dセンサを用いている(図4)。複数台の3Dビジョンセンサを同時に1つの被写体に向けて使えることもパッシブ方式のステレオビジョンの特徴である。
たとえば、TOF(Time Of Flight)やストラクチャーライト方式などアクティブ方式の場合、複数を同時に使う時に相互に干渉を起こすため、計測できなくなるからだ。2台の3Dセンサを使った理由は、オクルージョン(影)を軽減するためである。
そもそもステレオビジョン方式では、視差から深度を計測するため、視差がでない領域、左のカメラでは見えるが、右のカメラでは見えない、また逆に右のカメラでは見えるが、左のカメラでは見えない領域(オクリュージョンと呼ぶ)が存在する。
2台のカメラを使うことで、一方のカメラで発生するオクルージョンを補完することが可能になり、また、2台のカメラ間のオクルージョンも同様に補完できる。その結果として被写体の3D再構築精度を上げることを想定したものである。
実際に実施して見るとさらに、術者の頭や鉗子などの器具により視界が遮られていても、一方のカメラで捕らえることができればその部分をもう一方のカメラで補完できることもわかった。
システムを開始する場合、専用アームの先端に設置した2台のカメラをキャリブレーションすることで、2台のカメラ間の位置関係を計測保存する。一旦、キャリブレーションを行えば、その後、アームを使ってカメラを術野に移動してシステムを稼働することになる。
カメラは、3軸モータにマウントされていて、術中に自由に向きを変更することができる。これが、私達のチームで、「ガーゼナビ」と呼んでいる肝臓手術ナビゲーションシステムである。
現在、茨城県グローバルニッチ トップ企業育成事業の支援 ※1 により東京医大学消化器外科分野 茨城医療センター消化器外科大城幸雄先生の指導の下、実用化に向けての臨床を行っている。
術中の肝臓臓器を3D再構築し、肝臓切除の切離線を計測、追跡することで、あらかじめ準備した手術シミュレーションシステムにその情報を通知して、シミュレーションを自動表示する仕組みである(図5)。
現在のシステムでは、切離が3cm程度から計測が可能である。システム全体には、まだまだ課題はあるものの、肝臓臓器の3D化は、ほぼ実用化に近い結果が得られている(図6)。
同様に、術野を3Dキャプチャし、バーチャル空間に反映する手法や技術は、医学分野、脳外科や整形外科などでも応用ができるのではないかと期待している。
※1 URL:http://www.i-gnt.jp/products/openavi/index.htmlを参照
複数利用の可能性
複数の3Dセンサを使う方法は、オクルージョンの補完だけでなく、ベースライン(2つのカメラ間の距離)、レンズ特性の違う3Dセンサを同時に使うことで、ステレオビジョンセンサの弱点の1つである、カメラからの距離により距離分解能が低下することを補完することも可能である。
つまり、近くから遠くまでのレンジを均一に距離計測するために、近距離用に設計された3Dセンサ、中間距離用、遠距離用のそれぞれのセンサを同時に使い、その結果から距離分解の均一な高精度の深度マップを得る方法である。
また、移動ロボットなどで必要な広範囲の領域を3D化するために、複数の3Dセンサを使って180度を超える広角度の領域の深度マップを生成する方法なども考えられる。
通常、広角レンズを使ったステレオビジョンも存在しているが、レンズ補正を考えると、どうしてもレンズの端部分の距離精度が落ちてしまうのもステレオビジョンの弱点であるが、複数使う方法で解決できると考える。
aeroTAP (エアロタップ)3Dビジョンセンサの特徴
ステレオビジョン3Dセンサを手軽に、安価で扱えることを目的として製品化したaeroTAP 3D USBカメラは、USB2.0/3.0インタフェイスのサポートにより、簡単にさまざまなデバイスへの接続が可能である。
IoTデバイスとして使われるSBC(Single Board Computer)であるRaspberry Pi/Dragonboardなどでの利用が可能となり、3Dビジョンセンサを接続することで、スマートデバイスの開発やそれを使ったサービスを安価に開発することが可能でとなったと考える。
現在、弊社では、以下の2つの種類の3Dビジョンセンサを販売している(図7)(表1、2)。
低光量およびローテクスチャー環境
パッシブ方式のステレオビジョンの弱点の1つ、光量の少ない暗い環境や真っ白な壁やホワイトボードなど模様のないローテクスチャー(Low Texture)の被写体では、視差を計測することができず、ノイズ(誤検出)が多く観測されてしまう。
こうした環境でも利用できるように弊社では、レーザーダイオードプロジェクタを別途準備している。
小型のレーザーダイオードプロジェクタでは、赤外線レーザーからランダムドットを3万個照射することで、ローテクスチャーや暗い環境でも安定して深度マップを生成することが可能になる(図8、9)(表3)。
ミドルウェアの重要性
3Dセンサからの情報を使って、各種アプリケーションやソリューションを開発する場合、目的に合わせたミドルウェアが必要となる。弊社では、お客様の要望に応じたミドルウェアの開発と提供だけでなく、サードパーティ製のミドルウェアのサポートと販売を行っている。
スケルトントラッキングは、サードパーティミドルウェアの1つで、深度マップから人物の骨格(スケルトン)を抽出することができるものである。
aeroTAP 3D USBカメラでは、人物の上半身をスケルトンとして追跡することができ、aeroTAP 3D USB GS80カメラでは、人物の全身のスケルトントラッキングが可能である。
スケルトンを使ったインタフェイスによるコンテンツの開発、VTuber用のアバターなどの開発が可能になる(図10、11)。
その他、弊社の提供するOpenN2ドライバを介して、PCL(Point Cloud Library)を始めとるオープンソースライブラリとの連携だけでなく、SLAM用のステレオビジョンカメラとして用いることが可能である。
その他利用用途と可能性
距離計測レンジが25cmから4mの弊社のカメラでは、5mメートルを超える遠い距離や広範囲(広角)での深度マップを必要とする用途には向いていないものの、数メートル範囲内ではさまざまな利用用途があると考える。
たとえば、ロボット技術においては、移動ロボットの障害回避(ADAS)や、SLAM用のセンサとして、またロボットの作業範囲内での事故防止のためのセンサとして、マニピュレータが物体の形状や大きさを認識するためのセンサとして、マシンビジョンとしての利用等である。
特に生活環境で利用する移動ロボットでは、LiDARよりも3Dビジョンセンサが遥かに優位ではあるが、実装が遅れているのは非常に残念な実情である。
これはステレオビジョンのセンサが商用として入手が困難であるためで、弊社の3Dカメラを使っての3Dビジョンセンサを搭載した移動ロボットや、電動車椅子の開発を応援したいと考えている。
3Dセンサを使ってのインタラクティブデジタルコンテンツは、従来のKinectなどのセンサを使うよりは、安価なホストPCで行うことが可能になった。
スケルトントラッキングを使った、ゲームやデジタルエンターテイメントの開発も安価なPCと簡単な環境で構築することが可能になりVR、xRがより安価に普及すると考える。
機械学習も2D画像ではなく、3Dデータで学習することでより精細な分類が可能になるであろう。
セキュリティカメラもカラー画像に加え深度マップが得られることで、物体や、人物の身長と大きさを計測することが可能になるし、従来の2Dカメラで照明変化、影による画像変化により物体を誤検出することがあるが、深度マップを併用することでより精度の高いセキュリティシステムが構築できる。
無人店舗化が進む中では、センサによる店舗内の監視が重要になり、3Dセンサを用いることで信頼度が向上すると考える。
人物カウントシステム用のカメラとしてもUSBバスパワーで稼働できるため安価で小型のカウントシステムの開発が可能である。
3Dセンサでの人物カウントは、2Dカメラでのシステムに比べて、人物抽出などの画像処理が不要で、深度マップを解析することだけで実現できることからSBC(Single Board Computer)を使っての安価なシステムが構築できる
。弊社では、介護システムとして安心見守りのためのセンサとして、深度マップを使っての状態監視とAI学習による状況変化予測システムの開発を進めている。
将来の展望
われわれの生活環境に近い3Dステレオビジョンセンサの可能性は、果てしなく広い。一方、弱点としては、利用する被写体との距離や環境に応じて、その都度ベースラインの決定、イメージセンサ、レンズの組み合わせが必要になる。
しかし、より汎用性のある組み合わせでの設計を中心にラインナップを充実し、同時にミドルウェアの開発を進め、ステレオビジョンによる、3Dビジョンセンサの普及に貢献していきたいと考える。
※映像情報インダストリアル2019年9・10月号「未来を繋ぐ3次元ビジョン」特集より転載
■問い合わせ
株式会社ネクステッジテクノロジー
TEL:029-858-1126
E-mail:contact@nextedgetech.com
aeroTAP(エアロタップ)
http://www.aeroTAP.com
コメントを残す