DOI QR코드

DOI QR Code

CMOS Image Automatic Exposure System With Real-time and Robustness Style for the Journal of Korean Contents

실시간성과 강건성을 갖는 CMOS 자동노출 시스템

  • Received : 2020.07.22
  • Accepted : 2020.09.28
  • Published : 2020.10.28

Abstract

There are many factors that influence the image quality of CMOS camera images, among which the image exposure time is an important factor. If the image exposure time is long, the entire image on the screen becomes brighter. If the exposure time is shorter, the entire image becomes darker. When photographing a still image, real time is not required because the automatic exposure system is given sufficient time to obtain an appropriate exposure time. However, if the surroundings and environment change rapidly like the black box of a driving car, the exposure time should be applied in response to real time. To this end, a robust automatic exposure system for real-time performance and ambient light environment is required. An automatic exposure system that has real-time capability and is robust against the ambient light environment is required. we designed a real-time control sysem capable of parallel operation processing through the design of an embedded system using zynq's logic and ARM core, and developed a real-time CMOS automatic exposure system that is robust to noise and converges to a desired target value within 66 ms through PID control.

CMOS 카메라 영상의 화질을 좌우하는 것은 여러 가지가 있는데 그 중에서 영상 노출시간은 중요한 요소이다. 영상 노출시간이 길게 되면 화면 전체 영상이 밝아지게 되고 노출시간이 짧아지면 전체 영상이 어두워지게 된다. 정지 피사체를 사진 촬영할 경우 자동노출 시스템이 적절한 노출시간을 얻는데 충분한 시간이 주어지기 때문에 실시간성이 요구되지 않는다. 하지만 주행 중인 자동차의 블랙박스 같이 주변 빛 환경이 빠르게 변하게 되면 이에 맞추어서 노출시간도 실시간으로 반응하여 적용되어야 한다. 이를 위해서는 실시간성과 주변 빛 환경에 대하여 강건한 자동노출 시스템이 요구된다. 본 논문에서는 ZYNQ의 로직과 ARM코어를 적용한 임베디드 시스템 설계로 병렬 연산처리 가능한 실시간 제어 시스템을 설계하였고 이를 바탕으로 PID 제어를 통해서 66ms 이내에 원하는 목표 값으로 수렴하고 노이즈에 강건한 실시간 CMOS 자동 노출 시스템을 개발하였다.

Keywords

I. 서론

CMOS 이미지 센서는 소형, 고해상도, 저전력 등의 장점으로 인해서 모바일, 보안, 감시 등 다양한 분야에 사용되고 있다[1].

카메라 영상 처리 기술 중에서 화소 단위가 아닌 프레임 단위로 처리하는 기술에는 AWB(Auto White Balance), AE(Auto Exposure), AF(Auto Focus)등이 있으며, AF는 고가의 초점 제어 장치를 필요하기 때문에 저가의 모바일 카메라에서는 구현되지 않으나, AWB와 AE는 모든 카메라에 기본적으로 탑재되는 핵심기능이라고 할 수 있다.

CMOS 이미지 센서의 출력은 강한 빛에 포화되는 경향을 갖고 있기 때문에 AE의 기술이 중요하다고 할 수 있다[2].

AE는 촬영되는 피사체와 배경의 노출치를 일정하게 유지시켜주는 기술이다. 이를 위해서 현재 프레임에서 노출치를 계산하고, 이를 목표 노출값과 비교하여 다음 프레임에 적용될 노출 시간을 보정한다. 즉, 목표 노출치보다 낮을 경우에는 노출시간을 증가시키고, 목표 노출치보다 높을 경우에는 노출시간을 감소시킴으로써 노출 치를 일정하게 유지한다[3].

실용적이면서도 단순한 자동노출제어 기술은 비례 제어를 적용하는 것이다. 이는 입력영상의 평균밝기와 출력영상의 평균밝기의 비례와 센서 이득 간의 곱을 이용하는 방법으로 대표적인 기술은 삼성과 코어 로직 등 많은 곳에서 사용한다[4][5].

하지만 단순한 비례 제어는 실시간성이 뛰어나지만 비례 제어는 일반적으로 정상상태 오차가 존재한다. 비례 제어의 K값이 커질수록 과도응답 특성이 좋아져 시스템의 응답이 빨라지겠지만 정상상태에서 편차가 존재하며 이 편차로 인해 정확한 노출시간을 얻을 수 없다.

이러한 단점을 극복하기 위해서 본 논문에서 CMOS 영상 센서의 노출을 제어하기 위한 실시간 시스템에 PID(Proportional-Integral-Differential) 제어기를 적용하였다.

PID제어기 산업계에서 가장 많이 사용되는 일반적인 제어 방법으로서 높은 성능과 강건한 시스템에 적합하다[6].

