ImagineCUP2008을 준비하며선 StereoVision 기술이 사용되기때문에 제작해본 StereoVision Sample이미지
기존의 StereoVision 라이브러리나 영상처리 알고리즘을 사용하지 않고
머리속에서 떠오르는데로 구현해본거라 속도면이나 정화도 면에서 많이 보정해야할것들이 많다.
먼저 3*3 블럭 단위로 영역의 Energy 를 측정하고 수평상에 위치한 동일한 에너지를 갖는 영역을 찾는다.
속도는 한개의 스레드를 사용해서 640 * 480영상에서 8초정도 나왔는데,
모든픽셀에 을 3*3에 대한 계산을 할뿐더러 이것저것 다 계산을 해야함으로 속도는 GG 너무느리다.
두번째

아직 테스트는 안해봣지만 속도가 이전것과 달리 매우빠르다.
하나의 x좌표를 수평으로 스캔하여 얻어지는 histogram을 이용하여 매칭에 사용한다.
위 그림에서 빨간색 영역이 Left Image고, 회색 부분이 Right이미지다.
그리고 파란색 부분은 빨간색 부분과 회색 부분을 처리하여 얻어 보정한 결과로
만족할 만한 수준의 결과를 보여줫다.
속도또한 만족스러운데 한번의 스캔시간이 2밀리 세컨드 정도이다.
멀티스레드로 연산을 한다고 할때 계산해보면
2밀리세컨드 * 512 = 1초 라는 계산이 나오는데.
멀티스레드를 사용하면 대략 초당 2~3프레임정도는 충분히 나올 수 있는 속도다.
여기다 컬러 영상을 사용하지 않고 Gray영상을 사용한다면 속도는 3배더 빨라질것으로 예상된다.

바로 위에서 말한 히스토그램을 사용한 스테레오 매칭 방법을 사용하여 구현해보았다.
처음 영역단위로 구현했을때보다 개선이 된것을 볼수 있다.
속도 또한 예상했었던 1초 보다 더빠른 500ms의 속도가 나왔다.
후보정 작업을 거쳐 좀더 수정해 보아야겟당~
앞서 말햇듯이 기존의 알고리즘이나 라이브러리 등을 사용하지 않고 생각나는대로 해보고 있는거라
정확도나 속도면에서 얼마나 좋고 얼마나 안좋은지는 감이 잘 오질 않지만,
지금 되고 있는 수준이라면 우리 프로젝트에 적용을 시켜도 무방할것 같다는 생각을 해본다.

여자친구의 도움으로 구현해본것
음 똑똑한녀석... 근데 속도가 넘느리다.
잡음은 상당히 개선되엇지만 대략 3~4초정도가 걸린다.
스레드를 여러개 사용하게 되더라도 대략 초당 1frame 정도..
코드 최적화 작업이랑 이래저래 좀더하면 쓸모가 있을 수도잇겟다.
더 괴롭혀서 더 좋은식을 알아내야지... ㅋㅋㅋ
코드를 최적화 하고 영상을 후보정했다.
집에서 사용하는 모니터가 LCD라서 위에 그림들의 밝기가 구별이 됬었는데..
멤버십에 CRT로 보니까 전혀 구별이 안된다.. -_-ㅋㅋ
그래서 좀더 알아보기 쉽게 색에 강조를 넣엇다.
속도가 800ms 로 많이 개선되었다.
아직 이래도 보정할게 많이 남아 있으므로.. 더 파봐야겟다..
이번엔 멀티스레드를 적용하여 실제 속도가 어느정도 나오는지를 알아보겟음
추가로 개발에는 Visual Studio 2008을 사용했고, .Net Framework 3.5에서 개발되었다.
사용 OS는 Windows Vista Enterprise..
기존의 StereoVision 라이브러리나 영상처리 알고리즘을 사용하지 않고
머리속에서 떠오르는데로 구현해본거라 속도면이나 정화도 면에서 많이 보정해야할것들이 많다.
속도는 한개의 스레드를 사용해서 640 * 480영상에서 8초정도 나왔는데,
모든픽셀에 을 3*3에 대한 계산을 할뿐더러 이것저것 다 계산을 해야함으로 속도는 GG 너무느리다.
두번째
아직 테스트는 안해봣지만 속도가 이전것과 달리 매우빠르다.
하나의 x좌표를 수평으로 스캔하여 얻어지는 histogram을 이용하여 매칭에 사용한다.
위 그림에서 빨간색 영역이 Left Image고, 회색 부분이 Right이미지다.
그리고 파란색 부분은 빨간색 부분과 회색 부분을 처리하여 얻어 보정한 결과로
만족할 만한 수준의 결과를 보여줫다.
속도또한 만족스러운데 한번의 스캔시간이 2밀리 세컨드 정도이다.
멀티스레드로 연산을 한다고 할때 계산해보면
2밀리세컨드 * 512 = 1초 라는 계산이 나오는데.
멀티스레드를 사용하면 대략 초당 2~3프레임정도는 충분히 나올 수 있는 속도다.
여기다 컬러 영상을 사용하지 않고 Gray영상을 사용한다면 속도는 3배더 빨라질것으로 예상된다.
바로 위에서 말한 히스토그램을 사용한 스테레오 매칭 방법을 사용하여 구현해보았다.
처음 영역단위로 구현했을때보다 개선이 된것을 볼수 있다.
속도 또한 예상했었던 1초 보다 더빠른 500ms의 속도가 나왔다.
후보정 작업을 거쳐 좀더 수정해 보아야겟당~
앞서 말햇듯이 기존의 알고리즘이나 라이브러리 등을 사용하지 않고 생각나는대로 해보고 있는거라
정확도나 속도면에서 얼마나 좋고 얼마나 안좋은지는 감이 잘 오질 않지만,
지금 되고 있는 수준이라면 우리 프로젝트에 적용을 시켜도 무방할것 같다는 생각을 해본다.
여자친구의 도움으로 구현해본것
음 똑똑한녀석... 근데 속도가 넘느리다.
잡음은 상당히 개선되엇지만 대략 3~4초정도가 걸린다.
스레드를 여러개 사용하게 되더라도 대략 초당 1frame 정도..
코드 최적화 작업이랑 이래저래 좀더하면 쓸모가 있을 수도잇겟다.
더 괴롭혀서 더 좋은식을 알아내야지... ㅋㅋㅋ
집에서 사용하는 모니터가 LCD라서 위에 그림들의 밝기가 구별이 됬었는데..
멤버십에 CRT로 보니까 전혀 구별이 안된다.. -_-ㅋㅋ
그래서 좀더 알아보기 쉽게 색에 강조를 넣엇다.
속도가 800ms 로 많이 개선되었다.
아직 이래도 보정할게 많이 남아 있으므로.. 더 파봐야겟다..
이번엔 멀티스레드를 적용하여 실제 속도가 어느정도 나오는지를 알아보겟음
추가로 개발에는 Visual Studio 2008을 사용했고, .Net Framework 3.5에서 개발되었다.
사용 OS는 Windows Vista Enterprise..

