Basler PGI를 이용한 보다 우수한 이미지 품질
색상 오류를 크게 줄이다
디지털 카메라를 이용해 높은 이미지 품질을 얻어내려면 여러 가지 카메라 구성 요소와 기능들이 완벽하게 조화되어 상호작용해야 한다. Basler의 혁신적인 PGI 기술은 5×5 디베이어링(Debayering), 컬러 안티앨리어싱, 향상된 샤프니스 및 노이즈 제거 기능을 조화롭게 제공한다. 이 기술은 노이즈를 제거함과 동시에 향상된 휘도, 충실한 디테일, 이미지 샤프니스를 갖춘 이미지를 생성하여 사람의 눈이 느끼는 것에 최적화되도록 설계되었으며, 탁월한 수준의 디베이어링으로 색상 오류를 크게 줄이고 뛰어난 이미지 디테일을 제공한다. Basler가 제공한 이 글에서는 이미 탁월한 수준인 Basler 카메라의 이미지 품질을 새로운 차원으로 끌어올려주는 PGI에 대해 알아본다.
이미지 색상 최적화 기준으로서의 베이어 매트릭스
화상 처리 분야에서 컬러 카메라가 점차 모노크롬 카메라를 대체하고 있다. 컬러 카메라가 모노크롬 이미지에 비해 훨씬 많은 정보를 담고 있는 컬러 이미지를 제공하기 때문이다. 컬러 이미지의 각 픽셀은 적(R), 녹(G), 청(B)과 같은 여러 가지 색상 값으로 구성된다. 그래서 이러 한 이미지를 ‘RGB 컬러' 이미지라 부르는 것이다.
실제 삼색 이미지 센서를 가진 컬러 카메라는 매우 복잡하고 가격대가 높다. 이를 대신할 수 있는 저렴하면서 성능도 괜찮은 컬러 카메라가 소위 베이어 매트릭스 또는 베이어 패턴을 이용한 이미지 센서가 장착된 카메라이다. 이 패턴은 1975년 Eastman Kodak사의 직원 이었던 Bryce E. Bayer가 발명했으며 미국 특허 번호 3,971,065번으로 등록되어있다. 베이어 매트릭스에서 각 픽셀은 체스판을 닮은 자체 컬러 스크린과 함께 동작한다. 이 마스크의 50%는 녹색이고, 적색과 청색 마스크 는 각각 25%이다. (그림 1 참조)
베이어 매트릭스의 상단 좌측 모서리에 어떤 색상을 배치해야 하는가에 대한 규격은 없다. 때문에 <그림 2>에서와 같이 센서에 따라 다른 있는 네 가지 옵션이 있다. 첫 줄의 처음 두 개 픽셀을 어떤 색상이 차지하느냐에 따라 RG, BG, GB 또는 GR이라 부른다.
<그림 3>은 관련 픽셀 색상이 명확히 표시된 베이어 센서로 촬영한 원시 이미지의 디테일을 보여준다.
디베이어링
베이어 센서에서는 각 픽셀 마다 한 가지 색상만이 표시된다. 올바른 RGB 컬러 이미지에는 픽셀 당 적, 녹, 청 세 가지 색상이 필요하지만 나머지 색상들은 ‘보간법'이라는 기술을 이용해 삽입된다. 여기에서 사용 되는 보간법은 디베이어링(Debayering), 디모자이킹(Demosaicing) 또는 간단하게 ‘컬러 필터 어레이 보간법(Color filter array interpolation)' 이라 불린다.
디베이어링은 보간 기술을 바탕으로 한다. 예를 들어, 픽셀에서 적색이 차지하는 비중이 25%에 불과하며 나머지 75%에 대해 적색 값을 보간 해야 한다면, 다양한 보간 알고리즘이 있으며 어떤 알고리즘을 선택하느냐에 따라 개념적 접근, 구체적인 구현, 리소스 요구 사항 및 결과에 커다란 영향을 준다.
디베이어링 알고리즘은 인접 픽셀의 색상 값을 이용해 누락된 색상을 계산하는 방식으로 작동한다. 이 분석을 위한 규격은 각각의 픽셀에 대해 계산한 주변 픽셀 개수로 측정하며 2×2, 3×3, 4×4, 5×5 등으로 부른다. <그림 4>는 2×2 및 5×5 환경을 보여 준다.
2×2 디베이어링은 '최근접 픽셀 보간법(Nearest neighbor interpolation)'을 바탕으로 하며 이 글에서는 '단순 디베이어링(simple debayering)'으로 부른다. 이것은 자원의 소모가 적은 것으로 알려져 있다.
다음 실제 샘플 이미지<그림 5>에 명확히 보이는 바와 같이 심각한 색상 오류가 생기곤 한다. 가장 흔히 나타나는 현상은 주황색과 하늘색 오류인데 이 색상들은 검정색의 숫자 및 문자와 흰색의 바탕이 가장자리에서 만날 때 나타난다. 대각선에서 주황색과 하늘색은 계속 교차되어 눈의 초점을 흐리게 한다. 이미지의 초점이 흐려지는 현상은 특히 맞물린 것처럼 보이는 대각선 가장자리에서 눈에 띄게 나타난다.
보다 나은 보간법을 선택하면 이러한 결과가 개선될 수 있다. 이 방식의 장점은 보다 넓은 영역에서 데이터를 도출할 수 있다는 것이다.
PGI 디베이어링
PGI 디베이어링은 5×5 픽셀 반경에 적용하기 위해 Basler가 새로 개발한 상당히 개선된 디베이어링 알고리즘이다. 이전 이미지에 동일한 원시 데이터를 PGI 알고리즘으로 처리해 생성한 RGB 이미지인 <그림 6>과 비교해보면 모든 면에서 이미지 품질이 더 우수하다는 것이 확연히 눈에 띈다. 어떠한 색상 결함도 나타나지 않고 문자를 명확하게 읽을 수 있으며 대각선 가장자리는 매끄럽고 선명하게 보인다.
PGI 알고리즘은 눈에 보이는 색상 이미지 품질을 크게 개선하도록 고안되었다. 이 알고리즘을 적용하려면 많은 연산 단계가 필요하다. 디베이어링 이외에도 다음과 같은 단계가 포함된다.
•색상 결함 제거 (컬러 안티앨리어싱)
•샤프니스 개선
•노이즈 제거
연산 단계 각각에 대한 설명
PGI의 5×5 디베이어링은 보간 문제 및 보간 해법에 대한 깊이 있는 수학적 이해, 그리고 눈의 특징에 대한 이해를 바탕으로 한다. 이런 유형의 복잡한 알고리즘에는 대개 조작 지점을 선택하기 위한 옵션들이 있다. 옵션은 눈으로 보았을 때 최고의 결과를 얻을 수 있는 방식으로 선택한다.
인체의 망막에는 두 가지 시각 세포가 있다. 간상세포는 흑백을 보고 원추세포는 색을 보기 위한 것이다. 간상세포는 원추세포에 비해 많고 밀도가 높아 결과적으로 흑백 콘트라스트를 훨씬 높은 해상도로 볼 수 있다. PGI는 이러한 특성을 활용해 흑백 카메라의 이미지 품질과 비슷한 높은 휘도와 디테일 충실도로 선명한 흑백 콘트라스트를 재현한다. 이로 인해 윤곽선을 뚜렷하게 볼 수 있고 이미지와 문자 가독성이 특히 좋아진다.
이 밖에도 흑백 구분을 위한 간상세포는 녹색에 매우 민감하다. PGI는 흑백 콘트라스트를 재현할 때 녹색 픽셀에 특별한 가중치를 부여함으로써 보다 자연스러운 이미지를 표현한다. 마지막으로 사람의 눈은 컬러 노이즈 및 색상 오류가 있는 개별 픽셀에 매우 민감하다. 이런 이유로 PGI 개발 중에 아주 낮은 컬러 노이즈의 컬러 재현 방법을 선택하는 데 집중했다.
컬러 안티앨리어싱
색상 오류, 특히 날카로운 가장자리에서의 오류는 처리 효과가 떨어지는 디베이어링 알고리즘의 부작용으로 흔히 발생한다. 이러한 결함은 특히 아래와 같은 원시 이미지<그림 7>을 사용할 때 뚜렷이 나타난다. 이 이미지는 좌에서 우로, 그리고 위에서 아래로 움직일 때 주파수가 높아지는 코사인 파를 보여준다.
예를 들어, 이 이미지에 2×2의 단순한 디베이어링 알고리즘을 적용하면 결과 이미지는 다음과 같다. (그림 8 참조)
보이는 바와 같이 모서리 부분에 색상 결함이 있다. 이 모서리를 기준으로 <그림 9>에 원인이 설명되어 있다.
상단 좌측 모서리에서부터 이 이미지를 검사해보면 공간 주파수가 낮은 영역, 즉 넓은 부분이 밝거나 어둡고 밝기 변화가 점진적으로만 이루어지는 상단 좌측과 같은 영역의 색상이 보정하기 가장 쉽다. 색상 결함은 눈에 띄지 않지만 공간 주파수가 높은 부분에서 색상 오류가 자주 발생하며 확연히 눈에 띄기 때문이다.