PID제어기를 통해서 정상상태 오차와 과도상태 응답을 개선시켜서 빠른 실시간성과 정확한 노출시간을 얻을 수 있다.

차량에 설치된 카메라의 경우 주행에 따른 배경의 동적 변화와 주/야간 및 여러 조도 변화에 강인해야 한다. 특히 조도 변화 측면에서는 특별히 요구되는 3가지 조건이 있다[7].

첫 번째, 감도 범위(Sensitivity Range)가 넓어야 한다. 밤에는 높은 감도로 주간에는 낮은 감도로 영상을 취득해야 한다. 예를 들어, 밤의 감도는 전조등이나 가로등의 불빛으로 차선, 차량, 객체를 검지할 수 있는 최대 거리에 영향을 준다. 두 번째로 한 장면에서 WDR(Wide Dynamic Range)이 요구된다.

WDR이란 식별이 가능한 범위 내에서 가장 밝은 부분과 어두운 부분의 비율이라고 할 수 있다.

역광 구간의 경우, 120dB 정도의 동적 범위를 갖기 때문에 동적 범위가 떨어질수록 어두운 영역이 무너지거나 밝은 영역이 포화된다. 마지막으로 급격한 밝기 변화에 강인해야 한다. 터널 출입을 할 때 급격한 조도 변화로 인해 터널 밖이 포화되어 영상인식이 불가능할 수 있다[5].

아래 [그림 1][8]은 제한된 동적 범위에서 적정 노출을 실패한 이미지이다.

CCTHCV_2020_v20n10_1_f0001.png 이미지

그림 1. 제한된 동적 범위에서 적정 노출 실패 이미지[8]

위 3가지 문제를 해결하기 위해서 연구를 시작하였으나 감도범위는 CMOS 하드웨어에 따라서 달라지는 특징이기 때문에 본 논문에서는 다루지 않았고 WDR은 간단하게 히스토그램을 통해서 소프트웨어적으로 처리하였다. 하지만 마지막 급격한 조도변화 문제는 실시간 성과 강인한 자동노출 시스템이 요구된다.

본 논문에서는 이를 위해서 XILINX사의 ZYNQ라고 불리는 최신 프로세서 칩을 적용하였다. ZYNQ는 FPGA(Field Programmable Gate Array)와 ARM 코어가 탑재되어 있는 통합 반도체 칩이다.

ZYNQ의 병렬처리 가능한 FPGA와 고성능 연산이 가능한 ARM 코어를 이용하여 실시간으로 픽셀 값 계산하여 바로 다음 프레임에 다른 노출시간을 적용할 수 있게 실시간 제어 임베디드 시스템을 적용하였으며 CMOS 영상 센서를 수학적으로 모델링하여 외란(밝기 변화)에 강인한 PID제어기를 적용하였다.

II. 본론

1. CMOS 영상 센서의 자동노출

AE는 노출시간을 자동으로 조절하여 영상의 밝기를 일정하게 유지해주는 기술이다.

아래 [그림 2]는 노출시간에 따른 영상의 밝기를 나타내고 있다[9]. 같은 장소에서 획득한 동일한 영상이라도 이미지 센서가 빛에 노출되는 시간이 많아지면 영상은 밝아지고, 노출되는 시간이 짧아지면 영상은 어두워진다[6].

CCTHCV_2020_v20n10_1_f0002.png 이미지

그림 2. 노출시간에 따른 영상의 밝기[9]

일반적인 AE는 중간 값 알고리즘(Mean Value Algorithms)을 적용한다. 중간 값 알고리즘은 특정 밝기에 대하여 항상 중간 값을 유지하도록 제어하는 것이다. 예를 들어 CMOS센서의 픽셀이 8bit라면 0에서 255까지 표현을 할 수 있다. 그리고 중간 값은 128이 된다.

[그림 3]과 같이 중간 값 알고리즘은 CMOS 영상 한 프레임의 모든 픽셀 값들의 합한 후 영상 한 프레임의 픽셀 개수로 나눈 값이 128이 되도록 노출시간을 제어하는 것이다.

CCTHCV_2020_v20n10_1_f0003.png 이미지

그림 3. CMOS센서의 이상적인 노출시간

중간 값 알고리즘에서 영상 이미지의 밝기정도는 아래와 같이 표현될 수 있다[10].

Bl = kLGTF-2       (1)

where:

Bl Mean brightness level of image

k Constant

L Mean luminance of the scene

G Gain of the AGC-Circuit

T Exposure time

F F-Number

k, G, F는 고정 값이고 주변 환경에 따라서 달라지는 배경 밝기 L, 제어 가능한 노출시간 T를 이용하여 다음 영상 프레임의 Bl 값이 128에 가깝게 노출시간을 조정 하는 것이다.

