ENGLISH

03-5457-1212受付時間
9:30~18:00(平日)

ENGLISH

03-5457-1212受付時間|9:30~18:00(平日)

カタログ・
お問い合わせ

寺子屋【上級編】ステレオ計測とカメラの同期

画像処理による計測とカメラの話をします。

1.ビデオ

現象を肉眼で見ている場合、その情報を他者と客観的に共有することには限界があります。野球のコーチAが選手Bの打撃の様子を見ていてホームランを打ったとするなら(今日は振りがするどいな)などと理解しますが隣の監督Cにそのことを共有すべく言葉にしますとCがその内容を正確に共有できるか、というと様々なハードルが待ち構えています。

(あ、今見てなかった)(え?そうか?気合が入っていないように見えるが)などなど。

隣に居てくれるならまだしも同じ場所に居ないなら電話で伝えたとしてもAの持ち得る情報の何パーセントがCに伝わるかは甚だ心もとない期待となります。リアルタイムに共有できないことも普通に想定されます。そこでビデオ撮影してそれを共有する、ということになります。アナログの時代であれば、記録はテープ、カメラは片手では持ちづらいなどの時代も有りましたが(失礼・情報が古すぎて共感が得られないですね・・・)、今ではデバイスはデジタル、いつもポケットからスマホを取り出せばすぐに撮影・記録が可能です。時代は進み、ヘルメットに装着したカメラやメガネ型端末に組み込まれたデバイスでのモバイル撮影も特別なことではなくなりましたし、さらに形状としては首掛けタイプだったり胸ポケットへ差し込みタイプだったりと現場のニーズに応えて多様な進化をしているようです。ネットワークを介して他者との共有もとても自由になりました。

(ビデオ)=データ化された映像情報=は、見る動物=ヒト=にとって最も重要なツールとなりました。

ビデオを見た監督Cは、(なるほど、確かに振りが良くなったな)と理解してくれるのですが、ここは(見る目)が必要で、おそらく素人が同じビデオを見ても同じように納得・理解できるか、は難しいことも有りそうです。(見る)とは(脳でその中から意味を見つける)ところまでが大切なので、見てはいるけれど分からない、ということは日常いくらでも経験していることです。そこで(ほら、ここのスイングの軌道が、この角度になっているでしょう?)などとヒントを出されると人はそこを(意識して)見ることになり、初めて「振りがするどい」の本当の意味を知るということに至ります。おそらくプロフェッショナルなコーチとはこの(見る目)を持っている人であり言語化し情報を他者へ共有できることが、その最初に求められる素養であろうと思われます。

2.スローモーション

ビデオ再生により情報は時間を超えて、また空間を超えて共有されることが可能となりますが見たいものがビデオで見えるのか、はまた別の課題かも知れません。

先のスポーツの分析で言えば動きが微妙な動きであり(たとえばミリ単位の違い)、そこを見極めたいとなれば画素数が多い高精細なカメラで撮影したいです。画素数の少ないビデオでは違いが1画素の中に埋もれてしまう、ということもありうるでしょう。

時間方向で言えば、速い動きを撮影した動画をコマ送りしたとき見たい瞬間が映っていない、ということも有りえます。動画は静止画の集合体なので、時系列の隣同士の2枚の静止画の中間で起きたことは情報として残っていない、ということです。時間方向においてより細かい情報を知りたいとなればスローモーションで見るということになります。これを実現するカメラがハイスピードカメラ(ハイスピードビデオ・スローモーションカメラ)です。

通常のビデオカメラでは残せなかった動きをハイスピードカメラで残すことで得られる知見も多く高価なこのツールが多様な場面で採用されています。

3.ビデオ再生のツール

通常速度のビデオであれハイスピードカメラであれ、ビデオが有れば複数の主観で共通の情報をもとに繰り返し評価したり議論したりができるようになるでしょう。複数のビデオを並べて同時再生する、ということができれば複数のデータの比較もやり易くなります。漫然と見ていても見つからない答えが(観点)を与えることで見つかることも容易に想像されます。ただこの複数のビデオを並べて再生する、というだけのことができるツールはさほど一般的とは言えません。普通はAを見て次にBを見て、という運用になります。厳密な比較をするうえでこれは(記憶)に頼る部分がありますので負担が大きい作業かも知れません。

