블로그 이미지
이제는 꿈을 꿀 시기다. 내 앞에 펼쳐질 새로운 세상을 위해 차근차근 준비하자. 그것이 내가 가야할 길이다. la pizza

카테고리

분류 전체보기 (311)
diary (92)
good things (45)
info (108)
photos (21)
study (16)
Logos (29)
Total3,032
Today3
Yesterday21

'study'에 해당되는 글 16건

  1. 2007/06/01 Brain Flattening 1
  2. 2007/03/12 3월 3째주 실험일지 (1)
  3. 2007/02/28 disparity acuity와 psychophysical threhsold estimating의 관계 (3)

Brain Flattening 1

study / 2007/06/01 16:34
<Volume Image의 dimension을 변경할 필요가 있을 때>

original article : http://www.cns.nyu.edu/~jonas/doc/SurfRelax-HOWTO-4.html

Changing image orientation

It is very important that the input image is in the correct orientation. To check this, once the file is in Analyze format, inspect the image in VolumeViewer. In horizontal view, the front of the brain should be upward, the back downward, true left should be rightward and true right leftward (radiological convention). Sagittal view should display the front of the head leftward, back rightward, top upward, and bottom downward. Coronal view similary for up and down, and again in radiological convention (left shown on right, right shown on left). If your data does not look ok, you need to reorder/reorient the image. To do this, use the program  imageconv with the -swapdim option. Suppose your image is in the correct orientation, but flipped left-right. The syntax for flipping would be:

$> imageconv -swapdim "-1 2 3" input.img output.img

The argument to swapdim is a vector that defines how the dimensions (axes) of the image should be rearranged, relative to the original; 1 means the fastest changing dimension, 2, the next fastest etc. A negative number means that dimension should be reversed. E.g. if your image is oriented such that x and z are exchanged (i.e. in VolumeViewer you see axial slices in Sagittal view, and sagittal slices in Horizontal view), then you would write

$> imageconv -swapdim "3 2 1" input.img output.img

meaning swap dimensions 1 (=x) and 3 (=z).

Once your data is in the correct format and orientation, you're ready to start. The following tutorial uses the sample data set provided in the $TFIDIR/examples directory. The sample data set consists of an input MR image (sample.img) and the results of running a full analysis of this brain (surface extraction, inflation, cutting and flattening). By running the tutorial on this data set you can compare your intermediate and final results against the sample data to make sure that you are doing things correctly - if you are, the results should be identical.

To run the tutorial, move into an empty directory and copy the sample input MR image (sample.img and sample.hdr) into this directory. Don't run the tutorial inside the examples directory, as doing so will overwrite the sample data set.

NB. Always run SurfRelax from within the directory where you want the output results. It is also advisable to store the input files in the same directory.

Start by opening the sample image (a T1 weighted MPRAGE, acquired on a Siemens Allegra 3T scanner) in VolumeViewer:




1. mprage 2개를 만든 다음에 averageAnalyze.m 를 이용해서 하나의 mprage파일로 만들어본다.
        -이 때 command는 command_Set.m에 적혀있다.
2. 이때 완성된 파일은 average_mprage2regTo1.*가 된다.
3. volumeViewer를 이용해서 노이즈를 한번 본다.
        - evalNoise.m을 실행, 2개를 실행하는게 원래 프로그램인데, 처음에는 노이즈 range만 설정하는 것이기 때문에 average한 data만 사용하도록 프로그램을 수정한다.
        - 이렇게 해서 noise값을 보면 상당히 높게 나온다. 이것은 brain image가 없는 slice가 포함되어서 그러는 것이므로 이런 slice를 제거할 필요가 있다. 이것은 VolumeViewer에서 3가지 축으로 각각 이미지를 보면서 brain image가 없는 slice번호를 알아낸 다음에 다시 First_evalNoise에서 범위를 설정해준후 Noise값을 얻어 낸다.
        - 그러면 그래프가 뜨는데, 거기에 나오는 data에서 노이즈 값이 나오면 그걸로 surfRelax에 넣어서 preprocessing을 한다.        
        
4. surfRelax의 preprocessing을 선택하고, 위에서 구한 노이즈 값을 입력, verbose, wiener filter를 설정.
        - evalnoise 프로그램을 이용해서 이전 이미지와 preprocessing한 이미지를 비교해 본다.
        - 비교해서 노이즈 level을 비교해본다.

