Repository navigation
GenCP Super-Resolution 0.1.0: QGIS eklentisi ve modeller
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
gencp_super_resolution.zipbilgisayara kopyalanır ve sağlama toplamı doğrulanır.- 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. - ZIP'ten Kur sekmesinden dosya seçilir.
- 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.onnxwsx4_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/