Bildbearbeitung mit ImageJ / Fiji

Begonnen von Nochnmikroskop, Dezember 21, 2024, 14:25:02 NACHMITTAGS

Vorheriges Thema - Nächstes Thema

Nochnmikroskop

Hallo Forum,

bei der sehr interessanten Bildbearbeitung im Faden https://www.mikroskopie-forum.de/index.php?topic=50475.msg368705#msg368705 habe ich mir auch die Software heruntergeladen.

Der erste Eindruck der Funktion CLAHE war schon beeindruckend.

Dann habe ich es an einer Canon RAW Datei probiert (Canon 700D). Erst mal nur einen kleinen Ausschnitt, per Rechteck markiert. In der Bearbeitungszeit von Fiji konnte man locker Kaffee kochen, frühstücken und anschließend noch Chillen.

Ich habe dann nach Nvidia Unterstützung gesucht um die Rechenaufgaben per GPU zu beschleunigen. Leider habe ich auch nach Installation der Plugins CLIJ2, welche auf der Homepage von ImageJ genannt waren keine Möglichkeit gefunden, dass hier die GPU unterstützt wird. Die GPU Speichernutzung war immer null.

So ist die Software, zumindest die CLAHE Funktion nicht nutzbar. Zumal mehrere Parameter ausprobiert werden müssen um nicht desolate Ergebnisse zu bekommen.

Hat es jemand hinbekommen die GPU-Unterstützung zu aktivieren?
Und bringt es dann den erhofften Geschwindigkeitsvorteil bei RAW-Dateien?

LG Frank

FIJI Benchmark ohne GPU.jpg
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

purkinje

#1
hallo Frank,
leider nutze ich CLIJ2 nicht selbst,
was heißt
ZitatLeider habe ich auch nach Installation der Plugins CLIJ2, welche auf der Homepage von ImageJ genannt waren keine Möglichkeit gefunden, dass hier die GPU unterstützt wird. Die GPU Speichernutzung war immer null.
Es hat- aber halt langsam funktioniert? es hat mit andere files .jpg etc funktioniert?
Ich fand diese kleine macro: https://clij.github.io/clij2-docs/reference_readRawImageFromDisc
Unterstützt deine Nvidia OpenCL, bzw passende und aktuelle Version vorhanden?
Ansonsten direkt ggf direkt mit Robert Haase Kontakt aufnehmen
Beste Grüße Stefan

Nochnmikroskop

Hallo Stefan,

danke für Deine Hilfestellung.

Also mit JPG gehts relativ zügig, sind ja auch nur 18 Mpx Dateien. Da läuft die Verarbeitung so in ca. 30-60x ab. Wenn ich aber auch nur einen Bildausschnitt in RAW verarbeite dauert es gerne 30 Minuten!

Bei CLIJ2 Erklärung steht, das man unter Windows Einstellungen die Nvidia Grafikkarte explizit anwählen kann, was ich auch versucht habe. Leider wird die Anwendung da trotzdem nicht beschleunigt, noch aufgelistet.
Das Video habe ich jetzt noch nicht angesehen, aber inzwischen habe ich mal nach CLAHE gesucht und die freie  Astro-Software SIRIL gefunden. Dort kann man live die Veränderungen der Parameter sehen, zumindest bei der zu TIF umgewandelten Version. Geht da ratzfatz. RAW habe ich noch nicht verarbeitet, muss wohl da erst umgewandelt werden. Ist sogar in deutsch.

Hier scheint mit ImageJ / Fiji etwas langsam zu sein. 

Ich versuche mal am Ball zu bleiben, da die Details, die sich durch CLAHE offenbaren, auch für alltägliche Bilder lohnen könnten.

LG Frank
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

TStein

Hallo Frank,
wie hast du denn die RAW-Daten importiert, mit DCRAW? Kannst du mal beim Menüpunkt Image\Type schauen, was dein Raw-Import für ein Format hat. Ich vermute du hast 16-bit importiert. Dh. heist es sind statt 8bit-RGB wahrscheinlich 3 kanalgetrennte (Rot, Grün, Blau) 16-bit Bilder im Stack. Hiermit dauert es wirklich ewig.

Für klassische 8-bit Standard RGBs geht es verhältnismäßig fix: 
1): 100MPixel RGB-Stitchingdateien (8bit RGB) mit Standardparametern (Blocksize 127, Histo-Bins 256, MaxSlope: 3) im Fast-Modus: 5 Sekunden.
2): 100MPixel RGB-Stitchingdateien (8bit RGB) mit Standardparametern (Blocksize 127, Histo-Bins 256, MaxSlope: 3) im Accurate-Modus: 385s
Aber der Unterschied, ob "fast" oder "accurate" ist fast nicht sichtbar, meiner Meinung nach.

