Dual energy tabanlı röntgen görüntü işleme yazılımı

Röntgen dedektörünün "ham" verilerini, malzeme ayrımı içeren bilgilendirici bir görüntüye dönüştüren yazılım geliştiriyoruz — dedektörden gelen satırların alımından operatör ekranındaki gerçek zamanlı renkli görüntüye kadar. Temelinde, organik, inorganik ve metalleri ayırt etmeyi sağlayan çok enerjili (dual energy) işleme yatar.

Dual energy nedir ve neden gereklidir

Sıradan bir röntgen görüntüsü yalnızca ışınların zayıflama derecesini gösterir — bununla, örneğin kalın bir plastik tabakasını ince bir metalden ayırt etmek zordur. Dual energy (çift enerjili, gelişmiş biçimiyle çok enerjili) yöntem, zayıflamayı aynı anda birkaç enerji aralığında ölçer. Malzemenin "yumuşak" ve "sert" ışınlara verdiği tepkiyi karşılaştıran yazılım, maddenin etkin atom numarasını (Zeff) ve yoğunluğunu değerlendirir.

Bu şunları sağlar:

  • malzemeleri sınıflandırmak ve renkle vurgulamak — organik, inorganik, metal;
  • güvenlik denetimi görevlerinde tehlikeli ve yasak maddeleri daha güvenilir şekilde tespit etmek;
  • birden fazla enerji kanalı ve birden fazla tarama açısıyla çalışarak tanıma kalitesini artırmak.

Hem klasik çift enerjili yaklaşımı hem de daha karmaşık çok enerjili şemaları uyguluyoruz — görüntüden en yüksek bilgi verimini elde etmek için.

Yazılımımızın yetenekleri

Görüntü alımı ve birleştirme

  • Dedektörden gelen görüntü satırlarının gerçek zamanlı olarak tamponlanarak alınması.
  • Tarama yönü dikkate alınarak satır dizisinden iki boyutlu görüntünün oluşturulması.
  • Dedektör stabilizasyonu için ön örnekleme (presample) desteği.
  • Servis piksellerinin kırpılması, her çekim için benzersiz ID üretimi.

Dedektör kalibrasyonu

  • Ofset kalibrasyonu (offset) — dedektörün karanlık akımının telafisi.
  • Kazanç kalibrasyonu (gain) — piksel duyarlılığının eşitlenmesi (ortalama, minimum, maksimum veya hedef değere göre).
  • Her enerji kanalının ve her tarama açısının bağımsız kalibrasyonu.
  • Katsayıların dedektör sistemine yüklenmesiyle dedektör üzerinde (on-board) veya yazılımda (off-board) kalibrasyon.

Görüntü işleme ve iyileştirme

  • Dinamik aralık sıkıştırma (DRM) — siyah, beyaz ve orta noktaların ayarı, her enerji kanalı ve tarama açısı için ayrı gama.
  • Keskinlik filtreleri ve yarıçap, genlik ile eşik ayarlı netlik maskesi (unsharp mask) — parlaklık kanalına uygulanır.
  • Parlaklık, kontrast ve gamanın "kısayol" tuşlarıyla yönetilen adımlı düzeltmesi.

