Helmlab

Helmlab, 64.000'den fazla bireysel insan renk algısı gözlemi üzerinde eğitilmiş, açık kaynaklı bir renk uzayı ailesidir. Python ve JavaScript/TypeScript kütüphaneleri olarak kullanılabilir. MIT Lisansı ile dağıtılmaktadır. Ölçüm uzayı (MetricSpace), COMBVD veri seti üzerinde CIEDE2000 standardından %20,1 daha düşük STRESS değeri elde etmektedir; üretim uzayı (GenSpace) ise Oklab'dan 6 kat daha iyi ton doğruluğu sunmaktadır.

 Mimari 

Helmlab, farklı amaçlara yönelik optimize edilmiş iki renk uzayından oluşmaktadır:

 MetricSpace 

MetricSpace (72 parametre), algısal renk farkı ölçümü için optimize edilmiş 13 aşamalı bir dönüşüm hattı kullanır:

XYZ → M₁ → γ → M₂ → Ton düzeltme → H-K → L → C → HL → NC → φ → Lab

CIE XYZ üçlü uyarıcı değerlerini algısal Lab koordinatlarına dönüştüren bu hat; ton düzeltmesi, Helmholtz-Kohlrausch etkisi modellemesi (parlaklığın kroma bağımlılığı, veriden öğrenilmiş), kroma ölçekleme, nötral düzeltme ve rijit dönme (φ = −28,2°) aşamalarını içerir. Nötral düzeltme aşaması, gri tonlarının kromatikliğini C < 10⁻⁶ düzeyine indirerek akromatik garanti sağlar. Rijit dönme, ton hatasını metrik performansa sıfır maliyet ile azaltır (RMS 16,1°). Hattın her aşaması tam olarak terslenebilirdir.

 GenSpace 

GenSpace (21 parametre), renk üretimi (gradient, palet) için optimize edilmiş minimal bir doğrusal cebir hattı kullanır:

XYZ → M₁ → γ = ⅓ → M₂ → NC → Lab

Phase1H ile optimize edilmiş M₁/M₂ matrisleri ve paylaşılan küp kök sıkıştırması (γ = ⅓) kullanır. Zenginleştirme aşaması içermez; saf doğrusal cebir hattı sayesinde hızlı ve terslenebilirdir. Ton doğruluğu Oklab'dan 6 kat daha iyidir (RMS 5,2° karşı 30,1°). gradient() fonksiyonunda CIEDE2000 yay uzunluğu yeniden parametrizasyonu ile her renk çiftinde algısal olarak eşit adımlar üretir.

 Veri seti ve metodoloji 

 COMBVD veri seti 

COMBVD, 6 bağımsız psikofizik deneyden derlenen 3.813 renk çiftinden oluşan birleşik bir görsel fark veri setidir:

 Luo ve Rigg (1986)
 RIT-DuPont
 Witt
 Leeds
 BFD
 He ve diğerleri (2022)

Toplamda 64.000'den fazla bireysel insan gözlemi içermektedir. Her deneyde gözlemciler, kontrollü D65 aydınlatma altında renk çiftlerini incelemiş ve algıladıkları farkı derecelendirmiştir.

 STRESS ölçütü 

STRESS (Standardized Residual Sum of Squares — Standardize Artık Kareler Toplamı), CIE tarafından renk farkı formüllerini değerlendirmek için kullanılan standart ölçüttür. Her renk çifti i için ΔVi insan görsel farkını, ΔEi ise modelin tahmin ettiği uzaklığı gösterir. STRESS, en uygun ölçek faktörü Fyi bularak artıkları en aza indirir:

Ölçek: 0 = mükemmel uyum, 100 = korelasyon yok.

 Optimizasyon 

MetricSpace'in 72 parametresi, COMBVD eğitim kümesi üzerinde L-BFGS-B algoritması ile 8 rastgele başlangıç noktasından optimize edilmiştir. Veri %80 eğitim / %20 test olarak bölünmüştür (seed = 42). Modelin analitik yapısı — her işlemin bilinen bir matematiksel fonksiyon olması — yapısal bir düzenlileştirici görevi görmektedir.