ビデオそのものも大切ですし、そこから得られた動画データも重要ですがそれを再生するツール(ビューワアプリケーション)も問題解決にはそれなりの重みをもっていると言えるかもしれません。複数の映像を並べて表示する、だけでなく、たとえばコマ送りする、という機能についても一般のプレイヤーソフトでは標準搭載されていないことも多いです。

 

参考までにディテクトのビューワソフトの外観を示します。複数の映像を同時に再生でき、またもちろん、コマ送り、コマ戻しなどの操作も可能です。

 

数値化

ビデオから得られる知見、言語化された二次情報、解釈・理解といったものは、さらに数値化されることでより客観的になることがあります。(速い)(鋭い)(なめらか)などが(より速い)(より鋭い)(よりなめらか)に変わった、などについて、数値で比較されることで議論が明快になったり理解がより明快になったりする、という話です。「数字はうそをつかない」などと言いますが、人は数値で理解・納得することも多いので“数値化”はとても重要なプロセスとなります。

 

 

 

数値になってしまえば、画像から得られた情報が他の計測機器から得られた計測データと相関を取って二次的な解釈を加えられたり、表計算ソフトで統計処理を行ったりとその活用の範囲がとても大きくなります。

得られる数値データとしては

位置・変位・速度・加速度・角度・距離・面積・個数・形状(円形度など)・流速分布・ひずみ

などが挙げられます。

数値は、ただ数字を並べただけでは、計測対象の姿が見えづらいこともありますが、各種グラフ表示することで直感的にその内容をつかむことも容易になります。

ステレオ撮影

画像処理については、その元データが2次元(平面)方向に広がる明暗の情報なので、この平面における情報を数値化することを行います。どこにあるのか(位置)は(x,y)座標で示しますし、どれくらいの量(大きさ・面積)なのかは、その対象の占める画素の数で定量化されます。一方、知りたい情報が空間的に存在することも多く、3次元計測のご採用に至るケースも多いです。

3次元の情報を1台のカメラで得るアイデアも条件によっては有りますが、2台(またはそれ以上)のカメラを用いるステレオ撮影が王道です。

ディテクトでは、モーション(動き)のトラッキングソフトDIPP-MotionVにはじまり、流速計測(PIV)ソフトのFlownizerシリーズ、さらにひずみ計測ソフトDIPP-Strainでステレオ計測が採用されています。

イメージを共有したいので、たとえば、1辺1mの立方体の空間の中で、糸に繋がれた2つの振り子ABが円運動しながら振れている対象を計測する場面を以下のように想定します。カメラC1C2を使って、空間の外から空間を撮影します。(※)

 

 

 

(※)

X(-)、Z(-)に置かれたC1は空間を南西側から撮影し、X()Z(―)に置かれたC2は空間を南東側から撮影しています。図のような位置で振り子が振れている瞬間の映像はそれぞれ以下のようになります。

 

3次元(立体)をイメージするのが難しいので、ひとまず真上(天)から見た図で説明を続けます。(Y座標=高さ=が一定である円運動をしているところ)対象Aの位置をカメラC1から見たとき、中央やや左よりに見えている(A1)ので、Aは、直線qの方向にあると特定でき、同様にAはカメラC2の情報から、直線rの方向にあると特定できます。

映像で見えたAの位置A1A2は、それぞれカメラから見てある特定の直線方向にAが存在することを意味するので、直線qの上にあり、かつ直線rの上にあるという条件から空間内のAの位置が決まる、という考え方で3次元計測は行われます。

カメラの選定

ここでこの計測に使うカメラのことを考えます。カメラ選定の要素として以下のことを考慮します。

  • 画素数

得られるデータは時系列のx,y,z座標ですがその分解能は画像処理の対象となる画像そのものの情報量に直接的に依存します。つまり画素数です。画素は画像情報の空間的な最小単位なのでその数が多いほど分解能が高いデータが得られます。 

  • フレームレート

