psychtoolbox n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Psychtoolbox 入門 PowerPoint Presentation
Download Presentation
Psychtoolbox 入門

Loading in 2 Seconds...

play fullscreen
1 / 47

Psychtoolbox 入門 - PowerPoint PPT Presentation


  • 254 Views
  • Uploaded on

Psychtoolbox 入門. 草野 勉 (東京海洋大学). このチュートリアルについて. 対象とする方 授業等でプログラム言語を学習する機会がなく、いままで PowerPoint などで実験をして いた 方々 よくご存知の方には、 適宜 、 情報の補足・修正をして いただける と幸いです。。 ねらい とにかく実験のためのプログラミングの敷居が低く感じられること. 細かい話は。。. Web で公開 する予定なので、記録のためのメモをとって頂く必要はありません。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Psychtoolbox 入門' - bruce-medina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
psychtoolbox

Psychtoolbox入門

草野 勉

(東京海洋大学)

日本視覚学会2013年夏季大会

slide2
このチュートリアルについて
  • 対象とする方
    • 授業等でプログラム言語を学習する機会がなく、いままでPowerPointなどで実験をしていた方々
    • よくご存知の方には、適宜、情報の補足・修正をしていただけると幸いです。。
  • ねらい
    • とにかく実験のためのプログラミングの敷居が低く感じられること

日本視覚学会2013年夏季大会

slide3
細かい話は。。
  • Webで公開する予定なので、記録のためのメモをとって頂く必要はありません。
  • ウェブサイトが検索に引っかからないことがあるので、Facebookで探してください。登録せずともURLが見られるようにしますので。。

日本視覚学会2013年夏季大会

slide4
今日の話題
  • 実験のためのプログラム:選択肢
  • Psychtoolboxによる実験プログラム
    • 簡単なプログラムと、関連するサンプルコード
      • 刺激提示、反応取得・記録
    • さまざまな機能の紹介
    • インストールなど

日本視覚学会2013年夏季大会

slide5
実験のためのプログラム:選択肢(はじめに)
  • 実験用のソフトウェア
    • SuperLab, E-Prime, Experiment Builderなど
  • プログラミング言語のライブラリとして
    • ライブラリ:プログラミングの際に再利用可能なプログラムの集まり

これから、複数のOSで同様に使える(クロス・プラットフォームの)視覚実験用のライブラリの例を紹介します。

日本視覚学会2013年夏季大会

slide6
実験のためのプログラム:選択肢(ライブラリの一例です)実験のためのプログラム:選択肢(ライブラリの一例です)
  • PsychoPy
    • プログラミング言語Pythonがベース
    • 使いやすいビルダー
    • YouTube上でのチュートリアル
      • http://www.youtube.com/watch?v=VV6qhuQgsiI
    • 日本語解説
      • 小川洋和先生(関西学院大学)
      • 十河宏行先生(愛媛大学)

日本視覚学会2013年夏季大会

slide7
実験のためのプログラム:選択肢(ライブラリの一例です)実験のためのプログラム:選択肢(ライブラリの一例です)
  • Psychlopes
    • C++のライブラリ
    • 日本発(東大心理佐藤研の細川研知さん)
      • 分からないことは聞きやすいかも。
    • 教育的なサンプルコードを多数用意

日本視覚学会2013年夏季大会

slide8
実験のためのプログラム:選択肢(その他にも)実験のためのプログラム:選択肢(その他にも)
  • Vision Scienceのサイト(ここやここ)
  • 木村英司先生(千葉大)のサイト

日本視覚学会2013年夏季大会

slide9
実験のためのプログラム:選択肢(今回紹介するもの)実験のためのプログラム:選択肢(今回紹介するもの)
  • Psychophysics Toolbox (Psychtoolbox)
    • MATLABとGNU Octaveのライブラリ
      • 習得が容易(と言われている)
    • 教育的なサンプルコードが充実
    • 利用者数が多い(と思う)。フォーラムの充実
    • 無料で導入可能

日本視覚学会2013年夏季大会

psychtoolbox1
Psychtoolboxの情報源
  • 検索すると日本語の解説もちらほら
  • 日本語で得られる貴重な情報源

日本視覚学会2013年夏季大会

slide11

簡単なプログラム

日本視覚学会2013年夏季大会

slide12
ねらい
  • 簡単なプログラムを例に、基本的なPsychtoolboxの機能を紹介。
  • 付属のサンプルコードの中から、関連するものを紹介。それらを活用できるようにする。

日本視覚学会2013年夏季大会

slide13
「簡単なプログラム」の例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

日本視覚学会2013年夏季大会

slide14
サンプルについて
  • PsychDemosフォルダ(Psychtoolbox直下)
  • それ以外の場所にもサンプルは存在
    • Bits++関連はPsychtoolbox > PsychHardware > BitsPlusToolbox > BitsPlusDemos
  • Web上にも
    • Psychtoolboxユーザーのフォーラムなど

