Motion Deblurring
모션 디블러링은 움직임으로 흐려진 사진과 동영상에서 선명한 이미지를 복원해 컴퓨터 비전 및 객체 감지에 필요한 디테일을 개선합니다.
모션 디블러링은 노출 중 움직임으로 인해 흐려진 사진이나 동영상 프레임에서 더 선명한 이미지를 복원하는 과정입니다. 카메라 흔들림이나 움직이는 피사체는 시각적 세부 정보를 인접한 픽셀로 퍼뜨려 가장자리를 줄무늬처럼 만듭니다. 디블러링은 이러한 퍼짐이 발생한 방식을 추정하고 내부 구조를 복원하여 컴퓨터 비전에 더 유용한 이미지를 만듭니다. 여기에는 객체 탐지와 광학 문자 인식이 포함됩니다. "모션 디블러"는 같은 작업을 가리키는 또 다른 이름입니다.
모션 블러가 발생하는 방식#
카메라는 노출 시간 내내 빛을 받아들입니다. 그 시간 동안 움직임이 발생하면 장면의 서로 다른 위치가 하나의 이미지로 합쳐집니다. 블러 커널이라고도 하는 점 확산 함수(PSF)는 단일 점이 어떻게 퍼지는지 설명합니다. 직선으로 일정한 속도로 움직이면 대략 선 모양의 커널이 만들어집니다. 카메라 회전과 독립적으로 움직이는 객체는 공간에 따라 달라지는 블러를 만듭니다. 일반적인 수학적 모델은 블러가 적용된 이미지를 선명한 이미지와 커널의 컨볼루션 결과에 노이즈를 더한 형태로 나타냅니다.
모션 디블러링은 이미지 복원 분야에 속합니다. 샤프닝은 국소적인 가장자리 대비를 높이는 반면, 디블러링은 퍼짐이 발생하기 전의 이미지를 추정합니다. 디포커스 디블러링은 초점이 맞지 않아 발생한 블러를 처리하고, 초해상도는 공간 해상도가 더 높은 이미지를 복원합니다. 이러한 작업은 이미지 복원 파이프라인에서 함께 수행될 수 있습니다.
고전적 접근 방식과 신경망 기반 접근 방식#
비블라인드 디블러링은 제공된 블러 커널을 사용합니다. 블라인드 디블러링은 선명한 이미지를 복원하는 동시에 알려지지 않은 블러도 추정합니다. 고전적인 방법은 디컨볼루션을 사용해 퍼짐을 되돌립니다. Wiener 필터링은 정규화—안정적인 이미지 추정을 선호하는 제약 조건—를 적용하여 세부 정보 복원과 노이즈 증폭 간의 균형을 맞춥니다.
신경망은 흐릿한 이미지와 선명한 이미지 쌍을 이용한 지도 학습을 통해 복원을 학습할 수 있습니다. 2016년 Ayan Chakrabarti는 블라인드 모션 디블러링을 위한 신경망 접근법을 소개했습니다. 이 방법은 겹치는 이미지 패치에 대한 복원 필터를 예측하고 그 출력을 결합하며 전역 블러 커널을 추정한 후 비블라인드 디컨볼루션을 수행합니다. 이를 통해 학습된 이미지 구조와 모션 블러의 명시적 모델을 연결합니다.
실행 가능한 디컨볼루션 예제#
pip install scikit-image scipy를 사용해 scikit-image 및 scipy을 설치합니다. 이 예제에서는 포함된 이미지에 가로 방향 모션 블러를 적용한 다음, 알려진 커널을 사용해 Wiener–Hunt 디컨볼루션을 수행합니다.
import numpy as np
from scipy.signal import convolve2d
from skimage import data, img_as_float, restoration
from skimage.metrics import peak_signal_noise_ratio
image = img_as_float(data.camera())
# Model uniform horizontal movement over 15 pixels.
psf = np.zeros((15, 15))
psf[7, :] = 1 / 15
blurred = convolve2d(image, psf, mode="same", boundary="wrap")
restored = restoration.wiener(blurred, psf, balance=0.005)
before = peak_signal_noise_ratio(image, blurred, data_range=1)
after = peak_signal_noise_ratio(image, restored, data_range=1)
print(f"PSNR: {before:.2f} dB blurred -> {after:.2f} dB restored")출력에서는 디블러링 전후의 복원 품질을 비교합니다. 최대 신호 대 잡음비(PSNR)는 원본 이미지와 픽셀이 얼마나 일치하는지 측정하며, 값이 높을수록 복원 오차가 작음을 나타냅니다.
애플리케이션과 학습 데이터#
- 문서 처리: 디블러링은 촬영된 텍스트의 문자 획을 복원합니다. Jinshan Pan, Zhe Hu, Zhixun Su, Ming-Hsuan Yang은 2014년에 밝기와 가장자리 특성을 사용해 블러를 추정하고 텍스트 경계를 복원하는 텍스트 전용 디블러링 방법을 소개했습니다.
- 동적 장면 사진 촬영: Seungjun Nah, Tae Hyun Kim, Kyoung Mu Lee가 2017년에 소개한 GoPro 디블러링 데이터셋은 고속 동영상 프레임을 평균해 생성한 흐릿한 이미지와 선명한 프레임을 짝지어 제공합니다. 이러한 쌍은 카메라와 객체 움직임 복원 학습을 위한 학습 데이터를 제공합니다.
모션 블러는 Ultralytics YOLO26의 탐지에도 영향을 줍니다. 흐릿한 입력은 예측 모드에서 객체를 놓칠 수 있으며, 별도의 디블러링 단계로 복원한 프레임은 다른 이미지와 마찬가지로 모델에 입력할 수 있습니다. Ultralytics bus.jpg 샘플 이미지에서 가로 방향으로 61픽셀의 모션 블러를 적용하자 YOLO26n이 탐지한 사람 수가 4명에서 2명으로 줄었습니다.
재구성 품질 및 아티팩트#
디블러링 품질은 가장자리의 정확한 복원, 질감 보존, 동영상 프레임 전반의 안정성을 포함합니다. 시간적 일관성은 프레임 간 안정성을 의미합니다. 동영상 처리 방법은 주변 프레임을 추가적인 복원 근거로 활용할 수 있습니다.
디컨볼루션은 노이즈를 증폭하거나 가장자리 주변에 밝고 어두운 띠가 번갈아 나타나는 링잉 현상을 일으킬 수 있습니다. 푸리에 기반 복원에서는 이미지의 서로 반대쪽 경계 간 갑작스러운 불일치가 인위적인 고주파 성분을 만들어 경계 링잉을 유발합니다. 에지 테이퍼링은 디컨볼루션 전에 이러한 불연속성을 줄입니다.










