반응형

Multiple View Geometry in Computer Vision
Richard Hartley| Cambridge University Press| 2004.02.01 | 672p | ISBN : 0521540518

사용자 삽입 이미지


비젼책 중에서 어떤 책이 가장 좋아요?
라고 물었을 때 건내줄 수 있는 책이 바로 이 책인것 같다.

다 읽어봤냐고? 아니 ㅡㅡ;;

근데 어케 아냐고? 뭐든 궁금할때 찾으면 다 있다.
관련 논문을 읽을때 항상 레퍼런스 된다.
그리고... 이미 거쳐간 선배들 모두가... 이 책을 권한다.

바로 그런 책인 것 같다.
모두가 인정하는 그런 책...

사실.. 난이도는 최상급인거 같다.
워낙 유명한 책이기에 각 챕터별로 요약한 PT들도 많다.
그래서인지 엉망진창인 것도 많다.

한마디로 표현해서 제대로 이해하기가 어렵다.
물론 이해가 안되거나 그런 정도는 아니다.
다만 기본적인 이해가 바탕된 상태에서 읽으면 즐겁게 읽을만 한 것 같다.
그런게 아니라면... 좌절을 수백번 경험하지 싶다.

뭐? 쉽더라고?
그래 그런 사람이 있다. 정말 똑똑하고 독해력이 좋은 사람...
그런 사람도 있다. 모르는데 안다고 착각하는 사람...
잘못 이해하고 쉽다고 하는 건 아닐까? 전자인지 후자인지 확인하는 방법은...
그걸 풀어서 쉽게 설명할 수 있고... 프로그램으로 나타낼 수 있다면... 전자인 것이고..
그렇지 않다면 후자인 것이겠지...

어쨌든.. 좋은 책인건 확실하다..
비젼을 공부한다면 곁에 꼭두고 봐야할 첫번째 서적인 듯 하다.


written by chamcham



반응형
반응형

Emerging Topics in Computer Vision
Gerard Medioni, Sing Bing Kang| Prentice Hall PTR| 2004.03.01 | 656p | ISBN : 0131013661


사용자 삽입 이미지


무엇이든 새롭게 공부할때마다...
난 책을 중요시 여긴다...
책을 읽으면 기초적인 내용이해도 잘되고, 새로운 아이디어를 떠올리기도 쉽고..
무엇보다... 잠이 잘온다. ㅡㅡ;;
어쨌든.. 매번 좋아하는 책이 생긴다.
유닉스 프로그래밍은 Advanced Programming........ 이.. 유명하고...
그래픽스에선 Gems 시리즈나 Real-time rendering... 등등..
OpenGL은 빨간책, 파란책..
등등....

비젼에서도 이러한 책이 있다.
바로바로... Multiple View Geometry ㅡㅡ;;;

제목이랑 다르다고? 당연히.. 지금 소개할 책은 그런책들만큼 유명한 책이 아니니까. ㅡㅡ;;
그냥.. 이건 내가 개인적으로 좋아하는 책...
물론 궁금한 부분만 찾아서 보긴 하지만.. 비교적 쉬운 설명의 문체와...
무엇보다... DVD 동영상 강좌가 제공된다는 사실.. ㄷㄷ

여기에.. 무엇이 있느냐... 바로바로...
Zhang의... Calibration 동영상 강좌가 들어있다.
40분짜리 강좌가... ㄷㄷ

난 여기서 Zhang을 처음 봤다. 그렇게 유명한 사람을 보니.. 감회가.. 새롭더라는...
보면서.. 든 생각은....
아.. 영어공부 좀 열심히 하자. 라는 ㅡㅡ;;

어쨌든.. 개인적으로 좋아하는 비젼책..
비젼 전반적인 지식을 다루고 있고, 비교적 적긴 하지만 OpenCV  라이브러리의 사용법에 대한 간단한 설명도 추가되어 있다.