5. extract-&gt; interactive로 가서 preprocessing 이미지 선택, output은 _ni를 붙인다.
6. 요나스 홈페이지 메뉴얼을 보면서 low threshold white matter 를 정해야 한다.

7. volume viewer에서 pp.img를 선택한 후, overlay/new overlay from image를 선택후, overlay min/max를 설정해야 한다.

8. omin을 대충 설정하고 보는데, 이때 Goodies를 이용해 connected component connectivity / 6 connectivity를 선택후 , white matter의 center를 마우스로 눌러서 label connected component를 실행하면 빨간색으로 연결된 부분이 선택된다. 이것은 white matter라고 선택된 부분 중에 연결된 부분을 선택해서 보여주는 것인데, 이 값이 작으면 바깥쪽에 있는 skull이 빨간색으로 선택된다.
따라서 두개골이 빨간색으로 선택되지 않으면서 white matter만 선택하는 omin/ omax를 선택하면 된다.
우선 min을 찾고, 그걸 고정시킨 다음에 max를 잡아본다. min은 낮고, max는 높을 수록 좋다. 대신 가능하면 max값이 외부의 skull을 포함하지 않고, 내부에 구멍이 생기지 않는 정도의 max값을 찾는 것이 좋다.
이렇게 해서 omin/omax를 찾은 후에는 max 값을 찾아야 하는데, 이럴 경우 유용한 것은 원래 이미지에서 make histogram을 이용해서 우측에 나타나는 white matter 분포의 끝 부분 값을 찾아서 그걸로 결정하는 것이 좋다.

9. 이렇게 발견한 omax/omin을 normalize Intensity의 white matter의 low/high값에 넣어준다. 이때 save correction field image를 지정해준다. intermediate file도 save해준다.

<span style="color: #ff0003">이번에 가천의대에서 했던 실험에서 내 brain의 value는 omin=488, omax=740 이었다.</span>

10. normalize intensity를 한 후에는 skull을 없애야 한다. 이때, 모든 값은 default로 둔 다음에 각각의 파일을 지정해주고 실행하면 된다.
        - 내 brain같은 경우에는 default값으로 두고 strip skull을 했을 경우에는 skull이 제대로 제거되지 않는 경우가 발생했다. 이것은 inhomogeneity때문에 그런 것인데, 이때는 wrap value를 올려주면 된다. (default값은 40.xx) 적절한 값은 skull과 eye가 제거되는 값이다. trial & error로 찾아야 한다.
        - 일단은 60으로 하니 eye부분이 거의 사라졌다. 그렇지만 brain부분도 좀 사라졌다.
11.
Posted by 빨간용 la pizza

3월 3째주 실험일지

study / 2007/03/12 10:05
<3/12>
1. YKS red/green calibration
- red/green ratio : 0.325 - 전반적으로는 depth를 그런대로 잘 보는 것 같다. 그렇지만 depth에 대한 acuity가 떨어진다. 이건 naive라서 그럴 수도 있고, 실제로 못 보는 것일수도 있다.
- 좀 더 봐야 알겠지만, 실험을 진행해도 좋을 것 같다.

2. 손박사님 low cont. before adaptation 1st session
- 이상하게 ceiling에 도달하는 disparity가 있다. 이전 시행에서는 상당히 잘 했던 disparity이고, 가장 잘 보는 disparity인데도 90%의 correlation도 plane으로 반응하지 못하신다.

3. SHP contrast calibration 결과
- 대충 적절한 형태로 반응한 것 같다. contrast 분석을 해서 low/high contrast를 결정해야 할 것 같다.

4. SYK red/green calibration
- 오른쪽 눈의 eye dominance가 너무 강하다. 그리고 양쪽눈의 시력차이가 너무 많이 난다. 때문에 이 피험자는 사용하기 힘들 것 같다.

5. JYK red/green calibration
- red/green calibration만 했다. depth perception test를 내일 하기로 했다.

6. YIJ contrast calibration
- far는 그나마 적절한 형태로 나오는 것 같지만, near의 경우에는 이상한 형태로 나타난다. 따라서 contrast calibration을 1번 더 해야 할 것 같다. 시행전에 연습시행을 넣어야 할 것 같다. 연습시행은 본 calibration동안에 제시될 자극의 대표적인 것을 한번씩 보여주고, 연습시행을 해서 feedback을 주는 형태로 해야 할 것 같다.
Posted by 빨간용 la pizza
1. 피험자간에 disparity acuity가 너무 차이가 난다.

사용자 삽입 이미지

x축은 실제로 제시한 disparity이고, y축은 피험자가 실제 경험한 depth를 pixel단위로 표현하게 한 값들의 평균이다. 붉은 수직선은 STD를 나타낸다.


위의 그래프를 보면 SIK가 depth perception이 가장 정확하고, 또 가장 넓은 범위의 disparity range를 보는 것을 알 수 있다.

WYS도 depth를 생생하게 경험하는 편이기는 하지만, depth 경험 자체가 정확하지 못하다. 0 disparity에서 약간 far쪽으로는 정확하게 depth를 경험하지만 그 이후는 부정확하다.

JSS는 전반적으로 depth를 구분하기는 하지만, 구분하는 depth의 vividness가 약한 편이다.
(기울기가 급격할 수록 depth를 경험하는 vividness가 강하다고 볼 수 있다.)

KIC, SHP는 겨우 near/far를 구분하는 정도의 depth perception을 가지고 있다. 이런 이유로 KIC는 피험자로 적당하지 않을 것 같다. SHP와 JSS는 연습후에 본 실험 피험자로 활동할 예정..

2. WYS의 경우 history 그래프를 한번 보자.

 위의 그래프에 첨부된 설명을 보면, dot의 갯수와 크기를 바꿔도, WYS는 plain을 지각하는데 곤란을 느끼고 있다는 것을 알 수 있다. 그러나 처음에 제시했던 depth perception에 관한 그래프를 보면 depth 경험을 못하는 것은 아니다.

그렇다면 뭐가 문제일까?
depth perception에 관한 그래프를 얻기 위해서 시행했던 실험에 사용된 자극은 bar자극이었고, 이것은 단순히 그 bar가 얼마나 초점에서 떠 있는지를 판단하면 되는 과제였다. 따라서 다른 자극과 비교하고, 차이점을 찾을 필요가 없었던 것이다.

그렇지만 실제 실험에서는 2AFC 과제였기 때문에, 2 interval중에 inforamtion을 가지고 있는 interval을 선택해야 한다. 이때 제시되는 자극은 RDS였다. 그리고 제시되는 control 조건으로 제시되는 cloud자극은 실험에서 제시되는 모든 disparity range에 중복되는 disparity를 가지지 않도록 흩트려놓은 dot 자극이다.

WYS의 경우에는 disparity acuity가 좋은 편이 아니기 때문에, cloud자극을 내가 의도했던 것과는 다르게 볼 가능성이 생기게 되는 것 같다.
일단 disparity acuity가 좋지 않기 때문에, cloud자극에 나타나는 각 dot들의 disparity를 제대로 구분하지 못한다. 따라서 몇개의 dot들은 같은 평면에 존재하는 것처럼 느끼게 되는 것이다.

게다가 test자극이 제시되는 시간은 500ms로 길지만, 중간에 이미지가 random하게 1번 바뀐다. 즉, 하나의 이미지는 250ms만 제시되는 것이다. 이럴 경우에는 dot의 matching을 제대로 구성하기도 전에 이미지가 바뀌어 버리기 때문에 판단을 하지 못하는 상황이 발생하는 것 같다.

<앞으로 해봐야 할 작업>

1. staircase method를 사용할 때 중간 level에서 시작하는 것으로 실험을 진행해왔는데, 이제부터는 바꿔서 최고 level 20번째부터 시작해서 level을 내려오는 방식으로 바꿔봐야 할 것 같다. (이럴 경우에는 disparity threshold를 과대추정할 가능성이 있다. 이렇게 하면, 아무래도 bottom up 방식으로도 다시 해서 2가지 threshold를 다 고려해야 할 것 같다.)
- 근데, 아무리 data를 봐도 이 문제는 아닌 것 같다. 실험 방법보다는 피험자와 자극의 문제인 것 같다.

2. Disparity range를 바꿔서 해본다.
- 이것은 좀 조심스러운게, 피험자마다 제일 잘 볼 수 있는 disparity range를 맞춰서 하게 되면, 우선 피험자 간의 공통적인 disparity range가 나타나지 않기 때문에 나중에 modeling을 하는데 문제가 생길 수 있다.
게다가 disparity range를 줄여서 한다 하더라도 disparity acuity가 작다면 tester로 제시되는 disparity 간의 차이를 구분하지 못할 가능성이 있다. 그렇게 되면 결국 실험을 한다 하더라도 이상한 결과가 나올 수 있다.

Posted by 빨간용 la pizza

최근에 달린 댓글

최근에 받은 트랙백

글 보관함