LabVIEW と Vision を用いた「観察実験」のデータ化

  Print Print

"観察するだけで済ませていた「球の運動」というごく身近な現象も、録画した映像を画像処理プログラムに渡すだけという簡単な手順を踏むだけで、定量的な議論に耐えるデータと変換できることが分かった。"

- 小野 俊雄 助教, 東京工業大学大学院 理工学研究科物理学専攻

The Challenge:
実験課題はジャイロスコープなどを用いた剛体の回転運動の実験と同時に行われているため,写真やビデオから手作業で座標を求める作業を課すのは時間的な制約から難しい。また手順の複雑さから、ティーチングアシスタントとして指導にあたる学生たちへの負担が大きくなってしまう。 このような理由から実際に本実験を行う際には、テレビ画面上に表示される映像を観察して、大まかな振る舞いをスケッチすることだけにとどめざるを得なかった。

The Solution:
球の運動が比較的低速(秒速1m 程度)であるため通常のビデオカメラ(1秒あたり30フレーム)でも運動の様子をとらえることができた。

Author(s):
小野 俊雄 助教 - 東京工業大学大学院 理工学研究科物理学専攻

【はじめに】
本学では平成14年度から、学部1年生向けの物理学実験においてコンピュータを導入している。本稿では、私たちが最近取り組んだ、回転座標系における慣性力の実験について紹介したい。
この実験は、一定の角速度で回転する電動回転台の中心に向けて球を転がし、その運動を (a) 静止系、(b) 台と一緒に回転する回転系 から観察した場合について比較し、慣性力(この場合は Coriolis 力と遠心力)を理解する実験である。
回転系から観測される球の位置は、回転台の中心へ向かって打ち出される球の初速度をv、回転台の角速度を ω とすると極座標上 の螺旋状の軌跡を描く。この運動を回転系で説明するための慣性力として、軌跡の接線に対して垂直方向にはたらく Coriolis 力 Fv、回転系の動径方向にはたらく遠心力 Fr が通常用いられ、それぞれ

(1)

と表される。 ただし、v’ は回転系から見たときの球の速度である。

 


図1 本実験で使用している電動回転台。上部に、台とともに回転するカメラとトランスミッターが取り付けられている。

回転系からの観測には、図1のように回転台の直上に設置した CCD カメラを用いている。撮影したビデオ信号は、UHF トランスミッターでテレビに送信され、履修者たちはテレビ画面上で球の動きを観察することになる。
これまで、上記の Coriolis 力と遠心力を求めるために球の位置を読み取る手段として、ストロボスコープとポラロイドカメラを用いた写真による方法や、上記のように転送されたビデオ信号をテープ録画し編集機を用いて動きを観察する方法などが考えられ、試してきた。
しかしながら、この実験課題はジャイロスコープなどを用いた剛体の回転運動の実験と同時に行われているため,上記の写真やビデオから手作業で座標を求める作業を課すのは時間的な制約から難しい。また手順の複雑さから、ティーチングアシスタントとして指導にあたる学生たちへの負担が大きくなってしまう。
このような理由から実際に本実験を行う際には、テレビ画面上に表示される映像を観察して、大まかな振る舞いをスケッチすることだけにとどめざるを得なかった。


【ソフトウェアの導入の目的】
昨年度に日本ナショナルインスツルメンツ株式会社と学生実験に関してディスカッションをする機会があった。その際に本実験に関して相談したところ、同社製品の "LabVIEW"および "Vision 開発モジュール"の紹介を受けた。LabVIEW はコンピュータ画面上のブロックダイアグラムに、制御や演算などの関数に対応したアイコンを並べ、アイコン間のデータの流れを線でつなぐことでプログラムを作成できる開発環境である[1, 2]。 また、Vision 開発モジュールを用いることで、LabVIEW の上で画像処理・解析を可能にするための関数を作成することができる。
この両ソフトウェアを使用すれば、取得した映像から球の位置の時間変化を得られると期待して、導入を決定した。

