SlideShare a Scribd company logo
1 of 39
Download to read offline
オープンソースからの高位合成
によるORB-SLAM FPGA実装
2021/01/19
岩渕 甲誠
自己紹介
 岩渕 甲誠(いわぶち こうせい)
 システムエンジニア
◼ 2003年4月 株式会社セック入社
◼ 主に組み込みソフトウェア開発に従事
✓ 人工衛星
✓ ロボット
 2017年 FPGA研究プロジェクト開始
2
https://www.jaxa.jp/projects/sas/hayabusa2/index_j.html
概要
 ACRiブログ『ホームサービスロボットにおける FPGA
の応用例 (5): ORB-SLAMのFPGA実装』の内容を
解説。
 オープンソースソフトウェアの
ORB-SLAMを、高位合成でFPGA
実装するために必要な、設計、実装
の変更。
 ソフトウェア技術者視点で、高位合成で注意すべきこと
、苦労したことなど。
3
目次
4
 ORB-SLAMとは
 FPGA化部分の特定
 設計、実装の変更
 性能測定結果
 ソフトウェア技術者としてFPGA開発
ORB-SLAMとは
 SLAM(Simultaneous Localization and Mapping)
◼ 自己位置推定と地図作成を同時に行う技術
◼ 周囲を観測するセンサにより数種類存在する
 ORB-SLAM
◼ 単眼カメラで動作可能なので、安価に実装可能
◼ 画面内の特徴点を検出し、自分の位置と姿勢の変化を推定。
5
ORB-SLAMとは
 ソースコードはGithubで公開されているオープンソース
◼ https://github.com/raulmur/ORB_SLAM2
➢ FPGA化なんて全く考慮されていない
6
ORB-SLAMとは
 特徴点
◼ 画像内の角(かど)を特徴点とする。
◼ OpenCVのfast()を用いて取得する。
◼ 7x7の範囲で判定
7
ORB-SLAMとは
 デモ動画
◼ KITTIデータセットを入力し地図を作成。
◼ 画面上部がKITTIデータの画像、下部が作成した地図。
8
ORB-SLAM in the KITTI dataset (Sequence 00)
ORB-SLAMとは
 フレーム間の移動距離、移動方向から、自分の位置と姿勢
の変化を推定。
9
直進している場合は
画面を放射状に移動する
右折する場合は
画面を左に移動する
全体構成
 3つのブロックで構成され、それぞれ別のスレッドで動く
10
◼ Tracking
◼ Local Mapping
◼ Loop Closing
全体構成
 Tracking
◼ 毎フレームに対して動作する
◼ フレーム画像から特徴点を抽出
◼ 自己位置推定
◼ Key Frameの追加判定
 Local Mapping
◼ TrackingでKey Frameが追加されたら動作する
◼ Key Frame、Map Pointの追加、削除
◼ 近傍の最適化
 Loop Closing
◼ TrackingでKey Frameが追加されたら動作する
◼ 経路がループしているか判断
◼ ループしていたときはKey Frame、Map Pointの累積誤差を補正
11
FPGA化部分の特定
 ソフトウェアとして動作させたときの、各処理の処理負荷を
計測し、負荷の高い部分をFPGA化する。
◼ Visual Studioプロファイリングツールで計測
12
処理負荷計測
結果の抜粋
Tracking処理 (全体経過時間の22.2%を占める)
呼び出し数
平均経過時間 ms
(子を含む)
System::TrackMonocular 93 587.2
Tracking::GrabImageMonocular 93 587.2
Frame::Frame 93 174.3
ORBextractor::operator() 93 134.4
ORBextractor::ComputeKeyPointsOctTree 93 119.4
ORBextractor::DistributeOctTree 744 10.5
Tracking::Track 93 411.8
Tracking::MonocularInitialization 11 689.1
ORBmatcher::SearchForInitialization 7 975.7
Frame::GetFeaturesInArea 37,417 0.3
Tracking::TrackWithMotionModel 81 172.9
ORBmatcher::SearchByProjection 81 80.7
Frame::GetFeaturesInArea
Optimizer::PoseOptimization 164 100.5
Tracking::TrackLocalMap 82 181.4
Tracking::SearchLocalPoints 82 43.0
ORBmatcher::SearchByProjection
Frame::GetFeaturesInArea
Optimizer::PoseOptimization
関数名
FPGA化部分の特定
 Trackingスレッドの特徴点抽出~特徴量計算までを
