日常」カテゴリーアーカイブ

DSOでAR ~ 1. DSO本体インストール

昨年末にいろいろあってお蔵入りしていたARのチュートリアルを今更ながら上げておこうと思います.ARの基礎的なところから書いていたのですがブログにそんな簡単なこと書いても仕方ないので,最新のvisual odometryライブラリであるDSO(Direct Sparse Odometry)を使った応用的な部分だけ公開しておこうと思います.

流れとしては 1. DSO本体インストール, 2. ROSパッケージインストール, 3. visual odometryを使ったAR, 4. 環境のpoint cloudを使ったインタラクションAR という感じになります.基本的な部分は省いていくので,ROSのインストールとかDirect visual odometryってなんぞやとかは書きません.

環境は Ubuntu 16.04 + ROS kinetic でPCはThinkpad25,カメラはそのへんに落ちてたwebカメラです.Direct系の手法はローリングシャッターに弱いのですが,それでもまあまあ動いてしまったりします.でも,グローバルシャッターカメラを持っている人はそっちを使うようにしましょう(そんな人はこんなブログ見ないか).

続きを読む

OpenCVで魚眼レンズのキャリブレーション

前々回の記事でOpenCVの魚眼レンズのキャリブレーション関数がうまく動作しなかったため,fisheye::calibrate()関数をちょこちょこ改造したものを貼っていましたが,あとで必要になりそうな気がするので,キャリブレーションプログラム全体のソースを置いておきます.

fisheye::calibrate()に加えた変更点は,以下のような感じです.
1. ヤコビアンの逆行列の計算をEigen::fullPivLUに変更
2. 最急降下法の学習率を外部から設定できるように変更

プログラム全体としては,チェスコーナーの検出後,一度,カメラ内部パラメータのみの推定を行った後,それを初期値として歪みパラメータを含めた推定を行うようにしています.

学習率(α)は特にセンシティブなので,何回か変更しながら実行して,いい具合に収束する値を使うといいと思います.手持ちのPCでは0.4~0.6あたりが誤差の収束が良かったです.うまくいくと,下左の画像のように再投影誤差(error)がぐいぐい下がっていきます.収束は画像の枚数にもかなり依存しているようなので,多すぎない適当な枚数(30~40くらい?)で試すと良さそうです.

続きを読む

windowsでVPNでエラー809

個人的備考録です.

現在,訳あって海外在住なのですが,ニコニコ動画のアニメが海外IPだと観られないため,通信のセキュリティをいつでもどこでも確保するためVPNを導入しました.

L2TP/IPsecで構築してみたんですが,windowsからうまく接続できなかったため,色々調べて以下のページの方法を試してみたところ無事に接続できました.
COLORI : Windows8でL2TPプロトコルのVPN接続を成功させる

予想はしていましたが,回線速度はなかなか出ないですね.まあ一応問題なく動作しているようです.tenteroringメンバーで同じような悩みを持っている人がいれば,サービスを共有するので連絡をください.

これでやっとユーフォニアムを観ることができる...