반응형

1. 기초 수학 및 프로그래밍

1.1 선형대수 기초 (벡터, 행렬 연산, 내적, 전치 등)
1.2 미분/적분 (연쇄법칙, 극값, 최적화 관련)
1.3 확률과 통계 (기대값, 분산, 확률분포, 베이즈 정리 등)
1.4 파이썬 기초 (변수, 함수, 제어문 등)
1.5 NumPy, Pandas, Matplotlib 사용법

추천 도서:

  • 『밑바닥부터 시작하는 딥러닝 1』
  • 『Linear Algebra and Learning from Data』

추천 강의:


2. 머신러닝 기초

2.1 지도학습: 선형회귀, 로지스틱 회귀
2.2 비지도학습: K-Means, PCA
2.3 과적합과 일반화
2.4 정규화 (L1/L2), Dropout
2.5 모델 성능 평가 지표 (Accuracy, Precision, Recall, F1 등)

추천 도서:

  • 『핸즈온 머신러닝 2판』

추천 강의:


3. 딥러닝 기초

3.1 퍼셉트론과 다층 신경망
3.2 순전파와 역전파 개념
3.3 손실 함수 (MSE, CrossEntropy 등)
3.4 옵티마이저 (SGD, Adam 등)
3.5 활성화 함수 (Sigmoid, ReLU, Tanh 등)

추천 도서:

  • 『딥러닝 입문』
  • 『Deep Learning by Goodfellow』

추천 강의:


4. 주요 딥러닝 아키텍처

4.1 CNN (Convolutional Neural Network)
 4.1.1 필터, 스트라이드, 패딩 개념
 4.1.2 Max Pooling, Flatten
4.2 RNN (Recurrent Neural Network)
 4.2.1 순환 구조
 4.2.2 LSTM, GRU
4.3 Transformer 구조 이해
 4.3.1 Attention, Multi-head Attention
 4.3.2 Positional Encoding
 4.3.3 Encoder-Decoder 구조

추천 도서:

  • 『밑바닥부터 시작하는 딥러닝 2』

추천 강의:


5. 프레임워크 실습 및 미니 프로젝트

5.1 PyTorch 기초
 5.1.1 Dataset, DataLoader
 5.1.2 nn.Module과 Model 구성
 5.1.3 학습 루프 구성 (train, eval loop)
5.2 TensorFlow 기초
 5.2.1 Keras API 사용
 5.2.2 모델 저장 및 로드
5.3 기본 프로젝트
 5.3.1 MNIST 손글씨 분류
 5.3.2 CIFAR-10 이미지 분류
 5.3.3 간단한 감성 분석 모델

추천 도서:

  • 『파이토치 첫걸음』

추천 강의:


6. 실무 응용 분야

6.1 자연어 처리(NLP)
 6.1.1 토큰화, 임베딩
 6.1.2 RNN 기반 텍스트 처리
 6.1.3 BERT, GPT 등 사전학습 모델
6.2 컴퓨터 비전
 6.2.1 Object Detection: YOLO
 6.2.2 Semantic Segmentation: U-Net
6.3 강화 학습
 6.3.1 Q-Learning
 6.3.2 Policy Gradient
 6.3.3 Deep Q-Network(DQN)

추천 도서:

  • 『딥러닝을 이용한 자연어 처리 입문』
  • 『Deep Reinforcement Learning Hands-On』

추천 강의:


7. 생성형 AI (Generative AI)

7.1 AutoEncoder / Variational AutoEncoder (VAE)
7.2 GAN (Generative Adversarial Networks)
 7.2.1 Generator vs Discriminator
 7.2.2 DCGAN, StyleGAN
7.3 Diffusion Models
 7.3.1 Stable Diffusion, Denoising
7.4 Transformer 기반 생성 모델
 7.4.1 GPT-2, GPT-3 구조
 7.4.2 텍스트, 이미지, 음성 생성
7.5 ChatGPT 및 LLM 응용 사례

추천 도서:

  • 『GANs in Action』
  • 『The Deep Learning Revolution』

추천 강의:


📌 부록

반응형
반응형

카메라 기반의 영상인식을 위해서 가장 처음 이해해야 할 것은 무엇일까?

그것은 카메라 파라미터, 즉 많은 사람들이 내부 파라미터라고 부르는 Intrinsic Parameter라고 생각된다. 

 

내 개인적인 생각으로 Computer Vision 관련 서적에서 제일 중요한 부분 그것이 Camera Calibration이라고 생각된다. 

이걸 이해하는 순간 Computer Vision의 절반은 이해했다고 본다. 

 

