検索
連載

モデルベースデザイン手法を使ったProgrammable SoCの協調設計【実践編I】レファレンスモデルからFPGA用サブシステムの作成まで(3/7 ページ)

「モデルベースデザイン手法を使ったProgrammable SoCの協調設計」とはどのようなものか、実践を交えて解説していく本連載。前回の準備編に続き、今回からは実際にMATLAB/Simulinkを用いたモデルベースデザイン手法により実装を行います。

Share
Tweet
LINE
Hatena

時間的な概念を加える

 ここまでの検討を基に、さらに時間的な概念を入れて、図4に示すレファレンスモデルをSimulinkで作成します。


図4:レファレンスモデル (クリックで拡大)

 モデルの左側にあるブロックでは、テスト用映像信号(Test Images)と、Webカメラ(From Video Device)で取得した信号が入力されていて、それが下に見えるロータリースイッチで切り替えられるようになっています。次にオブジェクトを検出するサブシステム(Object Detection)があり、その次はオブジェクトの重心点の座標を求めるサブシステムがあります。このサブシステム内では、MATLABプログラムではregionpropsコマンドで行っていた処理を図5に示すように、Blob AnalysisブロックでCentroid(重心)を計算するよう設定することで、等価な処理を行っています。求めた座標位置は、外乱に対する時系列の軌道補正をするためにカルマンフィルターに入力され、その座標位置をマーキングするDraw Shapesを経て、To Video Displayブロックにて結果表示を行います。入力から出力まで全て、映像信号の1フレームを1単位の行列信号として扱うフレームベースで処理を行っています。カルマンフィルターをはじめとするダイナミックな処理は、時間概念を持つSimulink環境の方が適しているため、MATLABのプログラムでは検討していませんが、Simulinkレファレンスモデルに追加しました。


図5:Blob Analysisブロック (クリックで拡大)

 Simulink Testで単体検証[※記事末のコラム1参照]を行いブラッシュアップした各サブシステムは最終的に統合モデルでシミュレーションを行います。処理結果画像を図6に示します。緑色のオブジェクトを検出、トラッキングし、赤丸でマーキングした結果が表示できました。


図6:入力映像(左)と出力結果(右) (クリックで拡大)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る