MHRNOTE

画像処理、コンピュータービジョン、GPGPU、開発環境、etc

ホモグラフィ行列

半年ほど放置してました……

ホモグラフィ行列にかぎらず,

カメラ座標系<->ワールド座標系の行ったり来たりでよく使う行列演算.

色々と解法はありますが,今回は一番シンプル(だと思っている)方法をメモ.

(というか,3ヶ月前くらいにやったやつなんですけどね……)

はてブで数式を記述するのが面倒なので

スライドをそのまま貼っておきます.

この手のn次連立方程式の解法に関しては色々とある(たとえば ホモグラフィ行列を求める - Wikimuraなど.最初に実装の参考にしたのはこの方法)

で,pythonで実装したのがこちら

ホモグラフィ行列を求める - Wikimuraを参考にして実装したのがこちら.

こちらでは,固有値展開・最小二乗を用いて解を求めています.

とりあえずメモ.

フルで動作するのはこちらです→ hmiha/trans_homo · GitHub


homography - YouTube

研究室配属

光メディアインターフェース研究室への配属が決定しました.

光メディアインターフェース研究室

ずっと元々研究していた無線系やネットワーク系と迷っていましたが(マジで悩んだ), 自分が本当にやりたいことって何だ? を突き詰めると, この研究室に行き着きました.

ここ1年くらいの趣味【カメラ】に関する研究ができそうで楽しみです.

加えて本年度新設研究室ということで,研究室づくりからのスタートとなります.

なかなかできない経験ですね.

あとは2年後就職するのかDまで行くのか……

さっさと決めなきゃなりません.

【備忘】POV-RayをMacにインストール

POV-Rayとは?

The Persistence of Vision Raytracer is a high-quality,  
Free Software tool for creating stunning three-dimensional graphics.   

http://www.povray.org/より

"Raytracer"とは,"Raytracing"を行うツールなわけですが, 各視点における光の伝わり方(視線と言ったりもする)を分析し, 視線の先に物体があれば,その物体の材質情報や形状から反射の様子を計算, 視線の先に物体がなければ,演算を終了するといった 高品質CGを生成するために開発された手法のようです.

POV-Rayはモデリングした物体に対して"Raytracing"を行うツールってことでしょう(きっと)

ということで,Macに導入しようと思ったのですが…

currently only Microsoft Windows

http://www.povray.org/download/より

ちょっと意味がわからないですね.
ということで,どうにかしてMacにインストールします.

古いバージョンを探す

ということでググるわけですが,古いバージョンのインストール方法がこちらのブログに紹介されていました.
POV-Ray on Intel Mac

で,紹介されているミラーサイトでダウンロードすると…

povpmac.sitなるアーカイブフォルダが.
初めて見ました……
解凍し,インストールを試みると,

f:id:mhr380:20140410230116p:plain

なんだこれは?

ということで,またググります.

謎形式のファイルをどうにか展開する

次はこちらのブログ様より知恵を拝借します.
Lionに変えてから昔のimgが開かなくなった件

紹介されている通り,ディスクユーティリティを使って「変換」いたします.

f:id:mhr380:20140410231144p:plain

すると……

f:id:mhr380:20140410231229p:plain

dmgファイルができました.

さて,これをマウントして展開してみます.

……
………
…………

しかし

f:id:mhr380:20140410231533p:plain

とっても進捗ダメですな感じ.

諦めて次に行きましょう.

POV-Ray Unofficial 3.7.0 For Mac OS Xをインストール