written by chamcham


반응형
반응형
Computer Vision Homepage
http://www.cs.cmu.edu/~cil/vision.html


컴퓨터 비젼의 모든 것이 있는 곳이다.
Carnegie Mellon University 대학에 있는 비젼 홈페이지다.

자신이 하는 일이 이미지 프로세싱이든 정통 비젼이든 가상현실이든... 로봇비젼? HCI?
뭐든 관계없다. 당신이 원하는 관련지식 모두를 찾을 수 있을 것이다.
아마도...

비젼을 시작한다면 가장 먼저 확인해야 할 페이지라고 한다.
백문이 불여일견...

가서 보고 직접 느껴보시길..



written by chamcham



반응형
반응형

Introductory Techniques for 3-D Computer Vision
Emanuele Trucco, Alessandro Verri| Prentice Hall| 1998.03.01 | 343p | ISBN : 0132611082

사용자 삽입 이미지

처음 비젼에 입문하는 사람에게 가장 좋은 부담없는 서적인듯 하다.
제대로 된 한글 비젼 책은 없기에 영문서적(이것도 그렇게 많지 않다)이나..
인터넷 자료에 의지하게 되는 것이 현실이다.

그런 중에 가장 쉽고 기본이 되는 책이 바로 이 책이다.
비젼에 필요한 간단한 이미지 프로세싱들에 대해서도 다루고 있다. 필요없으신 분들은..
뛰어넘고 비젼만 골라서 보셔도 무리가 없을 듯 하다.

쉽다 쉽하지만, 다른 비젼 서적에 비해서 비교적 쉽다는 뜻이지 정말 그 내용이 쉽다는 말은 아니다.

대부분의 컴퓨터 전공자들이 그렇듯이...
정규 교과 과정에서 배우는 오래된 기초학문..
자료구조나 알고리즘, 컴파일러, 시스템 구조론 등과 같은 분야들은..
연구된 시기도 오래되고 그에 따라 학문의 영역도 어느 정도 정립이 되어..
방대하기는 하지만 그래도 기초적인 부분을 알기 위해서 어떻게 공부해야되는지가 명확하다.
물론 그에 따른 자료들도 방대하다.

그러나 비젼은 그렇지 못하다.
다른 학문에 비해서 비교적 오래되지 못했고, 대부분 이미지 프로세싱의 파생 정도로만 알고 있는 듯하다. 하지만 비젼은 이미지 프로세싱과는 중복되는 부분도 있지만 기본적으로 엄격히 분리되어 있다. 연구가 이제 초기 단계에서 벗어나고 있기에 관련 서적들도 매우 적고...
하물며 초보자가 보기 쉽게 적어놓은 책은 찾아보기가 힘이든다.
더욱이.. 기초 학문으로 분류되지 않아서 학부시절에 접해보기는 꽤 힘이든다.
(그래도 깨어있는 학교에서는 학기중 한학기이상 편성해서 수업하는 학교도 꽤 있다)

이러한 이유로 자료를 구하는 것은 정말 힘이 든다.
그래서 아마 더 돋보이는 책이 바로 이 책인지도 모르겠다.

비젼의 기초를 충분히 쉽게 설명하고 있으며, 비젼의 주요 이슈들을 모두 다루고 있다.
처음 시작하는 모두에게 권하는 자료인듯 하다.
물론 영어로 되어 있어서 거부감이 들지도 모르겠다.
영어랑 안친한 나는 거부감이 들었다.
하지만, 급하면 보게 되더라는... 그리고 다른 책 보다가 이 책보면..
이 책은 구세주다.. 이 책이 어렵다고 느껴지면.. 다른 책 좀 보다가 다시 돌아와서 보길 바란다. 아마.. 절할지도 모르겠다.