5 katlı çapraz doğrulama, ortalama STRESS ≈ 23,5 ile modelin eğitim kümesinin ötesinde genelleştiğini doğrulamaktadır. Bootstrap güven aralıkları (10.000 iterasyon): Helmlab %95 GA [22,50 – 23,93], CIEDE2000 %95 GA [27,64 – 30,84]. İki aralık örtüşmemektedir (p < 10⁻⁴).

 Algısal uzaklık performansı 

MetricSpace, COMBVD veri seti üzerinde STRESS değeri 23,30 elde etmektedir. Bu değer CIEDE2000'in 29,18 olan STRESS değerinden %20,1 daha düşüktür.

+ COMBVD üzerinde STRESS değerleri (düşük = daha iyi) Yöntem  STRESS  CIEDE2000'e göre Helmlab MetricSpace  23,30  −20,1% CIEDE2000  29,18  — CIE94  33,59  +15,1% CAM16-UCS  33,90  +16,2% ΔE CMC  34,04  +16,6% IPT  41,21  +41,3% CIE Lab ΔE76  42,80  +46,7% Oklab  47,46  +62,7%

 Gradient düzgünlüğü 

Aşağıdaki tabloda CV (varyasyon katsayısı; CIEDE2000 adım boyutlarının değişkenliği) karşılaştırılmaktadır. Düşük değer, daha düzgün bir gradient anlamına gelir.

+ Gradient düzgünlüğü — CV (düşük = daha iyi) Yöntem  Kırmızı→Mavi  Turuncu→Camgöbeği  Siyah→Beyaz  Teknik Helmlab gradient()  ≈ %0  ≈ %0  ≈ %0  yay uzunluğu yeniden param. Helmlab GenSpace  %3,1  %33,2  %41,0  doğrusal interpolasyon Oklab  %31,5  %41,4  %41,2  doğrusal interpolasyon CIE Lab  %44,8  %52,3  %61,5  doğrusal interpolasyon

Helmlab'ın gradient() fonksiyonu, ≈ %0 CV değerine CIEDE2000 yay uzunluğu yeniden parametrizasyonu ile ulaşmaktadır. Bu algoritma, adımları eşit algısal aralıklarla yeniden dağıtır. Oklab ve CIE Lab değerleri, çoğu kütüphanenin kullandığı basit doğrusal interpolasyonu yansıtmaktadır. Aynı yeniden parametrizasyon tekniği herhangi bir renk uzayına uygulanabilir; Helmlab bu tekniği yerleşik olarak sunmaktadır.

 Özellikler 

 Algısal renk farkı ölçümü (deltaE)
 Akromatik garanti — gri tonları nötral düzeltme ile C < 10⁻⁶ kromatikliğe haritalanır
 Gömülü Helmholtz-Kohlrausch etkisi — parlaklık, kroma bağımlıdır ve veriden öğrenilmiştir
 Rijit dönme ile ton iyileştirmesi (RMS 16,1°), metrik performansa sıfır maliyet
 WCAG kontrast oranı hesaplama ve otomatik düzeltme
 CIEDE2000 yay uzunluğu yeniden parametrizasyonu ile gradient üretimi
 Tailwind CSS tarzı 50–950 semantik palet üretimi
 sRGB ve Display P3 gamut haritalama
 Koyu/açık mod uyarlaması
 Token dışa aktarımı (CSS, Android XML, iOS Swift, JSON)

 Teknik detaylar 

JavaScript paketi yaklaşık 12 KB (gzip) boyutundadır, harici bağımlılığı yoktur ve ESM + CJS çift çıktı ile tam TypeScript tip tanımları içerir. CDN üzerinden de kullanılabilir. Python paketi NumPy ve SciPy gerektirmektedir.

Proje, 337 otomatik testle doğrulanmaktadır (233 Python + 104 JavaScript).

 Kaynakça 

 Dış bağlantılar 

 Resmî web sitesi
 Dokümantasyon
 GitHub deposu
 arXiv makalesi
 npm paketi
 PyPI paketi

Kategori:Renk uzayları
Kategori:Açık kaynak yazılımlar
Kategori:Python kütüphaneleri
Kategori:JavaScript kütüphaneleri
Kategori:MIT Lisansı ile lisanslanan yazılımlar