MATLAB/Simulink を用いた次世代イメージングシステムの FPGA 実装 2016 年 10 月 19 日オリンパス株式会社技術開発部門モバイルシステム開発本部画像技術部吉崎和徳, 山田博
Agenda 1. オリンパス概要 ( 吉崎 ) 2. 次世代イメージングシステム研究開発 ( 吉崎 ) 3. MATLAB/Simulink を用いた FPGA 実装 ( 山田 ) 4. まとめ ( 山田 ) 2 2016/10/17 No data copy / No data transfer permitted
1. オリンパス概要 3 2016/10/17 No data copy / No data transfer permitted
概況 商号 代表者 オリンパス株式会社 (Olympus Corporation) 代表取締役社長執行役員笹宏行 設立 1919 年 10 月 12 日 連結売上高 8,046 億円 (2016 年 3 月期 ) 東京 本社 株式上場東京証券取引所 (7733) 連結従業員数 33,336 人 (2016 年 3 月 31 日現在 ) 4 2016/10/17 No data copy / No data transfer permitted
経営理念 Social IN オリンパスグループは 生活者として社会と融合し 価値観を共有しながら 事業を通して新しい価値を提案し 人々の健康と幸せな生活を実現していきます Social IN は 社会の価値を会社の中に取り入れる (Social Value in the Company) という意味の造語です 5 2016/10/17 No data copy / No data transfer permitted
技術開発 コア技術マネジメント 医療 科学 映像事業で保有するコア技術を抽出各コア技術を 5 つのワークフローで共通化し 水平展開を目指す 6 2016/10/17 No data copy / No data transfer permitted
事業別売上高比率 映像 783 億円 (9.7%) その他 158 億円 (2.0%) 科学 1,016 億円 (12.6%) 2016 年 3 月期 8,046 億円実績 医療 6,089 億円 (75.7%) 7 2016/10/17 No data copy / No data transfer permitted
医療事業 (1) < 消化器科呼吸器科事業 > 内視鏡ビデオスコープシステム 上部消化管用汎用ビデオスコープ 気管支ビデオスコープ 内視鏡処置具 8 2016/10/17 No data copy / No data transfer permitted
医療事業 (2) < 外科事業 > 4K 内視鏡システム 3D 内視鏡 エネルギーデバイス 9 2016/10/17 No data copy / No data transfer permitted No data copy / No data transfer permitted
医療事業 (3) < 泌尿器科婦人科事業 > 軟性鏡 レゼクトスコープ < 耳鼻咽喉科事業 > デブリッター 10 2016/10/17 No data copy / No data transfer permitted No data copy / No data transfer permitted
科学事業 (1) < ライフサイエンス分野 > システム顕微鏡 BX3シリーズ 倒立顕微鏡 IX3 シリーズ 11 2016/10/17 No data copy / No data transfer permitted No data copy / No data transfer permitted
科学事業 (2) < 産業分野 > オプトデジタルマイクロスコープ DSXシリーズ 工業用ビデオスコープ IPLEX NX 超音波探傷器 EPOCH 650 X 線分析装置 DELTA シリーズ 12 2016/10/17 No data copy / No data transfer permitted
映像事業 (1) < ミラーレス一眼 > OM-D E-M1 OM-D E-M5 Mark II PEN-F 13 2016/10/17 No data copy / No data transfer permitted
映像事業 (2) < コンパクトデジタルカメラ > TG-4 TG-Tracker SH-3 <IC レコーダー ラジオサーバー > 14 2016/10/17 LS-P2 DM-720 V-843 No data copy / No data transfer permitted
2. 次世代イメージングシステム研究開発 15 2016/10/17 No data copy / No data transfer permitted
概要 オリンパス株式会社技術開発部門と東京工業大学は カラー画像と近赤外線画像を 1 つの撮像素子で同時に撮影可能な次世代イメージングシステムのプロトタイプを開発した 可視光 ( カラー情報 ) と近赤外光を同時に撮像可能な撮像素子および画像処理アルゴリズムを開発し カラー画像と近赤外線画像のリアルタイム同時撮影を実現した カラー画像 (RGB) 400~700nm 撮像素子 :1 枚 画像処理 近赤外線画像 (NIR) 700~1000nm アルゴリズム開発 : 東京工業大学 プロトタイプ開発 : オリンパス 16 2016/10/17 No data copy / No data transfer permitted
背景技術 現在広く普及する汎用カラーデジタルカメラやスマートフォンのカメラでは 単板撮像素子とカラーフィルターアレイ (CFA) を用いた撮影技術が広く採用されている フルカラー画像は 撮像素子により得られるモザイクデータに対し デモザイキング処理と呼ばれる補間処理や 色補正等の画像処理を行うことにより生成される 17 2016/10/17 No data copy / No data transfer permitted
カラー画像と近赤外線画像の同時撮影への拡張 近年 カラー画像だけでなく 近赤外線画像を利用したコンピュータビジョンおよび画像処理技術応用の発展が著しく 可視光と近赤外光の画像を同時に取得したいという要望が高まっている 例えば 近赤外線カメラでは 近赤外光を照射することで夜間撮影が可能であることから 車載カメラや監視カメラ等において カラー画像と近赤外線画像を同時利用した環境認識や防犯対策が期待されている 同時撮影手法 2 板式 RGB-NIR カメラ 撮像素子 :2 枚 RGB と NIR を同時取得可能 大型化 コスト大 単板式 RGB-NIR カメラ 撮像素子 :1 枚 RGB-NIR を同時取得 小型化 コスト小 RGB CFA RGB-NIR CFA NIR CFA 18 2016/10/17 No data copy / No data transfer permitted
提案システム 近赤外色材の検討 画素配置 (CFA) の検討 画像処理アルゴリズム開発 19 2016/10/17 No data copy / No data transfer permitted
Sensitivity 画像処理パイプライン 分光分布 35 30 25 20 15 10 5 0 400 600 800 1000 色補正 srgb 画像 Wavelength (nm) RGB-NIR デモザイキング NIR 成分を含む RGB 画像 RAW データ NIR 画像 HW 開発と同時並行で開発 今後も新規アルゴリズムの HW 化を迅速に進めるため MATLAB /Simulink を用いて実装 RGB-NIR 画像 20 2016/10/17 No data copy / No data transfer permitted
単板撮像素子を用いた RGB-NIR イメージングシステム 21 2016/10/17 No data copy / No data transfer permitted
ビデオ : 単板撮像素子を用いたリアルタイム RGB-NIR イメージングシステム 下記ビデオをご覧ください https://www.youtube.com/watch?v=b-e8whlclhs 22 2016/10/17 No data copy / No data transfer permitted
応用 開発システムは 次世代の画像センシング技術として リモートセンシング セキュリティ ロボティクス 農業 医療 等の幅広い分野への発展が期待される 23 2016/10/17 No data copy / No data transfer permitted
3. MATLAB /Simulink を用いた FPGA 実装 24 2016/10/17 No data copy / No data transfer permitted
Sensitivity Sensitivity MATLAB/Simulink 利用の背景 srgb 画像 ( 標準色空間 ) 35 3 30 25 20 15 10 5 R G B NIR 色補正 2.5 R 2 G 1.5 B 1 0.5 0 400-0.5 500 600 700 800 900 1000 RGB-NIR デモザイキング NIR 成分を含む RGB 画像 0 400 500 600 700 800 900 1000 Wavelength (nm) 分光感度特性 -1-1.5 Wavelength (nm) RAW データ NIR 画像 RGB-NIR 画像 今回 MATLAB/Simulink を用いて FPGA 実装した 全体の画像処理は FPGA で構築済み 画像処理アルゴリズムは ハードウェア開発と同時並行で研究を進めていたので変更することがあった 最新の画像処理アルゴリズムを実装するために Simulink を利用 25 2016/10/17 No data copy / No data transfer permitted
MATLAB/Simulink 利用の背景 従来手法 MATLABコード Cコード HDLコード FPGA 実装 Cコード HDLコード作成に工数が必要 異なる言語のため等価性の確保が難しい FPGA 実装後の不具合発生時に手戻り工数の増加が激しい Simulink で構築 今回手法 MATLABコード Simulink HDLコード FPGA 実装 Cコード HDLコード作成無しのため工数削減が見込まれた 同一環境上でFPGA 実装まで実現できるので等価性が容易 HDLを習得しなくても 直感的に扱い易いモデルでフローを完結 Simulink を利用したことによる今後のメリット 画像処理アルゴリズムに変更が発生しても FPGA 実装の工数削減が見込める 再利用可能な IP コアとして設計資産を蓄積可能 26 2016/10/17 No data copy / No data transfer permitted
MATLAB/Simulink 導入準備 セミナー受講 画像処理 コンピュータービジョン向け MATLAB 活用セミナー受講 MATLAB 基礎 画像処理の実装 無料ワークショップ受講 2015 年 3 月 2015 年 7 月 MATLAB/Simulink セットアップ FPGA 実装に必要なツールボックスをインストール ヘルプファイルのサンプルコードで動作確認 Zynq ボードと接続確認 MATLAB/Simulink HDL コードでの開発経験が無いためヘルプファイルを参照したり MathWorks のサポートに聞いて構築した 27 2016/10/17 No data copy / No data transfer permitted
MATLAB/Simulink 導入準備 セミナー受講 2015/3-2015/7 2015/7-2015/9 2015/10-2015/12 2016/1-2016/3 MATLAB/Simulink セットアップ MATLAB/Simulink 開発 単体検証 結合検証 ハードウェア開発 28 2016/10/17 No data copy / No data transfer permitted
開発環境 PC 単体デバック環境 Zynq -7000 SoC ZC706 画像処理 IP PC 他処理と合成 HDL Coder で IP 生成 結合デバック環境 SD カード 実機検証機 29 2016/10/17 No data copy / No data transfer permitted
開発プロセス 1MATLAB コードで実行 画像処理アルゴリズム MATLAB コード MATLAB コード固定小数点化 MATLAB コードリファレンス 一致検証 1. 最新の画像処理アルゴリズムを MATLAB コードで実行して検証確認 2. 入力画像の bit 数が決まっているため MATLAB コードで固定小数点化 3. 固定小数点化の前後で検証 4. 一致検証後 リファレンスとして後工程で利用 30 2016/10/17 No data copy / No data transfer permitted
開発プロセス 2Simulink で構築 1 Simulink で構築画像処理は MATLAB コード Simulink で構築画像処理を Simulink で構築 一致検証 MATLAB コードリファレンス ピクセル処理に Vision HDL Toolbox を利用 1. MATLAB コードを利用し 入出力は Simulink で構築 2. MATLAB コードの画像処理を Simulink で構築 3. 入力データをフレーム処理からピクセル処理に変更 4. リファレンスの MATLAB コードと結果を比較して検証 31 2016/10/17 No data copy / No data transfer permitted
開発プロセス 2Simulink で構築 2 HDL 対応ブロック確認 HDL 対応ブロックライブラリ表示コマンド >>hdllib Simulink モデルリファレンス 一致検証 MATLAB コードリファレンス 1. HDL に対応したブロック処理になっているか確認 2. リファレンスの MATLAB コードと結果を比較して検証 3. Simulink リファレンスモデル完成 32 2016/10/17 No data copy / No data transfer permitted
開発プロセス 3HDL コードへ変換 1. HDL ワークフローアドバイザーを利用 2. 今回は IP を作成ターゲットワークフロー IP Core Generation 3. ターゲットインターフェイスを設定仕様通りに I/O を設定 4. 残項目はデフォルト設定で実行 5. IP が生成 33 2016/10/17 No data copy / No data transfer permitted
開発プロセス 4FPGA へ実装 1. HDL ワークフローアドバイザーで作成された IP をコピー 2. Vivado に Simulink で作成した IP ブロックを入れて 入出力を結合し 論理合成を実行 生成された IP を入れて 全体を合成しても長時間かかり合成が完了しても動かないことがあった 34 2016/10/17 No data copy / No data transfer permitted
開発プロセス 合成後の問題 Vivado で論理合成時にエラー ブロック図 HDL Coder で IP を複数作成後 共通で使用しているモジュールの IP 名が重複し 論理合成時にエラー コンフィギュレーションパラメータのプレフィックス設定 モジュール名接頭辞 を追加 入力処理 RGB デモザイク IR デモザイク 画像処理 画像処理 35 2016/10/17 No data copy / No data transfer permitted
開発プロセス 合成後の問題ターゲット周波数未達成 ターゲット 175MHz 最適化オプションをデフォルト設定で 100MHz 程度 Simulink の最適化オプションを変更ターゲット周波数達成 ( 例 :InputPipeline,OutputPipeline を設定 ) 36 2016/10/17 No data copy / No data transfer permitted
4. まとめ 37 2016/10/17 No data copy / No data transfer permitted
まとめ 次世代イメージングシステム研究開発 MATLAB/Simulink を用いた FPGA 実装 MATLAB/Simulink を初めて利用し FPGA 実装まで完了した 予想より工数が増加したが 今後は IP の入出力を再利用するため 画像処理の実装のみ検証となり 工数削減が見込まれる 謝辞 発表者らの研究成果の一部は 総務省 戦略的情報通信研究開発推進事業 (SCOPE) の委託 (No.141203024) を受けた ものである 38 2016/10/17 No data copy / No data transfer permitted