日本視覚学会2013年夏季大会

psychtoolbox2
Psychtoolboxのフォーラム

日本視覚学会2013年夏季大会

slide16

例1

「簡単です」の例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

日本視覚学会2013年夏季大会

slide17

例1

「簡単です」という例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

全画面ウィンドウを作成

日本視覚学会2013年夏季大会

slide18

例1

「簡単です」という例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

円を描画

日本視覚学会2013年夏季大会

slide19

例1

「簡単です」という例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

描いた内容を表示

日本視覚学会2013年夏季大会

slide20

例1

「簡単です」という例
  • 画面左上に200 x 200 pxの円を表示
  • クリックで表示終了

window = Screen('OpenWindow',0,0);

Screen('FillOval',window,255,[0,0,200,200]);

Screen('Flip',window);

GetClicks;

Screen('CloseAll');

クリックを待つ

ウィンドウを閉じる

日本視覚学会2013年夏季大会

slide21

例1

ちなみに、コメントは“%”で(コメントアウトにもよく使われる)ちなみに、コメントは“%”で(コメントアウトにもよく使われる)

% 全画面ウィンドウ作成

window = Screen('OpenWindow',0,0); % 画面は黒

% 円を描画

Screen('FillOval',window,255,[0,0,200,200]);

% 描画内容を表示

Screen('Flip',window);

GetClicks; % クリックを待つ

Screen('CloseAll'); % 全画面表示終了

日本視覚学会2013年夏季大会

slide22

例1

文章の区切りと改行
  • 文末のセミコロン(;)は、戻り値をコマンドウィンドウに表示させないようにするためのもの。
  • 改行、セミコロン、カンマで1文の区切り
    • tic, pause(1),toc

日本視覚学会2013年夏季大会

screen

例1

Screen関数のサブコマンド(1)
  • 画像の表示に関する様々な機能を、1つ目の引数である「サブコマンド」によって指定する。
  • 例:window = Screen('OpenWindow',0,0);

色は黒

サブコマンド:ウィンドウ作成

モニタを指定

日本視覚学会2013年夏季大会

screen1

例1

Screen関数のサブコマンド(2)
  • 例:Screen('FillOval',window,255,[0,0,200,200]);

ウィンドウを指定

(前のOpenWindowの戻り値)

ウィンドウ左上からの

位置とサイズ

色は白

サブコマンド:

長方形描画

日本視覚学会2013年夏季大会

screen2

例1

Screen関数

レクト:よく使う表示形式

計算を容易にする関数が用意:

“help PsychRects”

  • 例:Screen('FillOval',window,255,[0,0,200,200]);

ウィンドウを指定

(前のOpenWindowの戻り値)

ウィンドウ左上からの

位置とサイズ

色は白

サブコマンド:

長方形描画

日本視覚学会2013年夏季大会

slide26

例1

for文について
  • MATLABのfor文

for i = 1:10% iが1から10になるまで

a = i % 変数aにiを代入

end

日本視覚学会2013年夏季大会

slide27

例1

for文で円の位置を変化

window = Screen('OpenWindow',0,0);

for i = 1:100

Screen('FillOval',window,255,[i,i,i+20,i+20]);

Screen('Flip',window);

end

Screen('CloseAll');

日本視覚学会2013年夏季大会

moviedemo m

例1

関連するサンプルコード:MovieDemo.m
  • 153行目-159行目(上はほぼ解説)

for i=[1:n/2, n/2:-1:1]

r=[0 0 2 2]*(i);

Screen(window,'FillRect', white);

Screen(window,'FillOval',black,r);

t=t+1;

s(t)=Screen(window, 'Flip');

end

日本視覚学会2013年夏季大会

moviedemo m1

例1

関連サンプルコード:MovieDemo.m
  • 153行目-159行目(上はほぼ解説)

for i=[1:n/2, n/2:-1:1]

r=[0 0 2 2]*(i);

Screen(window,'FillRect', white);

Screen(window,'FillOval',black,r);

t=t+1;

s(t)=Screen(window, 'Flip');

end

知らないサブコマンド

日本視覚学会2013年夏季大会

slide30
知らない関数・サブコマンドの調べ方
  • 関数のヘルプ:help {関数名}
    • help Screen
    • (Screen関数の特殊事情)Screen と入力するだけで、サブコマンドの一覧が表示
  • サブコマンドのヘルプ: {関数名} {サブコマンド}?
    • Screen OpenWindow?
  • ググる

日本視覚学会2013年夏季大会

slide31

例2

画像ファイルの提示
  • 画像ファイルの読み込み
  • 全画面ウィンドウを作成
  • ウィンドウに描画
  • ウィンドウを提示

日本視覚学会2013年夏季大会

