2026-10-04

NaGeoAI 실제 QGIS 실습 7 | OpenSR 초해상도와 4배 출력 격자 검증

본 실습에서는 NaGeoAI의 OpenSR 초해상도 기능을 QGIS 데스크톱에서 실행하고, 생성된 GeoTIFF의 크기, 픽셀 간격, 좌표계 및 유효값을 검증하였다. 2026년 10월 4일 실제 실행 화면을 단계별로 제시한다. 픽셀 회귀는 학습된 Lightning 체크포인트가 준비되지 않아 후속 실습으로 남겨 두었다.

1. 실습 목적과 검증 범위

Sentinel-2 예제 영상에서 128×128 픽셀의 관심영역을 추출하여 RGB 및 근적외선(NIR) 4개 밴드를 처리한다. 입력 10 m 격자가 출력 2.5 m 격자로 변환되고 공간 범위가 유지되는지를 확인하는 것이 목적이다. 2.5 m 출력 간격은 관측 해상도나 위치 정확도가 2.5 m로 향상되었다는 의미가 아니다. 고해상도 참조 영상이 없으므로 복원 정확도, PSNR, SSIM 및 객체 판독 성능은 평가하지 않았다.

2. 플러그인 설치와 필수 환경 확인

  1. NaGeoAI-1.9.1.zip을 내려받는다. ZIP 파일은 압축을 풀지 않은 상태로 설치한다.
  2. QGIS의 플러그인 → 플러그인 관리 및 설치 → ZIP에서 설치에서 내려받은 파일을 선택하고 NaGeoAI를 활성화한다.
  3. NaGeoAI → 필수 환경·모델 설치에서 AI 환경, opensr-model 및 OpenSR 모델의 준비 상태를 확인한다. 누락된 항목만 설치·다운로드하고 이미 설치된 항목은 건너뛴다.
  4. 이번 실행은 QGIS 3.44.12에 이미 설치된 NaGeoAI 1.9.1을 사용하였다. 재설치를 수행하지 않았으므로 새 설치 화면으로 표시하지 않는다. 실제 과거 설치 과정은 실습 1: 설치부터 NAIP 변화탐지까지를 참고한다.

opensr-model 1.1.1과 opensr-ldsrs2_v1_0_0.ckpt의 존재를 확인하였다. 체크포인트는 1,130,715,795 바이트이며 SHA-256은 e2621e3912eb7c14867c3d20c9029607ba941be8e166dc09621860fcac27dc3a이다. 설치 검사값과 실제 파일 해시가 일치하였다. 모델 설정 파일은 실행 시 인터넷에서 읽으므로 모델이 설치되어 있어도 네트워크 연결이 필요하다.

3. 예제 파일 다운로드와 관심영역 준비

Sentinel-2 6밴드 예제 GeoTIFF 다운로드를 열어 파일을 저장한다. 출처는 Source Cooperative의 opengeos/geoai 예제 자료이다. 파일명은 2019년 3월 18일 Sentinel-2 L2A 자료를 나타낸다. 배포 파일 자체의 별도 버전은 확인되지 않았다. 원본 예제와 모델은 이 글의 GitHub 이미지 폴더에 재배포하지 않았다. Sentinel 자료의 기본 이용 정책은 Copernicus 이용 조건을 확인한다. 화면은 해당 예제로 직접 실행한 파생 결과이며 교재의 그림을 복제하지 않았다.

원본은 760×711 픽셀, 6밴드 UInt16, 파일에 기록된 CRS는 EPSG:32647, 픽셀 간격은 10 m이다. 밴드 순서는 B2, B3, B4, B8, B11, B12이다. 원본은 보존하고 GDAL의 아래 명령으로 열 오프셋 300, 행 오프셋 250부터 128×128 영역을 별도 추출하였다. 재표본화는 수행하지 않았다. 출력 파일이 이미 있으면 새 이름을 사용한다.

gdal_translate -srcwin 300 250 128 128 -co COMPRESS=LZW S2A-L2A-20190318-N0211-R061-6Bands-S2.tif s2_roi128_20261004.tif

4. 시작 프로젝트를 보존하고 입력 레이어 확인

QGIS에서 QGIS_Play.qgz를 연 다음, 분석 레이어를 추가하기 전에 프로젝트 → 다른 이름으로 저장으로 QGIS_Play_NaGeoAI_20261004_superresolution.qgz 복사본을 만든다. 이번 실행은 QGIS GUI의 Python 콘솔에서 QgsProject.read, setFileName, write를 호출하여 원본 열기와 복사본 저장을 수행하고 저장 성공과 현재 파일명을 확인하였다. 원본의 SHA-256은 작업 전후 동일하였다.

레이어 → 레이어 추가 → 래스터 레이어 추가로 관심영역 파일을 불러온다. 이번 실행에서는 QGIS 콘솔의 iface.addRasterLayer로 동일한 레이어를 추가하였다. 프로젝트 표시 CRS를 입력 CRS에 맞춘 것은 복사본에만 적용하였다. 첫 화면의 기본 RGB 표시가 파일의 밴드 1·2·3을 사용하더라도 모델 입력은 다음 단계에서 반드시 3·2·1·4로 지정한다. 화면 색상만으로 입력·출력의 성능을 비교하지 않는다.

