Stereo Maching을 공부한 후 Vision Based로 더 공부하기 위해서 Shape - From - Shading(SFS)을 공부했다.

 

Shape - From - Shading(SFS)은 빛으로 인해 생기는 그림자의 모양을 통해 3D Shpae을 추정하는 Algortihm이다.

Object에 따라 최적의 광원 위치가 달라지면서, 표면의 반사율과 Texture에 따라 성능이 달라진다.

 

SFS을 공부하기 위해서 논문 "Hand on Shape from Shading'을 읽으면서 공부를 진행했다. 정확한 참고자료는 밑에 기재했다.

 

해당 논문은 Matlab으로 구성되어 있어서 이를 Python으로 재 구현했다.

그래서 논문 결과와 구현 결과를 비교해가면서 공부를 진행했다.

 

1. Terminology

SFS을 공부하기 전에 사용되는 용어를 공부했다.

2. Synthesized image generation

두 번째 챕터에서는 합성된 이미지를 Python을 통해 만들었다.

만드는 순서는 다음과 같다.

해당 순서를 통해 만들어낸 합성 이미지를 보면,

왼쪽 이미지에서 Illumination은 [0. 5, 0, 0.98] 이기 때문에 x축 양의 방향으로 빛이 들어온 합성 이미지를 만들었고, 

오른쪽 이미지에서는 [-0.5, -0.5, 0.98]의 방향을 통해 만들었기 때문에 x축과 y축 음의 방향으로 이미지가 만들어졌다.

3. Finding surface albedo and illumination Direction

세 번째 챕터에서는 2번째 챕터에서 사용한 Surface Albedo와 Illuminatio Direction을 찾았다.

 순서는

 1. 위에서 구한 합성 이미지를 Normalization을 진행

 2. μ_1,μ_2를

 3. E_x, E_y을 찾고 &  이를 Normalization

 4. Illumination & Albedo을 찾는다

 

구현한 결과가 논문 결과와 너무 다르게 나와서 해당 부분을 지속적으로 찾아본 결과 문제점을 파악했다.

논문에 나와있는 합성된 사진에서는 Object 말고 나머지 공간이 매우 적었다. 하지만 구현한  합성 이미지에서는 논문 이미지보다 더 큰 공간을 가지고 있었다. 따라서 이 두 개의 이미지에서 μ_1,μ_2 값이 다르게 나왔다. 그래서 논문과 최대한 비슷한 모양의 이미지를 만들어 결과를 비교했다.

논문의 결과와 유사한 값의 Albedo, illumination이 나왔다.

4. Finding Surface

Python으로 위 식들을 구현한 순서는 아래와 같다.

1. Section 3Finding surface albedo and illumination Direction Algorithm을 통해 Albedo 와 Illumination을 계산

2. Initializations

3. Surface normalConvolution을 위한 필터 생성

4. Iterate

 4.1 Convolution을 통해 Second derivatives인 p1,q1p1, q1을 구하고

 4.2 1에서 구한 AlbedoIllumination을 통해 Reflectance map 계산

 4.3 Reflectancederivatives 계산

 4.4 p , q Updating

 4.5 p와와 qFFT를 통해  Z을 계산

 4.6 다음 Step의 p,q 계산

5. Linear approaches

 5.1 Pentland Approach

 5.2 Shah Approach

 

최종 결과는 Shah Approach가 가장 좋은 결과를 얻을 수 있었다.

 

참고자료

Hands on Shape from Shading, Technical Report, Shireen Y. Elhabian, CVIP, May 2008

 

'Computer Vision > 3D Reconstruction' 카테고리의 다른 글

Stereo Camera Calibration  (0) 2021.01.26
Stereo Matching  (0) 2020.12.26
3D Reconstruction의 다양한 기법  (0) 2020.11.04

이번에는 Stereo Camera Calibration에 대해 공부를 진행했다.

 

1.Stereo Camera Calibration

 

Camera Calibration은 카메라가 가지고 있는 Parameter을 구하는 것을 의미한다.  

해당 Parameter을 구하기 위한 식은 위와 같다

 

1.1 카메라 내부 파라미터(Intrinsic Parameter)

 3차원 공간상에 존재하는 것들을 2차원 Image에 투영시키기 위해 필요한 Parameter

 초점거리, 주점, 비대칭 계수들이 존재한다.

 

