Skip to content

GenCP Super-Resolution 0.1.0: QGIS eklentisi ve modeller

Choose a tag to compare

@mvy0502 mvy0502 released this 31 Aug 05:49
· 52 commits to main since this release

GenCP Super-Resolution 0.1.0

Sentinel-2 görüntüsünü süper çözünürlüğe çıkaran bir QGIS eklentisi. Çıktı ızgarası kaynak
ızgarasına tam oturur: her kaynak pikseli, ölçeğin karesi kadar çıktı pikseline bölünür. Üç
yöntemi vardır: bikübik (kıyas noktası; model ve onnxruntime gerektirmez), eğitilmiş
model
(bu sayfadaki modeller) ve wsx4 (Evoland/CESBIO referans modeli; bu sayfada
değildir, aşağıda anlatılır).

Çıktı geometrisi varsayılmaz, doğrulanır. Izgara sözleşmesi (Gate S) şunu şart koşar:
çıktının KRS'si girdininkine eşittir, piksel boyu tam olarak girdininkinin ölçeğe bölümüdür,
başlangıç noktası değişmez ve her kaynak pikselinin merkezi kendi çıktı bloğunun merkezine
düşer. Eklenti hiçbir zaman yeniden projeksiyon yapmaz; bu yüzden datum ızgarasına da ağa da
ihtiyaç duymaz (aşağıda Çevrimdışı).


Bu sayfadaki dosyalar: boyut ve SHA-256

Çevrimdışı bir kurulum için gereken her şey buradadır; toplam 8,1 MB.

Dosya Bayt MB SHA-256
gencp_super_resolution.zip 49.379 0,05 25d4805ddc4aa56026ab90a61cc63c3b91af7130ae3fa9cf1998998e0a192b3f
gencp_sr_tci_x4_b3_v2.onnx 2.047.228 1,95 01496736913ac257f8f57ccb26e1c4220e903b6c309712ebcc48e0b834485920
gencp_sr_x4_b4.onnx 2.086.466 1,99 f3f2ffbde52c92eff81b0741b6c180e9d4a5a117fbd91ac5eaa77c789f0ad4ba
gencp_sr_x2_v1.onnx 1.964.122 1,87 3fcb34a2ff5e07f00aefe426f08e3f60243388270bbcbd8e11749f25b0375ef7
SAMPLE_3band_TCI_uint8_10m_512px.tif 732.623 0,70 48102ab9c79b9e40242ddae1d51a1f5745d15eb375145803fa3f1b3c1b3f5a6c
SAMPLE_4band_B02-B03-B04-B08_uint16_10m_512px.tif 1.636.956 1,56 f46231cb7bd2e89c0a519b4e64c4282ace2f06be5894fb675f78e69a93a02028
SHA256SUMS.txt 577 0,00 (sağlama toplamı dosyasının kendisi)

Aktarımdan sonra, kurulumdan önce doğrulanmalıdır

Aktarım sisteminden geçen bir dosya bozuk gelebilir; bozuk bir .onnx dosyasının verdiği hata
ise aktarım hatasına değil model hatasına benzer.
SHA256SUMS.txt diğer dosyaların yanına
konulur ve şu satır çalıştırılır:

shasum -a 256 -c SHA256SUMS.txt          # macOS / Linux
certutil -hashfile <file> SHA256          # Windows, her dosya için ayrı ayrı

Her satırda OK yazmalıdır. Yazmayan dosya yeniden aktarılmalıdır; kurulmamalıdır.


Kurulum

  1. gencp_super_resolution.zip bilgisayara kopyalanır ve sağlama toplamı doğrulanır.
  2. QGIS'te Eklentiler > Eklentileri Yönet ve Kur > Ayarlar sekmesinde Deneysel
    eklentileri de göster
    kutusu işaretlenir. Eklenti deneysel olarak işaretlidir; bu kutu
    işaretlenmeden kurulur, fakat listede görünmez.
  3. ZIP'ten Kur sekmesinden dosya seçilir.
  4. Eklenti Raster > GenCP Super-Resolution altında görünür.

rasterio ve numpy QGIS ile gelir. Model yöntemleri, QGIS'in kendi Python ortamında
onnxruntime ister; bikübik yöntem bu paketi bilerek içe aktarmaz, dolayısıyla eklenti o
paket olmadan da yüklenir ve çalışır. PyYAML yalnızca wsx4'ün yan dosyası için gerekir ve
ancak o sırada aranır.

Adım adım Türkçe kılavuz, çevrimdışı kurulum dâhil:
tubitak/sr/docs/10-kurulum.md


Hangi dosya hangi yöntemle kullanılır

Yöntem Model Doğrulama için örnek girdi
bikübik gerekmez iki örnekten herhangi biri
eğitilmiş model, 8 bit RGB gencp_sr_tci_x4_b3_v2.onnx (4×, 3 bant B02,B03,B04, DN/255) SAMPLE_3band_TCI_uint8_10m_512px.tif
eğitilmiş model, 16 bit yansıtma gencp_sr_x4_b4.onnx (4×, 4 bant B02,B03,B04,B08, DN/10000) SAMPLE_4band_...uint16_10m_512px.tif
eğitilmiş model, 3 bant yansıtma gencp_sr_x2_v1.onnx (2×, 3 bant, DN/5000) (3 bantlı uint16 bir raster gerekir)
wsx4 bu sayfada değil; aşağıda SAMPLE_4band_...uint16_10m_512px.tif

İki örnek raster, kurulumun kurumun kendi verisi olmadan yerinde doğrulanabilmesi için
vardır.
İkisi de 512 × 512 piksel, 10 m piksel boylu (5,12 × 5,12 km), Sentinel-2 36SXJ
granülünden, 2026-05-27 tarihli, EPSG:32636; nodata değeri tanımlı değildir.