중간 값 알고리즘의 장점은 빠르고 간단하다는 장점이 있지만 단점으로는 CMOS 센서의 출력이 선형이라는 가정에서 출발하였고 갑작스러운 밝기변화에 대하여 포화된다는 단점이 있다[11].

본 논문에서는 이러한 단점을 보완하고자 프레임과 다음 프레임 간의 짧은 시간에 실시간으로 한 프레임 안의 모든 픽셀 값들을 더하고 평균할 수 있도록 FPGA 기반 임베디드 시스템을 적용하였고 중간 값 알고리즘에 단순 비례제어가 아닌 PID제어를 적용하였다.

2. CMOS 영상 센서 및 임베디드 시스템 구성

2.1 CMOS 센서

최근 몇 년간 CMOS 영상 센서의 성능이 발달하여 CCD 영상 센서와의 성능과 차이를 찾기 힘들어졌다. CMOS 이미지 센서는 Active Pixel Sensor(APS)라고 불리는 독립적인 센서 어레이로 구성이 된다. 장점으로는 단전원으로 동작하며 전력소모가 적으며 블루밍 현상이 없다. 또한 랜덤으로 특정 픽셀에 접근이 가능하고 아날로그 성분과 디지털 성분이 한 칩에 통합이 가능하다.

단점으로는 Dark Current, Fixed pattern noise(FPN), Temporal noise가 존재한다.

Dark Current는 통합노드에서의 누설전류이다[12]. 전체 이미지 센서 어레이에 따라서 다르며 제거하기가 쉽지 않다. FPN은 디바이스에 기인하며 센서들간의 접촉 불일치로 인하여 발생한다. FPN은 오프셋 FPN과 Gain FPN으로 구성된다[13].

본 논문에서는 CMOSIS사의 CMV300이라는 CMOS 영상 센서를 적용하였으며 주요 특징은 다음과 같다.

1. 648 * 488 active pixels on a 7.4um pitch

2. Frame rate 480 frame/sec@640*480 resolution

3. Dark current: 120 e/s (@ 25C die temperature)

4. Fixed pattern noise: <4 LSB

2.2 실시간 임베디드 시스템 구성

CMOS 영상 센서 제어와 CMOS 영상 데이터를 실시간으로 처리하기 위하여 다음 [그림 4]와 같이 회로 카드를 설계 제작하였다. 회로카드는 CMOS 영상 센서와 프로세서와 FPGA 역할을 하는 ZYNQ로 구성이 되어 있다. 자일링스사의 ZYNQ는 FPGA와 ARM 코어가 통합된 칩이다.

CCTHCV_2020_v20n10_1_f0004.png 이미지

그림 4. CMOS 이미지 센서와 ZYNQ가 탑재된 회로카드

아래 [그림 5]에서 보는 바와 같이 ZYNQ 내부 설계는 VHDL로직으로 구성된 CMOS Controller와 프로 세서 역할을 수행하는 ARM 코어로 구성된다.

CCTHCV_2020_v20n10_1_f0005.png 이미지

그림 5. CMOS영상 제어 획득을 위한 기능 블럭도

CMOS Controller는 ARM코어와 AMBA(Advanced Micro controller Bus Architecture)를 통해서 연결되어 있으며 CMOS 영상 신호 제어, 영상 데이터, 모든 픽셀의 평균 값 등을 실시간으로 송수신한다.

CMOS 영상 센서에서 출력되는 전체 영상 648*488영상 데이터를 처리하기에는 제작된 회로카드의 GUI 프로그램과의 통신이 최고속도 10Mbps HDLC통신이므로 30Hz 속도로 전체 영상을 실시간으로 전송하는데 한계가 있었다. 그러므로 132*100 픽셀 영상만 획득하여 실험에 적용하였다. 통신을 HDLC에서 고속의 Ethernet통신으로 설계 변경을 한다면 전체 영상을 실시간으로 처리할 수 있으므로 다음 프로젝트에서는 고속의 Ethernet 통신을 이용하여 전체 영상을 영상 처리할 예정이다.

CMOS 영상 센서는 위 [그림 6]과 같이 132*100 픽셀 영상 데이터를 Monochrome 형태로 30Hz 속도로 ZYNQ에 아래 그림과 같이 전달한다.

CCTHCV_2020_v20n10_1_f0006.png 이미지

그림 6. CMOS 센서에서 132*100 픽셀만 적용

 다음 [그림 7]과 같이 8bit로 구성된 1픽셀은 24MHz로 출력되고 132개의 픽셀(1라인)이 출력되면 그 다음 라인이 출력된다. 이렇게 100개의 라인이 출력 되면 영상 한 프레임이 출력되는 것이다. 영상 한 프레임과 그 다음 영상 프레임간의 간격은 1/30초(30Hz) 이다.

CCTHCV_2020_v20n10_1_f0007.png 이미지