FPGA化対象とする。
◼ 処理負荷が高い
◼ Trackingスレッドは
常に動作する
◼ 画像処理はパイプ
ライン化し易い。
13
設計変更
 FPGA化対象部分のアルゴリズム
14
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
縮小画像作成
 物体までの距離が変わり画像中の見た目の大きさが変わ
っても同一のものと判断できるよう、画像を1/1.2倍しなが
ら8段階の縮小画像を作成する。
 8つの画像で合計2000個の特徴点を検出。
 各画像で採用する特徴点の分配数を決定。
15
Keyframe-based monocular SLAM: design, survey, and future directions
Georges Younes1,2, Daniel Asmar1 , Elie Shammas1, John Zelek2
設計変更
 FPGA化対象部分のアルゴリズム
16
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
FASTによる特徴点抽出
 FAST():OpenCVのAPIの一つ
◼ 抽出する強度の閾値をパラメータで指定する。
 画像内のコントラストが大きい場合でもまんべんなく特徴点
を取得できるようにする。
1. 約30x30のGridに画像を分割
2. 一つのGridに対してFAST()を実行
1. 高い閾値で実行
2. 特徴点を取得できない場合は低い閾値で再実行
3. 全てのGridに対して繰り返し
17
高閾値で
FAST
高閾値で
FAST
低閾値で
FAST
設計変更
 FPGA化対象部分のアルゴリズム
18
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
特徴点の間引き
 得られた特徴点が密集しているとデータ効率が悪いため間
引きを行う。
1. 画面を4分割する。
2. 4分割したセルに特徴点が複数含まれる場合、更に4分割。
3. 0個、1個の場合、分割を終了し次のセルに移る。
4. 既定の上限数まで分割したら終了。
5. 終了時、複数の特徴点を含む場合、最も強度の大きい特徴点を採
用し、他は削除。
19
設計変更
 FPGA化対象部分のアルゴリズム
20
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
特徴点の角度計算
 特徴点の角度を特徴点の周り31x31の画素値から以下の
式で定義。
21
X方向、Y方向に重み付けしながら画素値を
積算し、その比率から角度を定義している。
設計変更
 FPGA化対象部分のアルゴリズム
22
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
特徴量計算
 特徴量
◼ 特徴点を中心とした円内から2点を1組として16組サンプリングす
る。サンプリング点は定義した角度だけ回転させた座標とする。(角
度不変性)
◼ それぞれ大小比較し、その結果を0と1で示した16bitのビット配列
を特徴量とする。
23
異なるフレームで得られた特徴点の
特徴量を比較し、同一構造物のマッ
チングを行う。
設計変更
 FPGA化対象部分のアルゴリズム
24
処理開始
8段階縮小画像作成
入力:元画像
出力:縮小画像
FASTによる特徴点抽出
入力:縮小画像
出力:特徴点リスト
特徴点の間引き
入力:全特徴点リスト
出力:間引きした
特徴点リスト
特徴点の角度計算
入力:ピラミッド画像
特徴点リスト
出力:特徴点角度リスト
特徴量算出
入力:GaussianBlur処理画像
特徴点リスト
特徴点角度リスト
出力:特徴点角度リスト
処理終了
GaussianBlur
入力:縮小画像
出力:GaussianBlur
処理画像
問題点
1. 間引き処理では画像データを使用しない
が、角度計算では必要で、メモリが必要。
2. fast処理以降は8枚の画像について、8回
ループして処理している。
3. 枝分かれしているGaussianBlurは先に処
理が終わるため、画像8枚分のメモリが
必要となる。
特徴量の
計算
特徴量の
計算
特徴点の
間引き
特徴点の
間引き
FASTによる
特徴点抽出
FASTによる
特徴点抽出
設計変更
 FPGA指向の設計