Renk kodlaması ve malzeme ayrımı

  • Malzemeleri etkin atom numarasına (Zeff) göre ayırt eden renklendirme: organik / inorganik / metal.
  • 15'ten fazla renk modu: standart güvenlik denetimi paleti, yarı ton, organik/inorganik vurgusu, Zeff paletleri, sözde renk, sıvı modu.
  • Malzeme filtreleri (material stripping) — madde sınıflarının gizlenmesi/vurgulanması.
  • Modüler renklendirme mimarisi: saf C++ ile yazılmış çekirdek (GUI'ye bağımlı olmayan), C uyumlu ABI'ye sahip eklenebilir bir modül (DLL/SO) olarak sunulur — modlar ve paletler ana yazılım yeniden işlenmeden genişletilir.

→ Ayrıntılar — aşağıda "Renklendirme nasıl çalışır" bölümünde.

Gerçek zamanlı görselleştirme

  • Modern OpenGL (programlanabilir hat) ile donanım hızlandırma.
  • Ölçekleme, kaydırma, pencereye sığdırma, bölgeler arası hızlı geçiş.
  • Bir veya iki monitör desteği (monitör başına bir açı ya da birleşik görünüm).
  • Enerji kanalları ve LAB bileşenleri için histogramlar.

Arşiv ve operatör çalışma istasyonu

  • Çekimlerin meta verilerle otomatik kaydedilmesi, görüntü veritabanının tutulması.
  • Olay ve hata günlüğü, ekipman telemetrisi.
  • Yetki ayrımı (operatör / yönetici).

Çözüm mimarisi

Tipik işleme hattı şöyle görünür:

  1. Dedektör
  2. satır alımı
  3. kare birleştirme
  4. kalibrasyonoffset · gain
  5. DRM
  6. filtrelemekeskinlik · unsharp
  7. renklendirmedual energy
  8. OpenGL görselleştirme
  9. arşiv

Her aşama, operatörün anında değiştirebileceği işleme profilleri aracılığıyla yapılandırılır. Ağır işlemler ayrı iş parçacıklarına taşınır ve görüntüleme GPU ile hızlandırılır — bu, yüksek konveyör hızlarında bile gerçek zamanlı çalışmayı sağlar.

Renklendirme nasıl çalışır: iki enerjiden renkli görüntüye

Röntgen kontrolünde renklendirme "güzellik için boyama" değil, operatöre her nesnenin neyden yapıldığını gösteren bir yöntemdir. İki "ham" enerji kanalını, rengin malzeme türünü, parlaklığın ise yoğunluk ve kalınlığı kodladığı renkli bir görüntüye dönüştüren kendi renklendirme motorumuz var. Aşağıda bu sürecin nasıl kurulduğu anlatılıyor. Buradaki derinlemesine işçilik tam da bizim uzmanlığımızdır: çoğu entegratör renklendirmeyi "kara kutu" olarak alırken, biz ona algoritma düzeyinde hâkimiz.

Adım 1. Malzemenin iki enerjiye göre sınıflandırılması

Girişe, her pikselin iki değeri gelir — yüksek enerjili (High Energy, HE) ve düşük enerjili (Low Energy, LE). Bunların oranı, maddenin etkin atom numarasına (Zeff) bağlıdır: hafif elementler (organik) ve ağır elementler (metaller) "yumuşak" ve "sert" ışınları farklı şekilde zayıflatır.

Motor, iki boyutlu sınıflandırma tablosu (LUT) 1024×1024 kullanır: bir (LE, HE) değer çifti, malzeme sınıfının önceden yazıldığı bir hücreyi adresler. Her pikselin sınıflandırılması tek bir bellek erişimiyle yapılır — hızlı ve belirlenimci, ki bu gerçek zaman için kritiktir. Malzemeler gruplara ayrılır:

  • organik — hafif elementler (patlayıcı ve uyuşturucu maddeler, plastikler, gıda, ahşap, kumaşlar);
  • inorganik ve karışımlar — bileşim açısından ara maddeler;
  • metaller ve ağır malzemeler;
  • arka plan/hava ve geçirilemeyen bölgeler (aşırı yoğun alanlar) — ayrı olarak vurgulanır; geçirilemeyen alanlar isteğe bağlı olarak kırmızıyla işaretlenir.

Adım 2. Parlaklık (yarı ton) kanalının oluşturulması

Buna paralel olarak, yoğunluk ve kalınlığı yansıtan parlaklık kanalı oluşturulur:

  • HE/LE birleştirme (fusion) — kanallar, hem açık hem de yoğun bölgelerde ayrıntıyı korumak için geçirgenlik derecesine bağlı bir ağırlıkla birleştirilir.
  • Ton eğrileri (8 mod) — logaritmik (güçlü/zayıf), doğrusal ve üstel, iki doygunluk eşikli; yükün niteliğine göre seçilir.
  • Soğurma gama düzeltmesi — yoğunluğa göre kontrastın ince ayarı için 51 kademe (−25…+25).
  • Geçirgenlik modları — Standard, High Penetration, Low Penetration, Slice — yoğun nesneleri "delip geçmek" ya da tersine hafif olanları ayrıntılandırmak için.
  • Dinamik parlaklık (Shadow) — her kare için otomatik ya da manuel uyarlama.

Performans için bu dönüşümler tek bir uçtan uca LUT'ta birleştirilir: görüntü üzerinde birkaç geçiş yerine tek bir geçiş yapılır — gerçek zamanlı çalışmayı sağlayan da budur.

Adım 3. Renk modları (paletler)

Malzeme sınıfı ve parlaklık birleştirilir ve seçilen palet aracılığıyla gösterilir. Desteklenen mod kümesi (kolayca genişletilebilir):

Mod Amaç
Material Color (standart) Klasik güvenlik denetimi paleti: turuncu — organik, yeşil — karışımlar, mavi — metal/inorganik
Grey Renksiz yarı ton — maksimum ayrıntı ve geçirgenlik
Organic Single / Single+ (OS / OS+) Organik vurgusu, geri kalanın bastırılması
Material / Inorganic Single (MS / MS+) İnorganik ve metal vurgusu
Zeff 7 / 8 / 9 Farklı etkin atom numarası eşiklerine sahip paletler
Pseudo Color 1–6 Görsel kontrastı artırmak için sözde renk şemaları
Liquid Sıvı analizi için mod

Adım 4. Malzeme filtreleri (material stripping)

Operatör, tehlikelere odaklanmak için görüntüden malzeme sınıflarının tamamını "çıkarabilir":

  • Tüm malzemeler;
  • Yalnızca organik / Yalnızca inorganik;
  • Organiği gizle / İnorganiği gizle (organic / inorganic stripping) — arka planda yalnızca ilgilenilen sınıf kalır.

Görüntü iyileştirme

Renklendirmenin üzerine şunlar uygulanır:

  • Kenar iyileştirme (değiştirilmiş Laplacian) — nesnelerin net konturları;
  • Super Enhance — yerel kontrast iyileştirme;
  • Super Penetration — koyu (yoğun) bölgelerin işlenmesi, algoritmik olarak doğrusal O(W·H) karmaşıklığına kadar optimize edilmiştir.

Gerçek zaman: satır satır işleme

Motor iki modda çalışır:

  • tam kare — statik çekimler ve arşiv için;
  • akış (satır satır) — veriler, çizgisel dedektörden sütunlar geldikçe işlenir. Kenar iyileştirme, yalnızca bir sütun gecikmeyle üç sütunluk kayan bir pencere kullanır — 600 sütun/sn'de yaklaşık 1.7 ms mertebesinde. Hareket eden konveyörde "canlı" görüntüyü sağlayan tam da budur.

Motor mimarisi

Renklendirme çekirdeği — GUI'ye bağımlı olmayan saf C++17 (Qt gerekmez). Bu, motoru hem masaüstü operatör yazılımına hem de sunucu/ayıklama hatlarına gömmeyi mümkün kılar (bkz. röntgenle ayıklama XRT). Çıkışta hazır bir ARGB karesi verir; renk modları ve paletleri, çağıran kod değiştirilmeden genişletilir.

Teknoloji yığını

  • C++ (yüksek performanslı işleme çekirdeği), extern "C" ABI'li modüler DLL/SO.
  • Görselleştirme için programlanabilir hatlı OpenGL.
  • Operatör arayüzü için Qt.
  • Çapraz platform: Windows ve Linux.
  • Birden fazla görüntünün paralel işlenmesi için iş parçacığı güvenli mimari.

Teknolojiler hakkında daha fazlası

Röntgenle malzeme ayıklama (XRT)

Malzemeleri yoğunluğa ve etkin atom numarasına göre ayırmanın aynı ilkesi, röntgenle ayıklamanın (XRT, X-Ray Transmission) da temelinde yatar. Güvenlik denetiminden farklı olarak, görüntü operatöre gösterilmez, otomatik olarak analiz edilir: yazılım gerçek zamanlı olarak bant üzerindeki her nesneyi sınıflandırır ve eleme mekanizmalarına komut verir. Böylece atık (çöp), cevher ve mineraller, hurda ve geri dönüşüm malzemesi ayıklama görevleri çözülür.

→ Ayrı sayfada ayrıntılar: Röntgenle malzeme ayıklama (XRT)

Nerede kullanılır

  • Güvenlik denetimi introskopları — el bagajı, valiz, kargo.
  • Röntgenle ayıklama (XRT) — çöp, cevher, hurda ve geri dönüşüm malzemesinin ayıklanması.
  • Endüstriyel röntgen kontrolü — kusur tespiti, dolum kontrolü.
  • Gıda denetimi — gıdada yabancı cisim (metal, cam, taş, kemik) ve dolum kontrolü.

İlgili hizmetler

İletişim

Görüntü işleme görevinizi birlikte değerlendirelim

Hangi dedektör ve jeneratörle çalıştığınızı ve hangi malzemeleri ayırt etmeniz gerektiğini anlatın — görevinize uygun bir işleme hattı ve renklendirme modları önerelim.