그림 7. CMOS 영상 출력 타이밍

CMOS 영상 센서의 노출시간을 ZYNQ에서 이산 신호를 이용하여 조절한다. 아래 [그림 8]에서 보는 바와 같이 T_EXP1 신호를 토글 시킨 후 영상 프레임 요구핀(FRAME REQ)을 토글 시킬 때까지의 시간이 노출 시간이 되고 노출 시간이 된다.

CCTHCV_2020_v20n10_1_f0008.png 이미지

그림 8. 노출시간과 영상프레임간의 타이밍[14]

CMOS 영상 센서가 영상을 만드는 필요한 시간은 Frame Overhead Time이며 Read out Time은 CMOS 영상을 읽어가는 시간이 된다[14].

아래 [그림 9]는 노출시간에 따른 CMOS 센서 영상이다. 아래 왼쪽은 짧은 노출시간(5ms)에 따른 영상이고 오른쪽은 긴 노출시간(50ms)에 따른 영상이다[15].

CCTHCV_2020_v20n10_1_f0009.png 이미지

그림 9. 노출시간에 따른 CMOS 센서 영상[15]

자동노출을 위한 방법은 크게 두 가지로 구성된다. 하나는 영상의 모든 픽셀 값을 다 더한 후 픽셀의 개수로 나누어서 평균 값을 계산하는 부분이고 이 값을 바탕으로 변하는 CMOS 영상 센서의 노출 시간이다[16].

ZYNQ안의 FPGA 로직 부분이 실시간으로 한 프레임의 영상 데이터의 픽셀 값을 모두 더한 후 한 프레임의 픽셀 값으로 나누게 된다.

2.3 ZYNQ 설계

자일링스사 제품인 ZYNQ와 같이 CPU와 FPGA가 결합된 이기종 내장형 시스템에서는 소프트웨어와 하드웨어 설계의 장점을 결합한 HW/SW co-design platform으로 응용 어플리케이션 성능을 향상시킬 수 있다[17].

자일링스사의 ZYNQ는 PS(Processing System)부분과 PL(Programmable Logic) 부분으로 구성이 된다. PL은 FPGA(Field-Programmable Gate Arrays) 로 생각할 수 있다. FPGA는 여러 응용분야에서 사용되고 있으며 유연성, 병렬처리, 통합 측면에서 유리한 점을 가지고 있다[18].

실시간으로 동작하기 위해서는 하드웨어 기반의 고속화가 요구되는 부분을 RTL(Register-Transfer Level) 아키텍쳐로 추출하고 Verilog 또는 VHDL를 사용한다[19].

아래 [그림 10]은 ZYNQ를 나타내는 기능 블록도이다.

CCTHCV_2020_v20n10_1_f0010.png 이미지

그림 10. ZYNQ 기능블럭도

PS는 APU(Application Processor Unit), Memory Interface, I/O Peripheral로 구성이 되며 PL은 로직 블럭, 블록 램, DSP 슬라이스로 구성이 되어 있다.

또한 듀얼코어를 통해서 멀티 프로세싱이 가능하며 각각의 프로세서는 OS 간섭없이 독립적으로 동작이 가능하다[20].

PS의 APU는 위 그림에서 보는 바와 같이 ARM Cortex Core가 탑재되어 있으며 CMOS 영상 센서의 레지스터 셋팅, 영상처리, 노출시간 PID 제어 임무를 수행하게 된다.

PL은 실시간으로 CMOS 영상 센서의 영상 데이터 수신 및 픽셀 값들을 합의 평균 값을 구하게 된다.

[그림 11]은 ZYNQ와 CMOS컨트롤러가 AMBA를 통해서 강 결합되어 있는 모습이다.

그림 11. ZYNQ & CMOS 컨트롤러

3. PID제어를 이용한 실시간 자동노출

3.1 CMOS 영상 센서 모델

노출시간과 CMOS 영상 센서의 한 프레임내의 모든 픽셀 값의 평균은 선형관계에 있다. 즉 노출시간이 길이지면 한 프레임내의 모든 픽셀 값은 증가할 것이고 짧아지면 한 프레임내의 모든 픽셀 값의 평균은 감소할 것이다. 여기서 입력 값은 노출시간이고 출력 값은 한 프레임내의 모든 픽셀 값의 평균이 될 것이다.

System Identification 은 시스템의 입력과 출력을 바탕으로 시스템의 수학적 모델, 즉 전달함수를 구하는 과정이다[21].

본 논문에서는 MATLAB에서 제공하는 System Identification Toolbox를 이용하여 CMOS 영상 센서를 수학적으로 모델링하였다.

[그림 12]에서 보는 바와 같이 System Identification Toolbox는 실제 시스템을 이용하여 시간영역 또는 주파수 영역의 입력과 이에 따라 측정된 실제 출력 데이터를 바탕으로 동적 시스템을 수학적으로 모델링해주는 툴이다[22].

