Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Bildrauschen ermitteln (https://www.delphipraxis.net/177231-bildrauschen-ermitteln.html)

MrMooed 25. Okt 2013 21:01

Bildrauschen ermitteln
 
Hey DPler,

auch wenn es hier nicht 100%ig hin passt - trotzdem sind hier viele kluge Köpfe :-D
Ich muss aus einem Bild das Rauschen filtern - nicht um es zu verringern. Ich muss lediglich die Stellen herausfinden, an denen besonders viel Rauschen auftritt und mit einem anderen Bild vergleichen ob es an den selben Stellen auftritt (also ob die Bilder evtl. von ein und der selben Kamera stammen).

Hoffentlich konnte jemand mein Problem verstehen und mir einen Denkanstoß geben.. :roll:

Perlsau 25. Okt 2013 22:04

AW: Bildrauschen ermitteln
 
Du könntest z.B. nach Algorithmen für die Unterdrückung von Bildrauschen suchen. Wenn du ein solches Bild damit bearbeitet hast, kannst du durch einen Vergleich des bearbeiteten mit dem unverarbeiteten Bild das Rauschen isolieren. Sei dir jedoch bewußt, daß solche Sachen hochkomplexe und für Nicht-Mathematiker kaum verständliche Themen darstellen:

Bildrauschen
Signal-Rausch-Verhältnis

Medium 26. Okt 2013 03:39

AW: Bildrauschen ermitteln
 
Bei Rauscherkennung ist die fast schon "natürliche" Antwort: Fourier-Transformation

Leider gehen bei dieser sämtliche Ortsinformationen verloren, so dass man - so man sie auf ein komplettes Bild los lässt - nur eine Gesamtaussage über dieses treffen kann. Ich könnte mir für deinen Zweck aber ganz gut vorstellen, dass es Sinn machen würde die Bilder zu diesem Zweck vorher in kleinere Quadrate zu unterteilen (ggf. sogar überlappend*), so dass man Maßzahlen immerhin für grobe Bildbereiche erhält. Das dürfte dem Zweck sogar geradezu zuträglich sein! (Und wenn man es mal genau überlegt, KANN man Rauschen garnicht 100%ig ortsgenau bestimmen, da Rauschen ja nur dann auftreten kann, wenn man einen Bereich betrachtet, der größer ist als ein einzelnes Sample (in diesem Fall Pixel). Ein einzelner Wert rauscht einfach nicht - also zumindest, wenn er über die Zeit konstant ist ;))

Noch ein Vorteil beim Unterteilen für eine FFT: Mehrere kleine Signalmengen sind schneller transformiert als eine große. Und wenn man dann die Kantenlängen noch zu Zweierpotenzen macht, wird es geradezu optimal :)

Allerdings ist es mit einer FFT sicher noch nicht getan. Man müsste anschließend noch daher gehen, und verschiedene Frequenzmuster klassifizieren, die als ähnlich gelten sollen. Da wird vermutlich ein Häufchen empirische Ermittlung mit hunderten von Testbildern nötig sein, und eine gute Portion Mathe. Allein schon die Festlegung, wo Bildinhalt weitestgehend aufhört und Rauschen anfängt ist nicht trivial, besonders bei Rauschen eher flächiger Charakteristik. Da könnte am Ende sogar fast schon ein neuronales Netz über das FFT Ergebnis sinnvoll erscheinen. So lange man es sinnvoll trainiert.

Summa summarum keine wirklich leichte Nummer. Sicherlich machbar, aber definitiv auch nur in Grenzen akkurat. Wirklich gesicherte Ergebnisse werden wohl schwer bis kaum zu machen sein, zumindest zwischen den extremen Rand-Fällen.

