[카메라 기술 백서 #9] 카메라 출력 bit depth 8bit 10bit 12bit


  업무를 하다 보면 고객에게 가끔 이런 요구를 받는 경우가 있다. “검사 대상을 촬영한 영상에서 매우 적은 양의 gray 차이까지 구분해야 해서 8bit 출력으로는 부족합니다. 10bit나 12bit가 지원되는 카메라가 있으면 소개 바랍니다.”


 먼저 8bit / 10bit / 12bit는 무엇을 의미하는 것이며 왜 이런 차이가 발생하는지부터 알아보자. 8bit / 10bit / 12bit 출력과 같은 spec은 output bit depth라고 하며 이를 설명하기 위해 Digital과 Analog의 차이부터 시작해야 하지만 이건 독자를 너무 무시하는 처사로 보여 바로 bit depth에 대해 설명 하겠다.


디지털신호는 0과 1의 조합을 통해서 데이터의 크기를 나타내는 수단 중 하나이다. 그리고 bit depth는 몇개의 자릿수를 사용하여 표현할 것인가에 대한 것이다. 0과 1만을 사용한 숫자를 몇 자리 사용하는가 이며 아래는 8bit / 10bit / 12bit를 예시로 들었다.


 그래 여기까진 다 알고 있다. 그런데 이런 bit depth를 이용해서 영상의 밝기를 표현하면 어떨까. 아래 문제를 한번 풀어 보자.


문제. 다음 보기 중 가장 밝은 pixel data는?

  1. 128DN (8bit)
  2. 512DN (10bit)
  3. 2048DN (12bit)

답은 없다. 3개 모두 동일한 밝기의 pixel data가 된다. 우리가 보고 있는 영상에서 가장 어두운 영역은 0DN 그리고 가장 밝은 영역은 bit depth별로 달리 표현된다.



Bit depth는 결국 동일한 밝기 범위를 얼마나 숫자로 잘게 쪼개는데 있는 것이다.


 이제 센서를 한번 들여다 보자. 실제 카메라에서 output bit depth가 결정되는 곳은 2곳이 있다. 첫 번째로는 analog 형태의 전압을 digital 형태로 변환 시키는 Digitization 과정이다.



위 그림에서 Digitization 부분에 있는 계단이 256단계이면 8bit 출력 4096단계이면 12bit 출력이 될 것이다. Digitization을 하는 소자는 ADC이며 이 ADC의 출력이 10bit라면 이후의 데이터는 10bit의 분해능을 넘는 것은 불가능 하다. 그리고 이후의 image processing은 이 10bit scale의 데이터를 통해 이루어 진다. 그리고 카메라 사용자가 8bit 출력을 원한다면 10bit data를 8bit로 down scale하여 출력하게 된다. 뭐 간단하게 4로 나눈 출력을 최종적으로 내보내게 된다.

 그렇다면 10bit / 12bit 출력은 언제 필요한 것일까? 아래 그래프는 적당한 난수를 생성해서 8bit와 12bit 형태로 표현해 보았다. 만약 내가 검출해야 하는 대상이 8bit 기준 3DN 정도의 차이를 보이는 검은색 화살표 표시지점이면 8bit scale로도 충분하다 말할 수 있다. 그러나 오랜지 색 화살표로 표기된 부분을 검출해야 한다면 8bit bit depth로 프로세싱 하기엔 어려움이 따른다.



그러나 한가지 문제가 있다. 위의 오랜지색으로 표시된 부분이 정말 defect라 보증할 수 있을까? shot noise와 같은 random성을 지닌 노이즈가 아니라는 것은 어떻게 보증할 수 있을지에 대한 해답이 필요하다.

 그러므로 기본적으로 카메라가 가지고 있는 spec이 내가 검출 하고자 하는 defect을 충분히 구분해 낼 수 있는 능력을 가지고 있는지 검토하고 output bit depth 변경을 고려하는 것이 순서이다.


 여기까지 쓰려고 했지만 다시 읽어보니 그래서 어쩌라고? 라는 목소리가 어딘가에서 들리는 것만 같다. 그래서 어떤 상황에서 10bit, 12bit output을 이용하는 것이 검사를 더 유리하게 할 수 있을지 한번 생각해 보자.  랜덤하게 발생하는 노이즈가 8bit 1DN을 넘어서지 않는다고 가정해 보자 8bit scale 0.2DN정도 오르락 내리락 한다고 하면. 8bit scale 0.5DN의 불량은 카메라가 감지할 수 있을 것이다.(실제 소수점 이하 출력은 없다. 단순 가정이라 생각하자) 이럴 때는 10bit bit depth를 사용하는 것이 유리할 것이다.

 그럼 뭔가 답이 보이는 것 같다. random하게 발생하는 노이즈가 8bit 1DN 이하라면 bit scale을 올리는 것이 유리하다는 말이 된다. 이제 과거 포스팅을 복습할 때가 왔다. Random하게 발생하는 노이즈는 readout noise와 shot noise가 있다고 한 포스팅이 어딘가에 있다.(링크는 비전양이 알아서 달아줄 것이다. [머신비전]영상 품질을 결정하는 '카메라 노이즈' 파헤치기) readout nosie는 어두울 때와 밝을 때 모두 나타나고 photon shot noise는 빛이 강해질수록 같이 강해지게 된다. 발로 마우스를 잡고 그래프를 대충 그리면 아래 그림과 같다. 



Total noise가 가장 적은 구간이 이제 눈에 보일 것이다. 절대적인 random한 노이즈 양이 가장 적은 어두운 구간에서는 8bit 1DN을 노이즈가 넘지 않을 가능성이 가장 높다. 그러므로 10bit, 12bit scale은 결국 어두운 구간에서 명암차를 더 효과적으로 구분할 수 있는 도구가 될 수 있다. 기본적으로 카메라의 spec이 충족해야 이런 방법이 효과가 있다는 점을 한번 더 강조하고 글을 마친다.


 필진 소개



목한상, Kyle Mok

(앤비젼 Product Engineer/카메라 담당)


사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

카메라 담당 Product Engineer



Posted by 비전만

댓글을 달아 주세요

  1. 비전돌이 2017.02.24 16:47  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 잘보고 있는 독자 중 하나 입니다.

    다른게 아니라 궁금한 부분이 있어 글을 쓰게 되었습니다.

    일반적으로 엔코더 트리거를 라인스캔 카메라에 많이 쓰는데요.

    엔코더 트리거를 쓰는 이유가 무엇인지 궁금하여 글을 남기게 되었습니다.
    (일반 스타트(프레임)트리거 와의 차이점 등)

    감사합니다.

  2. 2017.06.20 09:48  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  3. 2017.09.01 17:15  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

[카메라 기술 백서 #9] 카메라 너 때문이야! - 카메라 때문에 생기는 문제점 #2 젤로 현상(Rolling shutter) 현상


  오늘은 카메라 너 때문이야 시리즈 2탄… 1년에 하나씩 나오는 어벤저스 급 포스팅이 되겠다.(빈도만 따진다면…). 최근 스마트폰, 디지털 카메라에 탑재되고 있는 동영상 촬영 스펙은 UHD급 까지 발전하였으며 실제 촬영해 보면 충분히 뛰어난 화질로 상당한 만족감으로 주고 있다. 디지털 카메라로 촬영된 영상을 방송에 내보낼 정도로 commercial image sensor의 품질은 많이 좋아졌다.

머신 비전용 카메라를 다른 말로 표현하면 그냥 동영상 촬영이 가능한 카메라이다. 기계식 셔터 없이 노출을 제어하고 연속적으로 영상을 촬영할 수 있는 카메라 이다. 그렇다면 스마트폰, 디지털 카메라에서 사용하는 이미지 센서를 머신 비전에 사용할 수 없을까? 결론부터 말하면 부분적으로는 가능하다. 그리고 “부분적” 이라는 단어를 붙이게 된 가장 큰 이유는 Rolling shutter 때문이다.


 먼저 Rolling shutter는 CCD와는 전혀 관계없는 현상이며 CMOS 센서에서만 나타나는 현상이다. Rolling shutter를 설명하기 이전에 “shutter”의 의미를 먼저 한번 짚고 가 보자. shutter라는 단어는 분명 shut이라는 동사에서 파생된 단어일 것이다. 한글로 풀어 말하면 “무언가를 닫을 수 있도록 만드는 것” 정도가 되겠다. 그리고 이미지 센서 앞에서 닫는다는 것은 “문을 닫아 빛을 막아주는 장치” 정도로 해석 할 수 있지 않을까 생각한다. 여기까지는 형태적인 정의에 가까우며 기능적인 정의를 하면… 빛을 막아준다는 것은 “내가 원하는 시점의 빛만 얻을 수 있도록 해주는 장치” 라고 할 수도 있겠다. 

 이미지 센서는 빛에 반응하는 장치며 항상 빛을 받게 되면 charge를 생성하게 된다. 내가 원하든 원하지 않든 말이다. 그래서 내가 원하는 시점의 빛만 받아들이기 위해 아래 그림과 같은 방법을 사용하게 된다.


    시간의 흐름 중에서, 사용자는 ↔로 표시된 시점의 빛만 받고 싶어 한다. 즉 사용자가 원하는 시점의 빛만을 얻는 “shutter” 기능이 필요하다. 이미지 센서에서 셔터의 기능을 구현하는 방법은 아래 3가지 사실에 따른다. 


1. 빛을 받게 되면 항상 charge는 생성된다.

2. 필요 없는 구간의 charge는 pixel reset 기능을 통해 버린다.

3. 필요한 구간의 charge는 read out 하여 출력한다.


 종합하면 사용자가 원하는 노출시간이 시작하는 지점에서 pixel reset을 통해 내부의 charge를 비워 놓고 exposure time만큼 쌓인 charge는 read out하여 출력하는 것이다. 이 방법이 우리가 흔히 말하는 전자셔터의 구동 방식이다.


 다시 rolling shutter로 돌아가면…

 Rolling shutter는 이런 전자 셔터의 구동 방식인데, 문제는 이런 셔터 기능을 모든 pixel에 동시에 적용시키는 것이 어렵다는 것이다. 모든 pixel에 쌓여있는 charge를 원하는 시점에 동시에 read out 할 수 있으면 좋겠지만, 이 read out이라는게 그렇게 간단하지 않다. charge의 양을 측정하여 전압을 생성하고 이를 digital 신호로 변환하고 data 출력까지 해줘야 한다. 모든 pixel을 동시에 하는 것은 물론이며 한번에 1개의 pixel를 처리할 수밖에 없다. 일반적인 CMOS image sensor는 read out register라는 공간을 통해 한번에 한 줄의 row를 가져와 1pixel씩 처리한다. 여기서 1개의 row를 가져오는 시점이 exposure end가 이루어 지는 순간이 된다. 그러다 보니 각각의 row의 exposure end 타이밍이 차이가 나게 된다. 그림으로 표현하면 아래처럼 4번의 row line을 전송하는 과정이 된다.

   


 이렇게 각각의 row를 순차적으로 read out할 때 object가 움직이게 되면 어떻게 될까? 

좌측의 그림처럼 이미지 센서가 보고 있는 영역에서 파란색 세로 막대가 우측으로 평행 이동하고 이를 Rolling shutter로 촬영하게 되면 우측의 그림처럼 보이게 된다. 아래에 위치한 row부터 순차적으로 readout을 하고 각 row에서는 exposure time 동안 object가 움직인 만큼 image blur가 발생하게 된다.

 가장 쉽게 해당 현상을 볼 수 있는 방법은 차를 타고 이동하는 도중 창 밖의 가로수를 스마트폰으로 촬영해 보자. 가로수들이 비스듬히 누워있는 것을 볼 수 있을 것이다. 만약 동영상 촬영 중이라면 이 rolling shutter에 의해 발생하는 현상은 마치 젤리가 울렁거리고 있는 것처럼 보이며 이를 젤로 현상이라고 부른다.


 머신 비전에서는 이런 rolling shutter에 의한 row별 exposure timing 차이 현상을 해결하기 위해 CMOS image sensor를 특별한 형태로 제작한다. 각 pixel에 저장소를 하나씩 만들고 read out이 필요한 시점에 해당 저장소로 각 pixel의 charge data를 이동시킨다. 그리고 저장소에 있는 각 row를 꺼내어 가면서 read out을 진행하게 된다. 이런 방식을 Global shutter 방식이라고 하며 이 기능을 구현하기 위해서는 CMOS 이미지 센서의 pixel에 해당 기능을 수행하기 위한 transistor를 추가적으로 만들어야 한다. 이런 이유로 각 pixel의 크기가 작은 스마트폰 용 image sensor는 각 기능을 수행할 충분한 transistor를 탑재하지 못해 rolling shutter로 동작할 수 밖에 없는 것이다.


 결론은 pixel에 더 많은 transistor를 탑재하여 Global shutter를 구현해야 젤로 현상을 피할 수 있다는 것인 데 다른 방법이 없는 것은 아니다. 정확히 말하면 젤로 현상을 없애는 방법이 아닌 줄이는 방법이 있다.


 2개의, rolling shutter로 동작하는 CMOS 이미지 센서가 있다.

 

 해상도

 최대 fps

 1장 촬영 시 소요시간(read out time)

 CMOS 1

 1920 x 1080

 60fps

17ms

 CMOS 2

 1920 x 1080

 360fps

2.8ms


일반적으로 이미지 센서의 최대 frame rate의 역수는 이미지 1장을 촬영하여 read out하는 시간과 동일하다. 그리고 이 read out 시간 동안 가장 마지막 row와 가장 첫 row의 촬영 시간차가 발생하게 된다. 위에 예시로 든 2개의 이미지 센서로 움직이는 물체를 촬영하게 되면 아래의 그림처럼 보일 것이다. 분명 젤로 현상은 CMOS 2 센서로 촬영했을 때 줄어들 것이며 더 자연스러운 동영상으로 보일 것이다.


<좌측: CMOS 1 , 우측: CMOS 2>


다시 한번 결론 지으면 젤로 현상을 완전히 피하고 싶다면 Global shutter를 사용하고 Rolling shutter를 사용하면서라도 젤로 현상을 줄이고 싶다면 read out time이 짧은 이미지 센서를 선택하는 것이 방법이다. 그리고 read out time은 최대 frame rate을 통해 어느 정도 유추할 수 있다.


 필진 소개



목한상, Kyle Mok

(앤비젼 Product Engineer/카메라 담당)


사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

카메라 담당 Product Engineer



Posted by 비전만

댓글을 달아 주세요

  1. 정민 2016.08.09 10:37  댓글주소  수정/삭제  댓글쓰기

    포스팅 항상 잘 보고 있습니다.
    이번 내요을 보고 하나 질문이 있어서 질문을 남깁니다.


    맨아래 그림과 설명을 보면
    젤로 현상을 줄이고 싶으면 read out time 이 짧은 이미지 센서를 선택해야 한다라는 설명이 있습니다.
    이 설명 대로라면 CMOS1 이 read out time이 더 짧은 센서로, 이미지가 1, 2번이 바뀐게 아닌가요?

    • 목한상 2016.08.09 13:03  댓글주소  수정/삭제

      먼저 관심을 가지고 봐 주셔서 감사드립니다.

      말씀해 주신 부분이 맞습니다. 위의 표는 1번 센서가 더 짧은 readout 시간을 가지는 것으로 되어 있으며 아래의 이미지는 2번 센서가 더 짧은 readout 시간을 가지는 것으로 되어 있네요.

      한번더 글을 상세히 검토하지 못해 발생한 오류이며 관심을 가지고 지적해 주셔서 정말 감사합니다.

      오류는 바로 수정하도록 하겠습니다.

  2. 김대광 2017.07.08 18:44  댓글주소  수정/삭제  댓글쓰기

    재미있게 잘 읽고 갑니다.
    앞으로는 자주 오도록 하겠습니다.

    좋은 글 감사 합니다.

  3. KT 2018.03.02 02:25  댓글주소  수정/삭제  댓글쓰기

    좋은 자료 감사합니다.

  4. knamsang 2019.07.19 12:35  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 궁금한 점이 있어 문의드립니다. CMOS 센서에서 read out register를 통해 한 줄의 row를 가져와 한 pixel을 처리한다 하였는데, 그럼 한 row 전체 pixel을 처리하려면 row당 column번의 read out이 필요한 것인가요? 아니면 한 row를 가져와 한 row 전체를 처리하는 것인가요?

시간이 갈수록 머신비전 장비 성능의 요구 사항이 더 까다로워지고 있다. 이에 Line scan 카메라도 다양한 기능과 성능 변화가 일어났다. Line scan 카메라보다 진화된 Dual Line scan 카메라, TDI Line scan 카메라 등 다양한 형태와 방식의 카메라들이 시장에 선보이고 있다. 이 글에서는 산업용 카메라로 널리 쓰이는 Line scan 카메라의 종류와 특징에 대해 알아본다.




Line Scan 카메라의 기본 원리


일상생활에서 복사기를 이용해 본 경험이 있다면 복사를 할 때 긴 불빛이 한 방향으로 일정하게 움직이는 것을 본 적이 있을 것이다. 이때 조명에 붙어있는 이미지 센서가 복사할 용지를 차례대로 읽고 이를 다시 출력하는 것이 복사기의 원리이다. Line scan 카메라는 복사기와 같은 원리로 동작한다. 이처럼 Line scan 카메라에서 사용하는 이미지 센서는 Area scan 카메라에서 사용하는 이미지 센서와 달리 1개의 라인만으로 이루어져 있다. 즉, Line scan 카메라는 단 1개의 라인만으로 개체 전부를 촬영하며 개체 또는 카메라 자체가 움직이면서 촬영하는 방식을 사용한다. 

이미지 센서는 카메라가 노출하는 동안 개체에 비치는 빛에 비례하는 광전자 전하를 각 픽셀에 축적하고, 노출이 끝나면 전체 픽셀 라인의 전하는 판독 레지스터로 전송된다. 판독 레지스터가 픽셀 전하를 이동시키고, 카메라가 이들을 증폭하고 보정하여 디지털화하여 전하로 출력한다. 이렇게 전하를 시키는 동안 다음 픽셀 라인이 동시에 노출된다. 

노출과 판독을 할 수 있는 최대 속도를 "Line rate"라고 하며, kHz(킬로헤르츠) 단위를 사용하는데, 빠르게 움직이는 개체의 움직임을 촬영하려면 고속 Line rate가 필요하다. 판독 속도를 향상하기 위해서는 여러 개의 ‘탭(판독 레지스터를 따르는 판독 지점)’을 사용하면 된다. 



일반적으로 Line scan 카메라가 Area scan 카메라보다 불편하다고 생각할 수 있지만, Area scan 카메라는 개체를 정지시키고 난 다음 촬영해야만 하지만 Line scan 카메라는 컨베이어 벨트와 같이 움직이는 개체를 촬영할 수 있으므로 산업 현장에서는 오히려 Line scan 카메라가 더욱 유용하게 쓰일 수 있다. 



위 그림을 보면, 픽셀의 수에 따라 높이에 대한 제약이 있는 Area scan 카메라보다 Line scan 카메라는 높이에 대한 제약이 없다는 장점이 있으며, 이러한 특징으로 인해 공정에 사용되는 카메라의 수를 줄일 수 있다는 장점을 한눈에 볼 수 있다. Dual line scan 카메라는 Single line scan 카메라보다 개선된 신호대잡음비(SNR)와 노출 조정을 갖췄다. 


Line scan 카메라를 사용할 때 장점

  • 픽셀 당 가격(Price/pixel): Area scan 카메라를 사용할 때보다 더 높은 해상도의 이미지를 훨씬 저렴한 비용으로 촬영할 수 있다.
  • 다이내믹 레인지(Dynamic range): 다른 이미지 캡처 방식보다 다이내믹 레인지가 훨씬 높다.
  • 높은 픽셀 충전율(High pixel fill-factor): 감도를 극대화할 수 있다.
  • 스미어(Smear) 없는 이미지: 큰 비용을 사용해야 하는 스트로보(Strobe) 또는 다루기 어려운 셔터 없이 고속으로 이동하는 개체를 촬영할 수 있다.
  • 프로세싱 효율: Line scan 카메라를 사용하면 프레임 오버랩 없이 원활하게 이미지를 촬영한다. 프레임 오버랩은 고속 고해상도 장비에서 소중한 프로세싱 대역폭(bandwidth)을 점유하는 중복 데이터를 말한다.


TDI Line Scan 카메라


투명한 셀로판지에 아주 흐릿한 동그라미 하나가 그려져 있다. 이때, 이 셀로판지와 똑같이 흐릿한 동그라미가 그려진 셀로판지를 1개 더 겹쳐 보면, 겹치기 전보다 동그라미가 조금 선명해진다. 그렇다면, 수십 장을 겹쳐 놓으면 셀로판지 위에 그려진 동그라미는 확실하게 모습을 드러낸다.



TDI(Time Delayed Integration) Line scan 카메라는 바로 이와 같은 원리로 만들어졌다. 기존의 Line scan 카메라는 Area scan 카메라보다 적은 수의 픽셀만 사용한다는 경제성과 검사할 부분의 길이 한계가 없다는 장점이 있지만, 노출 시간이 짧아 감도가 약하다는 단점도 가지고 있었다. 

이러한 단점을 극복한 TDI Line scan 기술은 앞에서 언급한 예와 같이 셀로판지를 겹쳐 놓듯 여러 개의 라인 픽셀을 사용하여 검사체를 중복으로 촬영하여 더 선명한 이미지를 만들 수 있다.



위 그림과 같이 개체가 1→2→3의 방향으로 이동한다면, 개체의 이동에 따라 카메라에 내장된 TDI Line scan 이미지 센서의 각 스테이지에 이미지들이 중첩되며 선명한 상을 맺게 된다. TDI Line scan 기술은 스테이지에서 동일한 이미지를 여러 번 촬영해야 하므로 개체의 이동 속도에 맞춰 뒤의 스테이지가 앞의 스테이지보다 조금 늦게 이미지를 촬영한다. 이러한 특성으로 인해 "Time Delayed"라는 이름으로 붙게 되었다. TDI Line scan 기술은 정확히 같은 이미지를 촬영한 후 이를 중첩해 선명한 상을 얻으므로 카메라의 촬영 속도와 개체의 이동 속도를 동기화시키는 것이 중요하다.


하지만, 이런 번거로움에도 불구하고 높은 조도를 지닌 Metal Halide와 같은 광원을 조명으로 사용해야 하는 일반 Line scan 카메라보다 조금 적은 조도를 지닌 LED와 같은 조명을 사용하더라도 높은 선명도를 구현할 수 있어 조명의 설치 비용과 유지 비용를 줄일 수 있고, 일반적인 Line scan 카메라를 사용하여 설치할 수 없는 고속 장비에도 장착할 수 있는 점 등 많은 장점이 있다.



고속 Color Line Scan 이미징

    Color line scan 카메라는 다양한 파장의 빛을 감지하기 위해 행 방향 픽셀에 다양한 컬러 필터를 장착하거나 다양한 컬러 필터를 가진 센서 픽셀 라인을 사용한다. 일반적으로 사용되는 필터는 R(Red, 적색), G(Green, 녹색), B(Blue, 청색)이지만, 원격 위성 탐사와 같은 분야에서 사용되는 일부 장비는 다른 필터 유형을 사용한다.

    Color line scan 카메라에는 필수적인 기능이 몇 가지 있다. 첫 번째로 Color line scan 카메라와 함께 사용하는 렌즈는 상당한 색수차를 없애기 위해 컬러를 보정해야 한다. 렌즈가 평면상의 같은 초점에서 서로 다른 파장의 빛에 초점을 맞추지 못하면 색수차가 발생하는데, 이때 가장자리 주변의 색이 줄무늬로 나타난다.

    또한, 개체 표면과 수직인 방향으로 카메라가 일반적인 각도로 개체를 바라보면 일부 원근 왜곡이 있을 수 있다. 원근 왜곡은 개체에 1/거리로 비례하므로 픽셀의 서로 다른 컬러 라인에 대해 약간씩 다르게 나타난다. 따라서 픽셀 각 라인은 약간씩 다른 크기를 가지고 개체 표면에 투영되는 픽셀의 모양이 되므로 높은 정밀도의 컬러 측정에서 오류가 발생할 수 있다. 개체 표면에 카메라가 수직인지 확인하는 것은 Color line scan 카메라뿐만 아니라 Monochrome line scan 카메라도 마찬가지다.


    3Chip 카메라


    3CCD 또는 3CMOS 등과 같은 3Chip Line-scan 카메라는 프리즘 기반 다이크로닉 빔 스플리터로 RGB 컬러를 분리한다. 파장 분리를 위한 광학 간섭을 사용하고, 필터 라인 모양은 일반적으로 평탄 특성(Flat response)과 급격하게 감소(Sharp drop-off)하는 특성을 가진다. 3개의 센서로 촬영한 RGB 이미지가 결합한 후 컬러 이미지로 복원되며 RGB 컬러는 공통 광축으로 이동하여 공통된 위치에서 개체를 캡처한다. 이로써, 이 기술의 Color registration(컬러 카메라에서 완전한 컬러 이미지를 생성하기 위해 3개의 원색 이미지를 올바르게 겹치도록 하는 것)을 향상하고, 평평하지 않은 표면, 회전물, 낙화물 등을 검사할 수 있다.

    3Chip Line scan 카메라의 단점은 비싼 카메라 비용과 더 비싼 광학 렌즈 비용이다. 프리즘이 백 포컬 시프트(Back-focal shift)와 수차를 발생시키므로 카메라는 특수하게 설계된 렌즈와 함께 사용해야 한다. 3Chip 카메라의 바디는 프리즘과 이미지 센서 3개를 장착해야 하므로 일반적으로 크다.


    Trilinear 카메라


    대부분 장비에서는 실리콘 다이 상에 제조된 각 R, G, B 채널 등 3개의 Linear 배열을 사용하는 Trilinear 기술을 채택한다. 동작 중 각 Linear 배열은 동시에 원색 중 하나를 캡처하지만 이동하는 개체는 약간 다른 위치를 촬영한다. 컬러 필터는 실리콘 웨이퍼에 코팅된 흡착 염료 및 안료이다. Line scan 이미징은 일반적으로 집중적인 조명을 필요로 하므로 컬러 필터는 높은 내광성(7~8 단위)을 가져야 한다. 색상을 악화시키지 않기 위해 최대 250°C 의 열 안정성이 중요하다.


    풀 컬러 이미지로 컬러 채널 3개를 결합하려면 일반적으로 첫 번째와 두 번째 배열을 세 번째로 일치시키는 버퍼링 공간 보정을 참조하여 공간 분리를 보상해야 한다. Trilinear 기술은 카메라 디자인을 단순화시키므로 높은 이미지 품질을 제공하지만 작은 크기로 사용할 수 있다. 또한, 표준 렌즈 사용으로 장비의 총 소유 비용을 줄일 수 있다.


    높은 컬러 이미지 품질, 높은 속도, 적은 비용 등을 특징으로 하는 Trilinear color 카메라는 자동 광학 검사(AOI:Automatic Optical Inspection)를 위한 Color line scan 이미징 분야에서 매력적인 가격대성능비를 제공한다.


    Color line scan 카메라는 인쇄물 이미징에 특히 유용하다. 이 작업을 위해 라인당 1개의 컬러 필터를 가진 “Trilinear” 카메라를 사용하면 각각의 이미지 픽셀이 완벽하게 RGB 컬러를 측정할 수 있다. 서로 다른 컬러 센서의 픽셀 라인은 각 픽셀의 크기만큼 지연하여 촬영하므로 이미지로 통합하면 개체를 자연스럽게 표현할 수 있다.

    Bilinear 카메라


    Bilinear 카메라는 Trilinear 카메라와 많은 장점을 공유하지만, 실리콘 다이 상에 제조된 Linear 배열이 2개라는 차이가 있다. Bilinear 배열의 라인 2개는 공간 보정에 대한 필요성을 최소화시킬 수 있도록 바로 옆에 위치한다. Bilinear 이미지 센서는 픽셀당 2개의 원색만 캡처할 수 있으므로 풀 컬러 이미지를 구축하려면 3번째 컬러는 보간해야 한다.

    공간 크로스토크는 특정 센서 구조로 개선할 수 있다. 스펙트럼 크로스토크는 특정 컬러 필터 배열로 감소시킬 수 있기 때문이다. 새로운 Bilinear color CCD/CMOS 카메라는 스펙트럼 크로스토크를 줄이기 위해 Bayer 패턴 또는 다양한 RG/BG 컬러 패턴을 사용한다. 스펙트럼 오버랩을 줄일 수 있도록 R과 B 채널은 서로 옆에 위치한다. 또한, 흑백 채널로도 사용할 수 있는 100% Fill factor 단일 G 채널을 제공한다.

    Bilinear 카메라는 Trilinear 카메라보다 더 적은 비용으로 구매할 수 있고, 전자 제품 제조, 식품 검사, 재료 분류 등의 분야에서 적합하게 사용할 수 있다. 


    보다 다양하고 구체적인 머신비전 카메라 제품은 앤비젼 홈페이지에서 확인할 수 있다.


     필진 소개



    비전군, Mr Vision

    앤비젼 공식 블로그의 마스코트.(비전군 & 비전양)

    에어리어 스캔 카메라(Area scan camera)의 몸과 고해상도 렌즈(Super resolution lens)인 얼굴로 머신비전의 알짜배기 정보를 전파하는 지적인 소년



    Posted by 비전만

    댓글을 달아 주세요

    1. 임용탁 2016.12.14 16:20  댓글주소  수정/삭제  댓글쓰기

      머신비전 장비 제작가능하신지 알고 싶습니다.
      가능하시면 연락주세요.
      010-9904-8200

      • Favicon of https://blog.envision.co.kr BlogIcon 비전만 2016.12.19 10:55 신고  댓글주소  수정/삭제

        임용탁님 안녕하세요 앤비젼은 머신비전 장비를 직접 제작하지 않고, 장비에 들어가는 component를 공급합니다. 감사합니다.

    2. Favicon of http://www.igisolution.com BlogIcon 최송웅 2016.12.29 12:09  댓글주소  수정/삭제  댓글쓰기

      Line Scanner를 활용한 유리표면 오염 검사 장비를 제작하려고 합니다.
      업무협의가 가능한지요?
      HomePage에 문의했습니다만,
      연락이 없고 전화도 안되어 문의드립니다.
      가능하시면 연락바랍니다.
      010-3231-7084

    3. 2018.03.13 09:26  댓글주소  수정/삭제  댓글쓰기

      비밀댓글입니다

    [카메라 기술 백서 #9] 카메라 너 때문이야! - 카메라 때문에 생기는 문제점 #1 모아레(Moire) 현상


      정말 오랜만의 포스팅이다. 이전 작성한 날짜를 열어 보기 겁날 정도로 오래 지난 듯 하다. 더 이상은 블로그 담당자를 피해 도망 다닐 수 없기에

     이번 포스팅은 시리즈다. 카메라 너 때문이야!

    사실 카메라의 장점 보다는 단점을 더 많이 봐야 하는 일을 하고 있어 이런 주제가 마음이 편하다.


     모아레 현상(Moire), 무아레라고 불리기도 하고 어쨌든 경우에 따라서는 많이 들어보기도 하고 생소할 수도 있는 단어이다. 

     모아레 현상은 카메라로 영상을 촬영 시 이미지 센서의 샘플링 주파수 성분과 촬영 대상의 주파수 성분으로 발생하는 간섭 현상이다. 이 포스팅에서는 모아레란 무엇인가 보다는 이미지 센서가 뭘 잘못했길래 모아레 현상을 사용자가 봐야 하는지에 대한 것에 중점을 두려 한다.


    <Bayer pattern으로 인한 moire 샘플 현상>


     위의 샘플 영상은 트램플린(어릴적엔 퐁퐁이라 불렀던)을 반사 조명을 이용해 촬영하여 모아레 효과를 극적으로 보여준 예시 이다. 중앙 부분에 녹빛을 띄는 무늬와 붉은 빛을 띄는 무늬가 선명하게 보이나 실제로 보면 그런 무늬는 존재하지 않는다. 위의 샘플은 Color 카메라의 bayer pattern 때문에 생기는 모아레로 아래 그림으로 설명할 수 있다.


            

       <촬영 대상의 패턴>                           <카메라의 Bayer 패턴>


    <실제 촬영시 대상과 Bayer pattern의 매칭>


     붉은 빛을 띄는 부분은 Bayer 패턴의 붉은색이 촬영대상의 밝은 부분에 매칭되고 녹빛을 띄는 부분은 Bayer 패턴의 녹색이 촬영대상의 밝은 부분에 매칭되어 의도하지 않은 모아레 현상을 경험하게 되었다.


     여기까지는 실생활에서 볼 수 있는 모아레 현상이며 미신 비전에서 경험하는 모아레는 또 다른 발생 요인이 있다. 대부분의 머신 비전 카메라는 Color 보다는 Mono카메라를 사용하게 된다. 그런데 Mono 카메라는 위와 같은 Bayer 패턴도 존재하지 않는데 어떤 이유로 모아레를 발생시킬까?


    슬프게도 머신 비전에 사용하는 Mono 카메라의 pixel 구조는 아래 그림과 같은 형태로 되어 있다. 4개의 pixel을 표현한 그림이며 실제 빛을 받는 영역의 크기는 녹색으로 표시된 영역 수준 이다.

    Pixel 하나의 면적에서 실제 빛을 받는 면적이 차지하는 비율을 Fill factor 라고 하며 여러 이유로 100%의 Fill factor를 가진 카메라를 머신 비전에 사용하는 것은 매우 어렵다. 




    <Pixel 영역에서 빛을 받을 수 있는 영역>


     다시 말해 흔히 머신 비전 카메라에서 사용하는 Mono 이미지 센서는 Bayer 패턴을 사용하는 color 카메라와 비슷하게 중간중간 빛을 감지하지 못해 비어있는 부분이 존재한다는 의미이다. 그러므로 Mono 카메라를 사용해서 영상을 촬영하더라도 모아레 현상을 피할 수 없으며 만약 모아레 현상이 검사에 큰 영향을 미치고 있다면 Fill factor 100%의 image sensor 사용을 고려해야 한다. 


     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer



    Posted by 비전만

    댓글을 달아 주세요

    1. 불멸창식 2018.04.16 16:33  댓글주소  수정/삭제  댓글쓰기

      예시사진이 이해하는데 너무 좋네요~

    [카메라 기술 백서 #8]Camera의 pixel size와 sensor size


      이번 포스팅은 카메라의 pixel size와 sensor size에 대해 얘기해 보려 한다. 앞서 큰 pixel이 가지는 장점을 설명하였더니 무조건 큰 카메라가 좋다고 여기진 않을까 걱정되어, 렌즈를 포함한 시스템의 관점에서 센서 크기를 어떻게 선택해야 할지 살펴보겠다.


      아래에 1920 x 1080의 해상도를 가진 2개의 이미지 센서가 있다. 그리고 위에 그려진 원은 어떤 특정한 렌즈가 커버할 수 있는 이미지의 크기(image circle)이다. 우측의 센서는 해당 렌즈를 사용하여 문제없이 영상을 취득할 수 있으나 좌측의 센서는 그렇지 못하다. 즉 더 큰 렌즈를 써야 한다.


     센서의 크기와 렌즈의 image circle 크기와의 관계는 결국 돈 문제로 귀결된다. 내가 원하는 이미지는 1920x1080 해상도의 이미지이며 10um의 분해능을 가지고 촬영하고 싶다. 그리고 이런 시스템을 좀 더 저렴하고 좋게 꾸미고 싶다. 여기서 저렴하게는 렌즈를 작게 만들고 이에 맞게 작은 센서를 사용하면 된다. 좋은 화질은 센서를 크게 만들면 되고 이에 맞게 큰 렌즈를 사용하면 된다. 슬프지만 이게 현실이다. 앞서 포스팅에서 큰 pixel size가 가지는 장점을 충분히 설명했으리라 생각되므로 큰 센서가 가지는 좋은 화질에 대한 설명은 생략하고 오늘은 렌즈와의 관계만 보겠다.


    광학 포스팅을 읽어 보신 분은 MTF가 가지는 의미에 대해 잘 이해하고 있으리라 생각된다. 


    아래에는 3대의 렌즈를 통해 spot 조명을 촬영하였을 때 이미지 센서에 맺히는 모양을 그려 보았다. 푸른색으로 표현된 렌즈는 5~10 사이에 충분히 작게 spot을 위치 시킬 정도로 샤프한 영상을 보여줬다. 그리고 녹색으로 표현된 그래프는 2.5~10.5 사이에 spot이 퍼져 있다. 푸른색의 렌즈가 5um의 pixel size에 대응할 수 있는 렌즈라면 녹색은 10um pixel size에 대응할 수 있는 렌즈가 된다.


    쉽게 말해서 spot을 5um pixel로 촬영할 것인가 10um pixel로 촬영할 것인가에 따라 렌즈의 성능을 결정 지어야 한다.


    처음 설명했던 상황을 다시 가져와 살펴보면



    2개의 시스템에서 고려해야 할 사항은 단순하지 않다.


    최종 목표는 ‘저렴한 가격에 좋은 화질은 기본이며 1920 x 1080 해상도로 10um의 분해능을 가지고 촬영하고 싶다’이며 고려할 사항을 나열해 보면 아래와 같다.


     

    센서크기

    감도 

    노이즈 

    렌즈크기 

    렌즈해상력

     시스템1

     크다

     높다

     적다

     크다

     낮다

     시스템2

     작다

     낮다

     많다

     작다

     높다


      여기에 가격을 더하고 배율 변화에 따른 전체 시스템 크기를 고려한다면 생각해야 할 부분이 너무 많아진다. 카메라 노이즈로 인한 검출력 변화와 렌즈 해상력으로 인한 검출력 변화를 정확히 예측하고 수치화 하여 필요한 수준의 화질을 결정 수 있으며 가격을 고려한 선택을 하면 좋겠지만 너무 어려운 작업이 되므로 앤비젼 담당자에게 전화해 적합한 렌즈와 카메라를 선정해 달라고 하는 것이 가장 쉬운 방법이 될 것이다. 


     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer



    Posted by 비전만

    댓글을 달아 주세요

    [카메라 기술 백서 #6]머신비전 Color 카메라와 color를 활용한 검사


    이번 포스팅에서는 color에 대한 얘기를 할까 한다. 현재 대부분의 비전검사는 Mono 카메라를 이용하여 수행되고 있다. Mono 카메라는 빛이 가지고 있는 밝기 정보만을 감지하고 이 양을 출력하게 된다. 그러나 실제 빛은 밝기 정보뿐만 아니라 파장 정보도 같이 가지고 있으며 Mono 카메라는 이 중 파장의 정보를 획득하지 못한다. 그렇다고 빛의 파장 정보가 검사에서 중요하지 않아 대부분의 경우 Mono 카메라를 사용하는 것은 아니다. 일반적인 검사 장비에서 Mono 카메라를 이용하는 것은 가격적인 측면, 데이터 양과 검출력의 효율 측면에서 Mono 카메라가 유리하기 때문이다. 분명 동일한 자원(해상력, 비용, 속도)을 사용하는 환경에서 Color 카메라와 Mono 카메라를 선택할 수 있다면 Color 카메라가 빛의 파장 정보를 추가하여 가지고 있기에 더 검사에 유리할 것이다.


    Mono camera는 빛의 밝기 정보만


    Color camera는 빛의 밝기 정보에 파장의 정보를 가지고 있다.


    Color 카메라의 이미지 센서는 Mono 카메라의 이미지 센서를 베이스로 하여 제작한다. 기본적으로 빛의 밝기를 감지하는 이미지 센서에 빛의 파장을 감지 할 수 있는 장치를 더해 color 카메라의 이미지 센서를 만든다. 쉬운 이해를 위해 한가지 상황을 예로 들어 보겠다.




    필자가 Leica사의 M monochrome 이라는 모델의 카메라를 구입하였다. 이름에서도 알 수 있듯이 mono type의 카메라이다. 이 카메라로 어느 시골 마을을 풍경을 촬영하였더니 당연히 흑백 사진이 찍혔다. 흑백의 풍경도 좋지만 푸른 잔디와 붉은 경운기를 표현하고 싶어 흑백 카메라를 이용해 color 사진을 찍어 보기로 했다. 


    카메라 앞에 Red / Green / Blue의 3가지 필터를 각각 사용하고 3장의 사진을 촬영하였다.


    Red filter 사용

    Green filter 사용

    Blue filter사용

     



     

     



    그리고 이 3장의 사진을 Color buffer의 RGB 채널에 매핑하여 Color 영상을 얻었다. 

    위에서 사용한 방법은 백색광이 입사되는 상황에서 Color filter를 이용하여 각 파장의 intensity 값을 뽑아 channel 별로 분리한 것이다.





      그러나 이런 방법을 이용할 경우에는 RGB 채널 별로 3장의 영상을 흔들림 없이 촬영해야 하고 물리적으로 센서 전면에 color filter를 변경해 줘야 한다. 이런 불편을 피하기 위해 실제 color 카메라는 일반적으로 bayer pattern이라고 하는 color filter의 구조를 센서에 씌워 사용한다.









    이 Bayer pattern 구조를 통해 Red, Green, Blue의 정보를 한번의 촬영으로 얻을 수 있다. 그러나 모든 pixel이 RGB의 데이터를 독립적으로 가지지 못해 발생하는 문제점도 있다. 




    앞에서 설명한 color 카메라 구현 방법을 간단히 말하면 입사되는 빛은 백색광이지만 이미지 센서에서 필요한 파장을 분리해 color를 구현하는 방법이다. 여기서 기억할 것은 입사되는 빛은 백색이나 센서 앞에 color filter를 사용하여 별도의 파장으로 분리한다는 것이다.



    다른 방법으로 color 카메라를 구현할 수도 있다. 이 방법을 설명하기 전에 과거 고등학교 물리 시간에 배웠던 내용을 떠올려보자. 왜 붉은색은 붉게 보일까? A라는 물체(예를 들어 붉은색 크래파스)가 붉은색으로 보이면 A물체가 붉은색을 직접 발광하는 것은 아니다. 실제 A물체에는 모든 파장의 빛이 입사되며 그 중 A는 붉은색 파장의 빛만 반사하여 우리 눈에 붉은색으로 보이는 것이다. 그렇다면 만약 입사되는 빛이 백색광이 아닌 붉은색 단파장 이라면 붉은색 크래파스, 푸른색 크래파스는 어떻게 보일까? 아래 그림을 보자.




     


     

     <구성1>

     <구성2>

      

     구성1은 앞서 농촌 풍경 촬영 예로 제시했던 상황과 동일하다. 붉은색 부분의 정보를 얻기 위해 대상체와 카메라 사이에 color filter를 사용하였다. 그리고 구성2는 광원과 대상체 사이에 color filter를 사용하여 대상체에 붉은색 광만 입사되는 환경을 구성하였다. 대상체에 붉은색 광만 입사되므로 대상체의 푸른색 부분에서 반사되는 빛이 없어 카메라에 대상체의 푸른색 부분의 정보가 남지 않게 된다.


     구성2를 앞서 농촌 풍경 사진 촬영에 적용해보면, mono 카메라 앞에 color filter를 변경하면서 3장의 영상을 촬영하는 것이 아니라 붉은색 푸른색 녹색 조명을 switching 하며 3장의 영상을 촬영해야 한다. 현실적으로는 태양광의 조명을 제어하는 것이 불가능하지만 비전 검사에서는 충분히 조명의 제어가 가능하다.


     이제 대략적인 color imaging의 구성에 대한 설명을 마쳤고 실제 검사에서 어떻게 활용하고 있는지 간단히 설명하면, 일반적으로 비전 검사에서 color 조명 혹은 color 카메라를 사용하는 것은 2가지 목적에 의해서 이다.


    1. 다른 조건에서 촬영된 영상을 한번에 촬영하기 위해

    2. 빛 파장 정보가 검사에 주요한 요건이 될 때


    만약 비전 검사의 여러 가지 검사항목을 만족하기 위해 여러 가지 조명 조건에서 검사를 해야 하는 경우 조명 조건을 바꿔 가며 여러 장의 영상을 취득해야 한다. 예를 들어 먼지나 스크레치를 검사하기 위해 Dark field 조명이 필요하고 투과 조명을 이용한 검사를 동시에 진행해야 할 경우 Red 조명을 이용해 Dark field 조건으로 조명을 조사하고 Blue 조명을 이용해 투과 조건으로 조명을 조사한다. 그리고 이 대상체를 color 카메라를 이용해 촬영하게 되면 Red channel에는 dark field 영상이 취득되고 Blue channel에는 투과 영상이 취득되어 한번에 2가지 조명 조건의 영상을 얻을 수 있다.


    다른 경우로 붉은색과 푸른색이 뒤섞여있는 대상체를 촬영하여 두 가지 색상을 분리하여 검사 할 경우에는 color 검사가 필요하다. Mono 카메라와 백색광을 이용하여 촬영하게 되면 붉은색과 푸른색의 광량 정보가 비슷하여 구분이 어렵다. 두 색상을 구분하기 위해서는 앞서 설명했듯 2가지 구성을 사용할 수 있다. 가장 간단하게는 color 카메라를 사용하는 경우 이며 두번째는 붉은색 혹은 푸른색 조명을 이용하여 구분하는 방법이다.


    Color 라는 주제를 가지고 한번에 포스팅으로 끝내기에는 할 말이 너무 많다. 다음에 다시 Color에 대한 포스팅을 하는 것으로 하고 이번 포스팅은 여기까지 하도록 하겠다.



     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer




    Posted by 비전만

    댓글을 달아 주세요

    1. 2015.08.06 16:05  댓글주소  수정/삭제  댓글쓰기

      비밀댓글입니다

    [카메라 기술 백서 #5]머신비전 카메라 선택과 Dynamic range의 활용


      Dynamic range라는 용어는 카메라의 Spec을 나타내는 용어 중 가장 오해가 많은 용어가 아닐까 생각된다. 일반적으로 Dynamic range라는 용어는 카메라 뿐만 아니라 음향, 디스플레이등 다른 분야에서도 사용되는 용어로 보통 DR이 넓다, DR이 좁다라는 말로 device의 성능을 평가하게 된다. 사실 이런 표현이 완전히 잘못된 것은 아니지만 우리는 조금 더 정확하게 용어를 사용할 필요가 있기에 이번 포스팅에서는 카메라의 Dynamic range의 의미와 이를 이용해 카메라를 선택하는 방법에 대해 알아보려 한다.

     먼저 질문을 하나 해보자 카메라의 Dynamic range가 좋으면 어떤 이득이 있을까요? 이에 대해 마음속으로 답변을 하나 해보고 다음 글을 읽어보자.

     예상되는 답변은 아래 3가지 정도이다.


    1. DR이 높으면 밝은 이미지와 어두운 이미지를 동시에 촬영할 때 유리하다

    2. DR이 높으면 비슷한 밝기의 이미지를 구분하는 것이 용이하다.

    3. DR이 높으면 그냥 노이즈가 좋다더라~


    3가지 모두 어느 정도는 맞는 말이다.


    서론이 너무 길었으니 일단 Dynamic range의 정확한 의미에 대해 알아보자

    아래 그래프에서 가로축은 입력되는 광량이며 세로축은 출력되는 signal의 크기이다.



    그래프에서 볼 수 있듯 X축의 입사되는 빛의 양이 점점 늘어날수록 출력 값은 커지며 Full well에 전자가 가득 차는 시점이 되면 Saturation 상태로 출력 값을 유지하게 된다. 그리고 그래프의 우측 하단은 입력 값이 미세한 시점에서의 변화 량을 확대하여 표시한 그래프 이며 최초 빛이 입력되지 않다가 빛이 입력되더라도 일정량 까지는 출력 값을 유지하다가 증가되기 시작한다.

     여기서 Dark 영역에서 출력 값이 유지되다가 출력이 시작되는 지점을 간단히 Dark noise level이라 하고 pixel이 표화되는 시점을 saturation level 이라고 하자.

     Dark noise level은 이전 포스팅에 언급했듯 pixel을 read out하는 과정에서 발생되는 노이즈 이며 saturation level은 pixel의 full well과 관계가 있다.

    2개 pixel의 dark noise level과 saturation 레벨을 입력 값 기준에서 표로 정리하면 아래와 같다.


     

    Dark noise level

    Saturation level

     Saturation level

     - Dark noise level

     Saturation level

    /Dark noise level

     Pixel 1

    25

    450

     450 - 25 = 425

     450/25 = 18

     Pixel 2

    5

    300

     300 - 5 = 295

     300/5 = 60


    위의 표에서 pixel이 빛을 표현할 수 있는 범위의 크기가 얼마인가 라고 한다면 Saturation level과 Dark noise level 사이의 크기가 될 것이다. 그리고 그 크기는 pixel 1이 더 크다. 그러나 Dynamic range spec은 Dark noise level에 대비한 Saturation level의 비율이 되며(saturation level / dark noise level = Dynamic range) 이 값은 pixel 2가 더 크다.

    많은 분들이 이 부분에서 Dynamic range를 잘못 알고 있는 경우가 있다. 정확히 말해 Dynamic range는 표현할 수 있는 범위의 절대적인 크기가 아니라 어두운 영역의 표현 한계와 밝은 영역의 표현한계의 상대적인 비율이 된다.


    그렇다면 카메라 선택 시 Dynamic range를 어떻게 활용해야 할까

    Dynamic range는 상대적인 값으로 절대적 기준으로 활용하면 오판의 소지가 있다. 

    Dynamic range를 산출하는 수식을 우리가 지금까지 사용했던 용어로 다시 쓰면 아래의 식으로 바뀐다.

    Full well / Read out noise = Dynamic range

    DR이 커지기 위해서는 Full well이 커져 shot noise에 대한 내성이 강해지거나 read out noise가 적어져 Dark signal의 검출 한계가 낮아져야 한다. 

    만약 사용자의 검사가 미량의 빛을 감지해서 불량 유무를 판단한다면 Dynamic range를 절대적 기준으로 사용해서는 안되며 read out noise의 양이 얼마인지 체크해 봐야 한다.

    반대로 사용자의 검사가 다량의 빛을 받았을 때 일정한 출력을 내는 shot noise에 강한 특성이 필요하다면 full well의 양이 얼마인지 체크해 봐야 한다.


    결국 Dynamic range는 절대적인 기준으로 활용하는데 무리가 있으며 전반적인 노이즈 수준을 판단하는 정도로만 활용하고 사용자의 검사환경에 맞는 다른 spec을 점검해야 할 것이다.



     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer




    Posted by 비전만

    댓글을 달아 주세요

    [카메라 기술 백서 #4]머신비전에서 노이즈가 최소화 된 영상을 촬영하는 방법_Calibration


      앞서 카메라에서 발생하는 노이즈에 대해 살펴 보았다. 노이즈는 그런 이유로 그렇게 발생한다는 것은 알겠는데 어떻게 노이즈를 제거하는 가에 대해서는 이번 포스팅에서 다루겠다. 이번 포스팅을 읽기에 앞서 먼저 지난 포스팅에서 설명한 노이즈 종류를 살펴보자.(아래 글 제목 클릭)


    [머신비전]영상 품질을 결정하는 '카메라 노이즈' 파헤치기



     NOISE

     Dark

     White

     Fixed Pattern Noise

     Dark FPN

     Photo response non-uniformity

     Temporal Noise

     Dark random noise

     Photon shot noise


    먼저 고정된 형태를 가지고 있는 노이즈인 Dark FPN과 Photo response non-uniformity(PRNU)는 Camera Calibration을 통해 제거 가능하다. 



      위측의 그래프는 입사되는 광량에 대비한 A, B, C 픽셀 각각의 출력을 나타낸 그래프 이다. 먼저 Pixel B는 사용자가 원하는 반응도를 가지는 Pixel이며 빛이 없을 때 0값을 출력하고 빛이 강해짐에 따라 사용자가 원하는 적당한 출력을 가진다. 그러나 Pixel A는 빛이 없음에도 일정량의 출력을 가지고 있고 Pixel C는 더 많은 출력 값을 가진다. 그리고 빛의 양이 증가함에 따라 Pixel A는 Pixel B에 비해 더 빠르게 출력 값이 증가하고 Pixel C는 Pixel B에 비해 더 느리게 출력 값이 증가한다. 빛이 없을 때 나타나는 출력 값은 Dark FPN이며 빛에 대해 서로 다른 반응을 보이는 것은 PRNU라는 것은 이미 알고 있으리라 생각한다. 이런 Dark FPN과 PRNU를 Calibration을 통해 제거하는 방법을 설명하기 위해 위의 그래프를 수식으로 비유해 보면 아래처럼 표현할 수 있다. +값으로 표기된 부분은 Offset dark signal이며 x값으로 표기된 부분은 반응도 즉 감도라 할 수 있다.


    Pixel A : output=2.5 x Illumination +15

    Pixel B : output=2 x Illumination +0

    Pixel C : output=1.5 x Illumination +25


      결론부터 말하면 Pixel A와 Pixel C의 수식을 Pixel B과 같이 변경하는 것이 Camera의 Calibration 이다. Pixel A에 15를 빼고 2/2.5를 곱하면 Pixel B와 같은 수식을 얻을 수 있다는 것은 쉽게 계산 가능할 것이다. 마찬가지로 Pixel C에는 25를 빼고 2/1.5를 곱함으로 Pixel B와 같은 수식을 얻을 수 있다. 여기서 빼는 값은 카메라 calibration에서 FPN coefficient 라 부르고 곱하는 값은 PRNU coefficient라 부른다. 그리고 수식을 변화 시키는 과정에서 보듯 FPN coefficient를 PRNU coefficient보다 먼저 적용시켜야 정상적으로 수식 변환이 일어난다. 

     종종 Camera의 Calibration에 대해 카메라의 출력 값을 변경시킴으로 왜곡된 결과가 나올 것이라는 잘못된 선입견을 가지고 있는 분들이 있으나 이는 물리적으로 발생할 수 밖에 없는 각 Pixel의 반응도를 일관성 있게 조정하는 작업으로 카메라의 성능 향상에 분명한 도움을 준다.


      고정된 패턴 형태로 발생하는 노이즈는 Calibration으로 제거가 가능하나 시간에 따라 달라지는 랜덤 한 노이즈는 사실상 user level에서 제거하기는 쉽지 않다. 여기서는 가장 간단하게 제거할 수 있는 방법을 소개하겠다. 과거 포스팅에서 설명한대로 Temporal noise는 양자화된 광자의 Random 성에 의해 발생하므로 완전히 제거하는 것은 불가능하며 감소시키는 방법을 사용해야 한다. N개의 광자를 받을 때 발생하는 노이즈의 편차는 sqrt(N)이 되며 SNR 공식에 따라 SNR은 N / sqrt(N) 이 된다. SNR을 늘리기 위해서는 N값을 무한정 높여야 하며 N 값을 높인다는 것은 쉽게 말해 많은 빛을 받아 들인다는 것이다. 그러나 Pixel은 제한된 공간을 가지고 있으므로 User가 하나의 Pixel이 무한정 많은 빛을 받을 수 있도록 하는 것은 센서를 변경하지 않고는 불가능하다. User가 할 수 있는 방법은 한정된 공간을 가진 Pixel을 수번 반복하여 사용함으로써 더 많은 N 값을 확보할 수 있다. 그림으로 쉽게 설명해 보면. 아래와 같이 강수량 측정을 위한 비커를 1사용함으로써 발생하는 오차를 줄이기 위해 동일한 비커를 8개 사용하여 측정하는 것이다. 




      이런 방법을 통해 user는 N의 값을 8배로 늘릴 수 있으며 결과적으로 SNR 값은 2.8배(sqrt(8)) 만큼 증가하게 된다. 이런 방법은 카메라 제조사에서도 사용하고 있으며 Multi-line을 이용한 line scan에서 감도를 증가시키지 않고 노이즈를 향상하는 방법으로 사용하거나 Area scan에서 Multi shot 기능을 통해 구현된다.



     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer



    Posted by 비전만

    댓글을 달아 주세요

    1. 엠브이텍 연구소 2015.11.25 08:35  댓글주소  수정/삭제  댓글쓰기

      음.. 그럼 결론적으로 PRNU 노이즈 제거는 Multishot의 Mean을 구하는 개념인거나 마찬가지인것인데.. 멀티라인스캔 제외하고 에어리어카메라로 고속으로 무빙하는 오브젝트를 촬영하는 경우에 대해서는 적용이 안될 듯 싶은데 이것은 솔루션이 있나요?

      • Favicon of http://envision.kr BlogIcon 목한상 2015.11.25 16:49  댓글주소  수정/삭제

        먼저 용어 정리가 필요할 듯 합니다. PRNU 노이즈는 개별 pixel의 감도 차이라 할수 있고 Multishot을 통해 제거하는 노이즈는 시간에 따라 랜덤한 shot noise입니다.

        고속 무빙 오브젝트를 촬영시 랜덤하게 발생하는 shot noise제거에 관한 솔루션을 문의하신 것으로 보이기에 이에 대한 답변을 드립니다.

        만약 필요한 해상도가 4M (2048 x 2048)이라고 가정하면 영상을 16M (4096 x 4096)으로 동일 FOV를 촬영합니다. 그리고 각 4개 pixel을 Average 하는 방법을 사용하게 되면 비슷한 효과를 얻을 수 있을 것으로 생각됩니다.

        각 4개의 pixel의 합을 이용해서 4M로 출력하게 되면 4배 높은 감도를 얻을 수 있고(pixel binning과 같은 개념) 평균을 이용해서 4M로 출력하면 랜덤 노이즈에 대한 이득을 얻을 수 있습니다.

        그러나 일반적으로 고속 moving object 촬영시에는 노출시간이 필연적으로 짧아지고 경우에 따라서는 Gain을 사용해야 하는 경우도 있습니다. 위 방법 적용이전에 충분한 조명을 확보하는 것이 첫번째라 생각합니다.

    2. 넥스 2017.10.19 23:17  댓글주소  수정/삭제  댓글쓰기

      블로거님, 안녕하세요
      글을 잘 보고 많은 지식을 얻어갑니다!
      하나 여쭤보고 싶은 내용이 있는데요,
      1개의 고정된 Pixel을 반복 사용(위에서는 8번)하여 N값을 높힌다고 설명해 주셨는데,
      '반복 사용한다'라는 의미가 잘 이해가 가지 않아서요..
      Pixel을 reset하기 전에 8 time의 광량을 저장해서 사용한다는 의미인가요?
      자세한 설명을 부탁드립니다.

      [카메라 기술 백서 #3]비전 검사의 영상 품질을 결정하는 '카메라 노이즈' 파헤치기


      비전 검사는 영상을 촬영하고 이를 분석하는 과정을 거친다. 영상을 촬영한다는 말은 Analog 형태의 Object를 촬영하여 Digital의 gray level 값들로 표현한다고도 할 수 있다. 이런 과정에서 영상의 품질을 결정하는 대표적인 2가지 요소를 꼽을 수 있다. 첫째는 렌즈의 해상력이며 두 번째는 카메라의 노이즈 이다.


      렌즈의 해상력에 관해서는 다른 필진에게 맡겨두고 여기서는 카메라 측면만 살펴보겠다.

      

      노이즈는 2가지 측면으로 설명할 수 있다. 첫 번째는 50DN의 출력을 기대하는 광량이 센서로 입사되었는데 50DN이 아닌 다른 출력 값이 지속적으로 나오는 경우이며 두 번째는 동일한 광량이 반복적으로 입사하였지만 촬영할 때 마다 다른 출력을 가지는 경우이다. 쉽게 말해 아래 그림과 같이 입력되는 빛에 관계없이 불필요한 데이터가 추가된 상황이다.



      첫번째로 언급된 노이즈는 입력 값에 대비하여 지속적으로 다른 출력 값을 가지므로 고정된 형태의 노이즈 (Fixed pattern noise)라고 하며, 두 번째 언급된 노이즈는 시간에 따라 랜덤하게 발생하므로 Temporal noise라고 불리어 진다.

    또 다른 측면으로 노이즈를 분류하면 빛이 있을 때(빛에 의해서) 나타나는 노이즈빛이 없을 때(빛과 관계 없이)나타나는 노이즈로 분류할 수 있다. 이를 표로 정리하면 아래와 같다.


     Noise

    Dark

    White

     Fixed Pattern Noise

    Dark FPN

    Photon Response Non-uniformity

     Temporal Noise

    Dark Random Noise

    Photon Shot Noise



    실제 이미지 센서에서 발생하는 노이즈는 위의 표 외에도 다양한 원인과 형태로 발생하나 주요한 노이즈 측면만 설명하면 4가지로 요약할 수 있다.


    아래의 그래프는 노이즈 발생 형태를 가정하고 모델링한 Data이다. X축은 입력되는 빛의 양, Y축은 출력되는 영상 Data의 밝기이다. 그리고 총 3개의 픽셀(Pixel1,2,3)에 일정량의 빛이 입사하였을 때 출력 값을 그래프에 나타내었다. 한눈에 보기에도 3개의 pixel은 입사되는 빛에 대비하여 출력되는 data가 제각각 임을 알 수 있다. 이런 노이즈에 대해 좀더 자세히 설명해 보겠다.


    Dark Fixed Pattern Noise: 빛이 없는 상황에서 카메라는 0DN의 출력을 갖는 것이 정상적인 상황이다. 그러나 Pixel에 포함된 offset 값들에 의해 빛이 없는 상황에서도 0DN 이상의 출력을 가지거나 그 이하의 출력을 가지기도 한다. 물론 실제 0DN 이하 값은 0DN으로 출력된다. 그래프에서 입력되는 광량이 없는 상황에서도 Pixel1,2,3의 밝기가 차이를 보이는 것처럼 각 pixel은 고유의 offset 값을 가지게 된다. 이런 고유의 offset 값은 빛과 관계없이, 시간과 관계없이 일정하므로 이후에 Processing(Calibration)을 통해 제거 가능하다. 이런 Dark FPN은 sensor의 온도, 회로부의 offset current에 의해 발생한다.


    Dark Random Noise: Dark 영역에서 Pixel3(녹색 그래프)은 완전히 일정한 값을 가지지 못하고 어느 정도의 Random성을 가지게 된다. 빛이 없는 환경에서도 image sensor에는 온도에 의해 일정량의 electron이 생성되며 이렇게 생성된 electron은 지속적으로 read out이 일어난다. 온도에 의해 electron이 생성되더라도 모든 pixel에 일정하게 발생하지 않으며 random 분포를 가지고 발생한다. 이는 Photo shot noise와 비슷한 형태가 되며 절대량은 미미한 수준이다. 그러나 dark random noise를 발생시키는 다른 요소는 그 영향력이 상당하다. 카메라가 영상을 촬영할 때 read out register의 reset과 read out이 반복되면서 지속적으로 read out이 일어난다. 이때 register reset이 완전히 일어나지 않아 남아있는 electron에 의해 시간적으로 일정하지 않은 노이즈가 발생하게 된다. 이런 노이즈는 이후 포스팅에서 설명하게 될 CDS (collimated double sampling)으로 어느 정도 억제가 가능하다.


    Photon Response Non-uniformity: 그래프에서 Pixel1(Blue)과 Pixel3(Green)은 입력되는 빛의 양이 일정하게 증가하더라도 서로 다른 기울기의 출력 값을 가진다. 다른 관점으로 설명하면 Pixel1(Blue)은 Pixel3(Green)에 대비하여 빛에 대한 반응도가 낮은, 즉 감도가 떨어짐을 의미한다. PRNU(Photo Response Non-Uniformity) 노이즈는 이렇게 빛에 대해 pixel이 서로 다른 감도를 가짐을 나타낸다. PRNU 노이즈는 단순히 pixel 간의 gain이 다르다는 것을 의미하므로 pixel간 gain 조정(calibration)으로 제거 가능하다.


    Photon Shot Noise: Photon shot noise는 빛(photon)이 이미지 센서의 각 픽셀에 일정하게 입사되지 않아서 발생하는 노이즈 이다. 비가 오는 날 동일한 크기의 비커 2개를 이용해 강수량을 측정한다고 가정해 보자. 일정시간 이후에 2개의 비커에는 정말 똑같은 양의 물이 담겨 있을까? 내리는 빗방울 하나 하나가 서로 관계성 없이 다 횟수 발생하는 확률이므로 포아송 분포에 따라 물의 양은 편차를 가질 것이다. 이미지 센서와 빛도 마찬가지로 일정하게 pixel에 광자가 들어오지 못해 발생하는 편차인 shot noise가 발생한다. Shot noise를 완전히 제거할 수 있는 방법은 없으며 shot noise의 분포를 줄여 영향력을 줄이는 방법을 사용한다. 빛이 많은 환경일수록(밝은 이미지 일수록) shot noise는 두드러지게 되며 실제 영상 촬영 시 주요한 노이즈 발생원인이 된다.


    간단하게나마 노이즈 발생의 원인과 형태에 대해 살펴보았으나 자세한 설명을 생략하여 완전히 이해하는데 어려움이 있을 것이라 예상된다. 위의 노이즈 들이 어떤 원인에 의해서 발생하며 어떤 형태로 나타나며 대략 어떤 방법으로 제거하거나 경감시킬 수 있는지 정도로만 알아두자. 아마도 노이즈 제거에 관해서는 다음에 다시 포스팅 할 기회가 있을 것이다.



     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer




    Posted by 비전만

    댓글을 달아 주세요

    1. 2014.11.19 00:53  댓글주소  수정/삭제  댓글쓰기

      비밀댓글입니다

    2. 식빵 2016.05.07 21:12  댓글주소  수정/삭제  댓글쓰기

      노이즈를 공부 하던 중 참고가 잘 되었어요.
      근데 궁금한 점은 50DN과 0DN이라고 하신 DN은 무슨 단위죠??
      다른 곳에서 아무리 찾아도 안나오네요...;;

      • Favicon of https://blog.envision.co.kr BlogIcon 비전만 2016.05.10 13:19 신고  댓글주소  수정/삭제

        안녕하세요~ DN은 카메라의 감도(Responsivity)의 단위입니다. 카메라의 감도는 ‘입력되는 광량에 대비하여 얼마나 높은 출력을 가지는가’ 라고 할 수 있습니다. 카메라 제조사는 일정 크기의 영역(가로x세로 1cm영역)에 일정 에너지의 빛(1nJ)이 들어 갔을 때의 출력(Digital number)을 '감도'라고 표기합니다. 이 블로그 내에도 카메라 감도에 대한 글이 있으니 참고하시기 바랍니다. http://blog.envision.co.kr/5
        감사합니다.

    [카메라 기술 백서 #2]머신비전 카메라 기술_카메라의 감도는 왜 다를까?


      전 검사 시스템에서 감도의 중요성은 지난 포스팅(2014/06/27 - [머신비전 기술 백서/카메라] - 카메라의 감도, 대체 누가 더 밝은거야?)에 언급하였고, 이제 실제 어플리케이션에서 어떤 카메라가 더 높은 감도를 가지고 있는지 찾을 수도 있을 것이다. 이번 포스팅에서는 비슷한 사양의 카메라들이 왜 서로 다른 감도를 가지고 있는지 알아보겠다.


    카메라 감도에 영향을 미치는 요소 3가지

      

      카메라가 빛을 받아 데이터를 출력할 때까지 아래와 같은 과정을 거친다.


      

      대략적으로 설명하면 빛을 받은 Pixel은 광전효과를 통해 e-을 생성하고 Readout회로를 통해 전압으로 변환한다. 변환된 전압은 Analog offsetAnalog gain을 통해 조정되고 ADC 컨버터가 Voltage를 digital 값으로 변환한다. 변환된 Digital Data는 적절한 Image processing(Calibration, LUT…)을 거쳐 출력된다.  

      데이터 변환 과정에서 감도에 영향을 미치는 요소는 Pixel의 크기, Readout시 변환효율, Analog Gain이며 이 값에 따라 카메라의 감도가 결정된다. 각 요소에 따라 어떤 영향을 미치는지 항목별로 알아보자.


    1. Pixel의 크기와 부피

      

      서로 다른 Pixel 크기를 가진 3가지 경우를 한번 가정해 보자. 두 개의 pixel은 상당히 큰 부피를 동일하게 가지고 있고 다른 하나는 상대적으로 적은 pixel 부피를 가지고 있다. 그리고 2개의 픽셀은 빛이 입사하는 부분의 면적이 동일하다. 우리가 사용하는 카메라의 출력은 8bit 형식을 사용할 경우 0~255DN 범위로 언제나 동일하다. 이런 상황에서 동일한 양의 빛이 3개의 pixel에 동시에 입사한다면 그 출력 값은 어떻게 될까?



    면적당 동일한 양의 빛이 입사하였을 때 1번 pixel과 2번 pixel에 쌓이는 전자의 양은 동일하나 입사 면적이 큰 3번 pixel은 더 많은 양의 전자가 쌓인다. 그리고 각 픽셀에서 전자가 차지하고 있는 비율은 각기 다르게 된다. 여기서 유의할 점은 영상 데이터 출력 값은 픽셀의 전체 부피에 대비하여 전자가 차지하고 있는 비율이 된다는 것이다. 아래 표를 보면 좀 더 쉽게 이해할 수 있을 것이다.


     일반적으로 우리가 말하는 pixel의 크기는 위 값 중에서 입사면 면적이라 할 수 있다. 위의 표에서 볼 수 있듯 pixel의 크기(입사면 면적)가 크다고 출력 값이 무조건 높은 것은 아니며 pixel의 부피도 상관관계가 있다. Pixel의 부피는 pixel에서 생성된 전하를 품을 수 있는 최대 양이며 Full well이라는 용어를 사용한다. 이번 포스팅에서는 ‘pixel size와 full well이 복합적으로 감도에 영향을 미친다’ 정도까지만 설명하고 더 자세한 사항은 향후 포스팅에서 다루겠다.

    2. Readout 변환 효율

      광전효과에 의해 생성된 charge는 Readout시 Voltage로 변환된다. 이때 floating diffusion node의 capacitance(CFD)에 따라 변환 효율이 결정된다. 이 변환 효율에 따라 출력되는 voltage swing 폭이 달라지며 이는 감도와 직결되게 된다. CFD 값을 줄여 감도를 크게 높이면 좋겠지만 이 값을 줄이면 노이즈에 영향을 미치게 된다. 이 노이즈에 대해서는 이후 포스팅에서 다루는 것으로 하겠다.


    3. Analog gain

      Gain에 대해서는 직관적으로 ‘더 밝아지는 것’ 이라고 익히 알고 있을 것이다. Analog gain이 높아지면 더 밝아진다는 말은 너무 당연하므로 넘어가고 다른 면에서 생각해보자. 


      만약 동일한 이미지 센서를 사용하여 2개의 카메라 제조사에서 카메라를 만들었다고 가정해 보자. 그런데 1번 제조사는 1.3x의 analog gain을 사용하였고 2번 제조사는 1.5x의 analog gain을 사용하여 카메라를 제조하였다. 결과적으로 2번 제조사가 더 감도가 높은 카메라를 만들었다. 물론 카메라 spec sheet에도 더 높은 responsity 값으로 표기해 두었다. “뭘 말하고 싶은 거야?” 라고 생각되는 분은 지난 카메라 포스팅을 한번 읽어보길 바란다. 지금은 그냥 “카메라 제조사에서 gain을 높이 세팅해 두면 감도는 더 좋은 카메라가 만들어진다” 정도로만 알아두자.


     필진 소개



    목한상, Kyle Mok

    (앤비젼 Product Engineer/카메라 담당)


    사진가가 되고 싶었던... 그래서 카메라와 함께 일하는...

    카메라 담당 Product Engineer


    Posted by 비전만

    댓글을 달아 주세요