ソフトウェアを作成する目標として

  • 映像の各コマで球の位置を検出し、画像上に球の軌跡を描く
  • 回転台の中心を原点とする直交座標および極座標系での、位置の数値データをファイルに書き出す


を想定した。こうしてデータファイルを得ることで、球の軌跡のグラフを作成し Coriolis 力と遠心力を数値的に「測定」することが可能になる。
次節では私たちが導入の際に行った作業と、測定例を概説する。

映像・データ処理の実際
実験の際に必要な作業は

  1. 球の運動の録画
  2. 録画された映像ファイルの不要部分を削除
  3. 編集後の映像ファイルを、履修者が使用するコンピュータとネットワークを介して共有
  4. 共有されたファイルを、履修者が各自のコンピュータから(後述のソフトを使用して)開き、球の位置データを抽出する。
  5. データからグラフを作成し、球の座標の時間変化から慣性力の計算を行う。

という流れで行われる。ただし、1~3のステップは実験指導者が行い、4、5のステップは履修者が行う。
カメラで撮影された映像は、UHF トランスミッターを利用して送信されるため、市販されているパソコン用テレビチューナーボードを利用することで、コンピュータに取り込むことができる。アナログ放送が受信できるボードならば利用できるため、安価なもの(~1万円程度)のもので構わない。ただし、 LabVIEW では、フレーム間の圧縮を行わない AVI 形式の動画ファイルしか扱うことができない。そのため製品選択の際には、録画ファイルのフォーマットとして AVI 形式が使用可能な製品であることを確認する必要がある。
録画した AVI ファイルの各フレームから、球の位置を抽出するアルゴリズムは Vision 開発モジュールに含まれる 「Vision Assistant」 を用いて作成した。Vision Assistant には画像処理や(粒子の大きさなどの)パラメータを用いたフィルタ処理などを行うための関数があらかじめ用意されており、対話式に手順を組み合わせていくだけでよい。そのため、著者のようにプログラミングの知識の全くない人間でも多少の試行錯誤により、ほぼ狙い通りの動きをするプログラムを作成できる。
Vision Assistant から録画した AVI ファイルを開くと、記録されている全てのフレームが一覧表示されるため、運動している球が映っているフレームを選択して以下の処理を行う。

  1. (カラーで録画している場合には)グレースケール画像に変換する。
  2. 回転台(円形)の中心と一致する中心を持つ円形の ROI (Region Of Interest: 関心領域)を設定する。
  3. 黒い回転台と、白い球のコントラストを利用して、画像の2値化(白い部分と黒い部分のふるい分け)を行う。この際の白と黒をふるい分けるしきい値は調整可能なので、様々なフレームについてテストを行い、適宜調整する。
  4. 白と判断された画素群(連続した白の領域)の中から、球の大きさに比べて極端に大きいものや小さいものを取り除く。
  5. 上述のフィルタリングから残ったものについて、Heywood 円形要因(画素群の周囲の長さと、画素群と同じ面積を持つ円周の比)が1から大きく外れているものを取り除く。
  6. 残った画素群の重心を求めて座標を出力する。

この一連の処理を LabVIEW の VI (Virtual Instrument) として書き出せば、画像処理のアルゴリズムとして、他の VI と組み合わせて使用することが可能になる。手順のうち3から5の部分は、しきい値やフィルタリングによりふるい落とす画素群の幅を指定するためのパラメータがある。そのため、テストを繰り返して最適な値を探す必要がある。

図2は履修者が映像ファイルを解析する際に触れることになる VI の操作画面である。


図2 履修者が操作するプログラムの画面


画面左上の矢印状の実行ボタンを押すと、AVI ファイルの選択画面が現れるので、録画されたファイルを開くと各フレームごとに球の位置を求め、その位置に点をプロットしていくことで球の軌跡を表現している。再生が終了すると画面左側に表示されている直交および極座標のデータをファイルとして保存する。