카메라 내부 파라미터 들은 공개된 Calibration등을 사용하여 외부 파라미터 보다 쉽게 계산이 가능하다.

1.2 카메라 외부 파라미터(Extrinsic Parameter)

1.3 Algorithm

 알고리즘으로는 4가지 방법이 있다.

 

 

 

2. Python 구현결과

2.1 Camera Calibaration

Cameara Calibration은 좋지 않은 Camera로 인해 왜곡이 발생하기 때문에 이를 해결

1) 먼저 Chess Board의 패턴을 찾고

2) Camera Matrix, 왜곡계수왜곡 계수,회전/이동 Matrix를 찾음

3) 왜곡 보정

2.2 Stereo Camera Calibaration

두대의 Camera을 물리적으로 최대현 평행하게 한다고 해도 여러 이유 때문에 왜곡을 가지게 된다. 따라서 정렬된 영상을 얻기 힘들다.

아래의 사진과 같이 왼쪽 카메라와 오른쪽 카메를 동시에 사용해도 위치가 동일하지 않음.

1) 먼저 Chess Board의 패턴을 찾고

2) Camera Matrix, 왜곡계수왜곡 계수,회전/이동 Matrix를 찾음

3) Stereo Rectify

두 카메라로 촬영된 평면이 동일 선상에 놓일 수 있게 Recify을 진행

 

참고자료

 

OpenCV Stereo Camera Calibration 프로그램

blog.daum.net/pg365/223

'Computer Vision > 3D Reconstruction' 카테고리의 다른 글

Shape - From - Shading(SFS)  (0) 2021.01.26
Stereo Matching  (0) 2020.12.26
3D Reconstruction의 다양한 기법  (0) 2020.11.04

가장 먼저 Stereo Camera Calibration을 하기 전에 Stereo Vision으로 기초를 다졌다.

 

1. Stereo Matching

Stereo Matching은 왼쪽 Image와 오른쪽 Image 사이의 Disparity을 구하는 과정이다.

해당에는 Global과 Local Matching이 존재하고 특징은 위와 같다.

 

 

그래서 나는 Local Matching중에서 SAD와 SSD을 공부했다. 그리고 해당 기법을 Python의 OpenCV를 통해서 구현했다.

 

2. SAD(Sum of Absolute Difference)

SAD는 차이의 절대값을절댓값을 더한 것으로 Sum of Absolute Difference이다. 차이에 절댓값을 취하고 Matching Cost을 계산했다.

 

위는 SAD을 구현한 결과이다.

 

3. SSD(Sum of Squared Difference)

다음으로 구현한 것은 SSD이다. SSD는 Sum of Squared Difference로 차이에 제곱을 취한 후 합산하여 Matching Cost을 계산하는 기법이다.

구현한 결과는 위와 같다.

 

 

 

'Computer Vision > 3D Reconstruction' 카테고리의 다른 글

Shape - From - Shading(SFS)  (0) 2021.01.26
Stereo Camera Calibration  (0) 2021.01.26
3D Reconstruction의 다양한 기법  (0) 2020.11.04

해당 논문을 읽으면서 다양한 3D Reconstruction을 공부했다.

 

1. 3D Shape Extraction

 

3D Shape을 Extraction 하기 위해서는 자연적은 빛을 사용하는 Passive 기법과 추가적인 빛을 발산해서 사용하는 Active 기법이 있다. 

 

2. Passive

Passive Algorithm은 추가적인 빛을 사용하지 않고 환경에 따른 빛에 의존하기 때문에 데이터를 얻기 쉽지만 주변 환경이 변화함에 다라서 신뢰도가 많이 달라지게 된다.

 

2.1 Passive Stereo

2개의 Camera 사용하고 Same Time, Different Viewpoints의 조건을 만족해야 한다.

그리고 카메라의 위치 및 방향, 초점, 길이 등 카메라의 정보가 필요하다.

이 Algorithm은 인간의 양안과 유사하다. 

이것을 사용하기 위해서는 Triangulation(삼각측량)을 사용해서 Detph을 추줄 할 수 있다.

Triangulation(삼각측량)

위 기법으로 Image 두 개를 사용해서 Image의 모든 Pixel의 Depth을 구할 수 있다.

 

