SlideShare a Scribd company logo
1 of 15
Download to read offline
FPGAに実装したCNNを使用して白線間
を走行するミニ・ロボットカーの製作
筑波大学システム情報系技術室
小野 雅晃
1
本研究は,科学研究費補助金「奨励研究」(課題番号17H00372)の助成を受けて
行った
自己紹介
2
 FPGAの部屋
 2005年5月から
 4,141記事(2018
年4月21日現在)
 筑波大学、技術
職員
 今年60歳、還暦
 定年退職
CNNで白線間を認識して走る
ミニ・ロボットカー
 平成28年度
 カメラを使用した画像認識により白線間を走行するロ
ボットカーの製作
 ガボール・フィルタにより、白線を認識して走るミニ・ロボッ
トカーを発表
 平成29年度
 ガボール・フィルタによる白線認識を、畳み込み
ニューラルネットワーク(CNN)に変更した
 カメラ画像をCNNで解析し白線間を走行
 CNNはFPGAに実装した
3
CNNの出力数と層構成
 CNNを使用して、カメラ画像により白線の状況を
認識して、直進、左旋回、右旋回のいずれかを出
力
 CNNの層構成
 畳み込み層-ReLU-マックス・プーリングー全結合
層-ReLU-全結合層
 「ゼロから作るDeep Leanning」の第7章の層構成と同
じ
4
CNNの学習と推論のベース
5
 学習は「ゼロから作る
Deep Learning」のPython
コードをそのまま利用
 推論の「ゼロから作る
Deep Learning」のPython
コードを適当なビット幅に
量子化するように変更し
て精度を確認
 複数のビット幅で精度を
確認
オライリー・ジャパン 「ゼロから作る
Deep Learning」の表紙を引用
量子化方法(全結合層の場合)
6
 学習はそのまま浮動小数点演算で学習
 推論のみ 重みとバイアス、層の出力を量子化
 量子化方法(forward_int())
 小数部のビット分を掛け算(float型)
 四捨五入してint型に変換し、小数点以下切り捨て
 量子化ビット長で飽和演算
 float型に変換
 掛け算した分を割り算で戻す(float)
 量子化した値で内積を取る(float演算)
 再び量子化
CNNの学習用データの例
7
 白線走行の学習データ例
左旋回 直進 右旋回
• 800x600ピクセルのミニ・ロボットカーの車載カメラ
画像
白線データの用意
8
 77枚の学習画像と74枚のテスト画像を別に用意
(800x600ピクセル)
 画像を加工して増やす(imagemagic)
 コントラストを変更
 ぼかす
 ノイズを加える(ガウス、インパルス、ラプラシアン)
 学習画像-1,386枚、テスト画像ー1,332枚
 サイズ変更(60X45ピクセル) 0.075倍
 白黒変換
 白線の部分を切り取る(56X10ピクセル)
 1枚の画像につき25枚
 学習画像ー34,650枚、テスト画像ー33,300枚
 精度は93%程度
Vivado HLSを使用してCからHDLへ
9
 CNNの推論をCで書き直した
 Vivado HLS(Xilinx社のFPGA用高位合成ツール)を使
用してCコードをHDLに変換してIP化した
 重みやバイアスはCのヘッダとして実装
 直進、左旋回、右旋回という情報を出力するCNNのIP
(Intellectual Property)コアを作成
 推論時間約1.94ms、515fps
 チューニング後の推論時間約96.3us、10,400fps
 約20倍高速になった(オーバースペック)
 ただしチューニング後のCNN IPは実機では未検証
ミニ・ロボットカー
10
 Digilent社のZYBOボードを使用した全長30cm程度
のロボットカー(ZYBOtベース)
 ハード(FPGA内の回路)、ソフト共に独自開発
 ZYBOボード
 Xilinx社のARMプロセッサ(Cortex-A9デュアル)+
FPGAチップ
 Zynq-7010
 2つのCortex-A9でUbuntu14.04が動作
 ソフトウェア実装後にハードウェアにオフロードが簡
単に行える
ミニ・ロボットカーの写真
11
ミニ・ロボットカーのブロック図
12
FPGAとARMプロセッサの動作
13
FPGA
動画デモ
14
動画デモは「カーブ、直線用白線間走行用畳み込みニューラ
ルネットワーク18(ミニ・ロボットカーでの走行テスト)」参照
http://marsee101.blog19.fc2.com/blog-entry-4021.html
まとめ
15
 白線間走行用畳み込みニューラルネットワークを
FPGAに実装
 ミニ・ロボットカーに白線間走行用畳み込み
ニューラルネットワークを搭載
 ミニ・ロボットカーで白線間を走行することができ
た

More Related Content

More from marsee101

高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応marsee101
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」marsee101
 
FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介marsee101
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームmarsee101
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能についてmarsee101
 
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)marsee101
 
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)marsee101
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)marsee101
 
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)marsee101
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)marsee101
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識marsee101
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)marsee101
 

More from marsee101 (12)

高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
 
FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介FPGAの部屋、slide share、xilinxツールのご紹介
FPGAの部屋、slide share、xilinxツールのご紹介
 
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリームVivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)Vivado hls勉強会5(axi4 stream)
Vivado hls勉強会5(axi4 stream)
 
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
 
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
 

Recently uploaded

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (9)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Fpga robot car