投稿者「tetro」のアーカイブ

Recurrent Convolutional Neural Network で The Street View House Number Dataset を学習

最近,Amazon EC2のp2.xlarge(GPU インスタンス)で少し遊んでいました.スポットインスタンスなら一時間あたり$0.2くらいで使用できてそこそこ遊べます.GPUは2世代前のTesla K80で,そんなに速くはないですが(手持ちのGTX1060と同じか少し遅いくらいでした),メインメモリが61GiB,グラフィクスメモリも12GBもあり,大規模学習などには便利です.

今回はこの p2.xlarge 上で“The Street View House Numbers”の学習を行いました.ネットワークは識別率ランキングの上の方から見ていって,実装が楽そうだった“Recurrent Convolutional Neural Network for Object Recognition”にしました.実装にはchainerを使用しました.

続きを読む

CompressedImageのcompressedDepthをデコードする

ROSで画像を扱うにはsensor_msgs/Imageがおなじみですが,画像容量とか通信帯域を節約したいときにはsensor_msgs/CompressedImageを使ったりすると思います.CompressedImageでは,普通のRGB画像はだいたいjpgとかpngとかで圧縮されているので,公式チュートリアルにあるみたいにOpenCVのimdecodeでデコードすればいいんですが,Depth画像の圧縮フォーマットを見ると”compressedDepth”とかいうよくわからないフォーマットになっていて,そのままではデコードできません.C++ならimage_transportパッケージを使うといいんだと思いますが,pythonには対応していないというのと,republishもなんだか微妙だったので”compressedDepth”の中身とデコードの仕方を調べてみました.

続きを読む

pythonでUnscented Kalman Filter実装

[:ja]pykalmanで新しく書き直しました.

最近,全然ブログの更新をしていないのに何故か毎月アクセス数が増えていて,なんだか申し訳ない気持ちになったので久々の更新です.アクセス数の多いページの傾向から察するに,かなりマニアックな人たちが見に来てくれている(このへんの記事[1][2][3]のアクセスが多い)ようなので,今後も一般人には媚びず,マニア向けの(?)内容を書いていこうかと思います.

ということで今回は非線形カルマンフィルタの一種のUnscented Kalman Filterを実装しました.
UKFでは状態の正規分布の平均周りの数点(シグマ点と言います)をサンプリングしてきて,それらの点を実際にシステムを表す非線形関数で変換してやり,変換後の点列から平均・分散を計算することで状態の更新を行います.ヤコビアンの計算が必要ない上に,共分散の変換も二次近似になるため推定精度が良くなるといういいこと尽くめです.詳細は山北先生の論文[1]をどうぞ.丁寧な説明でわかりやすいです.
以前にIMUを使った姿勢推定でも使っていましたが,今回はpython用に書き下してみました.ソースを置いておくので欲しい人は持っていってください.

ukf

続きを読む