1. 서론
인공위성이 주어진 임무를 수행할 때, 자신의 자세를 추정하여 위치를 실시간 분석하는 것은 궤도상에서의 자세 제어를 위해 매우 중요하다. 이를 위해 별 추적기를 활용하여 실시간으로 별 영상을 획득함으로써 자신의 궤도상에서의 자세, 위치를 추정하는 자율항법을 수행한다. 별 추적기를 이용하여 위성의 자세를 추정할 때, 획득한 별 영상으로부터 패턴을 인식하는 것이 핵심 기술인데, 센서 잡음이나 별의 밝기 변화, 가림 등의 다양한 문제로 인해 패턴 매칭에 오차가 발생할 수 있다. 최근 발달한 딥러닝 기술을 활용하여 별 패턴 인식에 접목한 연구로써 [1]에서는 별 영상에 5개 이상의 별이 존재할 때, 중심 별과 주변의 밝은 별 순으로 4개의 별을 추출하여 패턴 인식한 연구가 있다. 이 경우 연산시간이 단축되지만 촬상면 방향에 따라 별이 확보가 불가능한 경우가 발생할 수 있다.
따라서 본 논문에서는 이미지 후처리에 주로 쓰이는 CNN(Convolutional Neural Network) 기법을 활용하여, 별 패턴 인식 기법에 대한 정확도 연구를 수행하였다. 기존 방식과 비교하여 성능을 분석하기 위해 기존 방식으로는 삼각패턴법과 그리드 알고리즘을 적용하여 동일 별 영상에 대한 인식 정확도를 비교 분석하였다.
2장에서는 별 영상 생성을 위한 모의 환경에 대해 기술하고, 3장에서는 기존 별 패턴 인식 방법에 대해 삼각패턴법과 그리드 알고리즘을 구분하여 기술하였다. 4장에서는 CNN 기법에 대해 소개하고 별 패턴 인식에 있어 적용 방안에 대해 기술하였다. 5장에서는 결과 분석을 통해 위성 자세 결정 정확도를 비교하여 제안한 알고리즘 성능을 검증하였다.
본 논문에서 수행한 연구를 통해 위성 자율항법에 활용되는 별 추적기의 기본 단계인 별 영상에 대한 패턴 인식 정확도를 높임으로써, 위성 자세 및 위치 오차 수준을 줄일 수 있을 것으로 기대된다.
2. 별 영상 생성을 위한 모의 환경
별 영상을 생성하기 위한 모의 환경은 Fig. 1에 도시한 바와 같이 2대의 CCD 카메라가 부착된 별 추적기와 알고리즘 수행 PC, 별 영상 생성용 모니터 2대로 구성하였다[2].
별 영상 생성을 위한 별 카탈로그는 겉보기 등급 9등성 이상의 약 8만여 개의 별로 이루어진 HYG(Hipparcos Catalogm, Yale Bright Star Catalog, Gliese Catalog of Nearby Stars) 중에서 6.0 등급 이상의 별에 대한 정보를 추출하여 데이터베이스를 구축하였다[3]. Table 1은 임계 겉보기 등급 이상의 별이 카탈로그에서 차지하는 비율을 나타낸 것으로 HYG 카탈로그에서 겉보기 등급 6.0등성 이상이 약 13%를 차지하는 것을 확인할 수 있다. 별 추적기 시뮬레이터는 별 추적기의 CCD 카메라로 획득한 별 영상에 대해 잡음 제거를 위한 전처리 과정을 거친 후, 별 패턴 인식 기법을 적용한 별 인식을 통해 위성의 자세를 추정하게 된다[4]. 영상처리 단계에서는 별의 중심점을 찾고, 중심 별과 주변 별들의 패턴을 파악하여 별 인덱스를 산출 후 인식한다.
Apparent magnitude | 1.5 | 3.5 | 5.0 | 5.5 | 6.0 | 7.0 | 8.0 |
Catalog occupancy percentage (%) | 0.029 | 0.350 | 1.969 | 3.447 | 6.097 | 15.832 | 23.676 |
Fig. 2는 본 논문에서 분석할 겉보기 등급 6.0 이상의 별의 분포도를 천구에 대해 단위 벡터 상으로 가시화한 것이다.
Fig. 3은 별 추적기 CCD 카메라로 획득한 별 영상 모의 화면으로 잡음이 섞여 있는 경우이다. Fig. 4과 같이 잡음은 픽셀 값의 임계치 미만이라고 판단하여 0으로 이진화시켜 가우시안 필터에서 제거될 수 있게 하였다.
별 영상을 확대했을 때, 픽셀마다 밝기값이 다르므로 이를 블러링하고자 가우시안 필터를 적용하였다. 2차원 가우시안 분포 함수를 사용하는데, 이때, i와 j양 축에 대해 정규분포가 독립성을 갖는다는 가정 하에 식 (1)과 같이 1차원 가우시안 분포 함수로 분리시켜 합성곱 할 수 있다. 1차원 가우시안 분포 함수는 식 (2)의 표준 정규분포를 이용한다. 여기서 σ는 표준편차를 의미한다.
블러링하여 하나의 레이블로 묶인 별 각각에 대해 중심점을 찾고자 무게중심 알고리즘을 적용하였다. 무게중심 알고리즘은 픽셀 값에 가중치를 부여하여 픽셀 중심점 위치를 산출하는 원리로, 식 (3)과 같이 계산할 수 있다. 여기에서 A는 집합을 이루는 원소들의 픽셀 값(I[k,l])의 합이고, (i̅) 와 (j̅) 는 식 (4)에서 무게중심 알고리즘 기법으로 산출한 픽셀의 위치가 된다.
3. 별 패턴 인식을 위한 기존 연구 방안-삼각패턴법, 그리드 알고리즘
위성의 자세를 추정하기 위해서는 별 추적기로 관측하여 획득한 별 영상과 2장에서 정의한 별 데이터베이스를 비교하여 패턴을 인식하여 일치하는 별을 추출하는 작업이 필요하다. 별 패턴 인식 알고리즘으로는 크게 삼각패턴법과 그리드 알고리즘이 있다[5]. 먼저, 삼각패턴법은 Fig. 5와 같이 별 추적기로 획득한 별 영상에서 3개를 이용하여 삼각형 공식을 이용하여 패턴을 파악하는 기법이다. 가장 밝은 별 1과 나머지 간 각거리에 가중치를 부여하고, 밝기 오차 범위 내에 속하는 패턴을 산출하여 인식 완료한다. 삼각패턴법은 3개의 별만을 이용한다는 점에서 간단한 반면, 중심점 오차에 의해 인식 실패 확률이 커진다.
그에 비해 그리드 알고리즘을 이용한 별 인식은 영상에 속한 별 패턴 자체를 내장된 카탈로그로부터 생성한 데이터베이스와 비교하기 때문에 인식 정확도가 높다. 이때 중심점 오차가 발생하더라도 동일 그리드에 속하면 같은 별로 인식하게 되므로 정확도가 증가하고, 또한 시계(FOV, field of view)가 충분히 확보된 상태에서는 영상에 속하는 별이 많아지므로 인식 오차를 줄일 수 있다. 그리드 알고리즘의 흐름도는 Fig. 6에 나타낸 바와 같다.
별 추적기로부터 획득한 영상에서 화면 중심에 가장 근접한 별을 Pivot star로 정의하고, 이와 가장 가까운 별을 Nearest star로 정의하였다. Fig. 7에서 둘 간의 벡터를 기준으로 이미지 전체를 회전하고, 격자를 일정 간격으로 만들어 좌측 하단부터 번호를 매긴다. Fig. 8과 같이 격자 순번이 영상에 속한 별 패턴 번호가 되고, 이를 카탈로그로부터 생성한 데이터베이스와 순차 비교하는 것이다. 이때, 그리드 알고리즘의 정확도를 높이기 위해서는 최소한 별이 4개 이상이 존재하는 경우 패턴을 파악하기 용이하다.
4. 별 패턴 인식을 위한 CNN(Convolutional Neural Network) 활용 방안
CNN 기법은 입력된 이미지에서 특징점을 추출하고 분류하는데 고성능을 보이는 신경망 구조이다[6,7]. 기본적으로 4단계인 합성곱 층, 활성화 함수층, 풀링층, 완전연결 층으로 구성된다. 먼저 합성곱 층에서는 이미지에서 특징을 추출하는 연산을 수행하는 역할을 한다. 입력 이미지 X와 커널 필터 K가 주어졌을 때, 출력 특징 맵 Y는 식 (5)와 같이 정의할 수 있다. 여기에서 b는 편향 값이다.
다음으로 활성화 함수층에서는 비선형성을 도입하여 신경망이 복잡한 패턴을 학습하는 기능을 한다. 대표적인 활성화 함수로 ReLU(Rectified Linear Unit)를 사용하며 이는 식 (6)과 같다.
ReLU 함수는 음수는 0으로 변환함으로써 신경망 학습 속도를 높이고, 기울기 소실 문제를 완화하는 효과를 가진다.
세번째로 풀링층에서는 특징 맵의 크기를 줄여 계산량을 감소시키고, 성능을 높이는 역할을 수행한다. 대표적으로 최대 풀링, 평균 풀링 값을 사용하고 식 (7), (8)과 같이 수행한다. 여기에서 R은 풀링 영역을 의미한다.
마지막으로 완전연결 층에서는 최종 예측 값으로 변환되는 역할을 수행한다. 특징 맵 벡터 X와 가중치 행렬 W, 편향 벡터 b가 주어졌을 때, 식 (9)와 같이 구해진다. 여기에서 σ는 활성화 함수 ReLU이다.
이렇게 4개의 층으로 구성된 CNN 기법의 학습 목표인 손실함수 최소화를 위해 손실함수 L은 식 (10)과 같이 정의할 수 있다. 여기서 yi는 카탈로그 내에서 실제 별 인덱스, 는 완전연결 층에서 예측된 별 인덱스이다. 최종적으로 손실함수의 기울기가 0으로 수렴하도록 확률적 경사 하강법을 통해 식 (11)과 같이 가중치를 업데이트 하여 학습한다. 여기에서 η는 학습률이다.
5. 별 패턴 인식 기법 정확도 비교 결과
기존 별 패턴 인식 기법인 삼각패턴법, 그리드 알고리즘과 제안하는 CNN을 활용한 별 패턴 인식 기법의 정확도와 신뢰도를 비교하기 위해 Table 2와 같이 카탈로그 데이터셋을 구성하였다.
Data | 별 추적기 획득 영상 학습용 500장 검증용 100장 |
Preprocessing | 이미지 크기 조정(128 × 128) 노이즈 제거(Gaussian blur 적용) |
Performance indicator | 정확도 |
Test condition | 노이즈 추가(표준편차 0.1) 밝기 변화(30% 내외에서 랜덤 생성) |
제안한 CNN을 활용한 별 패턴 인식 기법을 학습하기 위해 별 영상 500장에 대하여 적용하였다. 그 후 기존 별 패턴 인식 기법인 삼각패턴법, 그리드 알고리즘과의 비교를 위해 검증용 별 영상 100장에 대해 수행한 결과 Table 3과 같이 정확도의 결과가 나왔다. 별 영상 1번의 경우 초기 셋팅 과정에서 CCD 카메라의 흔들림이 발생해서 세 가지 기법 모두 인식이 불가함을 확인하였다. 별 영상 3번의 경우 73번 별이 72번 별에 근접하게 존재하므로 그리드 알고리즘, CNN 적용 기법 모두 추가로 식별하였다. 영상의 개수가 많아 대표적인 3개의 영상에 대한 결과를 도시하였다. 100개의 영상에 대한 평균 정확도는 삼각패턴법 63.6%, 그리드 알고리즘 89.3%, CNN 적용 기법 96.7%로 제안 기법이 우수한 성능을 보임을 확인하였다. 또한 Table 4와 같이 별의 중심 위치를 산출한 픽셀 위치에 대해 표준편차 0.1의 위치 오차를 추가하거나 30% 내외에서 밝기를 랜덤하게 변화를 준 별 영상에 대해서도 제안하는 CNN을 활용한 별 패턴 인식 기법의 정확도가 기존 별 패턴 인식 기법을 적용한 결과보다 인식률에 있어 정확도가 높음을 확인하였다. 표준편차 0.1 수준의 위치 오차가 있는 경우는 패턴 인식의 오류가 발생할 수 있기 때문에 인식 정확도가 5% 정도 감소함을 확인하였다. 밝기 변화가 있을 때 인식 정확도에 있어 큰 영향을 끼치지 않았고, CNN을 활용한 별 패턴 인식 기법 적용 시 100개의 검증용 별 영상에 대해 평균 91.2% 이상의 정확도를 가짐으로써 강건성을 보임을 확인하였다.
검증용 별 영상 100장에 대한 3가지 별 패턴 인식 기법의 총 연산 속도를 Table 5에 기술하였다. 별 추적기 시뮬레이터에서 100장을 순차적으로 촬영하고, 전처리 과정을 통해 별을 추출하여 별 패턴을 인식하여 최종적으로 별 인덱스를 도출하는데 걸리는 소요 시간으로 그리드 알고리즘이 가장 적은 시간이 소요됨을 확인하였고, CNN을 활용한 별 패턴 인식 기법 적용 시 비슷한 시간이 소요됨을 확인하였다.
Method | Triangular pattern matching | Grid algorithm | CNN application |
---|---|---|---|
Computation speed | 16.3 sec | 11.5 sec | 11.8 sec |
앞서 별 패턴 인식 기법을 적용하여 카탈로그 상에서 별의 정보를 추출한 뒤, 이를 이용하여 위성의 자세를 결정하기 위해서 n개의 별에 대해 ECI 좌표계에 대한 별 시선벡터 와 별 추적기 CCD 카메라 면의 동체 좌표계에 대한 시선 벡터 간의 관계식을 식 (12)과 같이 정의할 수 있다[8]. 이때, 2차원의 별 추적기 CCD 화면에 맺히는 별의 위치가 (x,y)로 주어질 때, 카메라 초점거리 f를 활용하여 식 (13)과 같이 를 계산할 수 있다. ECI 좌표계 상에서의 방위(RA), 고각(DEC) 정보를 이용하면 식 (14)에서 도 산출된다.
여기에서 A는 좌표변환 행렬로써, 자세 정보인 롤(ϕ), 피치(θ), 요(ψ)를 산출하기 위해 식 (15)와 같이 방향코사인 행렬을 정의할 수 있다.
이를 이용하여 별 영상 100개에 대해 그리드 알고리즘을 적용했을 때와 CNN 기법을 적용한 별 패턴 인식 기법을 적용했을 때의 위성 자세 결정 오차를 분석한 결과 Table 6과 같다. 이때, 별 추적기 2대에 대한 평균 자세 결정 오차 값을 기술하였다. CNN 기법을 적용하여 별 패턴을 인식했을 때 정확도가 높기 때문에, 자세 오차의 평균값이 5% 정도 감소함을 확인하였다. 특히 렌즈의 왜곡에 의해 발생하는 롤 오차의 경우 딥러닝을 통해 학습한 결과 약 17% 개선됨을 확인하였다.
6. 결론
위성이 자율 항법을 하기 위해서 별 추적기를 이용한 별 영상 획득으로부터 자세를 추정하는 작업이 중요하다. 기존 별 추적기 알고리즘은 별의 상대적인 위치와 각도를 기법으로 패턴을 인식하여 별 인덱스를 식별하였다. 하지만 센서 잡음, 별 밝기의 변화, 일시적 가림 현상 등이 존재하는 경우 별 패턴 인식의 정확도가 감소하는 오류가 있다. 따라서 이를 해결하기 위해 본 논문에서는 CNN 기법을 적용한 딥러닝을 활용하여 별 패턴을 인식하는 연구를 수행하고 알고리즘을 제안하였다. 기존의 삼각패턴법과 그리드 알고리즘과 제안한 기법을 비교하고, 전처리 과정으로 추출한 별의 중심위치에 대한 표준편차 0.1 수준의 위치 오차, 밝기 변화가 조정된 경우에 대해 성능을 비교하고 검증함으로써 강건성을 확보하였다.
이를 통해 별 인식 정확도를 높임으로써 위성의 자세 결정 정확도를 향상시켰으며, 향후 연구에서는 실시간 성능 최적화 및 연산 시간 감소를 위한 추가 연구가 필요하다. 또한 전처리 과정에서 별의 중심 위치를 산출함에 있어서 추가적으로 딥러닝을 활용한 성능 개선 연구가 필요하다.