Her model künyesini kendi içinde, ONNX metadata_props alanında taşır: bant sırası,
normalleştirme böleni, kayıtlı eğitim planı ve gerçekte tamamlanan adım sayısı, eğitim tohumu,
kütüphane sürümleri ve kapsam uyarısı. Adım sayısı kayıtlı planından farklı olan bir model
başka bir modeldir, aynı modelin gürültülü bir hâli değil;
hangisi olduğunu dosyanın kendisi
söyler.


wsx4 bu sayfada yoktur; üst kaynaktan indirilir

Eklenti, Evoland/CESBIO'nun wsx4 modelini çalıştırabilir. Bu model bu projenin ürünü
değildir ve bu sayfaya eklenmemiştir.
Üst kaynaktan,
https://github.com/Evoland-Land-Monitoring-Evolution/sentinel2_superresolution
adresinden iki dosya birlikte indirilmelidir:

  • wsx4_spatrad.onnx
  • wsx4_spatrad.yaml

İkisi aynı klasörde durmalıdır. wsx4'ün grafiği künye taşımadığından eklenti ölçeği,
normalleştirmeyi ve kırpma kenarını modelin yanındaki .yaml dosyasından okur. PyYAML
yalnızca bunun için gerekir.


Çevrimdışı: çalışma sırasında hiçbir şey ağa ulaşmaz

QGIS 4.2.1 ve QGIS 3.44.13 üzerinde, Python düzeyindeki ağ soketleri kapatılarak
ölçülmüştür: bikübik yöntem, model çıkarımı ve bir koordinat dönüşümü tamamlanmış, ağa hiçbir
erişim girişimi
olmamıştır.

PROJ'un datum ızgaralarını bir CDN'den indirme özelliği iki sürümde de öntanımlı olarak
kapalıdır
:

QGIS 4.2.1 QGIS 3.44.13
Ortamda PROJ_NETWORK tanımsız tanımsız
GDAL PROJ_NETWORK yapılandırması tanımsız tanımsız
osr.GetPROJEnableNetwork() False False
pyproj.network.is_network_enabled() False False

Eklenti ayrıca hiçbir zaman yeniden projeksiyon yapmaz; Gate S çıktının KRS'sinin
girdininkine eşit olmasını şart koşar. Olağan bir çalıştırmada datum ızgarasına zaten gerek
yoktur.

Kesinlik istenirse ya da kurum politikası gerektirirse, QGIS başlatılmadan önce ortam
değişkeni PROJ_NETWORK=OFF yapılır ya da Python konsolunda
gdal.SetConfigOption('PROJ_NETWORK', 'NO') çalıştırılır. PROJ_NETWORK=ON iken ve ağ
yokken de dönüşümler burada tamamlanmıştır: PROJ, QGIS ile gelen yerel ızgaraları kullanır, hata
vermez.

Kesin konuşmak gerekirse: soket engeli Python düzeyindeki ağ erişimini keser. PROJ ve GDAL, C
kodundan libcurl kullanır ve o engel bunu görmez. PROJ'un ağa erişmeyeceğinin kanıtı, yukarıdaki
dört False değeri ile eklentinin datum dönüşümü yapmamasıdır; soket sayımı değil.


Yalnızca şu sürümler sınanmıştır

QGIS Qt Platform Sonuç
4.2.1 (Belém do Pará) Qt 6.11.1 macOS 26.5.1, Apple silicon arayüzsüz 23/23, bindirme 20/20, yan dosya 6/6, uçtan uca 82/82
3.44.13 (Solothurn, LTR) Qt 5.15.18 macOS 26.5.1, Apple silicon arayüzsüz 23/23, bindirme 20/20, yan dosya 6/6, uçtan uca 80/82

qgisMinimumVersion değeri 3.40'tır; sınanan en düşük sürümün bilerek altındadır. QGIS, en
düşük sürümü çalışan sürümü aşan bir eklentiyi etkinleştirmez ve kurumlar 3.40 kullanır. Kodun
çağırdığı her QGIS API öğesi 3.0 dönemindendir. QGIS 3.40'ın kendisi sınanamamıştır;
qgis.org'dan artık indirilememektedir. Windows ve Linux sınanmamıştır
; macOS'ta geçen bir Qt5
sınaması Qt5'in çalıştığını söyler, Windows'un çalıştığını değil.


Ölçülen, kapsamıyla birlikte

Hiçbir eğitim kümesinde bulunmayan, ayrı tutulmuş 36SXJ granülü üzerinde:

  • 8 bit model, 4×, üç bant, DN/255, her çipte kayıtlı bikübik sonucuyla
    karşılaştırılarak: +3,520 dB PSNR; 1628 çipin 0'ında daha kötü.
  • Eşleştirme, yani aracın var olma nedeni: gerçek görüntü bozulup geri kazanılmış ve bu
    projenin kendi KLT dedektörüyle eşleştirilmiştir. 8 bit model, bikübiğin verdiğinin
    3,94 katı kullanılabilir yer kontrol noktası verir (çip başına 491,3 RANSAC iç noktası;
    bikübikte 124,6) ve eşleşme hatasını %40 düşürür.

Yukarıdaki her sayı 40 m → 10 m için, tek granül, tek bant ve tek dedektörle ölçülmüştür.
Eklenti olağan kullanımda 10 m → 2,5 m çalışır; o çözünürlükte ölçüm yapılacak yer gerçeği
yoktur. Bu çalışmada uygulanmış bir bulanıklığı geri almada bikübiği geçmek, gerçek görüntüyü
süper çözünürlüğe çıkarmak demek değildir.

Tam kayıt, ölçümden önce yazılmış ön kayıtlar ve tutmayan tahminler dâhil:
tubitak/sr/docs/