HD영상 실시간 스테레오 정합

학술 2011. 3. 25. 10:58 Posted by 양고


결과는 구리지만 일단 나온다는 게 중요함! ㅋㅋ
Panasonic 3D camera + Nvidia Quadro SDI capture card + Cg

SDI capture 예제와 이전에 만들었던 Cg 스테레오 프로그램을 조합하는 과정에서 꽤 심각한 문제가 발생해서 포기하고 CUDA로 넘어갈까 했지만 어찌어찌 해서 구현할 수 있었다.

1. cgGLSetTextureParameter가 먹통.
이 문제는 SDI 예제에서 GL_TEXTURE_RETANGLE_NV를 사용하는데 반해 내 fragment program에서는 CG_TEXTURE_2D를 가정하고 있었기 때문으로 밝혀졌다.
(포기하고 CUDA로 넘어가기 직전 전상의 결정적 어시스트 ㅎㅎ)
타입이 맞지 않으면 아예 SetTexture 자체가 되지 않는다는 사실... 잘 기억해두자.
Nvidia Cg 포럼에도 올렸지만.. 결국 자문자답.
http://developer.nvidia.com/forums/index.php?showtopic=6006&st=0&gopid=18745&#entry18745

2. vertex program의 disparity 매개변수를 설정하는 것이 또 먹통.
이것도 어제밤 포기하고 퇴근하기 직전 시도해 본 것이 겨우 성공했다.
결론적으로 vertex program의 disparity 매개변수에 'uniform'이 붙어있기 때문이었다. disparity는 varying 변수이기 때문에 떼는 것이 맞는 듯.
그렇다면 예전에 구현한 GpuStereo는 어떻게 잘 작동하는 것일까? --> 이거슨 여전히 미스테리...
달라진 점이라면 예전 GpuStereo에서 disparity는 0~1 사이의 texture 좌표에 맞게 normalize된 값이고, 새 버전에서는 픽셀 단위 (예: 0~30) 이다.

future work는... 일단 SDI 출력을 해볼 생각!
그 다음은 물론 알고리듬 개선.


[2011.3.28] 에또 오늘은 SAD에 filter weight를 붙여 보았다! 이 길을 먼저 개척하신 루이강 양 선생께서 Mipmap을 쓰는 것은 weighted filter와 equivalent하다고 말씀하셨기에...

 

precision은 모르겠지만 큰 윈도를 사용함으로써 accuracy는 확실히 나아졌다. WinSize=37

disparity map 속의 그녀는 누구일까요? 김현정이다.
VCR 영상에서만 DP처럼 streaking effect가 생기는데, 왜인지는 모르겠다는..