Raw-Importierte 24Mpx Nikon D750-Dateien (8-bit RGB) brauchen übrigens 1,2s im Fast-Modus.
Der gleiche 16-bit RAW Import dauert wirklich Ewigkeiten: 1030s im Fast-Modus.
Es kommt auch nicht das gleiche heraus, anscheinend sind die Standardparameter nicht passend. Ich würde daher eher 8-bit RGB importieren oder den 16-bit Import auf 8-bit RGB umwandeln.

Was festzustellen ist, ist dass das originäre CLAHE leider nur schlecht auf die Prozessoren skaliert. Es wird jeweils nur einer verwendet. Hier besteht bestimmt noch Opimierungspotential.

Mit dem folgenden Macro kannst du übrigens recht bequem die Ausführungszeit messen:

Schritt1: Bild laden
Schritt2: Macro erstellen

before = getTime();
run("Enhance Local Contrast (CLAHE)", "blocksize=127 histogram=256 maximum=3 mask=*None* fast_(less_accurate)");
after = getTime();
timeProcessing = after - before;
print("Processing took: " + timeProcessing + " milliseconds");

Schritt3: Macro ausführen

Und noch ein Kommentar zum CliJ-Framework. Hier sind nur die dafür programmierten Befehle im Plugin-Verzeichnis für die OpenCL-GPU optimiert. Die GPU-Skalierung funktioniert auch definitiv nicht für alle Algorithmen.
Im CLIJ habe ich jetzt auf die schnelle keine Entsprechung für CLAHE gefunden, bzw. nur mittels Umweg:
https://forum.image.sc/t/enhance-local-contrast-parallelization-running-on-gpu-running-faster-anyhow/31996/11

