2016年4月15日金曜日

Compressed Sensingを理解するために。



最近世の中ではCompressed Sensing(CS)が流行っている。

CSはサンプリング手法を大きく変える。
例えば1ピクセルしかなくても画像を取得できる。
この技術のいいところは、検出器が高価でピクセル配列を準備できないものなんかでも、空間情報を取得できる点だ。(X線とか?)


大学で習うサンプリングといえばNyquist-Shannon Sampling Theoremで、これは取得したい周波数の2倍の周波数でサンプリングすれば信号を完全に復元できるというもの。
CSはもっと少ないサンプルでも信号を復元できるよ、というものらしい。

例えばカメラはRAWからJPEGに変換する際、画像は多くの情報を捨てている。DCTによって重要な係数のみを保存する。あまり重要でないものは捨ても問題ない。むしろ、保存や転送には容量が小さいほうがよい。


なんかものすごく将来性のありそうな技術で勉強を始めたけど、数学が難しいorz
自分のためにCSに学んだことをアップしていこうと思う。

以下目次

  • Restricted Isometry Property
  • Matching Pursuit
  • Basis Pursuit
  • Soft Thresholding
  • など










2015年11月3日火曜日

RISEでインタラクティブなIPython notebookのスライド作成!

前にも書いたけど、ちょっとしたプレゼン資料を作るときに以下のようなことが多々ある。
手軽に書きたい
Texで数式
図を入れたい。
プログラムを入れたい。
かっこ良くしたい。
PDFにしたい。
個人で使う分はフリーで済ませたい。
しかもreveal.jsを使っていかにもギークっぽくしたい。
そんな要求に答えてくれるライブラリがある!
https://github.com/damianavila/RISE

まずはIPython notebookをインストール。

IPython notebookはAnacondaを入れると一発で入る。Pythonを使う人は入れておいて損はないけど、他の言語でIPython notebook使う人にはちょっと大きすぎるかも。

RISEをインスール

https://github.com/damianavila/RISE
をどこかに保存して,そのディレクトリに移動した後に
python setup.py install
するとIPython notebook上に新しいボタンが現れる。
ボタンを押すとスライドになって☓を押すと元に戻る。
そのままではすべて1枚のスライドになってしまうのでCell ToolbarでSub slideとかに設定すればよい。
これから会社ではこれ使って発表しよう。

2015年9月23日水曜日

ipython notebookでVim(バインディング)

ipython notebook(Jupyter)でもvim bindingが使えるらしい。
https://github.com/lambdalisue/jupyter-vim-binding
ipython notebookで使いにくかった点が1つ改善された。
環境はMacにAnacondaを導入している。
基本的な導入は上のGithubのリンクに書いてあるけど…一応メモしておこう。
まずはipythonをアップデートして、さらにjupyterを入れる。
(Jupyterを入れないとnotebookモジュールがないと怒られる)
$ conda update ipython
$ conda install jupyter
次に以下を実行
from notebook.nbextensions import install_nbextension
install_nbextension('https://goo.gl/5TK96v', user=True, destination="vim_binding.js")
一時的に使うときは
%%javascript
Jupyter.utils.load_extensions('vim_binding')
ずっと有効にしたいときは
%%javascript
Jupyter.notebook.config.update({
  'load_extensions': { 'vim_binding': true },
});
これでipython notebook上でVimバインディングが使える。いやー、便利になった。