오늘은 그 중에서도 카메라의 화각을 알고 있을때 Camera Calibration을 수행하지 않고, Ideal하다는 관점에서 Intrinsic Parameter를 추정해보자. 패턴보드 가지고 영상을 찍고 실제 Lens의 특성을 반영해 Intrinsic Parameter를 구하는 것이 더 정확하다는 건 누구나 알고 있다. 

 

하지만, 그렇지 못한 상황에서 이러한 단순한 계산을 통해서 Ideal한 Intrinsic Parameter를 추정할 필요도 있다. 

얼마 전 회사 동료가 카메라의 뷰를 시뮬레이션 하기 위해서 해당 카메라의 Intrinsic Parameter가 필요한 경우가 있었다. 

물론 실제 그 카메라가 있고, Camera Calibration을 수행할 수 있다면 그걸 사용하면 되겠지만, 아직 원하는 FoV의 카메라가 없다면?

 

그런 경우에는 이런 단순하지만 Idle한 Parameter가 필요하다.

 

자, 각설하고 어떻게 구하는지 살펴보자. 

 

카메라 FoV를 활용한 Intrinsic parameter 계산

 

Intrinsic Parameter (K)는 다음과 같이 구성된다. 

$$ K = \begin{bmatrix} fx & \lambda & Ox \\ 0 & fy & Oy \\ 0 & 0 & 1 \\ \end{bmatrix} $$

 

Intrinsic Parameter는 Focal length, Skew factor, Principal Point로 구성된다. 

이것들만 계산하면 우리의 오늘 일은 끝. 

 

Skew factor (λ)

 

뒤틀림 정도를 나타내는 값으로 현재 CCD에서 Skew factor 0이라고 생각하면 된다. 

 

Principal Point (Ox, Oy)

 

Principal Point (Ox, Oy)는 Ideal하게는 영상의 Optical Center가 된다. 

예를 들어, 8.3MP 카메라의 경우 그 해상도가 3840x2160이므로 Principal Point는 아래와 같다. 

  • Ox = 1920
  • Oy = 1080
Focal Length (fx, fy)

 

Focal Length가 이 계산의 핵심이다. 

이 계산은 아래 그림이 가장 이해하기 쉽게 나타내고 있는 것 같다. (출처는 그림 아래에)

 

출처 : 액면카의블로그 (https://blog.naver.com/actachiral/220838739977)

 

즉, 렌즈부터 CCD까지의 거리 이것이 초점거리가 된다. 

따라서, 화각 (FoV)이 커지면 초점거리는 짧아지고, 화각이 줄어들면 초점거리는 길어진다. 

(오타쿠들이 쓰는 망원렌즈의 렌즈 구경이 긴게 바로 이 원리 때문이다.)

 

이 초점거리는 아래 식으로 계산이 가능하다. 

 

$$tan(\frac{\theta}{2})=\frac{D}{2f}$$

 

여기서 θ는 화각을 의미하고, D는 CCD의 대각 크기를 의미한다. 

 

예를 들어 화각이 100도인 CCD가 1/1.7인치인 카메라가 있다고 가정해보자.

 

해당 센서의 경우 센서 업체의 정보에 따라 D를 계산하면 대략 9.5mm가 된다. 

1/1.7인치라는 크기는 실제 센서의 실측치를 의미하진 않는다. 이건 과거의 센서 크기를 표현하는 관습에 따라 남아 있는 표기법일 뿐이다. 

따라서 실제로는 16mm/1.7 = 9.5mm가 된다.

 

이제 focal length는 다음과 같이 계산할 수 있다. 

 

$$f\approx \frac{9.5}{2tan\frac{100}{2}}\approx 3.99mm$$

 

이 focal length는 대각선에 대한 것이므로 이를 fx, fy로 분해해서 계산해주면 우리가 원하는 focal length 계산은 끝이 난다.

 

센서의 Aspect ratio가 16:9라면, CCD의 가로 (W)와 세로 (H)는 다음과 같다. 

간단한 피타고라스의 정리로 계산이 가능하다. 

  • W = 8.27 mm
  • H = 4.65 mm

이를 사용해서 fx, fy를 구하면 다음과 같다.

  • fx = 3.99mm x 3840 pixel / 8.27 mm = 1852 pixel
  • fy = 3.99mm x 2160 pixel / 4.65 mm = 1851 pixel

즉, 우리가 구하려던 fx = 1852, fy = 1851이 된다. 

 

계산된 Intrinsic Parameter

 

$$ K = \begin{bmatrix} 1852 & 0 & 1920 \\ 0 & 1851 & 1080 \\ 0 & 0 & 1 \\ \end{bmatrix} $$

 

생각보다 쉬운 중학교 수학만으로도 계산할 수 있다.

 

회사에서 누가 묻길래 오래간만에 정리해서 알려줬는데, 의외로 모르는 사람들이 많은 거 같아서 정리해둔다. 

누군가에겐 도움이 되길...

반응형
반응형

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip
sudo -H pip install -U jetson-stats
sudo reboot
 
# jetson-stats 실행
jtop

반응형
반응형

https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048

 

PyTorch for Jetson

Below are pre-built PyTorch pip wheel installers for Jetson Nano, TX1/TX2, Xavier, and Orin with JetPack 4.2 and newer. Download one of the PyTorch binaries from below for your version of JetPack, and see the installation instructions to run on your Jetson

forums.developer.nvidia.com

 

해당 페이지에서 본인의 jetpack 버전에 맞는 pytorch 배포본 다운로드 할것

 

>> wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl

>> sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev

>> pip3 install Cython

>> pip3 install numpy torch-1.10.0-cp36-cp36m-linux_aarch64.whl

 

설치 후 적합한 torchvision 버전을 위 페이지에서 다시 찾을 것

 

  • PyTorch v1.0 - torchvision v0.2.2
  • PyTorch v1.1 - torchvision v0.3.0
  • PyTorch v1.2 - torchvision v0.4.0
  • PyTorch v1.3 - torchvision v0.4.2
  • PyTorch v1.4 - torchvision v0.5.0
  • PyTorch v1.5 - torchvision v0.6.0
  • PyTorch v1.6 - torchvision v0.7.0
  • PyTorch v1.7 - torchvision v0.8.1
  • PyTorch v1.8 - torchvision v0.9.0
  • PyTorch v1.9 - torchvision v0.10.0
  • PyTorch v1.10 - torchvision v0.11.1
  • PyTorch v1.11 - torchvision v0.12.0
  • PyTorch v1.12 - torchvision v0.13.0
  • PyTorch v1.13 - torchvision v0.13.0
  • PyTorch v1.14 - torchvision v0.14.1
  • PyTorch v2.0.0 - torchvision v0.15.1

torchvision 설치 (python 3.6)

 

$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev

$ git clone --branch v.0.xx.x  https://github.com/pytorch/vision torchvision 

$ cd torchvision

$ export BUILD_VERSION=0.xx.x

$ python3 setup.py install --user

$ cd ..

 

 

 

 

 

 

반응형
반응형

https://jetsonhacks.com/2019/10/01/jetson-nano-visual-studio-code-python/

 

Jetson Nano - Visual Studio Code + Python - JetsonHacks

Visual Studio Code is one of the most popular IDEs in the world. You can install VSCode on the Jetson Nano in just a few minutes!

jetsonhacks.com

 

tx2에서는 컴파일 버전 설치 불가, 

직접 빌드도 원활히 되지 않음. 최신 디펜던시 라이브러리 지원 안됨. 

 

vscode.dev

 

웹 버전 사용 권장함

반응형
반응형

http://ihwoo.tistory.com/93

반응형
반응형

https://wiki.qut.edu.au/display/cyphy/Caffe+Installation+on+Ubuntu+12.04

반응형
반응형

http://www.r-tutor.com/gpu-computing/cuda-installation/cuda6.5-ubuntu

반응형
반응형

설치 후 해상도 문제 혹은 드라이버 충돌로 문제가 생겼을 경우...

드라이버 제거 하기..


http://ntechknowledge.blogspot.kr/2013/10/nvidia.html

반응형
반응형

http://npurple.egloos.com/viewer/459793

반응형
반응형

http://rogerdudler.github.io/git-guide/index.ko.html

반응형
반응형

ios 6.0 이상에서 이전 코드를 다시 컴파일 하다보면... 

강화된 Grammar 때문에 다양한 에러가 발생합니다. 


그 중에 하나... 

goto into protected scope 에러.. 


이 에러는 Scope 때문에 발생하는 에러로.. 

그전엔 암묵적으로 허용되었던 스코프를.. 명시적으로 나타내야 하도록 바꼈기 때문에.. 

발생하는 에러입니다. 


이 에러의 해결책은.. 


require(success, bail);

{

}

bail:

{

}


의 형태로 스코프를 브레이스로 명확하게 나타내주면 됩니다. 



반응형
반응형

// convert mat to vector<float>

vector<float> temp;

img_hog.convertTo(temp, -1, 1, 0);



// convert vector<float> to mat

vector<float> temp;

Mat(temp);


반응형
반응형

아이폰 개발시 도움이 되는 각종 팁 , 튜토리얼, 소스코드 링크 모음입니다. 제가 주로 트위터를 통해서 공개한 것들입니다만, 워낙 간헐적으로 트위팅 한듯해서 좀더 링크를 모아서 포스팅 합니다. 한글판 앱스토어 리뷰 가이드라인은 아이폰 앱 개발자분들은 꼭 한번 읽어보셔야 합니다.

반응형
반응형

Adding a framework is managed through the editor for the project:

 

a) Select the project (which contains the target you want to add the framework to), either from the Project Navigator or via the Jump Bar

b) In the source list on the left side of the project editor, select the target

c) Across the top of the target editor area, on the right, will be a few tabs:  select the third one, "Build Phases"

d) From the list of phases presented, disclose the "Link Binaries With Libraries" phase (the last one, normally)

e) Click the plus sign in the lower-left of the phase

 

This will bring down a sheet of the available libraries and frameworks to select from.  Then simply select the framework(s) you wish to add, and click the "Add" button.

 

반응형
반응형
void CEyeColorReplaceView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

if(nFlags==MK_CONTROL+MK_LBUTTON)
{
....;
}
         

CView::OnLButtonDown(nFlags, point);
}
반응형
반응형
간편한 GDI+를 사용하기 위해서는 간단한 초기화가 필요하다.. 

초기화 방법

1. 헤더 파일 인클루드

stdafx.h에 아래의 헤더파일을 인클루드 한다. 

#include <gdiplus.h>
using name space Gdiplus;


2. Startup & Shutdown

CWinApp의 파생클래스인 C~~~~App에 GDI+ 사용시작하고 끝을 내는 함수를 추가해준다. 

우선 C~~~~App에 멤버변수로서... 

ULONG_PTR m_gdiplusToken;

를 추가한다. 


이후에 C~~~~~App의 멤버함수인 InitInstance()에 


  GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

를 추가한다.

마지막으로 C~~~~App에 ExitInstace()함수를 추가하고...
여기에..

GdiplusShutdown(m_gdiplusToken);

를 추가한다. 
 


3. 라이브러리 추가

 마지막으로 Project에 Property로 가서 Link를 추가한다. 
Link의 input 라이브러리 부분에

gdiplus.lib


여기까지 추가하시고 사용하시면 됩니다.


레퍼런스 서적 : Visual C++ 6 완벽가이드 - 영진출판사 -  
반응형
반응형
들으러 가고 싶다.. ㅠ.ㅠ


반응형
반응형

( 위 링크의 우분투 코리아 글 정리 )

1. 준비물
- 우분투 이미지파일 및 시디
- usb를 지원하는 가상 머신
- usb 메모리

2. 설치
- 가상머신 생성
- 생성된 가상 머신의 하드 디스크 제거
- usb 메모리 장착
- 메뉴에서 usb 인식 가능 상태로 변경
- 우분투 이미지 파일을 시디에 연결
- 우분투 설치
- 설치 종료

3. 사용
- 일반 컴퓨터에 usb 메모리 장착
- 바이오스에서 usb 메모리의 부팅 순서를 최상위로 설정
- 부팅




반응형
반응형
3차원 회전관련 헷갈리는 분 참고하세요. 
http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm

반응형
반응형
Fast Image Mosaicing for Panoramic Face Recognition

[ Fan Yang, Michel Paindavoine etc. , ISPA 2005 ]


< Paper read and summary : chamcham) >


Abstract

◆ Present a system that  performs mosaicing of panoramic faces.

◆ Objective is to study the feasibility of panoramic face construction in real-time.

◆ we built a simple acquisition system composed of 5 standard cameras (simultaneously 5 views of a face at different angles)

◆ Mosaicing for Panoramic Face

    - hardware-achievable algorithm

    - consisting of successive linear transformations



반응형
반응형
Multi-Camera Calibration

[ Ismail Oner Sebe, STMicroelectronics Technical Report, 2002 ]


< Paper read and summary : chamcham >


Abstract

◆ Accurate Camera Calibration
    - Causes degradation in the rendering quality

◆ In this paper
   - Present a method to calibrate a single camera
   - Extend the method to calibrate multiple cameras

◆ Idea
    - Find camera parameters by minimizing the cross-projection errors among the cameras
    - Need minimal user intervention

◆ Calibration Error
    - About 0.03 pixels or 0.06mm




반응형
반응형

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

사용자 삽입 이미지




반응형

+ Recent posts