일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정보처리기사필기
- html/css
- 데이터입출력구현
- 중학1-1
- 딥러닝
- 영어공부
- 파이썬
- 데이터베이스
- 코딩테스트
- 운영체제
- 컴퓨터비전
- 텍스트마이닝
- 자바 실습
- JSP/Servlet
- 자바
- C++
- numpy/pandas
- 데이터분석
- 혼공머신
- 정수와유리수
- CSS
- 중학수학
- pandas
- 컴퓨터구조
- 파이썬라이브러리
- CNN
- 정보처리기사실기
- 연습문제
- 머신러닝
- SQL
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
에지와 영역 10 - 연습문제 풀기 3 : 문제 3~7번 본문
저녁을 먹고 다시 연습문제를 풀어보려고 한다. 이번에는 조금 풀만한 문제가 나왔으면 좋겠다.
연습문제 풀기 세 번째
문제 3번
RANSAC 알고리즘은 에지 점을 직선으로 근사한다. 이때 에지 점의 위치 정보만 사용하는데, 에지 점은 에지 강도와 에지 방향 정보를 추가로 가지고 있기 때문에 이 정보들을 추가로 활용하면 성능을 높일 여지가 있다. 에지 강도와 에지 방향 정보를 추가로 사용해 RANSAC 알고리즘을 강화하는 아이디어를 제시하시오.
RANSAC 알고리즘은 데이터 내에 있는 아웃라이어(Outlier)를 다룰 때 유용한 방법이다. 이 알고리즘은 주어진 데이터에서 가장 적합한 모델을 추정하기 위해 반복적인 무작위 샘플링과 검증을 통해 최적의 모델을 찾는다. 특히, 이미지 처리나 컴퓨터 비전에서 직선, 원, 평면 등과 같은 기하학적 구조를 데이터 내의 일부 점들로부터 추정할 때 많이 사용된다.
RANSAC의 주요 개념
- 목표: 데이터에서 아웃라이어에 강건한 모델을 추정하는 것
- 아웃라이어(Outlier): 모델을 따르지 않는 데이터. 일반적인 경우, 노이즈나 오류로 인해 모델과는 크게 벗어나는 점이다.
- 인라이어(Inlier): 모델을 잘 따르는 데이터. 주어진 모델에 대해 작은 오차를 가지며, 모델에 포함될 가능성이 큰 점이다.
RANSAC 알고리즘의 절차
- 데이터에서 무작위 샘플링
- 전체 데이터에서 일부 데이터를 무작위로 선택하여 모델을 생성한다. 이 샘플은 최소한의 데이터 포인트로 구성된다. 예를 들어 직선을 추정할 경우 두 개의 점만 있으면 된다.
- 모델 추정
- 선택된 샘플을 바탕으로 모델을 생성한다. 예를 들어, 직선 모델을 만들려면 두 점을 통해 직선 방정식을 구한다.
- 인라이어 검증
- 전체 데이터 포인트에 대해 생성된 모델이 얼마나 잘 맞는지 평가한다. 모든 데이터 포인트에 대해 모델에 가까운 포인트를 인라이어로 간주하며, 모델로부터의 거리가 특정 임계값 이하인 포인트들을 인라이어로 간주한다.
- 최적 모델 갱신
- 현재 모델의 인라이어 수가 최대 인라이어 수보다 많다면, 해당 모델을 최적 모델로 갱신한다. 최적 모델은 인라이어가 가장 많은 모델로 정의된다.
- 반복
- 위 과정을 설정된 횟수만큼 반복하거나, 인라이어 비율이 특정 임계값을 넘을 때까지 반복한다. 최종적으로 인라이어가 가장 많은 모델을 선택하여 결과로 사용한다.
RANSAC의 장점과 단점
- 장점
- 아웃라이어가 많은 데이터에서도 매우 안정적으로 모델을 추정할 수 있다.
- 반복적인 샘플링을 통해 아웃라이어에 민감하지 않은 모델을 생성할 수 있다.
- 단점
- 반복 횟수와 임계값 등의 하이퍼파라미터를 설정해야 하며, 이 값에 따라 성능이 크게 좌우될 수 있다.
- 데이터의 특성에 따라 많은 반복이 필요할 수 있으며, 계산 비용이 높아질 수 있다.
그림 4-12과 RANSAC의 관계
그림 4-12에서는 허프 변환과 최소평균제곱오차가 각각 직선을 추정하는 방법을 보여주고 있다. RANSAC 알고리즘은 이와 달리 아웃라이어가 존재하는 경우에도 강건하게 직선을 추정할 수 있는 방법으로, 아웃라이어에 영향을 받지 않고 최적의 모델을 찾는 데 적합하다.
따라서, RANSAC은 허프 변환이나 최소평균제곱오차를 대체할 수 있는 강건한 모델 추정 알고리즘으로 이해할 수 있다.
문제 풀기
RANSAC 알고리즘을 에지 점의 위치 정보 외에 에지 강도와 에지 방향 정보를 활용하여 강화하는 방법을 제안하겠다. 이 정보들을 추가로 사용함으로써 RANSAC이 더 정확하고 신뢰성 있는 직선을 찾을 수 있도록 하는 것이 목표이다.
1. 에지 강도와 에지 방향 정보 활용
에지 검출에서 각 에지 점은 다음과 같은 정보를 가지고 있다.
- 에지 위치: 에지 점의 좌표를 의미하며, RANSAC이 모델을 추정하는 데 사용하는 주요 정보이다.
- 에지 강도: 해당 에지 점의 밝기 변화 정도를 나타내며, 에지가 얼마나 명확한지를 반영한다.
- 에지 방향: 에지의 기울기(그래디언트) 방향을 나타내며, 에지의 기울기 방향이 직선의 방향과 일치하는 정도를 확인할 수 있다.
이 정보를 RANSAC에 추가하면 에지 강도가 높은 점을 우선적으로 사용하거나, 에지 방향이 직선의 기울기와 일치하는 점만을 인라이어로 판단할 수 있다.
2. 에지 강도와 에지 방향 정보를 활용한 강화 방안
(1) 에지 강도를 가중치로 사용
에지 강도가 높은 점일수록 신뢰성이 높은 에지로 간주할 수 있으므로, RANSAC 알고리즘에서 에지 강도를 가중치로 사용하여 더 강한 에지 점이 모델 추정에 더 큰 영향을 미치도록 할 수 있다.
- 가중치 기반 인라이어 판단: RANSAC에서 인라이어 판단 시 에지 강도를 가중치로 반영하여, 강도가 높은 에지 점이 인라이어로 선택될 확률을 높인다.
- 가중 평균 오차 계산: 인라이어를 선택한 후 모델에 대해 오차를 계산할 때, 에지 강도를 가중치로 사용하여 가중 평균 오차를 계산한다. 이렇게 하면 에지 강도가 낮은 점의 오차는 상대적으로 덜 영향을 미치게 되어, 에지 강도가 높은 점에 더 적합한 직선이 선택된다.
(2) 에지 방향과 직선의 일관성 활용
에지 방향이 직선의 기울기와 유사할수록 그 점이 해당 직선에 속할 가능성이 높다. 따라서, 에지 방향이 직선의 방향과 일치하는 정도를 인라이어 판단에 반영할 수 있다.
- 에지 방향 필터링: 에지 점의 방향이 직선의 방향과 유사한 경우에만 인라이어로 판단한다. 예를 들어, 직선의 기울기와 에지 방향이 ±10도 이내로 일치하는 점만 인라이어로 고려할 수 있다.
- 방향 일치도 기반 가중치 적용: 에지 점의 방향과 직선 기울기 간의 일치 정도를 가중치로 부여하여, 방향이 유사할수록 더 높은 가중치를 가지도록 한다. 방향 일치도가 높을수록 해당 에지 점이 인라이어로 선택될 확률이 높아진다.
(3) 초기 샘플 선택에 에지 강도와 방향 반영
초기 샘플링 단계에서 무작위로 샘플을 선택하는 대신, 에지 강도가 높은 점을 우선적으로 선택하거나, 방향이 유사한 에지 점을 샘플링하는 방식을 도입할 수 있다.
- 에지 강도 기반 샘플링 우선순위: 에지 강도가 높은 점을 우선적으로 샘플링하여 초기 모델을 형성함으로써, 강한 에지 점을 기준으로 직선을 추정할 수 있다.
- 에지 방향 기반 초기 샘플링: 에지 방향이 서로 유사한 에지 점을 선택하여 초기 모델을 형성하도록 한다. 이렇게 하면 초기 모델이 방향 일관성을 가지게 되어, RANSAC이 더 적합한 직선을 찾는 데 유리해진다.
문제 4번
자연 영상에는 그림자가 만든 에지와 물체 경계가 만든 에지 등이 혼재되어 있다. 에지 거출 알고리즘만으로 이들을 구분할 수 있는가? 그렇게 답한 이유를 설명하시오.
에지 검출 알고리즘만으로는 그림자가 만든 에지와 물체 경계가 만든 에지를 완벽히 구분하기 어렵다. 그 이유는 다음과 같다.
1. 에지 검출 알고리즘의 원리
에지 검출 알고리즘은 주로 밝기 변화를 기반으로 에지를 검출한다. 예를 들어, 소벨(Sobel), 캐니(Canny)와 같은 에지 검출 알고리즘은 이미지에서 밝기 변화가 급격하게 일어나는 부분을 찾아 에지로 간주한다. 이 알고리즘들은 밝기 변화만을 이용하기 때문에, 그림자에 의한 밝기 변화와 물체 경계에 의한 밝기 변화를 구별할 수 있는 능력이 없다.
2. 그림자와 물체 경계의 에지 차이
- 그림자 에지: 그림자는 광원의 방향과 강도에 따라 물체의 외곽에 생기며, 일반적으로 물체 경계보다 더 부드럽고 연한 에지를 만든다. 하지만 그림자도 밝기 변화가 존재하기 때문에 에지 검출 알고리즘에 의해 에지로 검출된다.
- 물체 경계 에지: 물체 경계는 실제 물체의 외형을 정의하며, 일반적으로 더 명확하고 선명한 에지를 만든다.
그림자의 에지와 물체의 경계는 이러한 특성을 통해 구별할 수 있지만, 단순한 에지 검출 알고리즘만으로는 이 차이를 인식하기 어렵다.
3. 에지 검출 알고리즘의 한계
에지 검출 알고리즘은 밝기 변화만을 고려하기 때문에, 그림자의 에지와 물체 경계의 에지를 구분할 수 있는 추가적인 정보를 제공하지 않는다. 따라서 에지 검출만으로는 두 종류의 에지를 구별하기 어렵다.
정리해 보면, 에지 검출 알고리즘만으로 그림자 에지와 물체 경계 에지를 구분하기는 어렵다. 이를 구분하기 위해서는 색상 정보, 텍스처 정보, 심도 정보 또는 기계 학습을 통한 추가적인 분류 과정이 필요하다.
문제 5번
그림 4-1은 자연 영상과 사람이 영역 분할하여 레이블 한 결과를 보여준다. 사람에 따라 다르게 분할할 수 있는데, 버클리 팀에서는 이 문제를 어떻게 해결했는지 조사하시오.
버클리 팀에서 개발한 BSDS (Berkeley Segmentation Dataset and Benchmark)는 자연 영상의 영역 분할에 대한 연구를 위해 구축된 데이터셋으로, 사람에 따라 다르게 분할된 결과를 어떻게 처리할지에 대한 문제를 해결하기 위해 다음과 같은 방식을 사용했다.
BSDS 데이터셋에서의 해결 방법
- 다수의 사람이 레이블링한 데이터 수집
- 동일한 이미지에 대해 여러 사람에게 영역 분할 작업을 수행하게 하여 각기 다른 분할 결과를 얻었다. 사람마다 분할 기준이 다를 수 있기 때문에, 이렇게 다양한 결과를 수집함으로써 데이터셋에 포함된 다양한 분할 기준을 반영할 수 있었다.
- 평균적인 분할 기준 제공
- 여러 사람이 동일한 이미지에 대해 분할한 결과를 평균적인 기준으로 통합하여, 특정 알고리즘이 해당 기준에 얼마나 근접하게 영역을 분할하는지 평가할 수 있게 했다. 이 방법을 통해 데이터셋의 정답(ground truth)을 단일 기준이 아닌, 다양한 기준의 평균치로 만들었다.
- 평가 기준 제공
- 각 분할 결과를 정량적으로 비교할 수 있는 정확도 평가 기준을 설정하여, 알고리즘이 다양한 사람의 분할 결과와 얼마나 유사한지 평가할 수 있도록 했다. 대표적으로, Boundary F1-score나 **Variation of Information (VI)**와 같은 측정 방식을 사용하여 알고리즘 성능을 객관적으로 평가했다.
- 다양성 수용
- 사람마다 다른 분할 방식을 하나의 절대적인 정답으로 수렴시키지 않고, 다양한 분할을 인정함으로써, 알고리즘이 다양한 분할 기준에 대해 얼마나 유연하게 대응할 수 있는지 평가했다. 이로 인해 영역 분할 알고리즘이 보다 사람의 인식과 가까운 결과를 낼 수 있도록 유도했다.
결론
BSDS 데이터셋에서는 사람이 동일한 이미지를 여러 기준으로 분할한 결과를 수집하고, 이를 평균적 기준으로 통합함으로써 알고리즘이 다양한 기준을 수용할 수 있도록 하였다. 이는 분할이 사람마다 다를 수 있다는 점을 인정하고, 알고리즘의 성능을 사람의 시각적 인식에 가까운 방식으로 평가할 수 있게 한다.
문제 6번
프로그램 4-7 54행에 있는 인수 5의 의미를 쓰시오. 5를 1로 바꾸면 프로그램 실행 결과가 어떻게 달라지는지 확인아호 이유를 설명하시오.
원래 코드
코드의 54줄에 있는 cv.grabCut(img, mask, None, background, foreground, 5, cv.GC_INIT_WITH_MASK)에서 5는 GrabCut 알고리즘의 반복 횟수를 의미한다. 이 값은 5로 설정되어 있는데, 이는 GrabCut 알고리즘이 최적의 결과를 얻기 위해 5번 반복한다는 뜻이다.
GrabCut 알고리즘은 초기 마스크를 기반으로 배경과 전경을 분리하는데, 이때 초기화된 마스크를 바탕으로 가우시안 혼합 모델(GMM)을 점진적으로 최적화한다. 반복 횟수가 많을수록 GMM이 전경과 배경에 더 잘 맞는 모델로 수렴하게 되어 더 정교한 결과를 낼 수 있다. 하지만 반복 횟수가 많아질수록 계산 비용도 증가한다.
5를 1로 변경했을 때의 실행 결과 차이
코드에서 반복 횟수를 5에서 1로 줄이면, GrabCut 알고리즘이 한 번만 수행된다. 이로 인해 GrabCut이 배경과 전경을 구분하는 과정이 충분히 반복되지 않기 때문에, 전경과 배경이 명확히 분리되지 못할 가능성이 커진다. 결과적으로, 배경과 전경의 경계 부분에서 노이즈가 많아지거나 일부 전경이 배경으로 포함될 가능성이 높아진다.
GrabCut 알고리즘은 반복을 통해 GMM이 점점 더 정확하게 전경과 배경을 구분하도록 학습된다. 5로 설정했을 때는 5번의 반복을 통해 마스크가 개선되면서 경계가 더 정밀해지는 반면, 1로 설정했을 때는 한 번의 반복만으로 끝나기 때문에 최적의 경계선에 도달하지 못할 가능성이 크다. 이는 특히 복잡한 이미지에서 전경과 배경이 잘 분리되지 않는 결과로 나타날 수 있다.
이렇게 1로 변경한 후 실행해 보면 q를 아무리 눌러도 전경과 배경이 분리되지 않았다. 실행이 되지 않아 그냥 x로 창을 닫아주었다.
학습을 마치고
어제 저녁에 연습문제 3번을 풀다가 너무 졸려서 바로 취침했다. 그리고 다음날 새벽 1시 반에 일어나서 공부를 시작해 보았다. 처음에는 너무 졸렸지만 그래도 잠을 이기며 공부를 이어갔다. 사실 3번에서 5번 문제는 별로 중요한 문제도 아닌 것 같고 이론적인 것들이라 그냥 안 풀고 넘어가고 싶었다.
근데 풀지 않으려니 왠지 찝찝하고 공부를 덜한 느낌이 들어 그냥 풀어보기로 했다. 자료를 찾아가며 정답을 그냥 옮기는 한이 있더라도 문제를 푸는 것과 풀지 않는 것은 큰 차이가 있는 것 같다.
'인공지능 > 컴퓨터 비전' 카테고리의 다른 글
지역 특징 1 - 발상 및 이동과 회전 불변한 지역 특징에 대하여 (1) | 2024.11.11 |
---|---|
에지와 영역 11 - 연습문제 풀기 4 : 문제 8~10번 (0) | 2024.11.11 |
에지와 영역 9 - 연습문제 풀기 2 : 문제 2번 (0) | 2024.11.10 |
에지와 영역 8 - 연습문제 풀기 1 : 문제 1번 (1) | 2024.11.10 |
에지와 영역 7 - 영역 특징 (0) | 2024.11.10 |