물론 바쁜 대학원생활 중에 이걸 처음부터 읽고 있을 시간은 모두 없을 것으로 믿는다.
필요한 부분만 찾아서 읽어보길 권한다. 적다고 해지만... 그건 다른 분야의 책에 비해서 적다는 뜻이고... 그래도... 읽어야 할 건 많으니까..


written by chamcham


반응형
반응형

BLUI: Low-cost Localized Blowable User Interfaces


조지아 공대에서 이번에 동영상과 함께 발표한 논문 입니다.

Blowable interface란 건데...


노트북에 장착된 싱글 마이크로폰을 사용해서 모니터를 향해 사람이 부는 바람의 위치를 계산해서

그것을 인터페이스의  입력으로 사용합니다. 좋은 아이디어 같네요.

일전에 연구실 후배가 가져온 NDSL 게임에 바람을 부는 정도에 따라서 물체를 위로 이동시키는 게임이 있던데... 그거 보고 아이디어가 참 좋은 인터페이스의 게임이라고 생각했는데..


좀 더 발전된 형태의 연구가 발표되었네요.

아마도 이건 아래에 위치한 마이크로폰을 사용해서 user가 화면을 향해 부는 바람의 위치를 정확히

계산하는 것이.. 논문의 핵심이겠죠?

마이크로폰은 보통 키보드쪽이나 모니터 하단, 혹은 상단에 붙어있으니..

재밌어 보입니다. 우리도 재미난 연구를...



아래는 관련 논문의 링크와 abstract 입니다.

관심있는 분은 참조를..


ABSTRACT
We describe a unique form of hands-free interaction that can be implemented on most commodity computing platforms. Our approach supports blowing at a laptop or computer
screen to directly control certain interactive applications. Localization estimates are produced in real-time to determine where on the screen the person is blowing. Our
approach relies solely on a single microphone, such as those already embedded in a standard laptop or one placed near a computer monitor, which makes our approach very cost-effective and easy-to-deploy. We show example interaction techniques that leverage this approach.


논문링크 : http://www.shwetak.com/papers/uist07_blui.pdf



반응형
반응형

특허 출원 how-to


특허출원을 변리사에게 맡길 수도 있지만, 개인이 직접하는 것도 가능하다.

물론 맡기면 알 필요없겠지만, 그래도 조금은 알아두는게 좋을 거 같다.

모르면 어마게 돈만 날리지 않을까?


특허 출원 절차..


1. 선행기술조사

특허청, 특허전자도서관, 혹은 특허관련 사이트에서 무료로 특허 검색이 가능하다.

검색 후 동일한 주제에 대해서 이미 신청된 것이 있는지 조사하는 것이 필요하다.


2. 출원인코드부여신청

특허출원인의 코드를 받아야 한다. 그리고 향후 특허등록시 이 번호를 필히 기재해야한다고 한다.

http://www.kipo.go.kr/kpo2/user.tdf?a=user.kiporo.html.HtmlApp&c=3021&catmenu=apply0301

여기서 가능..


3. 출원서 작성

특허 출원서 서식에 맞춰서 명세서, 도면, 요약서, 특허출원서 순으로 작성한다.

서식은 역시 특허청에서..


4. 제출 서류 준비

출원서(요약서, 명세서, 도면) 1통, 수수료 감면대상인 경우 증명서류를 준비한다.


5. 접수 및 출원번호 통지서 수령

방문접수의 경우 대전에 있는 특허고객서비스센터나 특허청 서울 사무소에 직접 제출..

우편으로 접수하고자 할 경우 "대전 서구 둔산동 920 정부대전청사 특허청장, 302-701"로 보내면 된다.

온라인 접수의 경우 전자문서이용신고서를 제출하고 특허청 홈페이지에서 신청 가능.


6. 수수료 납부

수수료를 납부한다.

수수료 계산기를 이용해서 계산해보자.. 돈이 좀 든다. ㅡㅡ;;

http://kporc.kipo.go.kr:7073/jsp/ir/common/feeCalculation_M.jsp