CCTHCV_2020_v20n10_1_f0012.png 이미지

그림 12. System Identification을 이용, 시스템의 입출력 값으로 시스템 추정 및 검증

System Identification Toolbox를 이용하여 시스템을 모델링을 하는 순서는 다음과 같다.

1) 30Hz(CMOS 영상 Frame Rate)로 다양한 노출 시간(동적 시스템의 입력 데이터)을 CMOS 영상센서에 입력

2) 다양한 노출시간에 따른 영상 한 프레임의 모든 픽셀 값들의 합한 후 영상 한 프레임의 픽셀 개수로 나눈 값 획득(동적 시스템의 출력 데이터)

3) System Identification Toolbox에 동적 시스템의 입력 데이터와 출력 데이터에서 물리적 평형상태를 만들기 위해서 오프셋 제거

4) 전체 입력 데이터와 출력 데이터 샘플 개수 중 반은 시스템 추정하는 곳에 입력하고 나머지 반은 추정된 시스템의 유효성을 검증하는 곳에 입력한다.

5) 시스템 추정 및 검증을 바탕으로 여러 알고리듬을 적용하여 시스템의 선형 모델과 비선형 모델들을 생성, 또한 다양한 시스템 모델들에 대한 주파수 응답, 과도응답, 출력 등을 생성

시스템의 강건성은 시스템의 특성이 모델링한것과 다르게 변하더라도 시스템의 안전성, 제어 성능, 외란 제거 능력 등 원하는 기준치까지 달성할 수 있는 척도로 볼 수 있다.

시스템의 강건성을 평가하기 위한 지표로 게인 마진과 페이즈 마진을 대표적으로 사용하며 주파수 응답 특성을 통해서 확인할 수 있다.

일반적으로 시스템의 바람직한 안정성 마진은 게인 마진은 6dB 이상, 페이지 마진은 30° ~ 60° 이며 아래 [그림 13]에서 보는 것처럼 System Identification Toolbox를 통해서 획득한 CMOS 영상 센서 모델의 주파수 응답 특성에서 보이는 게인 마진은 무한대이며 페이즈 마진은 96.3°이다.

CCTHCV_2020_v20n10_1_f0013.png 이미지

그림 13. CMOS 영상센서 모델의 마진

아래 [그림 14]는 CMOS 영상 센서 모델의 스탭 입력에 대한 시간영역에서의 과도 응답 특성이다.

CCTHCV_2020_v20n10_1_f0014.png 이미지

그림 14. CMOS 영상 센서의 과도응답 특성

아래 [그림 15]는 이에 따른 노출 시간에 따른 한 프레임 내의 평균 픽셀 값의 변화 추이다. 실내에서 측정한 결과이며 노출시간이 20ms 이상부터는 아무리 노출시간을 늘려도 평균 픽셀 값이 200을 넘지 않는 것을 알 수 있다. 화창한 날 실외를 바라보고 측정할 경우에는 평균 픽셀 값이 240까지 올라가는 것을 확인하였다.

CCTHCV_2020_v20n10_1_f0015.png 이미지

그림 15. 노출시간에 따른 프레임내의 평균 픽셀 값(실내)

아래 [그림 16]은 실제 CMOS 영상 센서 출력(평균 픽셀 값)측정한 결과와 모델링된 영상 센서 모델의 시뮬레이션의 결과를 비교한 그래프이다. CMOS 영상 센서 모델과 89.38% 일치하는 것을 알 수 있다.

CCTHCV_2020_v20n10_1_f0016.png 이미지

그림 16. 측정값과 CMOS 영상 센서 모델의 시뮬레이션 값

다음 식은 위 과정을 거쳐서 얻어낸 CMOS 영상 센서 모델의 전달함수 식이다.

\(\frac{73.5622 z-64.1233}{z^{3}-0.5404 z^{2}+0.2032 z-0.0380}\)       (2)

위 전달함수를 CMOS 영상 센서의 플랜트로 볼 수있으며 이 플랜트에 PID제어기를 적용하여 실시간으로 중간 값을 알고리듬을 만족하는 자동 노츨 시스템을 개발하였다.

3.2 CMOS 영상 센서 노출시간 제어기 설계

오늘날 산업현장에서 사용되는 제어기의 약 80%는 고전제어에 해당되는 PID제어기이다[23].

PID 제어기는 구조가 단순한 반면에 제어성능은 우수한 편이며, 제어게인 조정이 비교적 쉽고, 직관적으로 판단할 수 있다[24].

아래 [그림 17]은 일반적인 PID 제어 루프이다.

그림 17. PID 제어 루프