검정색과 흰색 줄에서 픽셀이 인접한 경우와 같이 간격이 아주 좁을 때 이런 오류가 발생한다. 한쪽은 밝고 다른 한쪽은 어두운 날카로운 가장자리에서도 높은 공간 주파수가 발생한다. 수직 구조에서는 <그림 9>의 상단 우측에서 표현된 것과 같은 상황이 발생할 수 있다. 첫 번째 사례에서 적색과 녹색 열은 녹색과 청색 열에 비해 더 많은 빛을 받는다. 이런 이유로 적색 픽셀은 평균 이상의 밝기를 갖는데 비해 청색 픽셀은 평균 미만의 밝기를 갖게 된다.
과다한 적색과 부족한 청색이 섞이면 주황색 오류가 생긴다. 반대로 적색이 너무 적고 청색이 너무 많으면 하늘색 색상 오류가 생긴다. 가로 줄의 경우 상황이 90° 바뀐다. 여기에서 적색과 녹색 픽셀 행은 녹색과 청색 픽셀 행에 비해 더 많은 빛을 받아 주황색으로 표현된다. 반대로 녹색과 청색 픽셀 행에 더 많은 빛이 감지되면 하늘색이 나타난다.
이론대로라면 대각선에 밝은 자주색과 녹색 변색이 나타나는 <그림 9>의 우측 하단에서의 상황도 가능하다. 하지만 실제로는 렌즈의 광학 품질이 이렇게 적절한 콘트라스트로 아주 빽빽하게 채워져 있는 것을 표현하기에는 부족하기 때문에 이런 상황은 거의 일어나지 않는다.
PGI 컬러 안티앨리어싱
PGI를 통해 이론적 한계에서의 모든 잠재적 주파수에 대해 이러한 효과로 인해 발생하는 변색을 분석하고 보정한다. 이 이론적 한계는 디지털 시스템 이론에서 도출되며 나이키스트 주파수(Nyquist frequency)라 부른다. <그림 10>에서는 동일한 이미지를 PGI로 처리한 후의 이미지를 보여 준다. 녹색 픽셀의 나이키스트 주파수까지 변색이 제거되었다. 녹색 픽셀의 나이키스트 주파수는 우측 상단에서 좌측 하단으로 대각선으로 변화하며 변색 한계점으로 이미지에서 명확히 식별할 수 있다.
실제 이미지에서 효과를 뚜렷이 확인할 수 있다.
샤프니스
아래에 보이는 바와 같이 일반적인 디베이어링 알고리즘은 종종 우수한 샤프니스의 선명하고 날카로운 구조를 재현하지 못한다.
PGI 향상된 샤프니스
PGI는 콘트라스트에 의해 흑백 구조를 탁월하게 재현한다. 높은 해상도의 구조를 표현할 때 Bayer 매트릭스로 작동하는 컬러 카메라는 앞서 언급한 컬러 안티앨리어싱 효과뿐만 아니라 이미지 샤프니스와 관련된 문제도 야기한다. 순수한 선형 보간 알고리즘에는 근본적인 한계가 있다. PGI는 이미지 구조에 맞춰 선형 보간 알고리즘을 조정한다. 이로 인해 모노크롬 카메라 수준으로 이미지 샤프니스를 향상시킨다.
이렇게 해서 PGI는 강력한 이미지 샤프니스를 제공한다. 아주 까다로운 작업에서는 샤프니스 요소를 조절할 수도 있다. 광학 부품이 최적화되지 않아 생기는 현상을 보상하는 등의 특정 영역에서 이미지의 샤프니스를 다시 보강할 수 있다. 이 모든 것들을 통해 이미지 샤프니스는 항상 인간의 눈이 갖고 있는 지각 특성에 맞춰진다.
이미지 샤프니스는 노이즈와 밀접한 관계가 있고 선형 재샤프닝은 근본적으로 노이즈 증가로 이어진다는 점에 주의해야 한다. 사람의 눈은 그레이 노이즈를 컬러 노이즈에 비해 훨씬 덜 민감하게 받아들이기 때문에 PGI는 그레이 노이즈가 약간 증가하지만 컬러 노이즈에서 아무런 영향도 주지 않는 방향으로 샤프닝 프로세스를 수행한다. 샤프니스 요소에 대해 중간을 유지할 경우 재샤프닝 기능은 꺼진다.
많은 애플리케이션에서 우수한 이미지 샤프니스는 중요한 요소이며, 때로는 크리티컬한 요소이기도 하다. 특히 컬러 카메라로 숫자나 글자를 정확히 식별해야 하는 애플리케이션에서는 더욱 그러하다. 우수한 가독성은 이미지 분석을 눈으로 하든, 기계로 하든 아주 큰 도움이 되며 PGI는 색상 및 텍스트에 대한 정밀 감지가 필요한 경우에 특히 도움이 된다. 예를 들어, 교통 모니터링은 차량 색상 및 번호판을 얼마나 정확히 녹화할 수 있는가에 좌우된다. 소매상점의 경우 스캔할 상품의 색상을 제대로 감지하고 바코드를 올바로 판독하는 것이 중요하다.
선명한 이미지는 낮은 해상도(적은 픽셀 수)에서도 화상 처리 작업을 쉽게 해 준다. 이는 조명 장비와 카메라부터 컴퓨팅 성능에 이르기까지 보다 저렴한 장비를 사용해도 되며 동일한 작업 사이클 안에서 카메라가 더 많은 이미지를 녹화할 수 있고 이는 녹화 사이클이 빨라짐을 의미한다.
노이즈
노이즈는 어떤 이미지에서도 피할 수 없는 부분이다. 노이즈 대부분은 빛이 많은 수의 광자로 구성되어 있다는 사실에서 기인한다. 광자는 임의성(Randomness)을 갖고 있는 양자역학적 입자이다. 이는 일정한 밝기에서조차 하나의 픽셀에 부딪히는 광자의 수가 더 많거나 적을 수 있음을 의미한다. 이로 인해 생기는 노이즈는 일시적인 현상으로서 포톤 샷 노이즈(Photon Shot Noise)라 불린다.
노이즈의 또 다른 원인은 이미지 센서와 관련된 전자 회로이다. 이미지 센서 노이즈는 강력한 아날로그 증폭 기능을 이용할 경우, 그리고 낮은 조도와 짧은 노출 환경에서 가장 두드러진다. 두 가지 노이즈 모두 이미지 센서에 영향을 주며 원시 이미지의 일시적 노이즈를 생성한다.
이 외에도 로컬 노이즈는 두 번째로 중요한 노이즈의 원인이다. 기본적으로 광 민감도가 픽셀 간에 약간씩 변화한다는 사실로 인해 발생한다. 아주 사소한 차이도 이미지에서는 눈에 띈다. 이 효과를 광반응 불균일성(Photo Response Non Uniformity: PRNU)이라 한다.
특히 강력한 아날로그 증폭 기능을 이용할 경우, 어둡거나 노출 시간이 매우 짧은 환경에서 아주 어두운 영역의 픽셀 간 밝기 차이가 관찰될 수 있다. 이 효과를 고정 패턴 노이즈(Fixed Pattern Noise) 또는 DSNU(Dark Signal Non Uniformity)라 하며 특정 센서에 따라 영향에 차이가 있다. 고품질 센서의 경우에는 대개 이런 문제가 생기지 않는다. 앞서 언급한 노이즈 효과는 모노크롬과 컬러 카메라 모두에서 발생한다.
원시 이미지와 최종 컬러 이미지 간에는 대개 많은 처리 작업이 끼어 있다. 이러한 연산 단계들은 오류 전파 법칙에 따라 각각 노이즈를 강화 또는 감소시킨다. 실질적으로 노이즈는 감소보다는 증폭되는 경우가 많다는 점을 주목해야 한다. 이런 관점에서 무엇보다 중요한 것은 연속적인 수학 연산의 효과이며 이는 연산 단계 간에 노이즈를 기하급수적으로 증가시킬 수 있다. 불행히도 이는 전체적인 노이즈 효과를 강력히 증폭시키는 것으로 끝이 난다.
PGI 노이즈 제거
PGI는 이들 연산의 구성을 전환해 순차적으로 실행하는 대신 병렬로 실행한다. 이로 인해 노이즈 증폭이 계속되는 걸 막아준다. 개별 연산 절차의 설계는 노이즈 레벨을 낮추는 데 가장 우선순위를 둔다. 따라서 PGI 알고리즘은 항상 노이즈가 적은 선명한 이미지를 생성한다.
이 밖에도 PGI는 변수를 구성할 수 있는 액티브 노이즈 필터링 기능을 갖고 있다. 산업용 애플리케이션에서 노이즈 필터링은 연속적인 개별 이미지용으로 설계되어 있기 때문에 개별 이미지에만 집중하고 연속 이미지 콘텐츠를 평가할 때 서로 감지하게 되는 영향은 피한다. 노이즈 필터링 품질은 사용 가능한 입력 데이터 범위의 영향이 크다. 노이즈 필터링 대상 환경이 클수록, 결과가 좋아질 가능성이 크며, 연산 비용도 빠르게 증가한다.
5×5 노이즈 필터링은 PGI를 위한 합리적인 타협안으로 선택되었다. 이것은 특히 Basler 카메라에 사용된 고품질 이미지 센서에서의 노이즈 필터링에 효과적인데 이는 이들 센서가 이미 낮은 노이즈 레벨부터 중간 노이즈 레벨 사이의 용도로 개발되었기 때문이다. 아울러 가격이 매우 저렴하며 효율적이다.
<그림 15>는 노이즈에서의 디베이어링 효과를 보여준다. 프로세스에서 (a)의 균일한 회색 영역은 가우시안 노이즈로 인한 것이다. (b)는 단순 디베이어링을 이용해 생성된 이미지를 보여 준다. 이미지는 어떻게 보면 초점이 맞지 않은 듯 보이지만 한 편으로는 사람의 눈에 가장 거슬리는 유형의 컬러 노이즈는 쉽게 감지할 수 있다. (c)와 (d)는 RGB 컬러 스펙트럼의 관련 RGB 컬러 벡터 분포를 보여 준다. 특히 관심이 가는 부분은 산포도가 늘어난 것인데 이는 결과 이미지에서 노이즈 강도를 직관적으로 측정한 것을 나타낸다. RGB 컬러 벡터가 상당히 늘어난 것을 볼 수 있는데 이는 (b)의 이미지 느낌과 일치하는 것이다.
(e)에서는 PGI 처리 후의 결과를 보여 준다. 여기에서는 디테일의 샤프니스가 훨씬 좋아졌지만 매우 뚜렷한 노이즈가 감지될 수 있다. (b)와 비교하면 컬러 노이즈가 크게 감소한 걸 볼 수 있는데, 이는 훨씬 눈에 덜 띄는 거슬림을 의미한다. 하지만 여기에서는 일정 수준의 비 컬러 노이즈도 명확히 식별할 수 있다. 이 점은 (f)와 (g)의 RGB 컬러 벡터 분포에서도 볼 수 있다. 여기에서는 위에 표시된 것에 비해 노이즈 산포도의 분포 범위가 훨씬 좁다는 것을 볼 수 있다. 이는 특히 산포도의 수평 팽창이 크게 감소한 (f)에서 뚜렷하다.
(h)에서는 PGI 노이즈 억제 기술을 사용해 노이즈를 더 감소시키는 방법을 보여 준다. 이미지에 아주 적은 양의 노이즈만 발견된다. (i)와 (j)에 표시된 RGB 컬러 벡터 분포도 거의 팽창되지 않았다. (f)와 (i)를 비교해 보면 노이즈 산포면의 수직 팽창이 크게 감소한 것을 볼 수 있다.
노이즈 필터는 밝기 값의 작은 편차를 노이즈로, 그리고 이보다 큰 편차는 실제 이미지 콘텐츠로 해석하는 식으로 작동한다. 둘을 구분하기 위한 임계값은 변수로 표시할 수 있다. 이 임계값을 높게 설정하면 노이즈 이외의 것까지 제거할 수 있다는 점을 이해하는 것이 중요하다. 때로는 노이즈에서 누락될 뻔한 이미지의 미세한 구조까지 제거할 수 있다. 때문에 이러한 임계값을 올바로 구하려면 상당한 작업이 필요하다. 하지만 가장 중요한 것은 이미지 해석을 위한 핵심 구조가 영향을 받지 않는 것이다. 중간 설정에서는 노이즈 필터가 작동하지 않는다. 노이즈 필터가 활성화되어 있으면 약간의 샤프닝도 활성화하는 것이 좋다.연산 능력
앞에서 언급한 측면 이외에, PGI는 매우 낮은 리소스 수요 면에서 개발되었다. 컴퓨터를 이용한 모든 연산은 FPGA(Field Programmable Gate Array) 구현의 일환으로 5×5 환경에서 최적의 조화 속에서 병렬로 실행된다. 이로 인해 필요한 FPGA 내부 메모리가 매우 적고 아주 적은 계산 작업만 필요하다. 이것이야말로 대형 FPGA나 다른 연산 유닛과 같은 고비용 부품을 사용하지 않고도 카메라 안에서 복잡한 연산을 실행할 수 있는 유일한 방법이다.
디베이어링은 항상 카메라 내부 또는 외부에서 수행할 수 있다. 컴퓨터, 프레임그레버 또는 그래픽 카드에 의한 외부 디베이어링은 컬러 이미지 전송에 상당히 적은 대역폭을 필요로 하는 장점을 갖고 있다. 이론상 이것은 초당 더 많은 이미지를 전송할 수 있는 더 많은 대역폭을 남겨둘 수 있을 것이다.
하지만 PC에서 광범위한 연산이 필요한 고품질 디베이어링을 수행할 경우 해당 PC는 최적화된 코드를 사용하는 경우조차 연산 작업에 따른 부하가 급증한다. PC는 낮은 초당 프레임 수에서만 이미지를 처리할 수 있기 때문에 높은 전송 대역폭은 무효화되며 전체 프로세스는 거의 의미가 없다. 고품질 디베이어링은 또한 이미지 편집 소프트웨어를 사용해야 할 경우 항상 그렇듯이 PC 속도를 저하시킨다. 전체적으로 볼 때 이는 불편한 상황을 만든다. 이로 인해 디베이어링은 화상 처리 작업에서 중요한 요소로 생각해야 하지만 결코 유일한 요소는 아니라는 점을 인식해야 한다. 우수한 이미지 품질을 위해서는 적절한 순서로 이미지 준비 절차를 수행하는 것이 중요하다. 디베이어링은 이런 절차의 핵심이며 디베이어링 작업을 컴퓨터에 넘기려는 사람은 다른 업스트림 및 다운스트림 화상 처리 절차가 올바로 수행되는지 확인해야 한다.
이런 이유로 카메라의 FPGA에서 직접 PGI 알고리즘을 실행하는 것이 합리적이다. 카메라의 FPGA에서 PGI는 완전히 실시간 호환되며 화상 처리 과정에서 올바른 지점에 배치되어 완벽히 작동한다. 지연 시간이 엄청나게 단축되고, 연결된 PC는 카메라에서 바로 전송된 고품질 이미지에 힘을 쓰지 않고 편집 애플리케이션에 모든 성능을 쏟을 수 있게 된다.
자료제공 | 바슬러(www.baslerweb.com)
















