fpgaによる画像処理におけるmatlabの利用...fpgaによる画像処理におけるmatlabの利用...

29
FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授 相川 直幸

Upload: others

Post on 24-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAによる画像処理におけるMATLABの利用

東京理科大学・基礎工学部・電子応用工学科教授 相川 直幸

Page 2: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

略歴

• 1985年 山梨大学工学部電気工学科卒業

• 1987年 東京都立大学大学院電気工学専攻修士課程修了

• 同年 同大助手

• 1992年 博士(工学)・東京都立大学

• 1998年 東京工科大学工学部電子工学科講師・助教授

• 2001年 日本大学工学部電気電子工学科助教授

• 2008年 東京理科大学基礎工学部電子応用工学科准教授・教授

現在に至る

MATLAB EXPO 2015 2

Page 3: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

電子応用工学科のカリキュラム

MATLAB EXPO 2015 3

Page 4: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

MATLABの学習

• 大学の授業でC言語を習得

• MATLAB®の最も基本的な文法を先輩より教授

ー MATLABオンサイトトレーニングなど各種講座で代替可能

• 参考書にて画像処理の基礎知識の習得

・ディジタル画像処理編集委員会編、『ディジタル画像処理』

・高井信勝著、工学社、『MATLAB画像処理入門』

MATLABでの基本的なプログラミングが可能に

C言語と文法が似ているので記述が容易

MATLAB EXPO 2015 4

Page 5: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

MATLABの学習

• プログラミング中に、求める処理を提供する関数をその都度

検索

ー ウインドウ内から簡単に検索可能

• MATLABより提供される多くの関数により、効率的に処理の

検討と作成が可能

• 関数の詳細は、MATLABドキュメンテーションを読むことで理

MATLABでコードを記述しながらその都度学習

数か月ー1年でシステム開発が可能に

MATLAB EXPO 2015 5

Page 6: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

タオル・おしぼりの再利用の現状

6

• 特に毛髪の発見が困難

• 大量のタオルについて、人が目視で検品

タオルに付着した毛髪に対する自動検出

アルゴリズムの開発

開発背景

MATLAB EXPO 2015

Page 7: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

システム(開発当初)

MATLAB EXPO 2015 7

Page 8: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

開発手順

• はじめはMATLABを使ってPCで検証

ー エッジ検出アルゴリズム・線を認識するアルゴリズムなどをいろいろ試す

• でも、実時間にはほど遠い。C言語やGPUでの実現も考えたが…

FPGAでやらなければ

MATLAB EXPO 2015 8

アルゴリズム作成・検討

MATLABR2015b

アルゴリズム評価

要求仕様

Page 9: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

システム(FPGAに)

MATLAB EXPO 2015 9

Page 10: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

開発工程

アルゴリズム作成・検討

MATLAB2015b

アルゴリズム評価

HDLコード作成 Simulink

実装

実機試験

要求仕様

Xilinx ISE Design

Suite 13.4

MATLAB EXPO 2015 10

Page 11: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

実際のシステム(1/3)

FPGA

Xilinx Virtex-6 FPGA ML605

EVALUATION KIT(XC6VLX240T)

Linear Sensor Camera

Baslar raL4096-80km

Lens

Nikon Micro-Nikkor 55mm f/2.8

MATLAB EXPO 2015 10

Page 12: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

実際のシステム(2/3)

MATLAB R2015b - R2014b

Development Environment

PC

Windows 7 Professional

Intel Core i7-4930K CPU

16GB RAM

MATLAB EXPO 2015 11

Page 13: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

1.撮影

2.画像処理

Camera

FPGA PC

3.結果提示

毛髪有無

座標情報

設定パラメータ

処理画像(CameraLink)

(RS232C)

実際のシステム(3/3)

MATLAB EXPO 2015 13

Page 14: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

開発

Top Module

Image Processing Module

SerialCommu-nicationModule

DVI Output Module

Camera Link