*) Überlappt man so extrem, dass man jeweils einen Bereich um jeden Pixel betrachtet, wird das ganze zwar sehr rechenintensiv, aber dafür auch sehr fein. Die Frage ist dann, ob sich das überhaupt lohnen würde, da die Charakteristika eines CCD Chips auch über weiter auseinander liegende Bereiche ähnlich sein sollten. Gerade die Wahl der Transformations-Fester in Größe und Abstand zueinander dürfte immense Unterschiede in der Brauchbarkeit machen. Ebenso die eingesetzte Fenster-Funktion. Da ein Optimum zu ermitteln allein ist schon ganz schön heikel, da nichtmal gesagt ist, dass es ein Optimum für den allgemeinen Fall gibt. Ich würde es gar bezweifeln, und so weit gehen mehrere Analysen mit einer größeren Range an Einstellungen zu machen, und diese wiederum nochmals zu klassifizieren...

Perlsau 26. Okt 2013 05:16

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von MrMooed (Beitrag 1233225)
... also ob die Bilder evtl. von ein und der selben Kamera stammen

Irgendwie hab ich Zweifel daran, daß man eine Kamera dadurch identifizieren kann, daß an derselben Stelle immer ein bestimmtes Rauschen auftritt. Mit Sicherheit unterscheiden sich die Algorithmen, mit denen das Bild komprimiert wird, je nach Kameratyp und -marke. Doch ob das zur Identifikation ausreicht, glaube ich eher nicht, denn Bildrauschen ist z.B. auch von der Helligkeit der Objekte, die fotografiert wurden, abhängig. Jedenfalls hab ich noch nie davon gehört, daß man Kameratypen ein spezifisches und identifizierbares Rauschen zuordnen kann.

Von Druckern – die ja quasi ebenfalls Bilder produzieren – weiß ich, daß viele Hersteller zur Drucker-Identifikation mit dem Auge nicht erkennbare Markierungen eingebaut haben, den sog. Machine Identification Code, was "vielen Anwendern nicht bekannt" ist. Ob es das auch für Kameras gibt, weiß ich nicht.

Wenn es um Originalbilder direkt aus der Digitalkamera geht, hilft womöglich das Exchangeable Image File Format.

Scheinbar gibt es aber doch weitere Möglichkeiten, wie dieser Zeitungsausschnitt belegt.

Offenbar hat auch ein gewisser Professor Pausch an der Uni Darmstadt etwas entwickelt, das er in seiner "Masterarbeit: Identifikation einer Digitalkamera mittels Seitenkanalinformationen veröffentlicht oder zu veröffentlichen beabsichtigt.

Du siehst: Recherchieren bringt weiter :thumb:

Was mich interessiert: Wofür brauchst du sowas? Forensik?

MrMooed 26. Okt 2013 14:45

AW: Bildrauschen ermitteln
 
Hey,

Zitat:

Zitat von Perlsau (Beitrag 1233242)
Wenn du ein solches Bild damit bearbeitet hast, kannst du durch einen Vergleich des bearbeiteten mit dem unverarbeiteten Bild das Rauschen isolieren.

Mhmm so sollte ich erstmal weiter kommen. Hoffentlich kriege ich die Vergleiche etwas .. performanter hin als ich sie zur Zeit habe - 5min an einem Bild herumdoktorn ist mir zu lange :S
Zitat:

Zitat von Perlsau (Beitrag 1233242)
Irgendwie hab ich Zweifel daran, daß man eine Kamera dadurch identifizieren kann, daß an derselben Stelle immer ein bestimmtes Rauschen auftritt.

Habe ich mir auch gewünscht, dass so etwas nicht möglich ist .. leider ist es nach diesem Link sogar mit ziemlich kleinen (256x512) Bildern zu bewerkstelligen.
Zitat:

Zitat von Perlsau (Beitrag 1233242)
Was mich interessiert: Wofür brauchst du sowas? Forensik?

Ja genau, ich habe 5 Kameras und ein (ich nenn es mal so) Referenzbild, das ich einer der Kameras zuordnen muss. Von jeder der Kameras habe ich jeweils 5 Aufnahmen.
Zitat:

Zitat von Medium (Beitrag 1233237)
Die Frage ist dann, ob sich das überhaupt lohnen würde, da die Charakteristika eines CCD Chips auch über weiter auseinander liegende Bereiche ähnlich sein sollten.

Laut der Aufgabe handelt es sich bei allen 6 Kameras um CMOS-Sensoren - gilt es für diese ebenso?
Zitat:

Zitat von Medium (Beitrag 1233237)
Fourier Transformation

Puh, die werde ich mir mal ansehen. Habe keine Vorstellung was man damit bewerkstelligen kann :? Aber schon mal Danke für das Stichwort

Habe jetzt erstmal ein Programm geschrieben, das mir das Rauschen herausnimmt (Median-Filter). Er nimmt also aus einem best. Bereich den Durchschnittlichen Wert für jeden Farbkanal und erstellt aus den Werten ein neues "rauschfreies" Bild. Anschließend muss ich die Bilder von einander abziehen und (so die Theorie :D) erhalte meine "Rauschestellen".

Medium 26. Okt 2013 16:53

AW: Bildrauschen ermitteln
 
CMOS dürfte ähnlich sein. Was du da filterst, ist im Grunde genommen ein einfacher Hochpass-Filter auf Umwegen. Damit hast du zwar ein schönes Bild des Rauschens (und hochfrequenter Inhaltsanteile), jedoch keine quatifizierbare Aussage über die Charakteristika des Rauschens. Wenn du die Vergleiche ohnehin nachher durch manuelles Betrachten machen möchtest, und es nicht um vollautomatische Verarbeitung von größeren Mengen von Bilder geht, ist das sogar schon gar nicht so übel. Zumindest, wenn sich da optisch ausreichend signifikante Muster ausmachen lassen. Wirkliche Erfahrung im Zusammenhang mit Kameras habe ich da eher nicht. Mein Kontakt zur Welt der Bildverarbeitung kommt eher aus der verlustbehafteten Kompression und Kantenerkennung, wo ganz ähnliche Techniken zentraler Bestandteil sind. Eine Anwendbarkeit für deine Zwecke kann ich mir aber halt sehr gut vorstellen :)

Namenloser 26. Okt 2013 19:01

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von MrMooed (Beitrag 1233277)
Habe jetzt erstmal ein Programm geschrieben, das mir das Rauschen herausnimmt (Median-Filter). Er nimmt also aus einem best. Bereich den Durchschnittlichen Wert für jeden Farbkanal und erstellt aus den Werten ein neues "rauschfreies" Bild. Anschließend muss ich die Bilder von einander abziehen und (so die Theorie :D) erhalte meine "Rauschestellen".

So ähnlich wäre jetzt auch meine spontane Idee gewesen: Erst Bild mit kleinem Kernel blurren (2×2 Pixel oder so) und anschließend vergleichen. Beim Filter „Unscharf Maskieren“ wird ein solches Prinzip ja genutzt um ein Bild zu schärfen, aber ich denke, das kann man auch verwenden, um Rauschen zu erkennen.

Eine andere Idee: Die „Ableitung“ des Bildes berechnen, also jeweils vom nächsten Pixel den Wert des vorigen Pixels abziehen, ggf. in zwei Dimensionen (so ähnlich arbeiten ebenfalls einige Schärfungs-Filter. Und Kantenerkennungsfilter). Dann müssten Stellen, wo die Werte schwanken (= Rauschen), ja hervorstechen. Man könnte dann noch einen Schwellenwert hernehmen, sodass von der „Ableitung“ nur Stellen unterhalb eines bestimmten Wertes angezeigt werden, um das ganze wirklich auf Rauschen zu beschränken, sonst bekommt man so ein reliefartiges Bild, wo alle Kanten hervorgehoben sind.

Also ich denke generell dürfte es ein guter Ansatz sein, sich Schärfungsalgorithmen anzusehen, denn die sind ja berüchtigt dafür, dass sie oft als Nebeneffekt das Bildrauschen verstärken.

