Boya Kayması

Stain Shift

İki laboratuvarın boyasını optik yoğunluk uzayında ayrıştırın, birini diğerine normalize edin ve bunun bir dikkat-MIL ağına ne yaptığını ölçün.

Separate two labs' stains in optical-density space, normalise one onto the other, and measure what that does to an attention-MIL network.

1 · Boyalar

Slaytlar Slayt Torba Ağı'ndakilerle aynıdır: 80 eğitim, 40 test, 16 karo, aynı tohum. Fark şurada: bu kez boyaya piksel düzeyinde bakıyoruz. Parlak alan mikroskopisinde boya ışığı soğurur; Beer–Lambert yasasına göre soğurma, piksel yoğunluğunun logaritmasıyla doğrusaldır. Bu yüzden önce optik yoğunluğa geçeriz: OD = −log((I+1)/256). OD uzayında her boya bir yöndür (boya vektörü) ve bir pikselin rengi, boyaların konsantrasyonlarıyla ağırlıklı toplamıdır. QuPath'in "stain vectors" dediği şey tam olarak budur.

A laboratuvarı referanstır. B laboratuvarının hematoksileni daha zayıf ve biraz daha mordur: hem konsantrasyon düşer hem vektör döner. Macenko yöntemi, her laboratuvarın karolarından bu iki vektörü gözetimsiz bulur: OD bulutunun en geniş iki ekseninin düzlemine iner, uç açılardaki yönleri H ve E olarak alır.

1 · Stains

The slides are the same as in Slide Bag Net: 80 training, 40 test, 16 patches, same seed. The difference is that this time we look at the stain at pixel level. In brightfield microscopy a stain absorbs light; by the Beer–Lambert law absorbance is linear in the logarithm of pixel intensity. So we first move to optical density: OD = −log((I+1)/256). In OD space each stain is a direction (a stain vector) and a pixel's colour is the sum of the stains weighted by their concentrations. This is exactly what QuPath calls "stain vectors".

Lab A is the reference. Lab B's haematoxylin is weaker and slightly more purple: the concentration drops and the vector rotates. The Macenko method finds the two vectors of each lab from its patches without supervision: it projects the OD cloud onto the plane of its two widest axes and takes the directions at the extreme angles as H and E.

Boya vektörü kestirimi (Macenko)Stain-vector estimation (Macenko)

A laboratuvarı · eğitim karolarından örnekLab A · sample of training patches
B laboratuvarı · daha zayıf, daha mor hematoksilenLab B · weaker, more purple haematoxylin
OD bulutu, A'nın Macenko düzleminde · oklar = H ve E vektörleriOD cloud on A's Macenko plane · arrows = H and E vectors
A piksellerilab A pixelsB piksellerilab B pixelsB normalize edildikten sonraB after normalisation

B'yi A'ya normalize etNormalise B onto A

Bir B karosu seçin (üstteki şerit). Normalizasyon üç adımdır: karoyu B'nin vektörleriyle konsantrasyonlara ayır → her boyanın konsantrasyonunu A'nın 99. yüzdeliğine ölçekle → A'nın vektörleriyle yeniden renklendir. Sağdaki üçüncü kare, karşılaştırma için bir A karosudur.

Pick a lab-B patch (strip above). Normalisation is three steps: unmix the patch into concentrations with B's vectors → scale each stain's concentration to A's 99th percentile → recolour with A's vectors. The third square is a lab-A patch for comparison.

B · hamB · raw
B · A'ya normalizeB · normalised to A
A · referansA · reference
x₆ = karo başına ortalama hematoksilen konsantrasyonu · eğitim slaytlarıx₆ = mean haematoxylin concentration per patch · training slides
hamraw
normalize edilmişnormalised
AB

Boya, ölçümü de bozar

Slayt Torba Ağı'nda boya tek bir sayıydı (x₆). Gerçekte soluk bir boya, segmentasyonun ölçtüğü her şeyi oynatır: soluk çekirdekler küçük bulunur, bazıları hiç bulunmaz, çekirdekçik kaybolur, sitoplazma daha soluk görünür. Bu simülasyon, B karolarının ölçümlerine şu varsayılan bozulmaları uygular (gerçek bir hat üzerinde ölçülmüş değerler değil, soluk slaytlarda bir segmentasyonun yaptığının yerine geçen sayılar):

ÖlçümB laboratuvarında hamNormalizasyondan sonra
x₁ çekirdek boyutu× 0,88× 0,97 (artık %25)
x₂ çekirdek yoğunluğu× 0,90× 0,975
x₃ sitoplazmik solukluk+ 0,10+ 0,025
x₄ çekirdekçik belirginliği× 0,75× 0,94
x₆ hematoksilenpikselden ölçülürnormalize görüntüden ölçülür

Boya artırma (stain augmentation) farklı bir yol seçer: görüntüyü düzeltmek yerine eğitim sırasında her slaytın boyasını rastgele oynatır (konsantrasyonları ölçekler, vektörleri biraz döndürür), böylece ağ boyaya güvenmeyi öğrenemez. Burada aynı bozulma ekseni, her devirde rastgele bir t ∈ [−1,2; 1,2] katsayısıyla uygulanır ve x₆'ya rastgele kayma eklenir.

Stain distorts measurement too

In Slide Bag Net the stain was one number (x₆). In reality a pale stain moves everything a segmentation measures: pale nuclei are found smaller, some are missed, nucleoli vanish, cytoplasm looks paler. This simulation applies the following assumed distortions to lab-B measurements (not values measured on a real pipeline; stand-ins for what a segmentation does on pale slides):

MeasurementRaw, lab BAfter normalisation
x₁ nuclear size× 0.88× 0.97 (25% residual)
x₂ nuclear density× 0.90× 0.975
x₃ cytoplasmic pallor+ 0.10+ 0.025
x₄ nucleolar prominence× 0.75× 0.94
x₆ haematoxylinmeasured from pixelsmeasured from the normalised image

Stain augmentation takes a different route: instead of correcting the image it perturbs every slide's stain at random during training (scales concentrations, rotates vectors a little), so the network cannot learn to rely on stain. Here the same distortion axis is applied each epoch with a random factor t ∈ [−1.2, 1.2] and a random shift is added to x₆.