Module

• FPGA上での画像処理モジュールの開発

• IO関連(カメラからの画像の取り込み、座標情報の送信、パ

ラメータ値の受信など)のプログラミングは一部外部委託

MATLAB EXPO 2015 14

Page 15: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

15

MATLABの開発画面

記述中コード

各変数の一覧

変数内容コマンド・警告・エラー

• コード中の各変数が一覧表示され、デバッグなどの作業が効

率的に可能

MATLAB EXPO 2015

Page 16: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

Simulinkの開発画面

• HDLに対応したブロック一覧から必要なものを選んで図を組む

MATLAB EXPO 2015 16

Page 17: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

Simulinkの学習

• MathWorks開催のHDL Coder™ワークショップに参加

• Simulinkの基本的な記述方法はSimulinkのヘルプや各ブ

ロックのヘルプを読むことで学習

• FPGAの基礎知識、Simulink内の画像処理に関しては大学

講義「論理回路」の教科書や関係する参考書を参考

・宮田武雄著、コロナ社、『速解 論理回路』

・松村謙、坂巻佳壽美著、オーム社、『VHDLによるFPGA設計&デバッグ』

簡単な画像処理モジュールをSimulinkにて記述可能に

MATLAB EXPO 2015 17

Page 18: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

• 配置できる各ブロックの詳細は、MATLABドキュメンテーショ

ンを読むことで理解

• MathWorksへの問い合わせによって細かい仕様の確認

• VHDLの文法に詳しくなくてもコードの生成が可能

MATLABでコードを記述しながらその都度学習

Simulinkの学習

1年程度からシステム開発が可能に

MATLAB EXPO 2015 18

Page 19: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

Simulink

• ブロック線図を組むことで、これを自動的にHDLコードに変換

MATLAB EXPO 2015 19

Page 20: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

Simulink

• ブロック線図を組むことで、これを自動的にHDLコードに変換

MATLAB EXPO 2015 20

Page 21: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

開発

HDLコード生成完了 一部外部委託

Top Module

Image Processing Module

SerialCommu-nicationModule

DVI Output Module

Camera Link

Module

Simulink

MATLAB EXPO 2015 21

Page 22: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

• Xilinx ISE Design Suite 13.4

MATLAB EXPO 2015 22

Page 23: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

各モジュールのHDLコードを読込み

MATLAB EXPO 2015 23

Page 24: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

FPGA実装

MATLAB EXPO 2015 24

Page 25: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

実装構成ファイル選択

MATLAB EXPO 2015 25

Page 26: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

実装

MATLAB EXPO 2015 26

Page 27: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

FPGAへの実装

実装完了

MATLAB EXPO 2015 27

Page 28: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

長さ 7mm までの毛髪を 100% 検出可能

Table. Detection Accuracy for Pieces of Hair

毛髪以外の誤検出を0となるよう各パラメータを設定

29

Length of Hair [mm]

Number of Samples

Detected UndetectedDetection

Rate

10 20 20 0 100 %

7 20 20 0 100 %

5 20 19 1 95 %

4 20 19 1 95 %

3 20 9 11 45 %

処理精度

MATLAB EXPO 2015

Page 29: FPGAによる画像処理におけるMATLABの利用...FPGAによる画像処理におけるMATLABの利用 東京理科大学・基礎工学部・電子応用工学科 教授相川直幸

30

最後に(学生の感想)

MATLAB EXPO 2015

• Camera Link Moduleを作成いただいた会社の方との3日間の議論が非常に参考になった

• MathWorksの方たちのサポートでSimulinkでのFPGA実装方法を理解することができた

• 専用パッケージ(Image Acquisition Toolbox™等)のヘルプやSimulinkブロックのヘルプが参考になった

• 論理回路や画像処理の教科書も参考になったが、画像処理を用いたFPGAに関連した内容を紹介しているサイトも大いに参考になった

• 企業との共同開発のため、納期があることが刺激になった