slide32

例2

画像の読み込み
  • imread関数を使う例
    • ルートディレクトリ直下の画像test.tiff

m = imread('/test.tiff','tiff'); %赤文字はファイルのパス

  • 戻り値mは行列(または多次元配列)

size(m)

3つめの次元はRGBをあらわす。

日本視覚学会2013年夏季大会

slide33

例2

行列(3次元配列)の画像データを表示

m = imread('/test.tiff','tiff');% 画像読み込み

window = Screen('OpenWindow',0,0);% ウィンドウ開く

tex=Screen('MakeTexture',window,m); % テクスチャ作成

Screen('DrawTexture', window,tex); % 描画

Screen('Flip',window);% 描画した結果を表示

GetClicks; % クリックを待つ

Screen('CloseAll'); % ウィンドウを閉じる

日本視覚学会2013年夏季大会

meshgrid

例3

行列の画像データを作る(meshgrid関数)
  • 正弦波格子などを表示する際には、meshgrid関数を使うことが多い。
  • [x,y] = meshgrid(-3:3,-3:3)の出力

戻り値X

戻り値y

x座標が要素の値

y座標が要素の値

日本視覚学会2013年夏季大会

slide35

例3

正弦波格子縞(垂直)を作成

Sine関数

m = sin(2*pi*(1/4)*y)

引数y

戻り値y

日本視覚学会2013年夏季大会

gratingdemo m

例3

関連するサンプルコード:GratingDemo.m

[x y] = meshgrid(widthArray, widthArray);

a=cos(tiltInRadians)*radiansPerPixel;% 112行目

b=sin(tiltInRadians)*radiansPerPixel; % 113行目

gratingMatrix = sin(a*x+b*y);

前の例の”2*pi*(1/4)”と同じ要領

日本視覚学会2013年夏季大会

slide37

例4

反応の取得・記録
  • キーボードのFとJ、どちらかが押されるまで待機

left_key= KbName('f');

right_key = KbName('j');

[keydown, time, keyCode] = KbCheck;

while ~(keyCode(left_key)|keyCode(right_key))

[keydown, time, keyCode] = KbCheck;

end

日本視覚学会2013年夏季大会

oldnewrecogexp m

例4

関連するサンプルコード:OldNewRecogExp.m

% 289行目

while ( KeyCode(oldresp)==0 && KeyCode(newresp)==0 )

[KeyIsDown, endrt, KeyCode]=KbCheck;

WaitSecs(0.001);

end

日本視覚学会2013年夏季大会

slide39
サンプルコードを使った学習
  • Psychtoolboxの関数がどのように使われるか、自分で改変しながら確かめられる。
  • 実験のテンプレートとしても使える
    • PsychExampleExperimentsフォルダ
  • 書き換えるときは「別名で保存」してからに!

日本視覚学会2013年夏季大会

slide40

さまざまな機能

日本視覚学会2013年夏季大会

slide41
提供される機能の一例
  • PsychHardware:ハードウェアのサポート
    • Bits++, Eyelink, DataPixx,Daq, 各種輝度計…
    • もちろんMATLABでサポートしている機能が使える
  • 刺激の書き出し
    • 画像、動画(Screen関数)
  • 心理物理学的測定法・データのフィティング
    • Palamedes toolboxが便利な気も

日本視覚学会2013年夏季大会

slide42
モニタのキャリブレーション
  • キャリブレーション(測光・フィッティング)
    • CalibrateMonitorPhotometer.m
    • CalibrateMonSpd.m
    • ColorCalなど複数の輝度計をサポート
    • 要Curve fitting toolbox
  • CLUTの操作
    • Screen関数の‘LoadNormalizedGammaTable’

日本視覚学会2013年夏季大会

slide43
動画の書き出し
  • 4つのコマンドで書き出しができる
    • Screen CreateMovie
    • Screen AddFrameToMovie
    • Screen FinalizeMovie
  • ImagingStereoDemo.mを参考に

日本視覚学会2013年夏季大会

slide44

導入(インストール)

日本視覚学会2013年夏季大会

slide45
必要な環境
  • OS: Windows, Mac, Linux
    • Window:時間精度などに制約
    • Mac: 複数ディスプレイの場合などに、提示のタイミングに問題
    • Linux: 開発のベース
  • 動作環境:MATLAB, Octave
    • OSとの相性(WindowsではMATLABのみサポート)

日本視覚学会2013年夏季大会

slide46
インストールについて
  • 公式サイトや、上述の日本語サイトに親切なインストラクション
    • 日本語サイトには、非推奨環境へのインストールの例もあり、大変参考になる。
  • 動画関係(再生・録画など)の機能については、GStreamerなどが必要になることも。

日本視覚学会2013年夏季大会

slide47

ご清聴有り難うございました。

日本視覚学会2013年夏季大会