Puke 26. Okt 2013 21:11

AW: Bildrauschen ermitteln
 
Mich würde die Antwort auch interessieren!

Damit könnte ich endlich die unlösbare Aufgabe des BWINF lösen. Wären die 30MB-Bilder Downloads doch nicht umsonst :shock:.

Bei denen wird das mit dem Bildrauschen funktionieren, sonst wäre die Aufgabenstellung sinnlos :thumb:

Gruß Puke :kotz:

MrMooed 26. Okt 2013 21:24

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von Puke (Beitrag 1233300)
Damit könnte ich endlich die unlösbare Aufgabe des BWINF lösen.

:lol: Genau diese Aufgabe bearbeite ich :lol:

Vllt. können wir uns da ja zsm. setzen :stupid:

Jedenfalls habe ich jetzt (hoffentlich) das Rauschen der einzelnen Bilder herausgefiltert - Mal sehen ob ich die "Rauschbilder" noch untereinander vergleiche oder ob ich jedes einzeln mit dem Referenzbild vergleiche :gruebel:

Ich halte euch auf dem laufenden wenn da so ein Interesse besteht :)

Namenloser 26. Okt 2013 21:53

AW: Bildrauschen ermitteln
 
Die Aufgaben des BWINF soll man aber selbst bearbeiten und nicht sich die Lösung von anderen vorkauen lassen :?. Find ich nicht so toll, ehrlich... zumal ich vor Jahren selbst am BWINF teilgenommen habe und mir sehr viel Stress damit gemacht habe, die Aufgaben alle selbstständig zu bearbeiten.

Puke 26. Okt 2013 22:29

AW: Bildrauschen ermitteln
 
Hab ich mir gedacht...
Allerdings ich wäre schon froh gewesen diese Bilder irgendwie Laden zu können. Bei mir stürzt das program nach einigen Minuten ab. Bei Bitmaps hab ich das mit Filtern wahrscheinlich hingekriegt. Nutzt mir bloß nichts!

Und Ja namenlozer schön das du das alles alleine kannst, ich brauche nun mal bei sowas Hilfe und ich will den Wettbewerb nicht gewinnen oder sonstwas. Im übrigen trete ich mit meiner Schule an, sodass das mit dem alleine machen sowieso etwas schwierig wird. ( Wäre der BWINF momentan der einzige Wettbewerb, könnte ich auch mehr Zeit dafür verwenden ) .
Außerdem weiß ich ja noch nicht, wie ich bei dir alleine interpretieren soll! Darf ich mir nun zukünftig keine Wikipedia - Artikel ansehen, wenn ich sowas mache? Mir geht es momentan immer nur um die Erfahrung. Ich weiß das ich nichts reißen werde, aber ich weiß das ich es irgendwann auf Anhieb verstehen werde, wenn ich weiter alles ausprobiere und FRAGE.
Und warum man sich für sowas Stress machen muss, bin ich mir auch noch nicht so im klaren. Dann hätte ich ja nach zwei Wochen BurnOut ( jetzt bin ich völlig OT )
Zum Thema Bildrauschen habe ich den Tipp bekommen die Quersumme der Zahlen zu berechnen. Bin dem Weg bei den Bitmaps gefolgt und es hat anscheinend ganz gut geklappt. Weiterhin kam dann der Tip die Dinger Gezippt zu lassen, was ich allerdings nicht kapiere ( und namenlozer lachst du schon schön? ) wie gesagt... Kann die Dinger net einlesen :pale:

Dann gute Nacht
Puke:freak:

Namenloser 26. Okt 2013 22:53

AW: Bildrauschen ermitteln
 
Es geht ja gerade darum, dass man es selbst löst. Sonst wäre es ja witzlos!