得られるx,y,z座標の時系列の並びはフレームレートと同じ並びです。動きを時間方向に細かく捉えるにはフレームレートの高いカメラを選びます。 

  • シャッター速度

計測対象の動く速度(画面内の相対速度)によってシャッター速度を選びます。シャッターが遅い(露光時間が長い)と対象の像がぶれて正確な位置計算ができなくなります。カメラによってはシャッター速度の選択ができないものも有りますので注意が必要です。シャッター速度を速くすることは、得られる映像の明るさが暗くなることと表裏の関係です。そのため、感度(明るさ)を優先する発想で設計されたカメラには自動露光機能がはたらいてシャッター速度を選択できないものがあります。自動露光はある目的には重宝ですが、こと計測に関しては弱点となりえます。

  • グローバルシャッター

隣の部屋でお話しましたように☞こちらシャッターの機能としてグローバルシャッターを選ぶか、ローリングシャッターを選ぶか、の選択があります。 

  • カラーカメラかモノクロカメラか

対象を色の違いで認識したい、という要望があればカラーカメラを選ぶことになります。対象を背景との明るさの違いや明暗情報(模様)で認識したい、という要望であればモノクロカメラを選びます。画像計測の分野ではほとんどが後者(モノクロカメラ)の選択となります。詳細は別の項に譲ります。

  • 2台のカメラが同期するかどうか

この(同期)について以降詳しくお話しします。

カメラの同期

カメラはシャッターを開いて露光し、その瞬間の物理現象を映像という情報に確保します。その映像から数値データを算出するという流れで言えば、つまるところ、計測データはシャッターのタイミングの情報です。(シャッターが閉じている間のことは闇の中、誰にもわかりません)

仮に100fpsのカメラを選べば、100Hzの計測データが得られることになります。カメラの仕組み上、この元の映像情報11枚は等間隔の時間で並んでいますので、シャッターが1/100秒ごとに1度開いて、閉じての動作を繰り返していることはご想像のとおりです。では、このシャッターが開くタイミングは、ステレオ撮影する2台のカメラにおいて同一でしょうか。この問いが(同期)の話です。より正確に言えばフレームの更新のタイミングの事ですが、1枚のフレームに与えられた時間(100fpsであれば、10m秒)の中でシャッターが開く時間はそのカメラごとに決まっているので、分かりやすくシャッターの開くタイミングと言い換えて話を続けます。

一般にカメラは単独で使われますので、自分以外のカメラの動作を気にせず、勝手にシャッターのタイミングを決めます。動作開始とともに連続してどんどんシャッターを切って、どんどん映像を生成します。このようなカメラの動作を(内部同期)と呼びます。内部同期のカメラを2台用意してそれぞれ動作開始させたとき、この2台のカメラのシャッターのタイミングが揃うことを期待することはできません。

一方でシャッターのタイミングをそのカメラ自身が決めることなく、他者の指令によって制御される仕組みもあり、そのような動作を(外部同期)と呼びます。外部同期で動作するカメラに対し、所定の電気信号を入力するとその信号のタイミングからシャッターを開くタイミングが定義されます。電気信号が入るまでのあいだカメラは待機状態となり映像を生成することもありません。この信号を同期信号と呼びます。

タイミングを決める者を親(マスター)とし、そのタイミングを受けて外部同期で動作する者を子(スレーブ)と呼ぶことがあります。2台のカメラを同じシャッターのタイミングで動作させたければ、この仕組みを用意することになります。

外部同期のイメージ

 

上に3つの例を示しましたが、【例2】において、(子1)のカメラと(子2)のカメラは同期して動作します。また【例3】において(親)と(子)のカメラは同期して動作します。2台のカメラが同期するという意味で【例2】、【例3】は同じです。全体の仕組みを簡単にできるので【例2】の仕組みで運用する事例は少なく、ほとんど【例3】のような構成・接続となります。

この【例3】で言えば(親)のカメラは内部同期で動作し、(子)のカメラは外部同期で動作しています。このカメラのように内部同期・外部同期の両方の動作をするカメラも多いです。一方で内部同期のみの動作をするカメラも多く、この内部同期のカメラを複数用いた場合は同期した撮影はできない、ということになります。