7. 출원공개

출원된 서류는 18개월뒤 자동공개된다. 더 일찍 공개하고 싶으면 서류로 신청..


8. 심사청구 및 심사

삼사청구기간은 출원일로부터 5년이내, 결과는 통지서로 알려준다.


9. 등록료 납부

등록결정서와 함께 발급되는 납입고지서를 이용해서 등록료 납부..

우체국이나 은행에서 납부하면 되지만, www.giro.or.kr에서 온라인으로도 납부 가능..




추가 1. 특허청에서 제공하는 특허 모범명세서 샘플


http://www.kipo.go.kr/kpo2/user.tdf?a=user.html.HtmlApp&c=4036&catmenu=m04_04_03_01


추가 2. 특허청 출원신청가이드


http://www.kipo.go.kr/kpo2/user.tdf?a=user.html.HtmlApp&c=4031&catmenu=m04_04_01#03


추가 3. R&D 특허센터 (단순회사가 아니라 연구개발하시는 분들이라면.. 이쪽도 들러보시길..)


http://www.ipr-guide.org/




referenece : 특허청(www.kipo.go.kr)



written by chamcham

from knu vrlab.



반응형
반응형



 

Camera Calibration


영상과 실제 물체간의 관계를 나타내는 폼인 카메라 매트릭스를 얻는 일련의 작업.


카메라 파라미터는 내부 파라미터와 외부 파라미터로 구성된다.

내부 파라미터는 영상좌표와 카메라 좌표간의 관계를 의미하고, 외부 파라미터는 카메라 좌표와 월드좌표간의 관계를 의미한다.


그럼 월드좌표상의 한점과 영상좌표상의 한점의 관계를 알아보자.


이 둘간의 관계에 대한 수식은 다음과 같다.


Pi = K * E * Pw = K * [R|t] * Pw


이 수식에서 Pi는 영상좌표계에서의 한점을 의미하고, K는 내부파라미터, E는 외부파라미터, Pw는 월드좌표계상에서의 한점을 의미한다. 수식을 살펴보면 외부파라미터 E는 3x3의 Rotation 매트릭스와 3x1의 Translation Vector로 이루어짐을 알수 있다.


내부 파라미터 K는 focal length와 skew vector, optical center 등으로 이루어진다.

이것을 수식을 표현하면..


f * (xc/zc) = Sx * (Xi - Ox)

f * (yc/zc) = Sy * (Yi-Oy)


로 표현될 수 있다.


f는 focal length를 의미하고, (xc, yc zc)는 카메라 좌표상의 한점, (Sx, Sy)는 카메라 좌표계와 영상 좌표계간의 크기변화를 의미한다. (Xi, Yi)는 영상 좌표상의 한점, (Ox, Oy)는 Optical Center를 의미한다.


이를 이용해서 월드 좌표상의 한점과 영상 좌표상의 한점과의 관계를 나타내면,


(x, y, z) = P * (X, Y, Z, 1) = K * E * (X, Y, Z, 1)


로 표현될 수 있다. (참고로 x, y, z 벡터의 transpose를 표현해야 하는데 쓰기 힘들어서 생략, Transposed vector라고 생각하자.)


이 식에서 (X, Y, Z, 1)는 월드상의 한점인데 homogenious 좌표계로 표현된 것이고, K는 내부 파라미터, E는 외부파라미터, P는 프로젝션 매트릭스이고 내/외부 파라미터를 이용해서 구한 투영된 영상의 한 점이 (x, y, z)이다. 따라서 이것을 실제 영상좌표계상의 한점 (Xi, Yi)로 표현하면,


Xi = x/z, Yi = y/z


로 표현될 수 있다.


그럼 영상좌표상의 점들과 월드 좌표상의 점들의 관계를 알아 보았다.


이제 카메라의 영상을 이용해서 카메라 파라미터를 얻어보는 방법을 알아보자.