この LabVIEW プログラムはゼロから作成したわけではなく、デモンストレーションとして組み込まれている AVI ファイルを再生する VI をほとんど流用している。ファイルの再生の際には、各フレームを一枚ずつに分解し、全てのフレームが終了するまで順繰りに while ループを用いて表示を繰り返している。先述のアルゴリズムをこのループ内に入れ、1枚1枚の画像に分解された各フレームを入力すると次々に座標データが出力されるので、これを元に図形のオーバーレイ機能を用いて画面上に図形を描いたり(図2の例では検出された球の座標を中心とする正方形を描かせている)、データの配列の表示をする処理を付け加えているだけである。ただし、映像ファイル中の各画像は画面の左上の隅が原点となっているため、回転台の中心が原点とするための簡単な座標変換も加えている。以下では測定例を紹介する。

図3 (a) は記録されたデータから作成した、極座標系でのグラフである。


図3 (a) 球の位置座標の角度変化から角速度を求める。 (b) 回転系でのある点 pn での速度の求め方


Coriolis 力と遠心力を求めるには、式(1)より、台の回転速度ωおよび回転系での球の速度v’が必要になる。球の運動は1秒間に30フレームの間隔で測定されているため、ωについては(画像の乱れなどによりデータを取りこぼしているところを除いては)図3 (a) のように極座標上における角度の時間変化を調べることで求められる。
図3 (b) に示しているのは、回転系での球の速度 v’ を求める方法である。ある点 pn における速度 vn’ を求めるには、その前後の点をそれぞれ pn-1、pn+1 とすると

(2)

のように平均値として求めることができる。ただしここでは Δt = 1/30 sec である。


【現状と将来の可能性】
以上のように、観察するだけで済ませていた「球の運動」というごく身近な現象も、録画した映像を画像処理プログラムに渡すだけという簡単な手順を踏むだけで、定量的な議論に耐えるデータと変換できることが分かった。

今回の実験では、球の運動が比較的低速(秒速1m 程度)であるため通常のビデオカメラ(1秒あたり30フレーム)でも運動の様子をとらえることができた。しかしながら、個々のフレームに映る球の画像はそれぞれかなりブレており、回転台の角速度を上げるにしたがいデータを取りこぼすことが増える傾向がある。そのため、より高速な運動をともなう現象を観察するには高速度カメラ(とコンピュータを接続するインターフェースボード)の導入を検討する必要がある。

上記の1秒あたり数百フレーム 撮影できるような高速なカメラを用いると、物体の振動現象や運動量保存則が成り立つような衝突現象も取り扱うことが可能になる。力学の講義で運動の説明に用いられる式に、観察結果から得られた数値を代入して学習した式の妥当性を確認できる機会が増えることは、現象に対する興味を増進させることにつながると考えられる。本稿がそのきっかけの一つとなることを期待している。

最後になるが、本稿で紹介した映像処理のプログラムはもちろん著者の独力でなし得たものではない。辛抱強く著者のサポートに対応してくださった日本ナショナルインスツルメンツのユジェル・ウグル博士に感謝する。また、機材の運搬やソフトウェアの評価をしてくれた学生たちにも感謝したい。



[1] 後藤貴行著 小林俊一・櫛田孝司編 実験物理学講座 第3巻「基礎技術III -- 測定技術」 丸善 (1999) 第4章。
[2] R. H. Bishop著、尾花健一郎訳 「LabVIEW(TM)プログラミングガイド」アスキー (2005)。
[3] 筆者は映像のカット編集には VirtualDubMod というソフトウェアを使用している。 http://virtualdubmod.sourceforge.jp/ から入手できる。

Author Information:
小野 俊雄 助教
東京工業大学大学院 理工学研究科物理学専攻

Bookmark and Share


Explore the NI Developer Community

Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.

‌Check‌ out‌ the‌ NI‌ Community


Who is National Instruments?

National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.

‌Learn‌ more‌ about‌ NI