Gp(s)는 CMOS 센서를 나타내는 플랜트이고 Gc(s)는 PID 제어기 이다. PID제어기는 오차신호인 E(s)를 받고 제어 신호인 U(s)를 발생시키고 이에 따라서 C(s)를 출력한다. D(S)는 입력 R(S)와 연관된 외란이다[25]. KP, KI, KD 는 비례, 적분, 미분과 관련된 PID게인 들이다.

다음 [그림 18]은 PID제어기를 통해서 CMOS 영상센서를 제어하는 플로우 챠트이다.

CCTHCV_2020_v20n10_1_f0018.png 이미지

그림 18. CMOS 영상 센서 자동 노출시간 제어 플로우 챠트

다음 플로우 챠트와 같이 PID제어기가 실시간으로 운용할 수 있게 환경을 만들 수 있었던 것은 고성능 ZYNQ 덕분이다.

ZYNQ의 FPGA 로직을 이용하여 CMOS 센서의 영상 데이터를 실시간으로 병렬 처리하였고 그 결과를 ARM 코어가 받아볼 수 있도록 FPGA 로직이 실시간으로 고성능 버스인 AMBA를 통해서 데이터를 올려주었기 때문이다.

시뮬링크에서 제공하는 PID 튜너를 이용하여 CMOS 영상 센서 자동 노출 시스템이 다음과 같은 성능과 강건성을 갖도록 다음 [그림 19]와 같이 PID 제어기를 설계하였다. Rise Time은 시스템이 대략 특정 값에서 수렴하는 것으로 예측될 때 그 근사값에 도달한 시간을 의미한다. Settling Time은 목표 값과 지정한 특정 값만큼 차이가 날 때, 그 값에 도달하는 시간을 의미한다. Overshoot는 피크 값에 도달한 값과 수렴값 사이의 차이를 의미한다. Gain Margin과 Phase Margin은 시스템의 안정도를 나타낸다. Gain Margin이 크면 노이즈에 대해서 강건해지지만 시스템의 응답이 느려진다. Phase 마진이 크면 오실레이션 감소하고 작으면 증가하게 된다. 그러므로 적당한 Gain Margin과 Phase Margin은 시스템의 특성에 맞게 설계하는 것이 중요하다.

- Rise Time : 1.06ms

- Settling time : 2.08ms

- Overshoot : 0.0 %

- Gain Margin : 7.24 db@ 31.6 rad/sec

- Phase Margin : 109 degree@ 2.94 rad/sec

CCTHCV_2020_v20n10_1_f0019.png 이미지

그림 19. PID제어기를 이용한 CMOS 영상 센서 자동노출

그리고 아래는 PID제어기의 게인이다.

Proportional P : 0.0035

Integral I : 0.2151

Derivative D : 0

Filter Coefficient N : 100

아래 [그림 20]은 실험 구성이다.

CCTHCV_2020_v20n10_1_f0020.png 이미지

그림 20. CMOS 영상 센서를 이용한 야외영상 획득을 위한 시험 구성

아래 전달함수는 제어기와 CMOS 모델을 포함한 전체 CMOS 영상 센서 자동 노출 시스템에 대한 전달함수이다.

\(\frac{-0.0003543 z^{3}+0.2713 z^{2}+0.02366 z-0.2259}{z^{4}-1.526 z^{3}+0.7225 z^{2}-0.2333 z+0.03677}\)       (3)

아래 [그림 21]은 오픈 루프 시스템에 대한 주파수 응답 특성이며 나이퀴스트 다이어그램으로 시스템의 안정성을 확인하였다. 가로 축은 주파수이며 세로 축은 크기와 위상을 나타낸다.

CCTHCV_2020_v20n10_1_f0021.png 이미지

그림 21. CMOS 센서 자동노출 시스템의 마진

아래 [그림 22]는 시스템의 나이퀴스트 다이어그램이다. 가로 축은 실수 축이며 세로는 허수 축을 나타낸다. 그림에서 보는 바와 같이 CMOS 영상 센서 자동 노출 시스템은 안정적인 폐루프 시스템이라는 결과를 나타낸다.

CCTHCV_2020_v20n10_1_f0022.png 이미지

그림 22. CMOS 센서 자동노출 시스템의 나이퀴스트 다이어그램

아래 [그림 23]은 시간영역에서의 스텝 입력에 대한 시스템 응답이다. 가로 축은 시간이며 세로 축은 계단 응답의 출력이다.

CCTHCV_2020_v20n10_1_f0023.png 이미지

그림 23. 스텝 입력에 대한 시스템 출력

4. 실험 및 결과

아래 [그림 24]는 CMOS 센서 제어 없이 노출 시간에 따른 영상 비교 사진이다. 보는 바와 같이 노출시간에 따라서 화면 밝기가 달라지는 것을 알 수 있다. 노출 시간이 길어지면 화면이 전체적으로 밝게 나타나고 노출시간이 짧아지면 화면이 전체적으로 어둡게 나오는 것을 알 수 있다.

CCTHCV_2020_v20n10_1_f0024.png 이미지

그림 24. 노출시간에 따른 화면의 영상

이 상태에서 CMOS 센서를 제어하게 된다면 한 프레임 내의 평균 픽셀 값이 중간 값(128)을 갖는 최적의 영상 밝기를 갖는 노출시간을 유지할 것이다.

제어기를 통해서 실시간으로 노출시간을 제어한 결과는 아래 [그림 25-26]이다.

CCTHCV_2020_v20n10_1_f0025.png 이미지

그림 25. 노출시간에 따른 평균 픽셀 값

CCTHCV_2020_v20n10_1_f0026.png 이미지

그림 26. 한 프레임내의 평균 픽셀 값

아래 [그림 25]는 CMOS회로카드의 변경되는 노출 시간에 따라서 한 프레임 내의 평균 픽셀 값이 실시간으로 디버깅 상태에서 SDK(Software Development Kit)에서 출력되는 장면이다. 노출시간에 따라서 평균 픽셀 값이 실시간으로 변하는 것을 확인할 수 있다.

위 [그림 25]를 정리하면 다음과 같다. 노출시간의 역 수인 expo_v 값이 증가하면 노출시간이 줄어든다. 노출시간이 줄어들면 한 프레임 내의 평균 픽셀 값을 나타내는 total_pixel_v 값이 감소하게 된다. 즉 화면이 전체적으로 어둡게 나타나는 것이다.

아래 [그림 26]은 PID제어기에 의해서 외란에 의해서 주변 밝기가 변해도 한 프레임내의 평균 픽셀 값이 제어에 의해서 중간 값 128에 수렴하려는 것을 보여주고 있다. 가로 축은 ms 단위로 시간을 나타내는 시간 축이며 세로는 평균 픽셀 값이다.

아래 그림에서 보는 바와 같이 2개의 외란에 대하여2 프레임이 갱신되는 시간(66ms)이내에 중간 값 128에 수렴하는 것을 확인할 수 있었다. 즉 실시간성이 확보 된 것이다. 이렇게 실시간성을 확보할 수 있었던 것은 ZYNQ의 FPGA를 활용하여 설계를 진행한 결과이다.

그리고 시험 중간에 빛 환경에 변화를 주어 외란을 임의적으로 만들었으며 이 외란에 대하여도 평균 픽셀 값이 100 ~ 200 이내에서 안정적으로 움직이는 것을 확인 할 수 있었다. 즉 외란한 강건한 시스템이 설계된 것을 확인할 수 있었다.

5. 결론 및 향후계획

기존의 CMOS카메라의 자동노출 방법은 중간 값 알고리즘에 의해서 비례 제어를 통해서 노출시간을 조종하는 방법이었다. 이 방법은 정지 영상과 같이 실시간성이 필요 없는 경우에 적용할 수 있는 방법이다.

하지만 주행 중인 자동차의 블랙박스 같이 주변 빛환경이 빠르게 변하게 되며 이에 맞추어서 노출시간도 실시간으로 반응하여 적용되어야 한다.

본 논문에서는 ZYNQ를 이용하여 실시간으로 CMOS 영상 한 프레임의 평균 픽셀을 획득하였고 노출 시간을 조종함으로서 실시간성을 확보하였고 PID제어를 통해서 강건하고 빠른 반응속도를 가지는 CMOS 자동노출 시스템을 개발하였다.

그 결과 우리가 원하는 강건하고 실시간성을 가지는 자동노출 시스템을 개발하였다.

향후에는 CMOS 영상회로카드를 휴대할 수 있도록 수정 개발하여 자동차 안에서 바깥화면을 촬영하여 주행 중에 속도를 하나의 입력으로 산정하여 노출시간, 주행속도 이렇게 2개의 인풋을 가지는 PID제어기를 설계 적용하여 실험을 진행할 예정이다.

즉 멀티 변수를 갖는 시스템을 적용할 예정이다. 멀티 시스템의 특징은 2개 이상의 입력 또는 2개 이상의 출력을 가지고 있다. 각각의 출력은 입력의 영향을 받으며 외란과 노이즈로 표현이 된다[26]. 이런 문제를 해결하기 위해서 다양한 튜닝 기법을 적용하여 해결할 예정이다.

References

  1. W. Kim, "A Low-Power Extended-counting Delta-sigma ADC for CMOS Image Sensors," J. of Semiconductor Technology and Science, Vol.19, No.6, pp.594-599, 2019. https://doi.org/10.5573/JSTS.2019.19.6.594
  2. D. Seong, B. Choi, and S. Kim, "Wide Dynamic Range CMOS Image Sensor with Adjustable Sensitivity Using Cascade MOSFET and Inverter," J. of Sensor Science and Technology Vol.27, No.3, pp.160-164, 2018. https://doi.org/10.5369/JSST.2018.27.3.160
  3. 모성욱, "CMOS Image Sensor용 자동노출 알고리즘의 하드웨어 구조," 한국산학기술학회 논문지, 제10권, 7호, pp.1497-1502, 2009.
  4. 전성천, "이미지 센서의 노출 조절 장치 및 그의 조절방법," 특10-0639111, 한국, 2006.
  5. 박준영, "자동 노출 제어 장치 및 방법," 특10-2006-0087661, 한국, 2005.
  6. P. Kheirkhahan, "Robust Anti-Windup Control Design for PID Controllers," J. of Control Robotics and System, Vol.10, No.1, pp.1622-1627, 2017.
  7. S. Pan and X. An, "Content-based Auto Exposure Control for On-board CMOS Camera," 11th International IEEE Conference on Intelligent Transportation System, 2008.
  8. 김명우, "차량 전방 카메라 노출방법에 대한 연구," 한국자동차공학회 추계학술대회, 제11권, pp.1534-1537, 2011.
  9. 김현우, "자동 노출 제어를 이용한 조명 변화에 강인한 실시간 얼굴 검출 시스템," 대한전자공학회 하계학술대회, 제36권, 제1호, pp.1442-1444, 2013.
  10. Y. Jeon, H. Park, and Y. Yoon, "Design and Implementation of Multi Exposure Smart Vehicular Camera Applying Auto Exposure Control Algorithm Based on Region of Interest," J. of institute of Communications and Information Science Vol.42, No.1, pp.181-192, 2017.
  11. T. KUNO and H. SUGIURA, "A new automatic exposure system for digital still cameras," IEEE(Trans-CE), Vol.44, No.1, 1998(2).
  12. Abbas El Gamal, "High Dynamic Range Image Sensors," Stanford University, In International Solid-State Circutis Conference Tutorials, 2002.
  13. Michael Muehlebach, Camera Auto Exposure Control for VSLAM Applications, Autumn Term, 2010.
  14. Michael Muehlebach, Camera Auto Exposure Control for VSLAM Applications, Autumn Term, 2010.
  15. CMOSIS Image Sensor, CMV300 Datasheet, 2016.
  16. CMOSIS Image Sensor, CMV300 Application note for CMV, 2015.
  17. K. Kim, "The Algorithm and Hardware Implementation of Average Luminance Computation Method of image to Improve Auto Exposure in Mobile Camera," International Conference on Electronics, pp.456-459, 2008.
  18. H. Shin and J. Lee, "Multi-threaded System to Support reconfigurable hardware accelerators on Zynq SoC," J. of institute of Electrical and Electronics Engineers Vol.24, No.1, pp.186-193, 2020.
  19. L. Lv, C. Chang, and Z, Zhou, "An FPGA-based Modified Adaptive PID Controller for DC/DC Buck Converters," J. of Power Electronics Vol.15, No.2, pp.346-355, 2015. https://doi.org/10.6113/JPE.2015.15.2.346
  20. H. Choi, J. Cho, and Y, Kim, "Improve Stability of Military Infrared Image and Implement Zynq SoC," J. of Embed. Sys, Vol.13, No.1, pp.17-24, 2018.
  21. M. Kang, "Measuring Ultrasonic TOF using Zynq Baremetal Multiprocessing," J. of Institute of Electronics and Information Engineers. Vol.54, No.6, pp.93-97, 2017. https://doi.org/10.5573/ieie.2017.54.11.93
  22. M. G. Kim "A Design of PID Controller through System Identification for A Robot Arm with Harmonic Reduction Gear," 한국정밀공학회 추계학술대회 Vol.15, pp.252-253, 2015.
  23. https://kr.mathworks.com, 2020.7.1.
  24. K. Ogata, Modern Control Engineering, 4th Edition, Prentice Hall, New Jersey, 2003.
  25. 이세진, "전기유압 서보시스템의 모델링과 PID제어," 유공압건설기계학회지, 제16권, 제4호, pp.16-22, 2019.
  26. P, Deacha, "Optimal PID Controller Design for DC Motor Speed Control System with Tracking and Regulating Constrained Optimization via Cuckoo Search," J. of Electrical Engineering & Technology, Vol.13, No.1, pp.460-467, 2018. https://doi.org/10.5370/JEET.2018.13.1.460
  27. Y. Lee, S. Kwon, and M. So, "Design of RCGA-Based PID Controller for two-input two-output system," J. of Advanced Marine Engineering and Technology, Vol.39, No.10, pp.1031-1036, 2015. https://doi.org/10.5916/jkosme.2015.39.10.1031