もう少しググるとこんなページが.
関西学院大学理工学部 大崎研究室様(崎じゃなくって「立」を使う方です……

こちらのページによると,Intel Macでも動作する"Unofficial"なPOV-Rayがあるとか.
ということで,こちらへ.
POV-Ray Unofficial 3.7.0 For Mac OS X

すると……

f:id:mhr380:20140410232728p:plain

おっ……?

f:id:mhr380:20140410232745p:plain

おおーっ!

上手いことできそうです.

サンプル出力

京都女子大学で公開されているサンプルコードを参考にして,レンダリングしてみます.

すると……

f:id:mhr380:20140410233439p:plain

ダメです.

このcolors.incのパスを通さないとダメらしいです.

もうすぐできます


ということで,Preferences からインクルードフォルダを紐付けるよう設定します.

f:id:mhr380:20140410234046p:plain

さて,もう一度レンダリング

f:id:mhr380:20140410234059p:plain

サンプルコードをレンダリングできました.
やったね.

参考文献

本文中のリンクが参考文献となっています.

ウラ話

講義の課題は「"Raytracing"についてまとめよ」なので,あまり関係ない作業をしていたことになります.
レポート書かなきゃ……

修正

パスを通す先が間違っておりました(3.7をいじっているのに,3.5のincludeにパスを通してしまうという……)
正しくはこちら

f:id:mhr380:20140411004346p:plain

ご指摘ありがとうございますm( )m

Homebrewのエラーを1つ1つ見ていきます

先日インストールしたHomebrewですが,色々とエラーがあったようです.
そのままでも問題なく動くようですが,放置しておいても気持ち悪いので
1つ1つ解決していこうと思います.

エラーその1

Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man/de
    /usr/local/share/man/de/man1
    /usr/local/share/man/mann

新しいパッケージをインストールした時に,manが更新できないようです.
ご丁寧に「chownでwrite権限を付与すればいいよ」とおっしゃってくれています.

まずは権限を見てみます.

$ ls -la /usr/local/share/man
total 8
drwxrwxr-x   6 root  admin   204 Apr  2 22:17 .
drwxrwxr-x   5 root  admin   170 Apr  2 22:17 ..
drwxr-xr-x   3 root  wheel   102 Oct 24 18:26 de
drwxrwxr-x  36 root  admin  1224 Apr  2 22:17 man1
drwxr-xr-x   6 root  wheel   204 Mar 30  2013 mann
-rw-r--r--   1 root  admin  2546 Mar 30 23:20 whatis

rootユーザにしか権限が与えられていません.
ということで

$ sudo chown HajimeMihara /usr/local/share/man/de
$ sudo chown HajimeMihara /usr/local/share/man/de/man1
$ sudo chown HajimeMihara /usr/local/share/man/mann

これで一般ユーザにも権限が付与されて,1つエラーが減りました.

エラーその2

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:

    /Applications/gnuplot.app/bin/freetype-config
    /Applications/gnuplot.app/bin/gdlib-config
    /Applications/gnuplot.app/bin/libpng-config
    /Applications/gnuplot.app/bin/libpng15-config
    /Applications/gnuplot.app/bin/pdflib-config

どうやら前にインストールしたgnuplotのconfigとbrewで必要となるファイルが競合してしまうようです.
とりあえずgnuplotはアンインストールします.
するとエラーは消えました.

エラーその3

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

dylib(共有ライブラリ)が邪魔なようです.
共有ライブラリについてはまた今度.
対象ファイルをrmで削除すると,エラーはめでたく消えました.

エラーその4・その5

先ほどのdylibと同様に共有ライブラリである.la.a.pcが邪魔だと言われました.
MacPortsでインストールしたソフトウエアの残骸だと思われます……
これらもrmで削除するとエラーが消えました.

エラーその6

arning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:

    git

エラーを残したままgitをインストールしたため,brewとリンクが取れていないとか.
指示の通り,brew link gitでつなげてあげます.

エラーその7

Warning: Broken symlinks were found. Remove them with `brew prune`:

と言われたので,sudo brew pruneを実行すると,上手いこと消えてくれました.

エラーその8

ラストは

Warning: A newer Command Line Tools release is available
Update them from Software Update in the App Store.

XCodeコマンドラインツールをAppStoreからアップデートします.

すると……

Your system is ready to brew.

できました.

参考文献

http://blog.pinkpinkpink.net/2012/07/homebrew.html http://qiita.com/Qiita/items/c686397e4a0f4f11683d http://d.hatena.ne.jp/january/20130723/1374538421 http://qa.atmarkit.co.jp/q/2666 http://d.hatena.ne.jp/EnnuimaZ/20120502/1335928195 http://tmpla.info/archives/1716

MacPortsとお別れ,こんにちはHomebrew

Macのパッケージ管理は「Macports」を使用していたのですが,

  • スーパーユーザ権限が不要
  • パッケージダウンロードとインストールの手間が減る

のようなメリットがあるそうなので,「Homebrew」に乗り換えることにしました.

ということでbrewをインストール.

……とはいいつつ,やることは

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Macのターミナルに打ち込む(貼り付ける)だけ.

特に問題がなかったので,スムーズにインストール完了.


しかし,どうやらMacPortsと競合が起こる可能性があるとか. さてMacPortsをアンインストール.

sudo rm -rf /opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg

こちらをガサっとターミナルへ.

エラーが無ければ,めでたくMacPortsはアンインストール.

ありがとうMacPorts,こんにちはHomebrew.

参考
http://guide.macports.org/chunked/installing.macports.uninstalling.html http://satomacoto.blogspot.jp/2009/05/macports.html

(ついき) NAIST学生寮に入居しました.