めもめも ...〆(。_。)
認知心理学・認知神経科学とかいろいろなはなし。 あるいは科学と空想科学の狭間で微睡む。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
MATLABいじるのもおもしろいな、と思い始めたあたりでちょっと調子のってオブジェクトの記述統計っぽいのができるMファイルをおとしてきていじってみた。
オブジェクトの特徴量というのを算出するScale-Invariant Feature Transform(SIFT)というのがあって、それをMATLABにしたのを公開してるひとがいた。
http://www.cs.ubc.ca/~lowe/keypoints/
ので、ちょっとどんなんか試してみた。
SIFTそのものについては、あんまり理解できてないので解説はパス。
とりあえず今のところ参考にしているのは
http://www.slideshare.net/lawmn/siftsurf
特徴として評価されるのは「輝度変化」。
まずは準備。
おとして解凍
↓
中身をてきとーなとこ(わたしはPsychtoolboxのよこにした)につっこむ
↓
MATLABひらく
↓
一応パスとおす
↓
カレントディレクトリを変更する(もしくは中身/中身のコピーをworkフォルダにつっこむ)
↓
準備完了
で、
[image, descrips, locs] = sift('画像ファイル名');
showkeys(image, locs);
とコマンドウィンドウに入力すれば、特徴点(keypoint)を検出して数え上げて図示してくれる。
さらにそれだけではなく、2つの画像で一致する特徴点があるのか、あるならどこなのか調べてくれる。
match('画像1の名前','画像2の名前');
とコマンドウィンドウに打ち込むだけ。
両方の特徴点を検出してマッチングしてくれる。
回転とか拡大縮小にも対応。
んで対応付けた図を見せてくれる。
おおーすげー。
と、思ったらデモプログラムなので、拡張子.pgmの画像にしか対応していないようす。
(なぜかめちゃくちゃ単純な画像の.bmpでは通ったけど結果がへんだった。写真の.jpgやそれを.bmp化したものではエラーはいてた)
ええー.pgmってなんじゃあああと思ったら、UNIXでは結構メジャーな形式らしい。
グレースケール画像を扱うのだそーな。
えーじゃあどうしよー、と思ってたら、Windows環境でも.pgm形式に簡単に変換できるフリーソフトがちゃーんとありました。
http://freesoftbangai.blog50.fc2.com/blog-entry-19.html
IrfanViewというこのソフト、形式変換もリネームも一括でぽぽぽぽーん!とやってくれるすぐれものです。
実際、jpgだったのをこいつでさくっと形式かえてやったらあっさり通りました。
併用すればさくさくSIFTがつかえてしまいます!
注意せねばならんのは、輝度変化が特徴量になるので、輝度変化のあまりないものは向かないということ。
あと、背景とのコントラストが違うとmatchが微妙。
そこらへんを気をつけて遊ぶべし。
オブジェクトの特徴量というのを算出するScale-Invariant Feature Transform(SIFT)というのがあって、それをMATLABにしたのを公開してるひとがいた。
http://www.cs.ubc.ca/~lowe/keypoints/
ので、ちょっとどんなんか試してみた。
SIFTそのものについては、あんまり理解できてないので解説はパス。
とりあえず今のところ参考にしているのは
http://www.slideshare.net/lawmn/siftsurf
特徴として評価されるのは「輝度変化」。
まずは準備。
おとして解凍
↓
中身をてきとーなとこ(わたしはPsychtoolboxのよこにした)につっこむ
↓
MATLABひらく
↓
一応パスとおす
↓
カレントディレクトリを変更する(もしくは中身/中身のコピーをworkフォルダにつっこむ)
↓
準備完了
で、
[image, descrips, locs] = sift('画像ファイル名');
showkeys(image, locs);
とコマンドウィンドウに入力すれば、特徴点(keypoint)を検出して数え上げて図示してくれる。
さらにそれだけではなく、2つの画像で一致する特徴点があるのか、あるならどこなのか調べてくれる。
match('画像1の名前','画像2の名前');
とコマンドウィンドウに打ち込むだけ。
両方の特徴点を検出してマッチングしてくれる。
回転とか拡大縮小にも対応。
んで対応付けた図を見せてくれる。
おおーすげー。
と、思ったらデモプログラムなので、拡張子.pgmの画像にしか対応していないようす。
(なぜかめちゃくちゃ単純な画像の.bmpでは通ったけど結果がへんだった。写真の.jpgやそれを.bmp化したものではエラーはいてた)
ええー.pgmってなんじゃあああと思ったら、UNIXでは結構メジャーな形式らしい。
グレースケール画像を扱うのだそーな。
えーじゃあどうしよー、と思ってたら、Windows環境でも.pgm形式に簡単に変換できるフリーソフトがちゃーんとありました。
http://freesoftbangai.blog50.fc2.com/blog-entry-19.html
IrfanViewというこのソフト、形式変換もリネームも一括でぽぽぽぽーん!とやってくれるすぐれものです。
実際、jpgだったのをこいつでさくっと形式かえてやったらあっさり通りました。
併用すればさくさくSIFTがつかえてしまいます!
注意せねばならんのは、輝度変化が特徴量になるので、輝度変化のあまりないものは向かないということ。
あと、背景とのコントラストが違うとmatchが微妙。
そこらへんを気をつけて遊ぶべし。
そういえばMATLABでの制御文とか演算の書き方をまとめとくのを忘れていた。
・・・今更すぎるけど、たぶんMATLABをさわらん時期がしばらく続いたらまるっと忘れてしまうに違いないのでさっくりまとめておく。
ちなみに、...... としてるところは任意の記述ということにして、ここからコピペをすることを想定して......以外はコメントアウトになるように書いとく。
%●if文(条件判定)
if ......
......
end
%Ifん中で分岐する場合は
if ......
......
[elseif ......
.......
else
......
end]
end
%{
んで条件分岐に必要な演算として
> %より大きい
>= %以上。順番注意
< %より小さい
<= %以下
== %等しい
~= %等しくない
& %AND/および。先に書いてあるほうが優先
&& %AND/および。優先順位なし
| %OR/または。先に書いてあるほうが優先
|| %OR/または。優先順位なし
any(v>n) %任意のベクトルvの要素のどれかが任意の数字nより大きいなら。勿論>の部分は置換可
all(v>=n) %任意のベクトルvの要素のすべてが任意の数字n以上
上2つはベクトルだけじゃなくて行列にも適応可。
行列の場合はnの前に.をつける。
判定は列ごとに処理。結果は行ごとに返す。
%}
%●for文(特定回数の繰り返し)
for n=x:y %nは任意の変数、xとyは任意の数字あるいは変数
......
end
%{
試行数とか決めるときにつかうよねー。
注意しなくてはいけないのは、VBだとfor文でつかう変数でiとかjとかつかうけど、MATLABではiとかjとかは虚数を意味するのでなるべく使わないようにしよう。
%}
%●while文(条件を満たすまでの繰り返し)
while ......
......
end
%ただし、このままでは無限ループになる可能性がある
%なので、ループ脱出条件をしっかりつける
while ...... %ループする条件を記述
if ...... ; %終了条件を記述
...... ; %終了前の処理を記述
break %脱出
end
...... %ループする処理を記述
end
%●switch文(条件分岐)
n= ...... %nに任意の整数または文字列を入れる
%わかりやすさのためにここでは整数だとする
switch n
case 1
......
case 2
......
otherwise %「上記以外」のこと
......
end
%要するにVBで言うところのcase
%うむ、なんだかMATLABに慣れてきたような気がするぞ。
・・・今更すぎるけど、たぶんMATLABをさわらん時期がしばらく続いたらまるっと忘れてしまうに違いないのでさっくりまとめておく。
ちなみに、...... としてるところは任意の記述ということにして、ここからコピペをすることを想定して......以外はコメントアウトになるように書いとく。
%●if文(条件判定)
if ......
......
end
%Ifん中で分岐する場合は
if ......
......
[elseif ......
.......
else
......
end]
end
%{
んで条件分岐に必要な演算として
> %より大きい
>= %以上。順番注意
< %より小さい
<= %以下
== %等しい
~= %等しくない
& %AND/および。先に書いてあるほうが優先
&& %AND/および。優先順位なし
| %OR/または。先に書いてあるほうが優先
|| %OR/または。優先順位なし
any(v>n) %任意のベクトルvの要素のどれかが任意の数字nより大きいなら。勿論>の部分は置換可
all(v>=n) %任意のベクトルvの要素のすべてが任意の数字n以上
上2つはベクトルだけじゃなくて行列にも適応可。
行列の場合はnの前に.をつける。
判定は列ごとに処理。結果は行ごとに返す。
%}
%●for文(特定回数の繰り返し)
for n=x:y %nは任意の変数、xとyは任意の数字あるいは変数
......
end
%{
試行数とか決めるときにつかうよねー。
注意しなくてはいけないのは、VBだとfor文でつかう変数でiとかjとかつかうけど、MATLABではiとかjとかは虚数を意味するのでなるべく使わないようにしよう。
%}
%●while文(条件を満たすまでの繰り返し)
while ......
......
end
%ただし、このままでは無限ループになる可能性がある
%なので、ループ脱出条件をしっかりつける
while ...... %ループする条件を記述
if ...... ; %終了条件を記述
...... ; %終了前の処理を記述
break %脱出
end
...... %ループする処理を記述
end
%●switch文(条件分岐)
n= ...... %nに任意の整数または文字列を入れる
%わかりやすさのためにここでは整数だとする
switch n
case 1
......
case 2
......
otherwise %「上記以外」のこと
......
end
%要するにVBで言うところのcase
%うむ、なんだかMATLABに慣れてきたような気がするぞ。
Psychtoolbox勉強会でミュラーリヤー錯視のデモをやったので復習。
勉強会でも紹介されてたサイト
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku
と自分の殴り書きめもを見ながら復習していく。
まあ中味の解説は上のサイトのとおりなんだけど。
他の実験にも応用できて参考になりそうなとこや勉強会で躓くひとが出たところをめもっておく。
長いので続きのとこにしまっておく。
勉強会でも紹介されてたサイト
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku
と自分の殴り書きめもを見ながら復習していく。
まあ中味の解説は上のサイトのとおりなんだけど。
他の実験にも応用できて参考になりそうなとこや勉強会で躓くひとが出たところをめもっておく。
長いので続きのとこにしまっておく。
なんと、「あなたを学会に招待します!」的スパムがわたし宛にくる。
前の論文について、ぜひうちの学会で講演してください!という話で。
最初は、「え?ひょっとしてinvited speakerキタコレってやつ???」みたいなワクテカ感があったのだけど、めさめさ直前(1ヶ月あるかないか)だし、ぐぐれば内容カスカス(それこそ大会一年前の某学会大会用HPみたいなイメージ)だし、メインターゲット層は臨床系っぽいこと言ってるし、しかも参加費は800USドルときた。
前回は学会開催地はインドということだった。
今日きたメールでは開催地は中国だった。
どっちも内容ほぼ一緒だった。
・・・流石に釣られねえよ!
(前回のインドのときは一瞬釣られかけたのはひみつ。しかし800USドルで即夢から覚めた)
・・・かなしい。
何がかなしいって、あまりにも底辺研究者すぎて、この手の釣りに耐性がないことだよ!
ホンモノのinvited speakerってどういう経緯でなるのかよく知らないから比べられないよ!
たぶんPubMedかなんかで絨毯爆撃的に釣ってるんだろーが、おかねも業績もない底辺研究者なんか釣らないで欲しいのと勝手に思ってしまう。
もっとおかねも業績も潤沢なえらいひとを釣ったほうが儲かりそうなのにねー。
まあそういうひとに招待詐欺なんかやらかすと大問題になるのかもしれないけど。
しかし、PubMed使えるなら業績底辺研究者を釣りリストから外すのって時間と手間はかかれども簡単だと思うんだがなー。
そうやって数を絞って信憑性増したほーが釣りの成功率もあがるだろうに。
その成功率の差分よりも、底辺をリストから除外する人件費のほうが高くつくんだろうか?
まあ、そんな向こう側の心配とかどうでもいいですね。
とりあえずわたしが釣られてぬかよろこびするのがかなしいので、釣りスパムは自粛してほしいです、ほんと。
・・・逆に、食い詰めた博士たちが反社会的行動にはしるならば、えらいひとをターゲットにやたらめったらリアルな学会詐欺とかやっておかねもうけすることも可能なのか・・・?とか思ったりして。
・・・なんというブラックジョーク。
前の論文について、ぜひうちの学会で講演してください!という話で。
最初は、「え?ひょっとしてinvited speakerキタコレってやつ???」みたいなワクテカ感があったのだけど、めさめさ直前(1ヶ月あるかないか)だし、ぐぐれば内容カスカス(それこそ大会一年前の某学会大会用HPみたいなイメージ)だし、メインターゲット層は臨床系っぽいこと言ってるし、しかも参加費は800USドルときた。
前回は学会開催地はインドということだった。
今日きたメールでは開催地は中国だった。
どっちも内容ほぼ一緒だった。
・・・流石に釣られねえよ!
(前回のインドのときは一瞬釣られかけたのはひみつ。しかし800USドルで即夢から覚めた)
・・・かなしい。
何がかなしいって、あまりにも底辺研究者すぎて、この手の釣りに耐性がないことだよ!
ホンモノのinvited speakerってどういう経緯でなるのかよく知らないから比べられないよ!
たぶんPubMedかなんかで絨毯爆撃的に釣ってるんだろーが、おかねも業績もない底辺研究者なんか釣らないで欲しいのと勝手に思ってしまう。
もっとおかねも業績も潤沢なえらいひとを釣ったほうが儲かりそうなのにねー。
まあそういうひとに招待詐欺なんかやらかすと大問題になるのかもしれないけど。
しかし、PubMed使えるなら業績底辺研究者を釣りリストから外すのって時間と手間はかかれども簡単だと思うんだがなー。
そうやって数を絞って信憑性増したほーが釣りの成功率もあがるだろうに。
その成功率の差分よりも、底辺をリストから除外する人件費のほうが高くつくんだろうか?
まあ、そんな向こう側の心配とかどうでもいいですね。
とりあえずわたしが釣られてぬかよろこびするのがかなしいので、釣りスパムは自粛してほしいです、ほんと。
・・・逆に、食い詰めた博士たちが反社会的行動にはしるならば、えらいひとをターゲットにやたらめったらリアルな学会詐欺とかやっておかねもうけすることも可能なのか・・・?とか思ったりして。
・・・なんというブラックジョーク。
カレンダー
07 | 2025/08 | 09 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
カテゴリ説明
もっさり:日々の雑感をもっさり。
がっつり:論文や研究関連をがっつり。
びっくり:科学ニュースでびっくり。
まったり:空想科学などでまったり。
ばっかり:デザイン系自己満足ばっかり。
ほっこり:お茶を嗜んでほっこり。
がっつり:論文や研究関連をがっつり。
びっくり:科学ニュースでびっくり。
まったり:空想科学などでまったり。
ばっかり:デザイン系自己満足ばっかり。
ほっこり:お茶を嗜んでほっこり。
最新コメント
※SPAMが多いのでhttpを含むコメントと英語のみのコメントを禁止しました※
最新記事
(05/08)
(04/24)
(04/10)
(02/03)
(11/01)
最新トラックバック
プロフィール
HN:
az
性別:
非公開
自己紹介:
興味のあるトピックス
分野は視覚認知。視知覚にがて。
あと記憶全般。
カテゴリ (semanticsか?) とかも。
最近デコーディングが気になる。
でも基本なんでもこい。
好奇心は悪食。
好きな作家(敬称略)
川上弘美
小林秀雄
津原泰水
森茉莉
レイ・ブラッドベリ
イタロ・カルヴィーノ
グレッグ・イーガン
シオドア・スタージョン
分野は視覚認知。視知覚にがて。
あと記憶全般。
カテゴリ (semanticsか?) とかも。
最近デコーディングが気になる。
でも基本なんでもこい。
好奇心は悪食。
好きな作家(敬称略)
川上弘美
小林秀雄
津原泰水
森茉莉
レイ・ブラッドベリ
イタロ・カルヴィーノ
グレッグ・イーガン
シオドア・スタージョン
ブログ内検索
最古記事
(08/05)
(08/16)
(08/19)
(08/19)
(08/21)
カウンター
フリーエリア
PR