이 단계가 바로 Camera Calibration이다.


Camera Calibration에는 여러가지 방법이 있는데 일반적으로 Zhang이 제안한 방법이 많이 사용된다. 이 방법은 구현된 함수가 OpenCV에 함수로 제공되고 있고 논문이 존재하니 그것을 찾아보도록 하고, 우리는 쉽게 카메라 파라미터를 이해하기 위해서 가장 기본적인 Direct Method를 써서 구해보자.



Direct Method


이 방법은 보정판을 이용하는 방법이다.


우선 이 방법을 사용하기 위해서는 Pi와 Pw를 알아야 한다.

따라서 보정판을 만들고, 그 보정판을 카메라로 촬영한다.

(단, 이 방법의 경우 평면의 보정판을 사용하지 말고, 3차원형태의 보정판(두개의 보정판을 90도로 붙이면 된다.)을 사용하길 권한다. 2차원 보정판을 사용할 경우 zhang의 방법처럼 여러번 촬영해서 사용해야 정확한 값을 얻을 수 있을 것이다. )


그렇게 하면 3차원 상의 점 Pw와 영상의 한점 Pi를 얻을 수 있다.


Pw와 Pi의 Correspondece pair를 이용해서 우리는 Projection Matrix를 구하는 것이 가능하다.

Projection Matrix는 3x4 형태의 행렬이므로 전체 미지수는 12개, 따라서 우리가 필요한 식의 개수는 12개(사실은 11개만 있어도 된다).. 따라서 6쌍의 점들을 알면 우리는 이 문제를 해결하는 것이 가능하다.

이것을 구하는 식을 나타내면 다음과 같다.





사용자 삽입 이미지


다음식을 이용해서 6개의 Pair에 대한 12개의 연립방정식을 구할 수 있고 이것을 행렬형태로 표현할 수 있다. 이렇게 표현한 식을 SVD를 이용해서 풀면 Projection Matrix를 얻을 수 있다. 이 결과를 QR decomposition 하면 내부파라미터와 외부 파라미터를 분리하는 것이 가능해진다.


식 아래의 그림이 실제 Calibration에 대한 전반적인 흐름과 결과를 나태는 그림이다.