초해상도 단계 1: 프로젝트 복사본, 입력 관심영역 및 설정값
그림 1. 실제 QGIS 프로젝트 복사본, 입력 레이어와 NaGeoAI 설정 화면. 콘솔에서 입력 유효성, EPSG:32647, 128×128 크기와 10 m 간격을 확인하였다. 클릭하면 원본 크기로 볼 수 있다.

5. NaGeoAI 초해상도 입력값 지정과 실행

  1. NaGeoAI 도구 모음의 추가 분석을 열고 기능 목록에서 초해상도를 선택한다.
  2. 입력 래스터는 s2_roi128_20261004.tif로 지정한다.
  3. R,G,B,NIR 밴드는 3,2,1,4, 샘플링 단계는 50으로 입력한다.
  4. 출력은 기존 파일과 겹치지 않는 s2_sr4x_20261004.tif로 지정하고 공간 결과를 지도에 추가를 체크한다.
  5. 실행을 누른 후 시작 로그와 완료 로그를 확인한다. 기본 처리 배율은 4배이며 불확실성 지도를 별도로 계산하지 않았다.
초해상도 단계 2: 밴드 3,2,1,4와 50단계 실행 시작 로그
그림 2. 실행 직후 실제 화면. ‘초해상도 시작...’ 메시지와 입력·출력 경로, 밴드 번호, 샘플링 단계를 확인한다.
초해상도 단계 3: 실제 출력 레이어와 완료 로그
그림 3. 실제 출력 레이어가 추가된 화면과 ‘Super-resolution complete’ 메시지. 개인 모델 캐시 경로가 표시되지 않도록 로그 표시 영역을 축소하고 마지막 부분으로 스크롤하였다. 로그 내용이나 결과는 변경하지 않았다.

6. 출력 격자와 데이터 검증

항목입력 관심영역OpenSR 출력
크기128×128512×512
밴드6개 중 3,2,1,4 사용RGB+NIR 4개
자료형UInt16Float32
기록된 CRSEPSG:32647EPSG:32647
픽셀 간격10×10 m2.5×2.5 m
범위left 904340, bottom 1809370, right 905620, top 1810650 — 동일

QGIS에서 출력 레이어 isValid=True, 폭·높이 512×512, 밴드 수 4, 픽셀 간격 2.5 m 및 입력과의 범위 일치를 확인하였다. 추가로 Rasterio에서 전 밴드를 읽어 1,048,576개 값이 모두 유한함을 확인하였다. 전체 값의 범위는 약 0.0838000~0.3320000이었다. 이 수치 검사는 파일 읽기와 수치 유효성 검사이며 방사 정확도 검증이 아니다.

초해상도 단계 4: QGIS 콘솔의 512×512, 2.5m 및 범위 일치 검증
그림 4. 실제 QGIS에서 출력 레이어 격자를 조회한 화면. OUTPUT의 크기·밴드·CRS·간격과 SAME EXTENT: True를 확인한다.

7. 주의사항과 한계

저장 과정에서 ‘BLOCKXSIZE can only be used with TILED=YES’ 경고가 발생하였다. 따라서 경고가 전혀 없는 실행으로 표현하지 않는다. 이후 완료 로그, 출력 생성, QGIS 로딩 및 Rasterio 전 밴드 읽기가 확인되었다. 이번 결과의 파일·격자 검증은 통과하였으나 저장 프로파일의 타일·블록 옵션은 별도 개선이 필요하다.

원본 예제의 기록 CRS는 UTM zone 47N이지만 GDAL이 산출한 경도는 약 102.8°E로 해당 UTM 구역의 일반 적용 범위를 벗어난다. 원자료의 위치·CRS 메타데이터 정합성을 별도로 확인해야 한다. 이번 실습은 메타데이터를 임의로 재지정하지 않고 동일 격자에서 처리했으며, 절대 위치 정확도나 다른 지도와의 정합을 검증한 것으로 해석하면 안 된다.

확산 모델은 추정 결과를 생성한다. 선명하게 보이는 무늬가 실제 관측된 세부 구조라는 보장은 없다. 참고 고해상도 영상 없이 시설물 경계, 재난 피해 면적 또는 측량 성과로 직접 활용하지 않는다. 입력과 출력의 색상 표시 방식 및 스케일이 다르므로 화면 색상 변화만으로 품질을 판단하지 않는다.

8. 프로젝트 저장과 정상 종료

입력·결과·검증 화면 확보 후 실습용 복사본을 다시 저장하였다. 저장 파일은 8,248 바이트이며 최종 갱신 시각은 2026년 10월 4일 오전 5시 13분이었다. 이어 QGIS의 정상 종료 명령을 실행하고 실습 창이 닫힌 것을 확인하였다. 원본 QGIS_Play.qgz는 덮어쓰지 않았다.

모델 구현과 사용 조건은 ESAOpenSR 공식 저장소를 참고한다. 이번 글의 그림 1~4는 실제 QGIS 캡처이며 공개 GitHub 커밋에 고정된 주소를 사용한다. 생성 이미지나 로컬 경로를 그림 대신 넣지 않았다.

댓글 없음:

댓글 쓰기

AI로 발표자료(PPT) 초안 만들기 | 생성형 AI 사용법 9

AI로 발표자료 초안 만들기는 목차 설계부터 분량 조절까지 순서를 지켜야 쓸모 있는 결과물이 나온다. 이 글에서는 슬라이드 한 장에 메시지 하나를 담는 프롬프트 작성법과 도표·이미지를 AI에 맡길 범위를 짚어본다. 📌 3줄 요약 목차부터 잡아야 ...