粗いコメントとなりますが、一般に産業用カメラにおいては外部同期で動作できるものが多く、民生品のカメラにおいては外部同期で動作できないものが多いです。前者はかならずしもステレオ撮影を意識して外部同期が搭載されているのではなく、どうしても関心のある対象をしっかり撮影する都合上タイミングを制御できるようにという思想で設計されています。上図でいう【例1】がそれで、撮影対象の動きに合わせて同期撮影したいという場合同期信号を撮影対象からカメラに入力させて運用する、などがあります。後者、民生品のカメラにおいては他のものと「厳密な」タイミングを合わせて撮影したいというニーズが乏しく、外部同期の仕組みについてはコストをかけてまで搭載する意義が無いという思想による設計です。

民生品のカメラによるステレオ撮影~3次元計測について

2台のカメラによるステレオ撮影~3次元計測については、2台のカメラが同一の瞬間の対象の様子を撮影・記録することで成り立つものなので、計測システムを構築するときディテクトのハイスピードカメラをベースに撮影・記録システムをご提案しています。一方でこのハイスピードカメラは最も廉価なモデルで税別定価本体価格65万円というコスト感なので、ステレオでは確実に100万円を超える構成となり、単価数万円の民生品と比べると単純に高価であるという認識がユーザーには芽生えます。特に観察・計測の対象の動きがさほど速くない場合にはその思いが強くなりがちで、民生品のカメラで計測ができないだろうか、という検討に至ることもよくあります。このようなケースでは全体の責任はユーザーにあることを前提に消極的に民生品カメラ採用に同意することもあります。責任とは、計測結果・計測データの精度が見積もり辛いという点を覚悟していただくということです。

ステレオカメラによる計測での誤差(非同期の影響)

先ほどの振り子の例において同期のない2カメラで撮影した場合の誤差を検討してみます。

 

カメラC1とカメラC2のシャッターのタイミングが民生品ですと制御できないので、最悪のズレが有った場合の計算です。条件として以下をまず想定します。(一例です)

 

円運動するAの周期が1Hz ・・・1秒で1周する

円弧の直径が60cm

カメラのフレームレートは30fps ・・・一般的なビデオレート

 

この例なら、シャッターのタイミング(正確にはフレームの更新タイミング)は、最大1/60秒のズレとなります。

 

この時間でAは回転の角度として6度ズレた位置に移動します。長さにして約3cmです。

C1カメラが記録した映像は、a1の位置にある瞬間で画像の上でA13次元の計算においては直線qの上にある、と推定します。次にC2カメラが記録した映像はa2の位置にある瞬間で画像の上でA23次元の計算においては直線r2の上にある、と推定します。この2枚一組のステレオ画像から計測結果として得られるAの位置は、*印の位置となります。

この場合詳しく見てみると、a2の位置に近い円弧の外側約1cmのところに結果が導かれます。たまたまこのケースでは、円弧の外側に結果の値が得られましたが、もちろん、ケースによっては円弧の内側になることもあります。

このような誤差を認めつつ(覚悟し承知しつつ)同期のないステレオ撮影を行うという選択をすることとなります。

非同期のステレオ撮影において、誤差の大小は、ほかに以下のような要素に依存します。

2台のカメラ配置

+計測対象のその時の位置

+計測対象の移動速度 

 

フレームの順番の対応

同期の話と似た話ですが、非同期のカメラを使った場合は録画開始または終了を厳密に指定することが難しいという点も運用上注意が必要です。得られたステレオ左右2つの動画をコマ送りで確認して、左の何番のフレームと右の何番のフレームが同じ(またはもっとも近い時刻の)ものであるかを管理して扱う必要があります。

仮に

C11 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

C21 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

というフレーム番号の動画が得られたとき、1と1が同じ時刻とは限らない(というか同じでないことが普通)です。よって何かの手がかりを元に、C11が、C27と同じ(あるいはもっとも時刻が近い)と言う事実をつきとめて、(1と7)(2と8)(3と9)という組み合わせで処理を進めることになります。

 

