수중 이미지 향상 기법: 지역적 색상 매핑과 색상 전이 기술

수중 환경에서 촬영된 이미지는 물리적 특성 때문에 색상 왜곡과 대비 저하가 심각하게 나타난다. 이러한 문제를 해결하기 위해 지역 기반 색상 보정과 통계적 색상 전이를 결합한 하이브리드 접근법이 효과적으로 활용되고 있다.

광학적 열화 원인

물속에서는 파장별 흡수율 차이로 인해 적색 성분이 급격히 감쇠되고, 청록색 영역이 상대적으로 남아 전체적인 색조가 편향된다. 또한 부유 입자에 의한 산란은 백색 베일 효과(veiling light)를 유발하여 선명도를 떨어뜨린다. 이는 단순한 히스토그램 균일화나 전역 화이트 밸런스로는 복원이 어렵다.

지역 색상 매핑 구현

이미지를 의미 있는 영역으로 분할한 후, 각 영역의 색상 통계량을 기반으로 독립적인 보정 함수를 설계한다. 예를 들어 SLIC(superpixel) 알고리즘을 이용해 공간적으로 일관된 영역을 생성하고, 각 슈퍼픽셀 내 RGB 평균값과 분산을 계산한다.

% MATLAB 기반 슈퍼픽셀 분할 및 색상 보정
[labels, ~] = superpixels(inputImg, 20, 'Compactness', 0.1);

for regionId = 1:max(labels(:))
    mask = labels == regionId;
    meanR = mean(inputImg(mask, 1));
    meanG = mean(inputImg(mask, 2));
    meanB = mean(inputImg(mask, 3));
    
    % 적색 성분 보강 계수 계산
    redBoost = 1 + (0.3 - meanR) * 2.5;
    inputImg(mask, 1) = min(inputImg(mask, 1) * redBoost, 1);
end

Lab 공간 기반 색상 전이

RGB보다 인간 시각에 가까운 Lab 색공간에서 색상 전이를 수행하면 자연스러운 결과를 얻을 수 있다. 여기서 L 채널은 밝기, a/b 채널은 색상 정보를 담고 있어, 색상만 선택적으로 조정 가능하다.

% 색상 통계 매칭
labTarget = rgb2lab(targetImg);
labRef = rgb2lab(refImg);

% a, b 채널 정규화 및 재스케일링
a_target = labTarget(:,:,2); 
b_target = labTarget(:,:,3);

a_norm = (a_target - mean(a_target(:))) / std(a_target(:));
b_norm = (b_target - mean(b_target(:))) / std(b_target(:));

a_matched = a_norm * std(labRef(:,:,2)(:)) + mean(labRef(:,:,2)(:));
b_matched = b_norm * std(labRef(:,:,3)(:)) + mean(labRef(:,:,3)(:));

labTarget(:,:,2) = a_matched;
labTarget(:,:,3) = b_matched;

outputImg = lab2rgb(labTarget);

실전 적용 사례

해양 생물 모니터링 프로젝트에서는 이 기법을 적용해 산호의 실제 색상을 40% 이상 더 정확하게 복원했으며, 해저 파이프라인 검사 시스템에서는 부식 부위 탐지 정확도가 50% 향상되었다. 특히 탁한 수질에서도 지역 대비 강화를 통해 윤곽 인식률이 크게 개선되었다.

최적화 팁

  • GPU 가속: gpuArray를 활용해 슈퍼픽셀 연산 속도 3배 향상
  • 피라미드 처리: 고해상도 이미지는 다운샘플링 후 처리 → 업샘플링으로 복원
  • 메모리 절약: 중간 변수는 즉시 삭제, float32 사용 권장

향후 발전 방향

딥러닝 모델을 도입해 최적의 분할 파라미터를 자동 학습하거나, 다중 스펙트럼 데이터와 결합해 깊이 정보를 반영한 색상 복원이 연구되고 있다. FPGA 기반 실시간 처리 아키텍처도 상용화 단계에 접어들었다.

태그: 수중이미지처리 색상매핑 색상전이 SLIC Lab색공간

9월 1일 01:04에 게시됨