AI 프로젝트 실습

AI 흔들림 보정 앱 만들기 – PyTorch + PyQt5로 이미지 선명하게 복원하는 데스크탑 프로그램 개발기

게임교수 2025. 4. 22. 07:43
반응형

🧠 인공지능으로 이미지 흔들림을 보정할 수 있을까?

스마트폰으로 사진을 찍을 때, 혹은 현미경이나 드론처럼 미세한 흔들림이 존재하는 환경에서는 이미지가 흔들려서 중요한 디테일이 손실되곤 합니다. 과거에는 이러한 문제를 포토샵 같은 도구로 수동 보정해야 했지만, 요즘은 딥러닝 기반의 AI 모델로 자동 보정이 가능합니다.

이번 글에서는 여러 장의 흔들린 사진을 이용해 한 장의 선명한 이미지를 복원하는 프로그램을 직접 만드는 과정을 소개합니다. PyTorch로 구현된 DeblurGAN 계열의 딥러닝 모델을 기반으로 하고, PyQt5로 GUI를 제공하는 데스크탑 프로그램을 완성하는 것이 목표입니다.

📂 프로젝트 개요 및 구성

이 프로젝트는 다음과 같은 흐름으로 구성됩니다:

  1. 입력: 흔들린 사진 여러 장을 사용자가 선택
  2. 정합: 각 사진들을 기준 이미지에 정렬
  3. 보정: 딥러닝 모델로 흔들림 제거 및 선명도 개선
  4. GUI: PyQt5로 사용자가 클릭 몇 번만으로 실행 가능하게 구성

우리는 이 과정을 통해 흔들림을 줄이고, 이미지의 품질을 극대화하는 방법을 배웁니다.

🧰 사용된 기술 스택

  • Python 3.x
  • PyTorch – 딥러닝 모델 로딩 및 추론
  • OpenCV – 이미지 정합 및 전처리
  • PyQt5 – GUI 애플리케이션 제작
  • PyInstaller – 데스크탑 실행파일(.exe)로 패키징

🧠 DeblurGAN이란?

DeblurGAN은 이미지의 모션 블러(흔들림)를 제거하기 위해 GAN(Generative Adversarial Network) 구조를 사용하는 모델입니다. 특히 DeblurGAN-v2는 성능이 개선되어 실시간에도 사용할 수 있는 구조로 바뀌었고, 저해상도부터 고해상도까지 다양한 입력을 지원합니다.

기존에는 하나의 이미지만 가지고 보정을 했다면, 우리는 여기에 멀티 프레임 기반 정합을 추가해 여러 장의 이미지를 통합하여 더 나은 결과를 만들어낼 것입니다.

🖥️ 사용자 인터페이스 구성

GUI는 PyQt5로 구성되며, 주요 기능은 다음과 같습니다:

  • ✅ 이미지 불러오기 (여러 장 선택 가능)
  • ✅ 이미지 미리보기 (처리 전후)
  • ✅ 보정 시작 버튼
  • ✅ 결과 저장 버튼

최대한 간단하면서도 기능적인 UI로 구성하여, 비개발자도 쉽게 사용할 수 있도록 구현합니다.

📁 폴더 구조 예시

image_deblur_ai/
├── gui/                  # PyQt5 GUI 소스
├── model/                # DeblurGANv2 학습된 모델 파일
├── input/                # 입력 이미지 폴더
├── output/               # 보정 결과 이미지 저장 폴더
├── main.py               # 전체 앱 실행 파일
├── requirements.txt      # 필요한 패키지 리스트
└── build/                # PyInstaller로 만든 실행 파일 폴더

🚀 실제 처리 과정 흐름

  1. 사용자가 input 폴더에 여러 장의 흔들린 이미지를 넣습니다.
  2. GUI를 통해 '보정 시작' 버튼을 클릭하면, 내부적으로 다음 단계가 실행됩니다:
  3. OpenCV로 이미지 정렬 (정합) → DeblurGAN 모델에 입력 → 출력 이미지 생성
  4. 결과 이미지는 output 폴더에 저장되며, GUI에서도 확인 가능

💬 이 프로젝트의 의의

단순히 AI 모델을 구동하는 데 그치지 않고, GUI와 함께 실제 사용자용 애플리케이션으로 구성하는 것이 이 프로젝트의 핵심입니다. 이런 방식은 현업에서도 많이 사용되며, 자신만의 AI 기반 소프트웨어를 만들고자 할 때 필수적인 과정입니다.

📌 앞으로의 계획

이번 글은 전체 시리즈의 시작입니다. 다음 글에서는 실제 PyTorch로 DeblurGANv2 모델을 실행해보며, 학습된 가중치를 어디서 어떻게 다운로드하고, 어떤 방식으로 추론을 수행하는지 구체적으로 다룰 예정입니다.

또한, 이후에는 이 모델을 PyQt5 앱과 통합하는 방법, PyInstaller로 실행 파일을 만드는 방법, 나아가 설치 파일로 패키징하는 방법까지 순차적으로 설명할 예정입니다.

📚 마무리하며

지금까지 AI를 이용한 이미지 흔들림 보정 프로그램을 만드는 전체 흐름과 핵심 구성요소를 정리해보았습니다. 이 시리즈를 따라가다 보면, 단순한 모델 실행이 아닌 ‘완성된 프로그램을 만드는 개발자’로 성장하게 될 것입니다.

다음 편에서는 DeblurGAN 모델 다운로드 및 실행 실습으로 이어갑니다. 기대해주세요!

반응형