理科系の勉強日記

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

RANSACで多項式推定

RANdom SAmple Consensus:RANSACは、外乱を含む観測値から数学的モデルのパラメタを推定する手法のひとつである。インターネットで調べれば文献が出てくるが、サンプルプログラムを調べてみるとOpenCVのHomography行列の推定か直線の推定がおおいので、多項式の推定をしてみた。

github.com

選ばれたinlierから再度パラメタを最小二乗法で推定するべきだが、今回はまだ実装していない。https://github.com/thinkbell/ransac_cubic_equation

Amazon DriveでMacの写真のバックアップ

はじめに

自分はMacの「写真app」を使って写真を管理し、これをiPhoneと同期させて出先で見たり見せたりしている。
そろそろクラウド上にバックアップを取ろうと思い、Amazon Driveを使うことにした。

Amazon Drive

Amazon Driveとは、Amazonが運営するクラウド上のストレージサービスである。
https://www.amazon.co.jp/clouddrive/home

Amazon prime会員用のサービスで、prime会員ならすぐにAmazon Driveを使うことができる。
写真データのみ容量無制限で利用可能らしいので、他のサービス(Google, Drop boxなど)と比較することなくこれに決めた。

写真のバックアップをとる

今回Amazon Driveを使う目的はただ一つ、万が一HDDが壊れたときのために写真のバックアップをクラウド上にとっておくこと。
そのため、管理しやすさとか見易さはほとんど気にしない。ただ、クラウド上にデータが存在していればいい。

Amazon Driveのクライアントソフトをインストールする。クラウドと共有にするディレクトリはどこでもいい。
メニューバーに新しく加わった雲マークを選択し、ファイルのアップロードを選ぶ。
そして、「写真 Library」の中の「Thumbnails」ディレクトリをぶち込む。
Amazon Driveのウィンドウからだと「写真 Library」そのものを選ぶことができない && それより先のディレクトリに入れなかったので、

ln -s ~/Picture/写真\ Library.photoslibrary/Thumbnails ~/Thumbnails     

などとシンボリックリンクを作成し、Amazon Driveから選択できるようにした。

この中にはサムネイル画像とか顔認識用途の画像がたくさん入っているようだが、そんなことはどうでもいい。
(本当は「写真 Library」の中のどこがバックアップすべきファイルなのか調べたいけど、面倒なのでやっていない)
数万個のファイルが同期されるのを待つだけである。


2万枚……すまん、Amazon

# 追記
しかしこれ、同じファイルをもう一度アップロードするとどうなるんだろう。
上書きされるならいいけど、名前の違う同じ内容ファイルが重複したらめんどくさいな。

視差画像とV-disparity

背景

ステレオ視差画像から平面を抽出する一つの手法として、視差画像をV-disparity画像に変換するというものがある。今回は視差画像からV-disparity画像への変換の練習をしてみる。

結果


試みに視差画像のy方向にノイズを加えてみた。その結果がV-disparity画像に現れている。
V-disparity画像、U-disparity画像のそれぞれにオブジェクトが可視化された。

github.com

V-disparity画像

V-disparity画像とは、視差画像における画像平面上下方向の視差の出現頻度を表した画像である。
実装に沿って表現すると、縦軸が画像と共通(V)で横軸が視差(disparity)からなる画像で、
各画素が「あるVでのある視差値の出現回数」を表している。
同様に、横軸を画像と共通(U)にして縦軸を視差(disparity)としたものをU-disparity画像と呼ぶ。

sdfファイルをrviz上のRobotDescriptionで表示する(後半)


実行環境

Ubuntu14.04
Gazebo 2.2.3
sdf 1.4
ROS indigo
(そろそろGazebo7に戻りたい…)

背景

前半編でsdfからurdfを生成してrobot_descriptionに登録する方法を学んだ。
今回は、collada(daeファイル)をrvizで見られるか確認ついでに、sdfからurdfを変換する部分も一発で行うlaunchファイルを作る。

手順

  • sdfファイルの作成
  • package.xmlの変更
  • launchファイルの作成
  • 実行
続きを読む

sdfファイルをrviz上のRobotDescriptionで表示する(前半)


実行環境

Ubuntu14.04
Gazebo 2.2.3
sdf 1.4
ROS indigo

背景

sdfを使ってモデルを作ったのにrvizのRobotDescriptionがurdfしか対応してないと知ってショックを受けた。
調べてみると、pysdfというROSのパッケージを使ってsdf to urdfの変換ができるようだ。
rvizでモデルを表示する練習(とblog更新)を兼ねてここに記録を残す。

手順

  • 準備 pysdfのインストール
  • sdfファイルの作成
  • pysdfでsdfをurdfに変換
  • launchファイルの作成
  • 実行
続きを読む

Ubuntu14.04でeth0が見つからない

新しく手に入れたThinkPad x260にUbuntu14.04 LTSをインストールしたが、有線も無線もつながらない。Ethernetケーブルを挿してifconfigしてみると、普段現れるはずのeth0が見当たらず、loだけが表示されている。

~$ lspci | grep Ether  
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-V (rev 21)

対応するドライバはどうやらe1000eで、これを新しくインストールすれば良いらしく、早速他のPCでダウンロードしたものをコピー、解凍後に現れるsrcディレクトリ下で

sudo make install e1000e

とした。次にこれをmodprobeでカーネルモジュールに追加する。

sudo modprobe e1000e

要求したキーは許可されてません、というようなエラーが出て追加されなかった。

完全に途方に暮れていたが、ネットを見ているとBIOS設定でSecure Bootを無効にすればよいと書いてあった。すると無事e1000eをmodprobeでカーネルモジュールに追加することができ、有線でネットに繋げられるようになった。

面倒臭いので無線はまた今度にしよう。

ATAM install on Ubuntu 14.04 LTS

基本的には公式[1]の通り。ただし、windowsでのインストールのみなので、メモを残す。

まずOpenCV3.0を入れる。ROSと一緒に入ったOpenCVが2.4だったので、ソースを落としてきてcmakeした。
ググったらインストール方法はでてくる[2]が、non-freeをコンパイルしようとするとこける。
githubからopencv_contrib-3.0.0みたいなのを落としてきて、コンパイルすれば通る。
# 最新のOpenCV3とcopencv_contribがマッチしていないのが原因。
# WITH_OPENCL, WITH_OPENCLAMDBLAS, WITH_OPENCLAMDFFT, WITH_OPENCL_SVMもつける

次に、cvsbaをインストールする。これもcmakeだが、オプションはいらないらしい。

続いてCLAPACKをインストールする。
これもATAM公式に書いてある通り、-D CMAKE_BUILD_TYPE=RELEASEだけつけてインストールした。

最後にATAMのコンパイルだが、これはcmakeに以下のオプションを指定した。
やってることはCLAPACKへのパスを指定しているだけ。
# 公式に従ってcvsbaを移動させたりするのを忘れずに。

cmake -D OpenCV_DIR=/home/kenta/opencv-3.0.0/build -D LAPACK_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/SRC/liblapack.a -D BLAS_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/BLAS/SRC/libblas.a -D F2C_LIB=/home/kenta/clapack-3.2.1-CMAKE/build/F2CLIBS/libf2c/libf2c.a ..

[1]ATAM公式
https://github.com/CVfAR/ATAM

[2]UbuntuでOpenCV3.0をコンパイルする
http://thr3a.hatenablog.com/entry/20150731/1438312544