Natürlich ist es erlaubt, öffentlich einsehbares Material wie Wikipedia zu lesen. In der ersten Runde sind sogar Gruppenarbeiten zugelassen, aber damit ist natürlich nicht gemeint, dass man sich Hilfe von außen holt, sondern dass man mit anderen Teilnehmern eine Gruppe bildet, innerhalb der man sich austauscht, und dann die Aufgaben am Schluss gemeinsam abgibt.

Das kann ich auch nur empfehlen, denn wie du war ich nach der ersten Runde leider auch zu ausgebrannt für die zweite. Ich kannte nur leider keinen, der mitmachen wollte...

Aber sich Lösungen vorkauen zu lassen ist unfair gegenüber anderen Teilnehmern.

Puke 27. Okt 2013 00:22

AW: Bildrauschen ermitteln
 
Wie du siehst will er keine Lösung sondern einen Denkanstoß!:evil: Es gibt da nämlich bei diesem Problem ein Problemchen: Brute & Force klappt bei 5min schlecht. :roll:Ich bin sicher hier würde sich mehr als nur einer freuen wenn eine performantere Methode zum Vorschein käme. Wir sind sowieso keine Konkurrenz zu den anderen! :lol:

Ich hab bisher sowieso nur den Rationalisierer und diesen Scheiß Zeitplan-Dingsbums einigermaßen hinbekommen.:oops:

Ein gute Nächtle
Puke :cyclops:

MrMooed 27. Okt 2013 01:25

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von NamenLozer (Beitrag 1233309)
Aber sich Lösungen vorkauen zu lassen ist unfair gegenüber anderen Teilnehmern.

Dem stimme ich voll und ganz zu. Eine komplette Lösung habe ich nicht erwartet - und würde es auch niemals. Es ging mir lediglich darum einen Denkanstoß zu bekommen - denn zugegebener Maßen: Im Informatik Unterricht eines Gymnasiums hat man von solchen Dingen wie Bildrauschen, KI, etc. noch nie etwas erfahren. Von daher ist meine persönliche Meinung, das es schon vertretbar ist Impulse (!) zur Bearbeitung zu liefern. Falls jemand der Auffassung ist, ich wolle eine komplette Lösung erhalten: so habe ich mich scheinbar falsch ausgedrückt und entschuldige mich dafür!

Dennoch (und so ist es ja auch gewollt) würde ein Austausch von reinen Ideen nicht schaden - solange sie nicht allzu konkret sind.

Namenloser 27. Okt 2013 01:51

AW: Bildrauschen ermitteln
 
Es gehört sich dann aber zumindest, im ersten Post klar hinzuschreiben, dass es sich um eine Aufgabe für einen Wettbewerb handelt, damit nicht jemand „aus Versehen“ zu viel verrät, was wahrscheinlich jetzt eh schon geschehen ist.

In diesem speziellen Fall dürfte der „Denkanstoß“ schon fast die Lösung sein. Beim BWINF geht es ja ohnehin mehr um die Idee als um die Implementierung. Und auf diese Idee soll man eben selbst kommen. Der BWINF ist schließlich ein Informatik- und kein Programmier-Wettbewerb.

Bei dieser Aufgabe steht übrigens nirgends, dass ein Programm geschrieben werden muss! Insofern ist wohl auch keines verlangt und damit erübrigt sich auch die Frage nach künstlicher Intelligenz – menschliche Intelligenz dürfte vollkommen ausreichen.

Perlsau 27. Okt 2013 02:12

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von NamenLozer (Beitrag 1233316)
Es gehört sich dann aber zumindest, im ersten Post klar hinzuschreiben, dass es sich um eine Aufgabe für einen Wettbewerb handelt, damit nicht jemand „aus Versehen“ zu viel verrät, was wahrscheinlich jetzt eh schon geschehen ist.

Und vor allem nicht erst etwas anderes zu behaupten:

Zitat:

Zitat von MrMooed (Beitrag 1233277)
Zitat:

Zitat von Perlsau (Beitrag 1233242)
Was mich interessiert: Wofür brauchst du sowas? Forensik?

Ja genau, ich habe 5 Kameras ...



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz