Workspace2010/02/04 11:04


안녕하세요. 김대욱입니다. 새롭게 선보인 VisualStudio 2010과 WPF 4.0에 대한 내용을 다룬 WebCast가 새로 등록되었습니다 ^^
위 그림을 클릭하시거나, 아래 주소를 통해 확인하실 수 있습니다.
세션보러가기 : http://www.techdays.co.kr/visualstudio2010/

WPF 4.0에서 새로 추가된 기능들에 대해 소개하고, WPF4.0을 이용한 Windows7용 Application개발과 관련된 데모가 포함되어있습니다 ^^ 많은관심 부탁드려요!
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2009/06/23 18:40

안녕하세요. 김대욱입니다. 데브피아에서 WPF와 UX구현이라는 주제로 7월 11일 한국마이크로소프트 교육장에서 세미나를 진행하게 되었습니다. 관심있으신 분들의 많은 참석 부탁드리겠습니다 ~! 자세한 내용은 아래를 참고해주세용 ~~~~





저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2009/01/09 20:06

이번시간에는 멤버십(삼성소프트웨어멤버십, 저는 수원멤버십소속입니다.)에서 창의과제로 진행중인 FTIR방식의 Virtual Surface System에서 사용하고있는 Point Calibration방법에 대해서 소개하려고합니다. Point Calibration은 Multi Touch뿐만아니라 일반적인 Touh Screen에서 발생할수 있는 좌표 오류를 해결하기 위해서 꼭 필요한 기능이라 할 수 있습니다.

대부분의 Touch Screen은 LCD 부분과 Touch를 감지하는 Touch Panel부분으로 나누어 져 있기 때문에, 물리적 또는 시스템적(해상도 등)의 영향으로 좌표가 정확하게 매칭되지 않습니다. 이와 같은 상황에서 발생하는 물리적 오류는 아래 그림과 LCD 와 Touch Panel간의 움직임으로 인한 Moving Error와 회전에 의한 Rotation Error가 발생 할 수 있습니다.

[ Mechanical misalignments (Calibration in touch-screen Systems : Wendy Fang,Tony Chang) ]

Moving Error와 Rotation Error는 위 그림에서 그려져 있듯이 간단한 수식만으로 해결이 가능하지만, 문제는 여기서 끝나는게 아닙니다. Touch Panel은 LCD와 별개로 동작하기 때문에 특정 해상도에 구애받지않고 Touch Panel자체의 상대적 좌표를 제공합니다. 이또한 간단한 비례식을 사용하여 해결 할 수 있습니다.

그렇다면 문제는 무엇일까요, 우리가 사용하는 FTIR방식에 집중해야합니다. FTIR방식은 별도의 Touch Panel부를 두지 않고 카메라로 부터 입력받는 영상을 처리하여 Touch를 감지하기 때문에 아래와 같은 영상을 얻게됩니다.


카메라와 스크린까지의 거리가 있기 때문에 카메라로 부터 입력되는 영역이 정확하게 스크린에 매칭되지 않을 뿐만아니라 카메라 렌즈에 의한 외곡현상까지 발생하게 됩니다. 이러한 외곡현상은 단순히 Moving Error와 Rotation Error로는 해결할 수 없기 때문에 별도의 Calibration Algorithm이 필요합니다.

방법이야 여러가지가 있겠지만 이번 포스팅에서는 Distance Weight를 기반으로한 Calibration Alogiritm에 대해 소개하도록 하겠습니다. Distance Weight Calibration Algorithm은 구현이 쉬우면서도 결과도 어느정도 신뢰 할 수 있기때문에 FTIR방식의 Open Source Touch Screen Engine에서도 자주 사용하는 방법이기도합니다.

다음시간에는 Distance Weight Calibration Algorithm의 실제 구현 방법과 활용에 대해 소개하도록 하겠습니다.
궁금하신 점이나 문의는 메일또는 리플로 남겨주세요.



크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/07/18 00:11
사용자 삽입 이미지

처음 계획대로라면 Open Window를 따로 사용해서 구현할 계획이엿지만, 검색 기능 이외에 추가로 필요한 몇가지 기능을 제공하기 위해서 Client Page에 Database검색과 관련된 UI를 집어 넣기로 결정했습니다.

악덕PL님(아 이젠 얼짱 PL이라고 불러달라더군요,) 에게 이런건 어때요? 하고 보여줫는데 왠일인지 괜찮다는 반응을 보였습니다 +_+ ㅋ 끼아오 이제 그럼 디자이너에서 개발자로 점프 할시간!

사용자 삽입 이미지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/07/11 23:47

멤버십내에서 사용할 도서 관리 프로그램을 간단하게 구현해보았습니다.
시작은 '벌당직 면제 20일' 이라는 엄청난 조건을 가지고 시작했는데,
하다보니 새롭게 발견하는 점도 있었고, 유익한 시간이였던거 같습니다.

디자인 & 구현까지 총 이틀정도 소요 된거 같은데, 졸면서 코딩한부분도 상당해서..
간간히 수정해야할 버그들이 보이네요 ㅠ_ㅠ 개발은 WPF와 C#을 사용해서 했습니다~

기능이라고 하면 간단히 도서 목록조회, 대출, 반납, 구매신청등의 기능이 있습니다.
(간단하지만, 바코드 기능도 포함되어있습니다~)

이름을 뭘로 짓지 하다가 언제나 그랫듯이 '단어 나열' 로 끝내버렸습니다 .-_-
약자로 하면 SWSSM LMS인데, 누군가는 SWSSM 이무송이라고 하더군요.. ㅋㅋ

소스코드는 코드가 조금더 정리되는데로 올려놓도록 하겠습니다~
(그전에 필요하신분은 메일 & 리플 달아주시면 보내드리도록 하겠습니다.)

사용자 삽입 이미지
사용자 삽입 이미지

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/07/06 23:47
사용자 삽입 이미지

음 몇일간 포스팅을 안했더니 몸이 근질근질 하기도 하고 처음 계획 했던데로 하루에 하나씩 올리자라는 다짐을 어겻더니 마음도 편치 않고해서 현재 작업중인 Application UI를 공개합니다.

삼성소프트웨어멤버십에서 창의과제로 진행중인 ARTS라는 Application으로, 기존의 CT영상을 3차원으로 재구성하는 기능을 가지고있는 Application입니다.

계획 대로라면 다음번 포스팅은 XAML Layout에 관련된 내용이여야 하지만, 앞으로 ARTS 프로젝트 관련 포스팅이 잦아질거같네요. 이 프로젝트가 WPF로 구현할 계획이라 약간 진도가 않맞긴 하지만, 진행과정을 상세히 포스팅 하도록 하겠습니다.

XAML Layout 부분에 대한 내용은 시간이 되는데로 포스팅 하겠으며, 진행 과정에서 틈틈이 WPF활용에 대한 내용을 다룰 예정이니 많은 관심 부탁드리겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
TAG arts, SSM, WPF, XAML
Workspace2008/06/29 03:54

얼마전에 올렸던 ART Project Design Prototype이다... 흰색 시안이 처음 만들었던 시안이고,
검정색은 악덕 PL의 초특급 갈굼(병들어 보인다 햇던가...)때문에 바꾼 시안이다.
나는 나 나름대로 흰색에 만족하고 있었는데, 바꾸고 보니까 검정색이 괜찮은거 같기도 하다.

여러 분의 생각은 어떤가?

사용자 삽입 이미지사용자 삽입 이미지



클릭하면 커다란 이미지를 확인 하실 수 있습니다. //

의견은 리플로!!
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/06/28 15:51

사용자 삽입 이미지
 
지금 삼성소프트웨어멤버십에서 진행중인 ART프로젝트 디자인 시안이다.
지금까지 보통 프로젝트 시작하면 엔진부분을 담당햇는데 이번 프로젝트에서는 UI부분을 대부분 담당하게된다.
Photoshop CS3를 사용하여 작업하였으며, 조만간 팀원들이 OK한다면 WPF로 작업 시작할 예정이다.

프로젝트에 대해 간단히 소개하자면, 많은사람들이 X-Ray는 알고있을것이다.
뭐 물론 CT또한 이름은 모두 들어봤을테고.. 3D Max도 알고잇을테다.

간단히 설명하면 위에서 언급한것들을 Mix 하는것과 같다.

X-Ray를 통해 촬영한 여러장의 투영영상을 조합하여 CT영상을 만들고 CT영상 여러장을 조합하여,
3차원 영상으로 변환하고, 이를 활용하는 Application이다.

프로젝트에 대한 진행상황이나 프로젝트를 진행하면서 얻어낸 Tip 등은 블로그를 통해 올릴 생각이다.

자 이제부터 ㄱㄱ 싱~!!1

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/01/30 15:03

이전 글에 앞서 계속 해서 StereoMatching 구현에 대한 그을 작성하겠다.
앞글에서 작성한 Block 단위 Matching 은 속도대비 성능이 좋지 않아 방법을 바꿔보기로했다.


사용자 삽입 이미지

히스토그램을 사용한 방법인데. 두개의 영상을 똑같은 X축으로 스캔하여 영상의 히스토그램을 구한다.
그다음 영역차이가 크게나는 구간을 나눈다. (빨간색선이 구분된 부분)

이후 구분된 영역단위로 비교를 하는데,
첫째로 너무 멀리 떨어져 있거나 영역의 크기가 많이 차이날경우 무시한다.

에너지가 가장 유사한 구간을 찾아서 차이 거리를 계산하면된다.

사용자 삽입 이미지

실행하면 다음과 같은 같다.
기존 내용과 가장 다른점이라면 엄청난 속도차이인데
256 * 256 사이즈 처리하는데 800ms걸렷던 이전 버전과 달리 20ms면 충분하다.

추가 보정 작업을 한다 하더라도 100ms 내외로 처리가 가능할것 같으니 실시간처리또한 가능하다.


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스
Workspace2008/01/28 05:54
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..
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스