Ist ein bisschen Schade, dass hier im Forum FIJI/ImageJ kaum Beachtung findet. Ist wirklich extrem mächtig die Software und auch bis ins kleinste, mittels Macros/Plugins zu Skripten. Steuere mit MicroManager (ImageJ-Derivat) meine automatischen Mikroskope und diese fast-Gpx-Stitchings (https://www.mikroskopie-forum.de/index.php?topic=45776.0 ab Beitrag #10) sind in Fiji und mit CLAHE innnerhalb kürzester Zeit erstellt.

Lg Tino 

Nochnmikroskop

Hallo Tino,
RAW Dateien öffnet Fiji mit 16 Bit, das soll auch so sein, damit man alle Informationen verarbeiten kann.
Im Fastmodus dauert ein kleiner Ausschnitt schon 60s.

Den accuraten Modus habe ich abgebrochen, man sieht dann praktisch keinen Fortschritt. Leider ist auch kein Fortschrittsbalken sichtbar, wieviel Prozent schon abgeschlossen sind. Ich gucke immmer nach der Prozessorauslastung, ist bei FIJI dann bei CLAHE 13%. Es scheint so zu sein, dass nur einer der 8 Prozessoren belastet wird.

Vermutlich ist die Verbreitung hier nicht so groß, weil man immer Umwege zum Ziel benötigt, oder es schlicht keine Lösung gibt, ohne in diversen Sachforen nachzuforschen. Die Lebenszeit ist begrenzt.

LG Frank

PS: SIRIL von siril.org scheint hinsichtlich Speed wesentliche Vorteile zu haben. Allerdings geht bei mir der CR2 RAW Import nicht, nur in Graustufen. Da dauert bei vorheriger TIF Umwandlung alles nur Sekunden.

Kleiner Ausschnitt dauer ewig
kleiner Ausschnitt dauert ewig.jpg
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

TStein

Hallo Frank,

ich habe nochmal probiert. Wenn du bei deinem 16-bit Import im Clahe-Befehlsmenu den "process_as_composite"-Button aktivierst, dann dauerts bei mir 16s für das komplette 24Mpx Nikon D750-Bild. Aber mit Standardeistellungen.

Give it a "Try".

Lg Tino

TStein

Auf die Schnelle probiert, skaliert die Clahe-Ausführungszeit umgekehrt quadratisch mit der Blocksize. Ich sehe beim Standardwert 127 keinen Unterschied zu 16mal langsameren Blocksize 31.

Lg Tino

TStein

Und auch der Unterschied zwischen 8-bit und 16-bit RAW ist für normale Bilder ohne extremen Kontrastumfang (Pol, Fluoreszenz) nicht existent. Auch weil die Canon D700 eh nur maximal 11-bit schafft.

Lg Tino 

Nochnmikroskop

Hallo Tino,

danke für Deine Unterstützung!

Wenn ich keine Markierungen in der Datei setze, kommt auch der Button "process ...." nicht. Bei Markierung der ganzen Datei (RAW von Canon EOS 700D hat 18 Mpx = 103 MB lt. FIJI) dauert es wieder ewig -> habe ich abgebrochen. Gefühlt zwar schneller, als ohne Aktivierung des Buttons, aber noch viiiiel zu langsam.

Man kann auch als composite die ganze Datei öffnen, bringt aber auch keine signifikante Verbesserung.

Ohne Unterstützung aller Prozessorkerne und der GPU ist die Funktion zu langsam. Oder ich habe ein PAAR Schalter noch nicht aktiviert, aber wie schon geschrieben, die gefundenen Makros haben alleine noch nicht geholfen.

LG Frank
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

TStein

Hallo Frank,

ist Seltsam. Bei mir sinds mit einem vergleichbaren Rechner, aber mit 64GB Ram nur 16Sek für das 16-bit Composite. Hast du die Speicher und Thread-Einstellungen unter Edit\Options\Memory and Threads\ kontrolliert?

Lg Tino

TStein

Hallo nochmal,

ich denke zwar nicht das es ein Problem mit dem Import gibt, aber der generische RAW-Import funktioniert nicht so richtig für die Nikon-NEF-Dateien. Daher verwende ich das DCRAW-Plugin für ImageJ:
https://github.com/ij-plugins/ijp-dcraw

Das taucht dann unter Plugins/Input-Output auf und hat auch viel umfangreichere Optionen für das Demosaicing.

Lg Tino

Nochnmikroskop

Hallo Tino,
die Speicher- und Threadeinstellungen sind wohl okay. Zwar statt 16GB und 8 Kerne zeigt es 12135 MB und 8 Parallel Threads an.

Auch mit dcraw geht es nicht schneller, zumindest mit 16 Bit. Bei 8 Bit dauert es 1,5 Minuten. 8 Bit kann ich mit dem Standard RAW Input gar nicht wählen. 

Kann das am wenigen Speicher liegen? Aber warum geht es bei Siril soviel schneller?

LG Frank
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

TStein

#12
Hallo Frank,

ist wirklich erstaunlich langsam. Bei 8-bit RGB ists in 1s fertig. Kannst du nochmal bitte schauen, ob FIJI aktuell ist. Unter "help\update ImageJ" und/oder "help/update" nochmal aktualisieren. Unter About habe ich "ImageJ 1.54f" und Java 1.8.0_322.
Ich kenne Siril auch, komme nämlich aus der Astroscene. Ich denke da kann substantiell kein Unterschied bestehen. Vllt kannst du mir auch nochmal deine RAW-Datei zur Verfügung stellen. Ich könnte dir auch meinen Installationsordner auf Google-Drive legen, müsstest es nur kopieren.

Lg Tino   

Nochnmikroskop

Hallo Tino,

genau die gleichen Versionen habe ich auch installiert (erst gestern heruntergeladen). Beim Update wird mir 1.54m angezeigt. Werde ich updaten, versuchen, da ich das Programm auf den Ordner der Portable Apps hingeschoben habe.

Siril braucht praktisch keine Zeit, Ergebnis sofort da. Allerdings sieht die CR2 Datei komisch aus, keine richtigen Farben, oder Graustufen. Die Oberfläche ist auch gewöhnungsbedürftig.

Gibt es die Clahe Funktion nicht bei anderen, nicht Astro Software? Z.B. bei Gimp?
Obwohl, Gimp ist auch nicht so leicht im Umgang.

Meine Datei zur Verfügung stellen möchte ich erstmal nicht.

LG Frank
Meistens Auflicht, alle Themenbereiche
Zeiss Axiolab, Leitz Orthoplan, Keyence VHX, Olympus SZX16, Canon EOS 700D, Panasonic G9, Touptek u.a.
keine KI

TStein

Hallo Frank,

noch ein letzter Versuch:
Das CLAHE-Plugin kommt mit dem MPICBG-Paket. Wenn du mal im "FIJI\Plugins" -Ordner schaust, müsste eine
mpicbg_.... JAR-Datei zu finden sein. Die aktuellste ist die "mpicbg_-1.6.0.jar", welche hier zu finden ist:
https://maven.scijava.org/index.html#nexus-search;gav~mpicbg~mpicbg_~1.4.1~~~kw,versionexpand. Einfach in den Plugin-Ordner kopieren.

Ansonst fällt mir jetzt auch nichts mehr ein.

Lg Tino