C1)      1 2 3  4   5    6   7    8    9  10 11 12 13 14 15 16 17...

C21 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

 

ただでさえシャッター同期がずれているのに、このフレームの対応を一つ間違えたらさらに誤差が広がることは想像頂けるでしょうか。先ほどの例で言えば回転の中心角度6度、距離にして3cmずれた2つの位置での撮影タイミングだったものが、角度18度、距離9cmずれた2つの位置での撮影タイミングによる計算になります。

同じ時刻(あるいは最も近い時刻)のフレームの組み合わせであることを知る手がかりとしては実際の計測対象とは無関係にフラッシュライトを2つのカメラの共通の視野で光らせてその発光をコマ送りで見つける、という運用が素朴ながら確実なものとして使用されています。

他方、産業用カメラの場合は撮影・録画時に開始や終了を管理する電気信号を使うことが一般的で、この仕組みにより得られた2つの映像データの先頭フレームの時刻が一致するということが当たり前の仕組みとして用意されています。この開始・終了の合図として使うタイミング信号のことをトリガーと呼びます。

産業用カメラは、このように、ステレオ撮影のカメラのお互いのシャッターが同期して機能していることを期待でき、また得られた複数の動画ファイルの先頭(あるいは任意の同じ順番のフレーム)が同時刻であることを期待できるので、撮影後動画ファイルが生成されたらすぐに計測ソフトウェアで開いてそのまま画像処理~結果の出力へと運用を進めることができます。1回限りの計測ということなら面倒な手続きも我慢の余地が有りそうですが、条件を変えて複数の実験を行う、あるいは多様なテーマについて次々と撮影と画像計測を行っていくという境遇に身を置く方々にとってはこの当たり前のような手際の良さがとても重宝であることは間違いありません。実験はともかく結果を得る画像処理ソフトウェアに向き合う時間はある種(作業)の時間でありその人でなくても同じ結果が得られることも多くやりがいを感じづらい時間かも知れません。もちろん画像処理の内容を検討したり工夫したりする場面では知恵や知識・ひらめきなどの要素もあるので違う気持ちになれる時間のようにも思います。

非同期カメラの応用事例

これらの記述ばかりですと民生用カメラを全否定するように思われてしまうので話を続けます。問題解決には民生用カメラが重宝である事例です。以下はある建設関係の研究所の実験のお手伝いを筆者がしたときのことです。一番長い辺が1mあるかないかの直方体の水槽の中に水と砂を入れてある条件における砂の動きを計測する、というテーマでした。ご想像のとおり、砂の層は下、水はそれを覆うように水槽の上端ちかくまで入れられていました。砂の表面の動きを見たいので砂の表面にマーカを配列します。このマーカ群を水の部分に配したカメラで撮影するというものです。砂の表面は平面ではなくまた時間とともに動いて変形しつまりマーカは3次元的な動きをするのでステレオ撮影は必須です。

使ったカメラはGOPROという民生用のカメラでした。撮影環境が狭いこともあり小さい躯体は重宝でした。水中撮影に耐えうる専用の防水ケースも用意されており、またカメラ内部に記録媒体(SDカード)が有りバッテリー駆動をする点も条件に合っていました。与えられた実験の条件から水槽内部への給電や有線・無線によるリアルタイムのデータ取り出しが望めないことが分かっていました。これによりカメラはスタンダロンで動作するものであることことが求められたのです。これら記載のGOPROカメラのすべての機能・性能と同等の条件を満足し、かつ外部同期で動作するカメラは存在しませんでした。3次元計測をすることを思えばもちろん完全に同期するカメラが存在するなら選択すべきでしたがそれはかないませんでした。

幸い砂の動きは緩やかでしたので、30fpsという通常のビデオレートでの計測結果は問題ないという判断でした。

かくしてGOPROによる撮影~3次元計測は無事に成功し実験は終了しました。(複数年にわたるプロジェクトでした)

ここで、撮影終了時から画像処理に至るまでの、非同期のデータの扱いについて振り返ってみます。

(1)カメラを水中から取り出し、SDカードを確保

(2)SDカードの中の動画データをPCへコピー

このとき長時間の記録なので一連の録画は複数のファイルに分割されていることに注意 

(3)カメラ#1のデータをコマ送り再生できるアプリで再生し同期用合図が映り込んでいるフレーム番号を確認 誤差を排除するため(計測開始前)と(計測開始後)の2回において合図は行われた。

←実験開始直前と実験監視直後に水槽内を明るく照らすための棒状の照明を一瞬オフにする、という段取りをしていた。実験中はマーカをより鮮明に撮影するため点灯させていたもの。(※)同期用のフラッシュの動作としては消灯していたライトを一瞬光らせるという運用が普通ですがこのときは逆に点灯していたライトを消す、を選択しました。

(4)カメラ#2、カメラ#3、カメラ#4の残り3台の録画データについても同様にフレーム番号を確認

←この実験は水槽の形と計測対象のマーカ配列の関係で水中に4台のGOPROを沈めて撮影した。4台によるステレオ計測。 

(5)4つの動画ファイルのフレーム番号のズレ量を確認し、同じフレーム番号である区間=計測対象の先頭フレームと最終フレーム=を特定し動画ファイルの時間方向のトリミングを行う。 

(6)複数のファイルにまたがっている一つのカメラ由来の動画をマージングして一つの動画ファイルを生成する 

(7)4台のカメラ分に同じ作業を繰り返し、同じ時間帯の4つの動画ファイルが完成

(8)画像処理ソフトでトラッキングを行う 

近しいフレームは簡単に見つかるか

動画ファイルをフレーム単位で削除したり合成したりできる機能を持った動画編集ソフトウェアを使って動画を丁寧に編集していく作業は地道な作業でした。特に(3)の特定のイベントが映り込んでいるフレームを探す作業は少し工夫が必要でした。照明を消す、つける、とは一瞬のことですがコマ送りの画像で見ると、数フレームにまたがって明るさが変化していることが分かりました。同じタイミングのフレームとしてどのフレームを採用するか、ということで言えば、(ほんの少しでも変化が表れたフレーム)と決めてしまえば良さそうなものです。しかし4つの動画で比べて見るとあるカメラAでは、白(フレームA1)から、次のフレームで、はっきりと暗くなっていて(フレームA2)、明快なのに対し同じイベントを次のカメラBでは、白(フレームB1)から、次のフレームで有るか無いか程度のほんの少しの明るさの低減(フレームB2)が見られて、さらに次のフレームではっきりと暗くなっている(フレームB3)、などが有ります。AのカメラでA2と同じ時刻は、B2か、B3か、はそう簡単に決定できることではなかったです。

もちろん画像生成が完了してトラッキングソフトで処理すること自体(手順8)も課題の多いテーマでしたがそれは非同期であれ同期であれ同じことです。やはり上記手順の(1)から(7)をひたすら繰り返す部分は民生カメラならではの手続きであり時間と神経を使うものでしたのでよい経験になりました。重ねて書けば計測だけではなく実は3次元計測の本実験の前または後に行うキャリブレーションという作業があり、水中に物差しを差し込んで撮影するのですが、このキャリブレーションの情報を動画の中から取り出すにも、時間の管理が必要でどちらかと言えば撮影時の工夫にはなりますが、産業用カメラでは無縁なイベントの記録などを行いました。

この一連の計測においては、このコラム冒頭の非同期による誤差は幸いに見積もりよりは小さく抑えられました。ひとえにこれは対象依存でありマーカの動きがとても緩やかだったことが幸いしました。ただもちろん皆無というわけには行かず少し速めの動きが有り、かつ、カメラ間の同期ズレが運悪く大きい場合に得られた3次元データに異常が含まれたことも事実です。事前に分かっていたこととは言えそのようなシーンに出くわすと民生用カメラによる計測の限界とは承知しつつも残念な気持ちになったのを覚えています。

とはいえ、このGOPROによる撮影は他では解決できないテーマを、お客様の満足の中で解決できた経験でして、このような民生用のデバイスによる問題解決がとても重要であることを改めて知らされた結果となりました。

ハイスピードカメラ(高速度カメラ)

ページトップへ戻る