2018年10月20日土曜日

NVIDIA Jetson TX2 で遊ぶ その2 カメラから画像を取得

開発ボードのカメラでマウスとトレーサを撮影し,DoGでエッジを取り出したもの
Jetson TX2にOpenCVをインストール. python3上でカメラの画像を取得して簡単な加工ができるようになりました. ついでに日本語入力なども整備. 次はディープラーニングのフレームワーク(できればPyTorch)を入れたいですね.

以下雑多なメモ

  • OpenCV3.3.1を使用. ここを主に参考にしてビルド. (JetPackのやつではない)
  • 開発ボードのカメラはただのvideoCaptureでは使えない.  これを参考にして書いたら画像を取得できるようになった. (それでもVIDEOIO ERRORと出ているのが気になるが…)
  • arm64のibus-mozcはapt-get installできないのでここを真似てビルド・インストール.
  • mozcのキーボード配列設定
  • 消費電力・パフォーマンスを適切に設定するためのモード設定機能がある. 参考

2018年10月6日土曜日

NVIDIA Jetson TX2 で遊ぶ その1 JetPackのインストール

学生大会マイクロマウス競技の優勝賞品として NVIDIA Jetson TX2 Developer Kit を頂きました. せっかくなので遊ぼうと思い,NVIDIAから提供されているJetPackというSDKをインストール. 変な嵌まり方をしたせいで結構時間がかかりましたがcudaのsampleが動くようになりました.
いろいろ環境を整えて物体検出か何かを走らせてみたいですね.

以下作業日誌てきなもの

1日目
 とりあえずディスプレイとキーボード,マウスを繋いで電源オン. Ubuntu(cui)が起動. 画面の指示通りに.shを実行して再起動したらguiで起動することを確認.

2日目
先人やnvidiaの記事を見て JetPack3.3のインストールを試みるも,うまくいかない. PCをUbuntuデュアルブートにしたときにUbuntu側に割り当てたSSD容量が少なすぎて空き容量が足りないのが原因.

3日目
 外付けHDDを使ってチャレンジ. OSの書き込みまでは完了したがその先に進まない. 書き込まれたOS自体もSSHはできるがキーボード・マウスは認識しないなど何か変.

4日目
いろいろ試みる中でJetson側でsudoすらできないことが判明. 明らかにおかしい. ファイルフォーマットがext4じゃないとosイメージのファイル権限が変になるっぽいことを言っている人がいたので16GBのSDカードをext4にフォーマットしてos書き込みのみSDでやってみる.(全部やるには容量が足りない) その後外付けHDDでcudaなどJetPackの残りをインストールし,成功. cudaのsampleが動作することを確認.

参考にした記事
https://docs.nvidia.com/jetpack-l4t/index.html#developertools/mobile/jetpack/l4t/3.0/jetpack_l4t_install.htm
https://www.youtube.com/watch?v=D7lkth34rgM 

https://qiita.com/akrian/items/54c321bfa95d8eaef17d
https://qiita.com/ababa831/items/57b43e788d684c380866
https://dev.classmethod.jp/etc/jetson-setup/ 
https://qiita.com/namakemonou/items/4cdec9626adfcc2ad85c
http://dfukunaga.hatenablog.com/entry/2017/09/02/220629
 
https://devtalk.nvidia.com/default/topic/1029640/jetson-tx2/jetpack-3-2-and-3-1-post-installation-stuck-/
https://devtalk.nvidia.com/default/topic/1019123/jetson-tx2/flashed-tx2-and-sudo-failed/

2018年2月5日月曜日

作業日誌的な

マイクロマウスの最短路導出がちょっと速くなった.

最短路導出には優先度付きキューを用いたダイクストラ法を利用しているが,
http://kuuso1.hatenablog.com/entry/2015/12/20/212620

https://www.slideshare.net/mobile/yosupo/ss-46612984
を参考にして,ダイクストラ法でよく使われるという枝刈りを採用したら,まあまあ速くなった.
具体的には全日本決勝迷路(2011~2017)で元々50ms~150msかかっていたのが30~60msになったという感じ.

速くなってはいるが,未知区画を壁なしとして探索しながら経路導出するにはまだ遅すぎるし,単に経路導出するだけなら元々十分速いので,進化としては中途半端という感じ. 規則性のあるグラフなので、何かしらグラフ固有の性質を利用すればさらに高速化出来る気もするが…

あと,壁が少ない迷路でテストしていたら,壁が全くない迷路よりも以下の迷路の方が計算に時間がかかっていたのが面白かった. (壁なし : 5s,以下の迷路 : 10s) 壁が一切ない方が各地点までの最短路が素直に求まり,優先度付きキューにゴミが溜まりにくいからだろうか.
経路導出や探索アルゴリズムにとって最悪の迷路がどのような迷路なのかを考えるのも面白いかもしれない.