Preprocessing Edge Images
•
Hough Transformation: Noisy 하거나 끊긴 edge 가 detection 되었을 때, 그것으로부터 line, circle, object 들을 찾아낼 수 있는 알고리즘
Hough Transformation
•
Binary Structure (Edge 인지 아닌지 명시한 이미지) 로 부터 어떠한 구조를 탐지해내는 방법론
◦
Edge 가 완벽히 연결되어 있지 않아도 동작함.
◦
Structure 가 occlusion 에 이해서 완전히 보이지 않아도 동작함.
◦
단일이 아닌 다중 구조 (ex. line, circle) 를 탐지해낼 수 있음.
Line Detection by Hough Transform
•
주어진 데이터 좌표들을 잘 표현하는 의 과 를 찾는 문제를 가정함.
•
parameter 인 과 로 이루어진 공간을 Hough Space 라고 함.
•
Image Space 에서 점 하나가 Parameter Space (Hough Space) 에서 선 하나에 대응됨.
◦
◦
◦
◦
◦
◦
4 개의 점이 공통적으로 지나는 점인 , 로 parameter 를 찾게 됨.
•
Algorithm 은 다음과 같음.
1.
찾고자 하는 parameter , 의 Hough Space 를 정의하고 해당 영역을 discrete 하게 나눔.
2.
나눠진 각각의 영역을 Accumulator Array 로 정의하고, 이를 0 으로 초기화함.
3.
각각의 Image Point 에 대해서 해당 Point 로 구해낸 , 에 대한 line 을 discrete 영역에 그리고 해당 line 이 통과하는 영역에 1 을 더함.
4.
Accumulator Array 의 Local Maxima 를 찾으면 해당 , 에 해당하는 line 을 통과하는 Image Point 가 많이 존재했다는 것임.
Better Parameterization (Line Detection)
•
이 가질 수 있는 범위가 이기 때문에 이러한 parameterization 은 memory 나 computation 측면에서 좋지 못함.
•
◦
는 원점에서 선까지의 최단거리 (수직 거리)
◦
는 최단거리 선과 축과의 각도
◦
두 parameter 를 , 로 범위를 제한 할 수 있음. ( 는 이미지 크기가 정해져 있기 때문에 bounding 가능!)
◦
◦
Image Space 에서의 는 Hough Space 에서 의 sinusoid 에 대응됨.
Effect of Noise
•
Voting Point 가 하나로 결정되지 않고 영역에서 퍼져있음. → noise 애 취약
•
Noise 레벨이 크면 Maximum number of votes 가 급격히 감소함.
Random Points
•
Uniform Noise 는 Accumulator Array 상에서 그럴싸한 가짜 peak 를 만들어 낼 수 있음.
•
Random Points 의 수를 증가시키면 Maximum nuber of votes 도 따라서 증가함.
◦
Background 에 잡다한 잡음을 넣는 것은 가짜 peak (line) 을 생기게 함.
Real World Example
Mechanics of the Hough Transform
•
얼마나 많은 Line 을 detect 할 건지는 threshold 로 결정할 수 있음. (몇 이상의 값을 가지는 Accumulator Array 를 line 으로 볼 것인지)
•
Local Maxima 가 가까운 영역에서 붙어있는 경우, 하나로 취급할 수도 있음.
•
어떤 점들이 어떤 line 에 대응되는지는 detect 한 line 과 점과의 거리를 통해 알 수 있음.
•
, 로 이루어진 Hough Space 상에서 Accumulator Array 를 정의하기 위해서 discrete 하게 나눌 때 얼마나 촘촘하게 나눌지에 대한 여부?
◦
너무 간격이 넓게 나눌 경우: 다른 두 개의 선을 합쳐버릴 수도 있음.
◦
너무 간격이 좁게 나눌 경우: Threshold 를 넘는 칸이 없어 선을 찾을 수 없을 수도 있음.
•
Hough Transformation 의 장점
◦
선이 끊기거나 가려져 있어도 찾을 수 있음.
◦
한 번의 알고리즘 시행으로 여러 개의 선을 한 번에 찾을 수 있음
◦
어느정도의 noise 에 대해서는 robust 함. (칸에만 들어있으면 카운팅이 되므로)
•
Hough Transformation 의 단점
◦
모델의 parameter 의 개수에 따라서 Hough Space 의 차원이 늘어나기 때문에 Time Complexity 가 exponential 하게 증가함.
◦
Random noise 에 의해서 그럴듯한 가짜 peak 선들이 나타날 수 있음.
◦
Accumulator Array size 를 정하기 쉽지 않음.
Finding Circles by Hough Transform
•
원의 방정식:
•
Parameter 는 , , 로 세 가지 종류이지만, 논의의 간략화를 위해 을 고정함.
◦
, 가 주어졌을 때 , 를 축으로 하는 Hough Space 에서의 식은 원 형태가 됨.
◦
◦
Hough Space 에서 원의 교차점으로 parameter , 를 찾게 됨.
•
을 고정하지 않은 경우는 parameter 가 , , 로 3 개가 됨.
◦
Accumulator Array 은 3 차원에 정의됨.
◦
이 고정되면 plane 에서 원이므로, 이 바뀌면 그에 따라 원의 반지름이 달라지는 원뿔이 됨.
◦
원뿔의 겉면 (surface) 에 해당하는 모든 영역에 Accumulator Array 의 값을 +1 해주어야 함.
Using Gradient Information
•
Edge 와 수직인 gradient direction 을 활용하여 Accumulator Array 의 computation cost 를 줄일 수 있음.
◦
Edge location:
◦
Edge direction:
◦
◦
•
, , , 를 정확히 알면 한 점에 대해서 가 유일하게 결정됨. → Accumulating 을 하는 point 가 한 지점 뿐임. 한 지점이 아니라 주변만 voting 한다고 하더라도 computation cost 가 많이 감소함.
Finding Coins
•
radius 에 대한 사전 정보가 있을 때 plane 에서의 후보 circle 들의 모습임.
Generalized Hough Transform
•
선이나 원처럼 사전에 정의된 형태만 찾는 것이 아니라 임의의 형태를 찾는 Hough Transform.
•
임의의 물체에 대한 형태를 찾는 거라기 보다는 center, scale, rotation 을 찾음.
◦
, → center
◦
→ scale
◦
→ rotation
◦
다만 이렇게 parameter 가 4 개이면 4 차원 공간의 Hough Space 가 나오기 때문에 복잡함.
•
먼저 Object Center 를 찾는 경우만을 고려함.
1.
Reference Point 을 center 처럼 보이는 곳으로 대충 정함.
2.
각각의 edge point 에 대해서 를 구함.
•
: boundary point 으로부터 reference point 까지의 거리벡터
◦
는 축과의 각도
•
: gradient 방향 각도 ( 축과의 각도)
3.
- table 을 만듬.
•
테이블 간격인 를 정의하고 각 간격 범위인 에 속하는 점들을 적음. ( 를 적음)
•
위를 부터 까지 진행함.
4.
중심점을 찾는 Accumulator Array 를 정의하고 0 으로 초기화함.
•
•
5.
각각의 edge point 에 대해서 본인이 속한 Edge direction entry 에 속한 모든 점들에 대해서 다음과 같이 를 구함.
•
•
6.
위에서 구해낸 , 에 대해 에 +1 을 해줌.
•
다음으로 Scale 와 Rotation 를 적용한 버전은 다음과 같음.
◦
◦
◦
Computation cost 때문에 일반적으로 사용되지 않고 center 만 찾는 경우가 많음.
Examples of GHT
•
자동차의 part detector 로 바퀴를 찾으면 바퀴 기준 양 옆을 center 로 vote 할 수 있음.
•
자동차의 part detector 로 wind shield 를 찾고 기 기준으로 center 를 vote 할 수도 있음.
•
수 많은 자동차의 part 들이 공통적으로 center vote 하는 지점을 찾을 수 있음.
Implicit Shape Models: Training
•
Interest Point 라는 feature point 를 잡고 그 주변을 patch 로 선언함.
•
Patch 를 clustering 하여 cluster center 를 얻어내면 part patch 같은 것들이 탐지가 됨.
•
새로운 이미지가 왔을 때 interset point 를 찾고 그 주변의 patch 와 앞서 찾은 cluster center 랑 비교해서 (codebook 에서 찾는다- 고 함.) 비슷한 center 로 매핑할 수 있음.
•
Patch entry 에 대해서 물체의 center 가 정의 되어 있어 이를 활용해 물체의 center 를 최종적으로 찾을 수 있음. → 이를 기반으로 segmentation 까지 가능하다고 함.
Hough Transform: Comments
•
끊겨진 edge 에 대해서도 동작함.
•
Occlusion 에 insensitive 하여 잘 동작함.
•
선, 원 같은 간단한 형태에 대해서 효과적임.
•
Image Space 와 Parametric Space 간의 trade-off 가 있음.
◦
Parameteric Space 의 차원 수 증가에 따른 computaitonal cost 의 exponential 하게 증가.
◦
Parameter 가 정해지더라도 Accumulator Array 의 size 조절 문제가 있음. (sensitivity)
•
Interest point 주변의 patch 기반의 방법론을 활용하면 edge location 이 조금 부정확하더라도 center 를 잘 찾을 수 있음.