2.2 Structure-from-Motion(SFM)

 

 

정적 객체나 장면 주위에 카메라를 이동시켜 가면서 여러 시점에서 촬영한 Image에 Feature Point를 구해(EX SIFT) 이들의 프레임간 대응 관계를 구함으로써 3D Shape을 추정하는 Algorithm이다.

 

SFM을 이용해 각 촬영된 Image의 Feature Point을 얻고 각 촬영 장면마다 Point들과 관계를 서로 매칭하고 계산하여 카메라의 위치를 얻을 수 있다.

 

SFM은 3차원 기하 구조와 카메라 모션 정보를 추출하는 3차원 복원 과정이다.

 

2.3 Shape-from-Texture and Shape-from-Contour

 

표면에 있는 Texture을 통해서 Depth을 추정하는 Alogrithm이다.

 

2.4 Shape-from-Sillhouettes

 

Object의 Sillhouette Image을 사용해서 3D Shpae을 추정하는 Algorithm이다.

복잡하거나 오목한 object를 하면 성능이 낮다.

 

3. Actvie

추가적인 빛을 사용하는 기법이다. Passive와 다르게 레이저와 같이 다른 장치를 사용하고 데이터를 만들어야 하기 때문에 데이터를 수집하기 힘들지만, 주변 환경에 따른 영향력이 적어 신뢰도가 높다.

 

3.1 Active Stereo

 

레이저나 구조화된 빛과 같은 추가적인 빛을 사용한다. 레이저에 의해 찍힌 물체의 표면의 Point을 촬영한 Image들을 사용해 3D Reconstruction 한다. 

빛 또는 질감이 부족한 환경에서 유용하고 외부 광원의 의존성이 적다. 빛을 사용하기 때문에 빛이 강한 햇빛 아래와 거리가 멀어지면 사용이 불가능하다.

 

3.2 Time-of-Flight(ToF)

 

빛을 쏘아서 반사되어 오는 시간을 측정하여 거리를 계산하는 방식이다.

파형의 종류에 따라 Radar, Sonar, Optical Radar라고 부른다.

구성요소로는 4개가 있다

1. Illumination unit(적외선 사용) 2. Optics(반사된 빛을 모아 Image Sensor에 장면을 Image)

3. Image Sensor(PixelIllumination unit에서 물체로 그리고 초점 면 배열로 다시 이동하는데 걸리는 시간을 측정), 

4. Driver Electronics(Illumination unitImage Sensor는 고속 신호로 제어되고 동기화)

 

장점으로는

1. 단순하다 2. 효율적인 Distance Algorithm 3. 속도가 빠르다(한 번의 촬영으로 전체 장면 내에서 거리를 측정할 수 있다)

 

단점으로는

1. 배경 조명이 밝으면 사용이 불가능하다 2. 특정 유형의 ToF 장치는 서로의 측정을 방해하는 간섭이 존재한다. 3. 빛이 여러 경로로 가는 다중반사가 존재한다.

 

3.3 Shape-from-Shadig(SFS)

 

 

빛으로 인해 생기는 그림자의 모양을 통해 3D Shape을 추정하는 Algortihm이다.

Object에 다라 최적의 광원 위치가 달라지면서, 표면의 반사율과 Texture에 따라 성능이 떨어질 수 있다.

 

3.4 Photometric Stereo

 

 

3.3의 방법에 한정된 공간이라는 제약을 추가하여 여러 광원을 사용해서 방향을 바꿔가면서 3D Shape을 추정하는 Algorithm이다. 

Light의 색을 다르게 함으로써 Light Source을 줄이고 더 Detail 한 Texture을 얻을 수 있다.

 

4. 결론

해당 논문을 읽으면서 다양한 기법들을 조금 공부했기 때문에 후에 더 좋은 기법을 위해 해당 기법 중 장치가 필요하지 않은 Passive 기법들을 자세히 공부해 구현해 나갈 생각이다.

참고자료

9781601982858-summary.pdf

 

 

 

'Computer Vision > 3D Reconstruction' 카테고리의 다른 글

Shape - From - Shading(SFS)  (0) 2021.01.26
Stereo Camera Calibration  (0) 2021.01.26
Stereo Matching  (0) 2020.12.26

+ Recent posts