(이 결과는 박순용 교수님(http://vision.knu.ac.kr)의 결과를 인용한 것이다. )


몇몇 분들이 종종 문의하는 Camera Calibration에 대해 간단히 요약해 봤습니다.

(일일이 답해줄수가 없습니다. 죄송.. 저도 먹고 노는 것이 아니기 때문에.. )


예전에 봤던 수업 자료를 토대로 아주 간단하게 적어봤습니다. 이보다 간단할 수 없다?? ㅡㅡ;

조금만 공부한 사람들이 보면.. 정말 간단하구나 할 정도인듯??


Direct Method는 정말 간단한 방법으로 두 점사이의 관계만 안다면 쉽게 카메라 칼리브레이션을 수행할 수 있을 겁니다.


written by chamcham


P.S :

종종 쪽지로 이것 저것 문의하시는 분들 계신데... 답해드리기 힘듭니다.

쪽지에 몇자 적으면 끝.. 거기다.. 저도 놀고 먹는 백수가 아니고, 논문도 프로젝트도 해야하는 대학원생인지라... 생활이 있어서.. 제법 바쁩니다.. 그러니 그간 쪽지에 대한 것은.. 이걸로.. Pass.. 하겠습니다. ㅋㅋ

혹.. 프로그래머가 야근 안하는 세상이 오거나.. 제가 로또 된다면... 모르지만.. ㅡㅡ;;

여튼.. 간간히 포스팅되는 걸루 때울듯.. 특히.. 학교 숙제 질문하면 저한테 졸 맞습니다. 숙제는 엄마에게 물어보세요.. ㅡㅡ;;



반응형
반응형

Cylindrical Projection

사용자 삽입 이미지


3d coordinate -> cylinder coordinate -> warped image

3d coordinate to cylinder coordinate


if a point in 3dimension is (X, Y, Z) ...


theta = atan(X/Z)

h = Y/sqrt(X^2+Z^2);


cylinder coordinate to warped images


x' = f*theta + 0.5 * alpha

y' = f*h + yp


it is called forward mapping. this method has one problem that include holes in image.

therefore, we can use linear or bilinear interpolation..

or.. we can use backward mapping .

a result of backward maaping is better than forward maapping.

Therefore, in the following implementations, we choose the warping method based on backward mapping instead of that on forward mapping.


Experiments

사용자 삽입 이미지




반응형
반응형
 

CUDA (Compute Unified Device Architecture)


general purposed gpu programming에 대해 알고 있는가?

알고 있다면, 이게 뭐하는 건지 전혀 설명할 필요가 없을 거다.


그렇다. gpgpu를 쉽게 하기 위해 만든 거니까.. 어디서? nvidia에서..

적절한 라이브러리들도 지원되고 에뮬레이션 모드도 동작하고.. 음..


뭐 그래도 단점이 있다면... 그래픽 카드도 8800 정도는 되야.. 예제가 다 돌아간다는 점 정도.. ㅡㅡ;

내껀 7950인데.. 예제 중에 20% 정도만 돌아간다. ㅡㅡ;


그래.. 그럼 이제 모르는 사람들을 위해서..

컴퓨터 뜯어보면 그래픽 카드가 다 보일것이다. 거기보면 gpu라는 프로세서가 달려있다.

이건 누구나 알겠지? 모른다면... 아마 프로그래밍이랑 관련없는 분이실테니.. 조밑에 수영관련 글이나 읽으시길..


그 gpu는 막강한 프로세서다. 일부 계산에 특화된... 그 계산에선 cpu를 능가할 정도의...

그래.. 그거다. 그 성능 좋은 녀석은 매일 풀로 일하는게 아니다. 적당히 놀고 있다.

3d 게임 같은거하면 거의 풀로 일하겠지만.. 익스플로어나 띄워놓고 지금처럼 블로그나 돌아다니는 수준에선 거의 논다.


그래서 사람들이 일 시키기로 결심을 했다. 노는 꼴을 어떻게 보냐..  나도 뼈빠지게 일하는데..

그래서 얘를 그래픽 작업 말고 다른 일을 시키기로 한거다.

그래서 얘가 잘하는 수학연산등을 시키는거다.

이게 gpgpu다..


그럼 cuda는?

gpgpu 프로그램을 작성하려면 귀찮은 준비 작업들이 필요하다.

계산할 input 데이터를 넣어줄 texture도 만들어야 하고.. output시에 pixel도 읽어야 하고..

거기에 좀 더 낫게 하려고 pingpong buffer니 뭐니.. 아.. 짜증난다.


그래서 이런거 할 필요없이 cuda로 짜라고 해서 nvidia가 던져 준거다.

이런 귀찮은 작업들이 라이브러리에 함수로 정리되어 있고 간단한 코드들은 다 함수로 제공된다.

그냥 짜면 된다.


아.. 세상은 날로 발전하고 있다... 올 여름엔 cuda랑 놀아볼까나..




반응형
반응형
 In  epipolar geometry,

Or : Optical Center Right

Ol : Optical Center Left

Pl : a point in the left image

Pr : a point in the right image


T = Or - Ol
Pr = R(Pl-T)


In Essential Matirx

Pr*E*Pl = 0;
E = TxR


In Fundamental Matirx

Pr'*F*Pl' = 0;


Relation in two matrices


K : intrinsic

U : epipolar line


 E = K.T * F * K
u = F * p
F = K.I.T * E * K.I
U = E * P
u = K.I.T * E * K.I * p




written by chamcham

reference : introductory Techniques for 3d computer vision




반응형

+ Recent posts