◼ 前段、後段の2つに分ける
25
FPGA呼び出し
・画像データ
1/1.44
縮小画像
FASTによる
特徴点抽出
特徴点の
間引き
特徴量の
計算
CPUへ特徴点リストを送信
特徴点リストを
Y座標でソート
FPGA呼び出し
・画像データ
・特徴点リスト
特徴点の
角度計算
特徴点の
角度計算
特徴点の
角度計算
CPUへ特徴量リストを送信
後続の処理へ
CPUFPGA
GaussianBlur
1/1.2
縮小画像
1/1.44
縮小画像
1/1.2
縮小画像
設計変更
 クラス設計の変更
◼ ORBextractorクラス、KeyPointクラスとFrameクラスの一部が
FPGA化対象の処理を含む。
◼ SDSoC、Vitisでは関数単位でFPGA化対象を指定する。クラスの
一部の関数のみFPGAで処理させる場合は、クラスを分割し、必要
なメンバ変数もFPGA側のクラスに移す。
26
元のクラス設計 変更後クラス設計(仮)
設計変更
 このクラス設計ではループ、関数呼び出しのネストが深くな
る。(ソフトのソースコードでは10、20のネストは当たり前)
✓ どこが「タスク」となるのか分からない。
✓ パイプライン化しにくい。
✓ デバッグが非常に困難となる。
 FPGAではクラスのカプセル化はできない(?)。
✓ 同時に動くほかの処理との整合性を取らなければならない。
✓ 呼び出したクラスの関数からどのようにメモリアクセスしているかを
考慮しなければならない。
 ソフトウェアに比べ、FPGAに実装できるコード量は少ない。
✓ ORB-SLAMのFPGA化では3000行程度。
✓ オブジェクト指向の旨味があまりない。
⇒ ORB-SLAMのFPGA化ではクラスは使わない。
27
FASTによる特徴点抽出(再掲)
 FAST():OpenCVのAPIの一つ
◼ 抽出する強度の閾値をパラメータで指定する。
 画像内のコントラストが大きい場合でもまんべんなく特徴点
を取得できるようにする。
1. 約30x30のGridに画像を分割
2. 一つのGridに対してFAST()を実行
1. 高い閾値で実行
2. 特徴点を取得できない場合は低い閾値で再実行
3. 全てのGridに対して繰り返し
28
FASTによる特徴点抽出の設計変更
 小さいGridに分割して特徴点を抽出しているのは、画面に
均一に特徴点を分布させたいため。
◼ その後の間引き処理で集中する部分を除いている。
◼ 低い閾値で画面全体で抽出し、均一にするのは間引き処理に任せ
てもよいのではないか。
29
Grid分割あり
Grid分割なし
Grid分割あり/なしで特徴点を
抽出し、間引き処理した結果
を比較した。
約80%の特徴点が一致。
SLAMを動作させるのが目的
で、全く同じ出力にする必要
はない。
Grid分割せず、全体をFAST()
で特徴点を抽出することとし
た。
特徴点の間引き(再掲)
 得られた特徴点が密集しているとデータ効率が悪いため間
引きを行う。
1. 画面を4分割する。
2. 4分割したセルに特徴点が複数含まれる場合、更に4分割。
3. 0個、1個の場合、分割を終了。
4. 既定の上限数まで分割した場合も終了。
5. 終了時、複数の特徴点を含む場合、最も強度の大きい特徴点を採
用し、他は削除。
30
特徴点の間引きの設計変更
 固定サイズのGridに分割
1. FASTで得られた特徴点を各Gridに割り振る
2. 割り振る際に強度の大きい順にソート
3. 各Gridから1つずつ採用し、既定の数になったら終了
 密集している部分の強度の低い特徴点は除かれる
31
特徴点の間引きの設計変更
 PC上で動作確認
 FPGA向けに設計変更してもSLAMは正常に動作した
✓ PC上での動作確認環境があると便利
32
通常版間引き処理で作成 FPGA版間引き処理で作成
特徴点の角度計算の設計変更
 特徴点の角度を特徴点の周り31x31の画素値から以下の
式で定義。
◼ 31Line Bufferを使いパイプライン処理するように変更
◼ 積和演算をパイプライン化
33
X方向、Y方向に重み付けしながら画素値を
積算し、その比率から角度を定義している。
実装変更
 Vivado Design Suite ユーザーガイド 高位合成
(UG902)
- 3章「高位合成コーディングスタイル」
に従って変更する。
◼ new, malloc, std::vectorなどの動的なメモリ取得をstaticオブ
ジェクト、固定長配列に変更。
◼ 浮動小数点を固定小数点に変更。
◼ resize, FAST, GaussianBlurはXilinxのライブラリxfOpenCV
に変更。
など
34
性能測定結果
 開発環境
◼ SDSoC 2018.2
◼ ZCU102
 コード量(FPGA化改造後)
◼ 約3000行 (コメント、空行除く)
◼ xfOpenCVの以下のファイルを含む
 ソフトウェアの規模より小さい
 高負荷処理が一部分に集中しているシステムがFPGAを適用しや
すい
35
common/xf_params.h imgproc/xf_gaussian_filter.hpp
common/xf_structs.h imgproc/xf_resize.hpp
common/xf_types.h imgproc/xf_resize_down_nn.hpp
features/xf_fast.hpp
性能測定結果
 使用データ
◼ KITTIデータセット(1241 x 376)
 速度性能
◼ FPGAの動作クロックは200MHz。300MHzに上げても性能はほ
ぼ変わらず。400MHzではタイミングがメットせず。
◼ CPUの処理速度は、MPSoCに含まれるARM 1.2GHzでソフトウ
ェアとして動作させたときの処理時間。
◼ 後段は前段に比べて倍率が低い。まだ改善の余地ありか。
36
FPGA[ms] CPU[ms] 倍率
処理全体 31.8 631.0 19.9
内訳
前段 9.6 310.9 32.5
後段 19.7 317.6 16.1
性能測定結果
 消費リソース量
◼ 3000行の回路で、ZCU102に搭載されているSoC(Zynq
UltraScale+ XCZU9EG)でLUTの半分以上を消費している。
37
Resource Utilization Available Utilization %
LUT 157983 274080 57.64
LUTRAM 9289 144000 6.45
FF 186451 548160 34.01
BRAM 813.5 912 89.2
DSP 176 2520 6.98
BUFG 3 404 0.74
MMCM 1 4 25
まとめ(ソフトウェア技術者のFPGA開発)
 FPGAのハードウェアとしての知識は必須
✓ パイプライン、タスクの概念、Laytency、II、etc..
✓ 簡単なHDLが理解できるとよい。
✓ 身近にFPGA、高位合成について質問できる人がいると助かる。
➢ ユーザーマニュアルはソフト屋が読めるものではない。。。
✓ ACRiブログ「高位合成で加速するアクセラレータ開発」を読んで
みましょう。
38
まとめ(ソフトウェア技術者のFPGA開発)
 ソフトウェアとは適したアルゴリズムが全く異なる
✓ ソフト屋の常識は捨てる。
✓ ソフトは時間的な処理手順、FPGAは空間的な回路の広がり
✓ 既存ソフトウェアソースコードを流用する場合は、大幅にアルゴリズ
ムを変更し、できる限りシンプルな構造に。
➢ 「初めてのC」、「C++入門」のような入門書のサンプルコードレベ
ルを意識。
➢ 今後FPGAが大規模化し、高位合成で10万行の回路が合成でき
るようになれば変わるか。
39

More Related Content

What's hot

C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたTakuya Minagawa
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code ReadingTakuya Minagawa
 
四脚ロボットによる つくばチャレンジへの取り組み
四脚ロボットによるつくばチャレンジへの取り組み四脚ロボットによるつくばチャレンジへの取り組み
四脚ロボットによる つくばチャレンジへの取り組みkiyoshiiriemon
 
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料Fujimoto Keisuke
 
CNN-SLAMざっくり
CNN-SLAMざっくりCNN-SLAMざっくり
CNN-SLAMざっくりEndoYuuki
 
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介miyanegi
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習Hitoshi Sato
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Satoshi Fujimoto
 
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAMSLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAMIwami Kazuya
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎yohei okawa
 
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向SSII
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summaryTakuya Minagawa
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper. challenge
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築Yoshitaka HARA
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術Kiyokuni Kawachiya
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)marsee101
 

What's hot (20)

C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
 
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
 
四脚ロボットによる つくばチャレンジへの取り組み
四脚ロボットによるつくばチャレンジへの取り組み四脚ロボットによるつくばチャレンジへの取り組み
四脚ロボットによる つくばチャレンジへの取り組み
 
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料
 
CNN-SLAMざっくり
CNN-SLAMざっくりCNN-SLAMざっくり
CNN-SLAMざっくり
 
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018
 
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAMSLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAM
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
 
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
 
20180424 orb slam
20180424 orb slam20180424 orb slam
20180424 orb slam
 

More from 直久 住川

公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf直久 住川
 
ACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdfACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdf直久 住川
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料直久 住川
 
ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料直久 住川
 
DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料直久 住川
 
ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料直久 住川
 
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料直久 住川
 
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdfAMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdf直久 住川
 
VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料直久 住川
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料直久 住川
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料直久 住川
 
20220525_kobayashi.pdf
20220525_kobayashi.pdf20220525_kobayashi.pdf
20220525_kobayashi.pdf直久 住川
 
220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf直久 住川
 
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf直久 住川
 
ACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdfACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdf直久 住川
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料直久 住川
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料直久 住川
 
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ直久 住川
 

More from 直久 住川 (20)

公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf公開用_講演資料_SCSK.pdf
公開用_講演資料_SCSK.pdf
 
ACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdfACRi-Webinar_Feb2023_agenda_20230225.pdf
ACRi-Webinar_Feb2023_agenda_20230225.pdf
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料第11回ACRiウェビナー_インテル/竹村様ご講演資料
第11回ACRiウェビナー_インテル/竹村様ご講演資料
 
2022-12-17-room.pdf
2022-12-17-room.pdf2022-12-17-room.pdf
2022-12-17-room.pdf
 
ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料ACRiルーム副室長_安藤様_講演資料
ACRiルーム副室長_安藤様_講演資料
 
DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料DSF実行委員長_酒井様_講演資料
DSF実行委員長_酒井様_講演資料
 
ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料ACRi事務局_住川_講演資料
ACRi事務局_住川_講演資料
 
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料
 
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdfAMD_Xilinx_AI_VCK5000_20220602R1.pdf
AMD_Xilinx_AI_VCK5000_20220602R1.pdf
 
VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料VCK5000_Webiner_Fixstars様ご講演資料
VCK5000_Webiner_Fixstars様ご講演資料
 
第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料第9回ACRiウェビナー_セック/岩渕様ご講演資料
第9回ACRiウェビナー_セック/岩渕様ご講演資料
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
20220525_kobayashi.pdf
20220525_kobayashi.pdf20220525_kobayashi.pdf
20220525_kobayashi.pdf
 
220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf220526_ACRi_Ando01r.pdf
220526_ACRi_Ando01r.pdf
 
2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf2205ACRi_jinguji.pdf
2205ACRi_jinguji.pdf
 
ACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdfACRiポジショントーク_山科.pdf
ACRiポジショントーク_山科.pdf
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
 
ACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダACRiウェビナー:アジェンダ
ACRiウェビナー:アジェンダ
 

オープンソースからの高位合成によるORB-SLAM FPGA実装