Automatisierte Bildauswertung - Ein Papieranalyse Tool für die van

Transcription

Automatisierte Bildauswertung - Ein Papieranalyse Tool für die van
STUDENTEN
Clemens Blumer
Dominik Oriet
BETREUER
Andreas Krummen
Oliver Ruf
AUFTRAGGEBER
van Baerle AG
Dr. Markus Müller
Münchenstein
Projekt PA_10
Muttenz, Juli 2005
Projektarbeit Automatisierte Bildauswertung
Abstract
Die Firma van Baerle entwickelt Silikate, welche in der Papierindustrie für das
Altpapierrecycling verwendet werden. Zur Qualitätssicherung der Produktion werden
stichprobenweise Papiermuster hergestellt und manuell auf ihre Güte analysiert.
Unser einjähriges Projekt bestand darin, ein Bildauswertungsprogramm zu entwickeln und
für die Firma zu implementieren, damit die Überprüfung der Papierproben automatisch
durchgeführt werden kann.
Zu Beginn mussten wir herausfinden, wie wir die Verunreinigungen im Papier – die Flecken –
vom Hintergrund trennen konnten. Dies war uns auch mit Hilfe des Histogramms gelungen.
Dadurch konnten wir erste Algorithmen entwickeln, was wir unter Mithilfe eines an der FHBB
entwickelten Programms getan haben. Zuletzt verpackten wir diese Algorithmen in ein
speziell auf die Wünsche des Auftraggebers angepasstes GUI.
Wir konnten die Aufgabe erfolgreich meistern, so dass nun die Firma van Baerle die
Qualitätskontrolle der Papierproben automatisch und kostengünstig durchführen kann.
Bei
der
anspruchsvollen
Projekt-
und
Teamarbeit
hatten
wir
neben
vielen
Erfolgserlebnissen nur einzelne Rückschläge zu verzeichnen.
Einen besondereren Dank gilt einerseits unserem Auftraggeber, Dr. Markus Müller von der
van Baerle AG. Als externer Auftraggeber gab er uns die Möglichkeit, das Projekt möglichst
praxisnah umzusetzen. Ebenfalls bedanken möchten wir uns bei unseren zwei Betreuern
Andreas Krummen, Dozent „Bildverarbeitung“, sowie Oliver Ruf, Assistent der Abteilung
Informatik, für ihre Ratschläge und tatkräftige Unterstützung. Bei jeglichen Problemen
standen sie uns hilfreich zur Seite.
Muttenz, 07.07.2005
Seite 2/40
Projektarbeit Automatisierte Bildauswertung
Inhaltsverzeichnis
Inhaltsverzeichnis .................................................................................................................................... 3
1
2
3
4
5
Ausgangslage.................................................................................................................................. 3
1.1
Zweck und Funktion der Analyse ............................................................................................ 3
1.2
Bestehende Möglichkeiten ...................................................................................................... 3
1.3
Absichten und Aufgabe ........................................................................................................... 3
Grundlagen ...................................................................................................................................... 3
2.1
Prozess der Altpapieraufbereitung (DeInking) ........................................................................ 3
2.2
Qualitätsmerkmale in der Papierherstellung ........................................................................... 3
Konzept zum Ziel............................................................................................................................. 3
3.1
Primäre Anforderungen des Kunden....................................................................................... 3
3.2
Sekundäre Anforderungen des Kunden .................................................................................. 3
3.3
Mögliches Vorgehen definieren (Ideenkatalog)....................................................................... 3
3.4
Projektplanung......................................................................................................................... 3
Entwicklung der Bildanalyse mit Testtools ...................................................................................... 3
4.1
Evaluierung eines geeigneten Scanners................................................................................. 3
4.2
Erste Segmentierungsversuche mit Photoshop ...................................................................... 3
4.3
Plug-In Entwicklung mit PyBP (Was ist PyBP?)...................................................................... 3
4.4
Plug-Ins.................................................................................................................................... 3
4.4.1
Explorer ........................................................................................................................... 3
4.4.2
Analyse ............................................................................................................................ 3
4.4.3
Morphologie ..................................................................................................................... 3
Portierung in eine eigenständige Applikation .................................................................................. 3
5.1
Absichten ................................................................................................................................. 3
5.2
Technologie ............................................................................................................................. 3
5.3
GUI .......................................................................................................................................... 3
5.3.1
Hauptfenster .................................................................................................................... 3
5.3.2
Parameter-Set ................................................................................................................. 3
5.3.3
Programm Einstellungen ................................................................................................. 3
5.4
Logik ........................................................................................................................................ 3
5.4.1
5.5
Starten einer Messung .................................................................................................... 3
Daten ....................................................................................................................................... 3
6
Ausblick ........................................................................................................................................... 3
7
Fazit ................................................................................................................................................. 3
Quellenverzeichnis .................................................................................................................................. 3
Anhang: ................................................................................................................................................... 3
Muttenz, 07.07.2005
Seite 3/40
Projektarbeit Automatisierte Bildauswertung
1
Ausgangslage
Vielerorts werden Produkte entwickelt und produziert. Die anspruchsvolle, moderne
Gesellschaft erwartet auch bei Recyclingpapier eine konstante Qualität und möglichst
günstige Preise. Mit prozessintegrierter Qualitätssicherung werden die Produkte auf einem
hohen Standard mit entsprechendem Aufwand hergestellt. Die bisherige Durchführung der
Qualitätsanalyse war oft sehr zeitaufwändig und monoton.
Mit einer automatisierten
Bildanalyse kann diese Arbeit in objektiver, konstanter Art und Weise zu kostengünstigen
Konditionen durchgeführt werden.
Die Firma van Baerle AG aus Münchenstein, kam mit dem Projekt einer automatisierten
Bildanalyse für die Papierproduktion auf uns zu, da sie als Zulieferer für die Papierindustrie
grosses Interesse daran haben, die Effektivität der eigenen Produkte im Labor zu testen und
dem Kunden neben den Produkten auch ein Analyse-Tool zur Verfügung zu stellen. Dies
bedeutet für die van Baerle AG einen Mehrwert in ihrem Produktionsprozess und erzeugt
damit einen echten Marktvorteil.
1.1
Zweck und Funktion der Analyse
Bei der Papierproduktion gibt es verschiedenste Qualitätsmerkmale. Diese manuell zu
kontrollieren ist aber nahezu unmöglich bzw. nicht objektiv genug. Die Analyse soll einerseits
das Endergebnis in der Qualität beurteilen, anderseits aber auch die Möglichkeit geben, die
laufende Produktion zu analysieren. Hauptziel ist es, objektiv erkenntlich zu machen, in
welcher Qualität der Prozess steht und ob eine Fertigstellung sinnvoll ist oder ob weitere
Massnahmen zur Qualitätssteigerung nötig sind.
1.2
Bestehende Möglichkeiten
Bisher gab es für die Papierrecycling-Industrie nur beschränkt automatisierte, optische
Auswertungstools innerhalb der Qualitätskontrolle Die bestehenden Kontrollmöglichkeiten
waren technisch aufwändig und entsprechend teuer und sehr unflexibel.
Die heute erhältlichen Tools verlangen beim Qualitätsprüfer viel Erfahrung sowie die
entsprechende Einarbeitungszeit.
Das prinzipielle Vorgehen ist dabei gekennzeichnet durch eine Papierprobe mit
anschliessender Erfassung einzelner, gescannter
Bilder und deren manuellen, teilweise
subjektiven Merkmalauswertung.
Muttenz, 07.07.2005
Seite 4/40
Projektarbeit Automatisierte Bildauswertung
1.3
Absichten und Aufgabe
Unsere Absicht mit diesem Projekt war es ein Produkt zu entwickeln, das unabhängig von
der verwendeten Hardware (Scanner) funktioniert. Es soll qualitativ gute Ergebnisse liefern
und natürlich auch für den Endnutzer gut und intuitiv bedienbar sein. Wir entschieden uns
dafür, die Erfassung des Bildes unabhängig von der Auswertungsanalyse zu gestalten. Das
zu analysierende Bild kann somit mit einem beliebigen Gerät und beliebiger Software erstellt
und danach in das Programm importiert werden.
In unserem Projekt setzten wir den Schwerpunkt auf die Bildanalyse. Da sehr viele
Informationen von einer Papierprobe gewonnen werden können, ist eine Einschränkung
nötig. Unser Hauptziel ist die Klassierung der Flecken nach Grösse, Anzahl und
Gruppierung.
Davon
soll
eine
statistische
Auswertung
entstehen.
Eine
weitere
Klassierungsmöglichkeit ist die Morphologie der Flecken. Weitere, von uns nicht behandelte
Qualitätsmerkmale werden in den Grundlagen erläutert.
Als Ziel und Aufgabe des Projektes ist die Entwicklung einer unabhängigen, einfach zu
handhabenden Software gedacht. Die Software soll eine statistische Analyse über die
Papieranalyse erstellen und zusätzlich auch morphologische Informationen festhalten
können.
Muttenz, 07.07.2005
Seite 5/40
Projektarbeit Automatisierte Bildauswertung
2
Grundlagen
Bei der Recycling-Papierherstellung werden verschiedenste Qualitätsmerkmale in Betracht
gezogen. Ein sehr wichtiges Merkmal stellen dabei die Flecken dar. Es ist interessant, zu
wissen, wie viele Flecken und in welcher Grösse diese vorhanden sind. Flecken sind in einer
Vielzahl vorhanden. Eine manuelle Auszählung ist sehr aufwändig und unpräzise. Des
weiteren ist eine Einteilung in Grössen-Raster von Interesse. Von Hand ist eine solche
Klassifizierung nur sehr schwer zu erreichen.
2.1
Prozess der Altpapieraufbereitung (DeInking)
Als Rohstoffe werden Zeitungen und Magazine eingesetzt. Um die Druckfarben zu entfernen,
wird ein durch die van Baerle entwickeltes Produkt eingesetzt, das Inoplex 260
(Natriumsilikat).
Abb. 1: Prozessablauf DeInking
1. Aus den Rohprodukten entsteht in der Lösetrommel ein Papierbrei.
2. Dieser wird im Grobsortierer von grösseren Verunreinigungen wie CD ROM’s, Metall
und Plastik befreit.
Muttenz, 07.07.2005
Seite 6/40
Projektarbeit Automatisierte Bildauswertung
3. Anschliessend werden im Feinsortierer kleinere Rückstände wie Metallpartikel und
Klebstoffrückstände entfernt. Klebstoffrückstände können bewirken, dass das
hergestellte Papier auf der Papiermaschine abreisst.
4. Bei der Flotation werden durch die Zugabe von Luft feine Bläschen gebildet.
Schwebepartikel wie Druckerschwärze werden durch den Auftrieb der Bläschen zur
Oberfläche befördert. Diese Mischung aus Schaum und Schmutzpartikel wird
anschliessend abgeschöpft.
5. In der maschinellen Bütte wird der entstandene Faserbrei (Ganzstoff) abgeschöpft.
6. Der gewonnene Papierbrei wird in der Papiermaschine auf ein Langsieb aufgetragen.
Durch Abtropfen, Walzen und Trocknen wird der Brei zu festem Papier und wird auf
riesigen Rollen gelagert.
2.2
Qualitätsmerkmale in der Papierherstellung
Die Papierqualität ist der entscheidende Faktor der darüber entscheidet, zu welchem Preis
das Produkt an welchen Abnehmer verkauft werden kann.
Es werden unter anderem folgende Qualitätsmerkmale unterschieden:
-
Weissegrad und Helligkeit
-
Schmutzpunkte
-
Farbort (CIELAB Skala)
-
Stickies (Klebstoffrückstände)
-
Reissfestigkeit
-
Saugfähigkeit
-
Bedruckbarkeit
Wenn gewisse Merkmale nicht oder nur ungenügend erfüllt sind, kann es zu
Beeinträchtigungen kommen. Zum Beispiel kann die Farbechtheit des Druckers verfälscht
werden oder es kann sogar zu Abrissen auf der Papiermaschine kommen, was sehr hohe
Kosten verursachen kann.
Muttenz, 07.07.2005
Seite 7/40
Projektarbeit Automatisierte Bildauswertung
3
Konzept zum Ziel
3.1
Primäre Anforderungen des Kunden
Das Ziel ist es die Flecken der Papierproben zu Segmentieren. Dabei soll das Ganze
möglichst robust und für jegliche Papierqualitäten funktionieren. Des Weiteren sollen einige
statistische Werte aus diesen Flecken gewonnen werden können. Eine Klassierung der
Flecken anhand der Grösse ist dabei zentral. Diese Klassierung ist mehr oder weniger
verbreitet und soll so eingehalten werden.
3.2
Sekundäre Anforderungen des Kunden
Die Form der Flecken wird auch als interessantes Merkmal angesehen. Es können
verschiedenste Informationen und statistische Werte daraus gewonnen werden.
Das Verhältnis von Umfang zu Fläche soll erfasst werden können. Ausserdem kann die
Ausrichtung der Flecken von Interesse sein um evtl. Rückschlüsse auf den Prozess machen
zu können.
3.3
Mögliches Vorgehen definieren (Ideenkatalog)
Um die Möglichkeiten der Merkmalsextraktion in Papierproben festzustellen, sind erste Tests
mit einem Grafikprogramm (Photoshop) vorgesehen. Es sollen Tests bezüglich Schwellwert
mit Photoshop durchgeführt werden. Dabei sollen weitere Möglichkeiten für eine Analyse
gefunden werden. Durch die Bearbeitung der Papierproben mittels Photoshop soll möglichst
schnell festgestellt werden können, mit welchen Methoden ein gutes Ergebnis zu erhoffen
ist.
Danach sollen unter Nutzung von PyBP (Entwicklungstool für Bildverarbeitungsalgorithmen
der FHBB - siehe Kapitel 4.2) erste Plug-Ins entstehen, welche erste Algorithmen umsetzen
und visualisieren können. Dank PyBP ist es möglich, den Schwerpunkt zu Beginn der
Projektarbeit auf die Algorithmen zu legen. Je nach Zeitaufwand sollen in PyBP die primären
und evtl. auch die sekundären Anforderungen umgesetzt werden.
Am Schluss soll eine unabhängige Anwendung entstehen, die für den Endnutzer
übersichtlich und einfach bedienbar ist. Die Endanwendung soll möglichst viele der
Anforderungen erfüllen.
Muttenz, 07.07.2005
Seite 8/40
Projektarbeit Automatisierte Bildauswertung
3.4
Projektplanung
Abb. 2: Vorschlag Projektablauf von van Baerle.
Die obige Grafik zeigt, wie sich die van Baerle AG den Projektablauf zu Beginn vorstellte.
Diese Planung entsprach grundsätzlich auch unserer Absicht.
Nachstehend wird gezeigt, wie das Projekt im Nachhinein durchgeführt wurde. Es ist zu
erkennen, dass das tatsächliche Vorgehen mit dem Vorschlag der van Baerle AG in den
Tätigkeiten und dem zeitlichen Ablauf im grossen und ganzen übereinstimmt.
Muttenz, 07.07.2005
Seite 9/40
Projektarbeit Automatisierte Bildauswertung
Abb. 3: Tatsächlicher Projektablauf.
Muttenz, 07.07.2005
Seite 10/40
Projektarbeit Automatisierte Bildauswertung
4
Entwicklung der Bildanalyse mit Testtools
4.1
Evaluierung eines geeigneten Scanners
Bevor die Analyse der Bilder beginnen konnte, mussten wir einen geeigneten,
handelsüblichen Scanner evaluieren. Der Scanner sollte im mittleren Preisbereich liegen
(CHF 100 – 200). Es darf keine spezielle Hardwareabhängigkeit entstehen, damit später
alternative Scanner verwendet werden können.
Bei der Evaluierung wurde eine mittlere Scanauflösung von 1200 dpi als vernünftig
angesehen. Dies, da dadurch keine extremen Datenmengen entstehen und andererseits
trotzdem Flecken von ca. 21µm Durchmesser theoretisch erkennbar sind.
Diverse moderne Geräte besitzen eine automatische Staub- und Kratzentfernung. Bei vielen
Geräten ist nicht klar, ob diese Eigenschaft deaktiviert werden kann. Selbst der
Kundendienst eines Herstellers konnte dazu keine genauen Angaben tätigen.
Da wir bisher keine schlechten Erfahrungen mit dem Hersteller Hewlett-Packard gemacht
haben, entschieden wir uns aus diesem und den obigen Gründen für ein Modell dieses
Herstellers.
Unsere Wahl fiel auf den HP Scanjet 3770c:
Technische Daten:
Typ:
Flachbettscanner
Auflösung:
1200 dpi x 1200 dpi
Scanfläche:
216 x 297 mm
Verbindung:
USB2
Abb. 4: HP Scanjet 3770c
Muttenz, 07.07.2005
Seite 11/40
Projektarbeit Automatisierte Bildauswertung
4.2
Erste Segmentierungsversuche mit Photoshop
Nachdem die ersten Papierproben mit Hilfe eines handelsüblichen Scanners erstellt waren,
stand die erste Kontaktaufnahme mit dem Thema Bildanalyse an. Da unsere Kenntnisse zu
Beginn noch klein waren, nutzten wir ein Grafikprogramm, um mit den gescannten Bildern zu
experimentieren und dadurch ersichtliche Ergebnisse zu erhalten.
Ziel war es, sich verschiedene mögliche Vorgehen zur Segmentierung auszudenken und
diese mehr oder weniger genau mit Photoshop durchzuführen. Das Histogramm ist dabei
von zentraler Bedeutung. Es können so relativ viele Informationen über unsere Bilder
gewonnen werden. Sehr schnell zeigte sich, dass das Histogramm in zwei Bereiche geteilt
werden kann: Ein grosser Bereich stellt den Hintergrund dar und einige wenige Balken die
verschiedenen Helligkeiten der Flecken. Unter mehrfachem Einsatz von Schwellwerten,
Kontrastveränderungen und Tonwertkorrekturen wurden die Flecken in Photoshop deutlich
sichtbar gemacht. Von Auge sind die Flecken nun klar erkennbar. Es zeigte sich, dass mit
einer Segmentierung anhand von einer
Schwellwertbestimmung bereits gute Resultate
erzielt werden konnten. Deshalb stand unser Entscheid fest, dies nun in einem Algorithmus
umzusetzen, zu verfeinern und zu binarisieren, damit später statistische Werte ausgelesen
werden können. Ein umfangreicher Test mit verschiedensten Testbildern wird aber nötig
sein, um die Robustheit und Allgemeinheit der Methode zu bestätigen oder eventuelle
Verbesserungen vorzunehmen.
Abb. 5: Outputbild mit
Abb. 6: Outputbild mit
Flecken, die vom Hintergrund
Flecken, die vom Hintergrund
getrennt sind.
getrennt sind.
Muttenz, 07.07.2005
Seite 12/40
Projektarbeit Automatisierte Bildauswertung
Abb. 7: Bsp. Veränderungen in Photoshop anhand der Tonwertkorrektur.
4.3
Plug-In Entwicklung mit PyBP (Was ist PyBP?)
Mit PyBP ist es möglich, relativ schnell eigene Bildverarbeitungs-Algorithmen zu testen. Dies
wird dadurch realisiert, dass man die Möglichkeit hat, eigene Plug-Ins zu schreiben, welche
von der Applikation als solche erkannt und eingebunden werden.
PyBP ist eine Batch-Processing Applikation, welche die CVX Bibliothek verwendet, um
schnelle Bildoperationen durchführen zu können. CVX ist ein „Wrapper“ der Open Source
Bibliothek OpenCV von Intel.
PyBP wurde von Oliver Ruf (Assistent FHBB) entwickelt und wurde im Rahmen der
Vorlesung „Bildverarbeitung“ von Andreas Krummen für Übungszwecke eingesetzt. Somit
kannten wir uns relativ schnell mit dem Tool aus und konnten uns bei Problemen, Wünschen
und Fragen auch direkt an den Ersteller des Tools wenden.
Um zu sehen, ob wir mit unseren Überlegungen auf dem richtigen Weg waren, haben wir alle
unsere Kernalgorithmen als PyBP Plug-In implementiert. Somit war es uns auch möglich,
unserem Auftraggeber rasche Ergebnisse bzw. Demonstrationen zu liefern.
In einem zweiten Schritt werden die Plug-Ins in das endgültige Programm portiert. Mehr dazu
wird im nächsten Kapitel beschrieben.
Muttenz, 07.07.2005
Seite 13/40
Projektarbeit Automatisierte Bildauswertung
4.4
Plug-Ins
4.4.1
Explorer
Der sogenannte Explorer ist unser grundlegendes Plug-In. Es beinhaltet die Verarbeitung
des Input-Bildes zu einem binären Output-Bild.
4.4.1.1
Aufgaben des Explorers
Der Explorer soll mittels Schwellwerten das RGB-Input-Bild der gescannten Probe in ein
auswertbares binäres Bild bringen. Ziel ist es ausserdem, die gefundenen Flecken auf einem
zweiten Output-Bild farblich zu markieren. Der Explorer enthält aber keinerlei statistische
Funktionalität.
4.4.1.2
Algorithmen
Die Segmentierung der Flecken erfolgt über Schwellwerte. Zu Beginn wurde der Algorithmus
nur mit einem Schwellwert umgesetzt, was nicht zufriedenstellende Ergebnisse gab. Die
Grundsätzliche Idee mit einem Schwellwert erschien aber als sinnvoll und verbesserbar.
Zuerst eine kurze Einführung anhand des Algorithmus mit einem Schwellwert:
Abb. 8: Segmentierung mit Schwellwert T1.
Muttenz, 07.07.2005
Seite 14/40
Projektarbeit Automatisierte Bildauswertung
Wie in der obigen Abbildung sehr schön ersichtlich ist, werden mit einem Schwellwert T1 die
beiden gewünschten Flecken (in der Mitte und rechts) erkannt, jedoch entspricht die Grösse
nicht dem gewünschten Ergebnis. Dafür muss der Schwellwert tiefer liegen:
Abb. 9: Segmentierung mit Schwellwert T2.
Mit dem nun ausgewählten Schwellwert T2 werden die beiden Flecken aus der Abb. 8 in der
gewünschten Grösse erkannt. Jedoch wird so der linke Flecken auch erkannt, welcher einen
unregelmässigen Hintergrund darstellen soll und somit kein Flecken ist.
Da unter Verwendung von Schwellwerten je nach dem die richtige Anzahl oder Grösse der
Flecken erkennbar ist, liegt eine Kombination von 2 Schwellwerten nahe:
Muttenz, 07.07.2005
Seite 15/40
Projektarbeit Automatisierte Bildauswertung
Abb. 10: Segmentierung mit Schwellwerten T1 und T2.
Die dargestellten Schwellwerte T1 und T2 ergeben nun das gewünschte Ergebnis.
Der von uns entwickelte Algorithmus beruht auf diesen zwei Schwellwerten. Nachfolgend
eine systematische Darstellung des Algorithmus:
Da die Helligkeit der Bilder variieren kann, wird
nicht direkt mit Schwellwerten zwischen 0 und 255
gearbeitet, sondern mit Abweichungen von der
durchschnittlichen Helligkeit.
Die durchschnittliche Helligkeit liegt in der Regel
bei ca. 230 – dies, da die Papiere fast weiss sind.
Abb. 11: Abweichung statt Fixwert.
1. Zuerst werden zwei Schwellwerte T1 und T2 definiert.
T1 ist für die Anzahl und T2 ist für die Grösse der Flecken zuständig.
Sinnvolle Werte für die durchschnittliche Abweichung der Helligkeit bewegen sich
zwischen 12 und 30.
2. Berechnen der durchschnittlichen Helligkeit
3. Dann wird anhand vom Input-Bild und T2 ein schwarzweiss Output-Bild erzeugt.
Dieses enthält nun alle möglichen Flecken in der gewünschten Grösse. Jedoch
Muttenz, 07.07.2005
Seite 16/40
Projektarbeit Automatisierte Bildauswertung
wurde so auch das Hintergrundrauschen als Flecken erkannt. Der eindeutige
Hintergrund ist jedoch weiss, der Rest in Graustufen.
4. Das Bild wird nun anhand vom Schwellwert T1 abgescannt. Alle Flecken, welche
mindestens einen Pixel enthalten der dunkler als der Schwellwert T1 ist, werden auf 0
gesetzt.
5. Die übrigen Flecken, welche jetzt nicht auf 0 oder 255 sind, werden auf 255 gesetzt.
-> Dies hat zur Folge, dass das Hintergrund-Rauschen eliminiert wird.
Abb. 12: Bildliche Änderungen beim Explorer.
Darstellung als Flussdiagram:
Abb. 13: Schematischer Ablauf
Muttenz, 07.07.2005
Seite 17/40
Projektarbeit Automatisierte Bildauswertung
SourceCode zur genauen Implementierung des Algorithmus ist jeweils direkt aus den .cpp +
.h-Files oder aus der Dokumentation zu entnehmen.
4.4.2
Analyse
Die Analyse beschäftigt sich mit der Auswertung der gefundenen Flecken.
4.4.2.1
Aufgaben der Analyse
Zweck der Analyse ist es, statistische Informationen über die gefundenen Flecken zu
gewinnen. Dabei ist im Speziellen eine Kategorisierung in verschiedene Klassierungen
gewünscht. Als wichtigste Information für die statistische Auswertung gilt die Grösse in Pixel
der Flecken. Daraus können die gewünschten Informationen, unter Verwendung von der
Scanauflösung in dpi, gewonnen werden.
Folgende Werte werden berechnet:
-
Analysenfläche
-
Anzahl/anal. Fläche
-
Fläche (mm2/analysierte Fläche)
-
Anzahl/m2
-
Fleckenfläche (mm2/m2)
-
Mittlere Partikelgrösse ( m2)
-
Anzahl/ m2 in 6 Intervallen (Durchmesser in m)
-
Fläche (mm2/m2) in 6 Intervallen (Durchmesser in m)
-
Mittelwert Durchmesser
-
Std. Abweichung Durchmesser
Diese Werte werden unter Verwendung weit verbreiteter Formeln zur Berechnung von
statistischen Werten ermittelt. Eine Erklärung zu diesen Berechnungen wird deshalb
weggelassen, da es sich dabei um keine Neuerungen handelt.
Muttenz, 07.07.2005
Seite 18/40
Projektarbeit Automatisierte Bildauswertung
4.4.2.2
Algorithmen
Wesentlich für die gesamten Berechnungen sind die Anzahl der Flecken und die Grösse von
jedem Flecken in Pixel. Deshalb soll hier unser kombinierter Algorithmus zum Eermitteln
dieser zwei Werte genauer erläutert werden.
Nebst dem binarisierten Bild mit den Flecken wird ein Kontrolllbild verwendet. Das
Kontrollbild stellt inhaltlich nichts dar. Es wird lediglich dazu verwendet, um sich zu merken,
welche Pixel bereits betrachtet wurden.
Die untenstehende Grafik soll den Algorithmus schematisch darstellen:
Muttenz, 07.07.2005
Seite 19/40
Projektarbeit Automatisierte Bildauswertung
Abb. 14: Schematischer Ablauf Analyse
Muttenz, 07.07.2005
Seite 20/40
Projektarbeit Automatisierte Bildauswertung
Im oberen Bereich wird einfach das Bild durchlaufen und zwischen „Besucht“ / „Unbesucht“
und „Fleckenpixel“ / „kein Fleckenpixel“ unterschieden.
Im mittleren Bereich wird bei Bedarf zur Breitensuche abgezweigt.
Im unteren Bereich wird jeder Flecken unter Verwendung der Breitensuche „abgelaufen“.
Details zur Breitensuche:
Die Breitensuche ist von den Graphen her bekannt. Wir haben diesen Algorithmus
unverändert auf die Flecken angewendet. Im Mittelpunkt steht dabei eine while-Schleife, die
solange läuft, bis die Queue leer ist. Für jeden Punkt von der Queue wird dann die
Nachbarschaft abgesucht. Wenn einer dieser Nachbarpixel ein Fleckenpixel ist, wird auch
dieser Punkt in die Queue geschrieben.
4.4.3
Morphologie
Da wir die gewünschten Ergebnisse bezüglich Explorer und Analyse gut in der Zeit
erreichten, haben wir beschlossen, zusätzlich noch morphologische Kenntnisse über die
Flecken zu gewinnen.
4.4.3.1
Aufgabe der Morphologie
Ziel ist es, insgesamt zwei informative Werte über die Flecken zu gewinnen. Erstens das
Verhältnis zwischen Fläche zu Umfang und zweitens die Ausrichtung der Flecken. Davon
sind jeweils der Mittelwert und die Standardabweichung von Interesse.
Beide Werte ermöglichen es, eine Regelmässigkeit im Papier ausfindig zu machen, wenn die
Standardabweichung gering ist.
4.4.3.2
Algorithmen
Für die Erkenntnis der morphologische Eigenschaften ist vor allem der Chaincode von
Bedeutung. Er stammt von H. Freeman (1961 veröffentlicht) und ist auch unter dem Namen
„Kettencode“ und „Freeman Code“ bekannt.
Grundlegend für den Chaincode ist die Definition der Nachbarschaft, 8er oder 4er:
Muttenz, 07.07.2005
Seite 21/40
Projektarbeit Automatisierte Bildauswertung
Abb. 15: 4-er Nachbarschaft
Abb. 16: 8-er Nachbarschaft
Abb. 17: Unterschied zwischen 4-er und 8-er Nachbarschaft.
Dieses Bild zeigt den Unterschied zwischen der 8er und 4er Nachbarschaft. Bei der 4-er
Nachbarschaft würde man hier von zwei Objekten reden, bei der 8-er Nachbarschaft
hingegen von einem Objekt. Entscheidend für den Unterschied ist der rot eingekreiste
Bereich, da dieser nur diagonal verbunden ist.
Heute wird meistens die 8-er Nachbarschaft verwendet. Abhängig ist dies jedoch auch von
den angestrebten Zielen. Auch wir entschieden uns für die 8-er Nachbarschaft. Wir haben
diese Entscheidung bereits bei der Analyse getroffen, da es sonst eine andere Anzahl
Muttenz, 07.07.2005
Seite 22/40
Projektarbeit Automatisierte Bildauswertung
Flecken gegeben hätte. Im Weiteren wird deshalb nur noch auf die 8-er Nachbarschaft
eingegangen.
Richtungscodierung:
Die 8 Nachbarn von einem Pixel werden in Richtungen codiert. Auch hier gibt es wieder die
Möglichkeit der Codierung in Uhrzeigerrichtung oder Gegenuhrzeigerrichtung. Unsere
Entscheidung
fiel,
angelehnt
an
die
mathematische
Definition
von
Graden,
auf
Gegenuhrzeigerrichtung. Es wird für jede Richtung zu einem Nachbarn eine Nummer
vergeben (0-7):
Abb. 18: Richtungscodierung
Erstellung eines Chaincodes:
Der Chaincode wird wie folgt erstellt: Beim obersten, linken Pixel wird begonnen. Es wird
überprüft, von welcher Richtung man auf den aktuellen Pixel gekommen ist. Beim allerersten
Pixel
ist
das
die
Gegenrichtung
4
(siehe
untenstehende
Grafik
mit
den
acht
Richtungspfeilen). Ausgehend von der Richtung 4-1=3 wird überprüft, ob sich ein
„Fleckenpixel“ an der entsprechenden Position P(x-1, y-1) befindet:
- Wenn „ja“, dann wird diese Richtung (in diesem Fall die Richtung drei) gespeichert und
dieser neu gefundene Pixel nach der beschriebenen Methode überprüft.
- Wenn „nein“, dann wird an der nächst kleineren Richtung (3-1=2) überprüft, ob sich ein
Fleckenpixel an der Stelle P(x, y-1) befindet. Und so weiter, bis man wieder am Startpunkt
angelangt ist – in diesem Fall beim Richtungspfeil vier.
Muttenz, 07.07.2005
Seite 23/40
Projektarbeit Automatisierte Bildauswertung
Dieses Vorgehen wird solange wiederholt, bis man wieder beim allerersten Pixel angelangt
ist. Am Ende erhält man eine Zahlenfolge, die nur noch die Richtungen zum nächst
gelegenen Pixel enthält, anstatt die absoluten Koordinaten.
Abb. 19: Richtungscodierung
Abb. 20: Weg des Chaincodes
Folgender Chaincode erhalten wir mit dem obigen Beispiel:
0, 7, 7, 1, 5, 6, 5, 2, 3, 5, 4, 2, 1, 2
Umfang der Flecken:
Der Umfang eines Fleckens wird mit Hilfe des Chaincodes berechnet. Dabei wird,
ausgehend vom ersten Pixel, jeweils die Kantenlänge der Konturpixel summiert.
Die folgende Methode beschreibt das Vorgehen:
Wir untersuchen die Länge der Kontur eines Fleckens anhand eines vorgängig erstellten
Chaincodes.
Bei jedem Pixel wird geschaut, in welche Richtung der Vorgängerpixel auf den zu
untersuchenden Pixel zeigt. Gleichzeitig wird überprüft, in welche Richtung der aktuelle Pixel
auf den Nächsten zeigt. So erhalten wir die zwei Richtungspfeile Rp1 und Rp2. Je nachdem,
was für einen Winkel die beiden Pfeile zueinander haben, ergibt sich eine unterschiedliche
Kantenlänge. Ausserdem spielt es eine grosse Rolle, ob der erste Pfeil diagonal, also
ungerade ist oder nicht. Die nachfolgenden Grafiken illustrieren diesen Sachverhalt genauer.
Muttenz, 07.07.2005
Seite 24/40
Projektarbeit Automatisierte Bildauswertung
Die hellgrünen Linien entsprechen der
tatsächlichen Kantenlänge des Konturpixels.
Durchgestrichene Szenarien sind unmögliche
Fälle und können ignoriert werden, da die zu
betrachtenden Pixel vom Chaincode
Abb. 21: Konturlängen mit Richtung 1 gerade.
Algorithmus nicht erkannt werden und
somit nicht zu den Konturpixeln gehören.
Abb. 22: Konturlängen mit Richtung 1
Ausgehend vom ersten Richtungspfeil Rp1 gelten ungerade.
folgende Regeln, um die Kantenlänge des
Konturpixels zu bestimmen.
Bei geradem Rp1 (0, 2, 4 oder 6):
Bei ungeradem Rp1 (1, 3, 5 oder 7):
Regel1 = (Rp2-Rp1+8)%8
Regel2 = (Rp2-Rp1+1+8)%8
Regel1 Kantenlänge
Regel2 Kantenlänge
0
1
0
2
1
1
1
2
2
0
2
1
3
0
3
1
4
3
4
0
5
3
5
4
6
2
6
3
7
2
7
3
Muttenz, 07.07.2005
Seite 25/40
Projektarbeit Automatisierte Bildauswertung
Bezogen auf den Chaincode, der am obigen Beispiel erstellt wurde, ergäbe das die folgende
Kantenlänge der Kontur:
Rp1 = 0, Rp2 = 7
Regel1 = (7-0+8)%8 = 7
Kantenlänge = 2
Rp1 = 7, Rp2 = 7
Regel2 = (7-7+1+8)%8 = 1
Kantenlänge = 2
Rp1 = 7, Rp2 = 1
Regel2 = (1-7+1+8)%8 = 3
Kantenlänge = 1
Rp1 = 1, Rp2 = 5
Regel2 = (5-1+1+8)%8 = 5
Kantenlänge = 4
Rp1 = 5, Rp2 = 6
Regel2 = (6-5+1+8)%8 = 2
Kantenlänge = 1
Rp1 = 6, Rp2 = 5
Regel1 = (5-6+8)%8 = 7
Kantenlänge = 2
Rp1 = 5, Rp2 = 2
Regel2 = (2-5+1+8)%8 = 6
Kantenlänge = 3
Rp1 = 2, Rp2 = 3
Regel1 = (3-2+8)%8 = 1
Kantenlänge = 1
Rp1 = 3, Rp2 = 5
Regel2 = (5-3+1+8)%8 = 3
Kantenlänge = 1
Rp1 = 5, Rp2 = 4
Regel2 = (4-5+1+8)%8 = 0
Kantenlänge = 2
Rp1 = 4, Rp2 = 2
Regel1 = (2-4+8)%8 = 6
Kantenlänge = 2
Rp1 = 2, Rp2 = 1
Regel1 = (1-2+8)%8 = 7
Kantenlänge = 2
Rp1 = 1, Rp2 = 2
Regel2 = (2-1+1+8)%8 = 2
Kantenlänge = 1
Rp1 = 2, Rp2 = 0
Regel1 = (0-2+8)%8 = 6
Kantenlänge = 2
Die Kontur hat einen Umfang von 26 Pixelkanten.
Da wir aber nicht nur ein Flecken haben müssen wir wieder den Algorithmus erweitern und
uns merken welche Pixel bereits betrachtet wurden. Deshalb wird, sobald der gesamte
Flecken anhand des Chaincodes erfasst ist, dieser unter Verwendung der Breitensuche
markiert und gleichzeitig die Grösse des Flecken pixelgenau ermittelt.
Dadurch ist unser Chaincode gleichzeitig auch die Analyse und wir müssen nur einen der
beiden Algorithmen anwenden.
Muttenz, 07.07.2005
Seite 26/40
Projektarbeit Automatisierte Bildauswertung
5
Portierung in eine eigenständige Applikation
5.1
Absichten
Wie im vorhergehenden Kapitel beschrieben wurde, konnten wir die entwickelten
Algorithmen in einem speziellen Programm namens PyBP testen, welches für den
Schulbetrieb bestimmt ist. Wir konnten so relativ rasch erste Papierproben analysieren
lassen.
Leider ist dieses Programm nicht einfach zu handhaben. Es ist für ungeübte Anwender nicht
intuitiv genug, um ohne grosse Erklärungen eine Messung starten zu können. Des weiteren
besteht die Gefahr, dass Einstellungen versehentlich geändert werden können. Spätere
Messungen führen dann zu anderen, zum Teil unerwünschten Ergebnissen.
Ein weiterer Nachteil ist die Tatsache, dass PyBP in Python und C++ geschrieben ist. Aus
diesem Grund unterliegt dieses Programm einer ziemlich komplizierten und aufwendigen
Architektur. Bereits die Entwicklung eines einfachen Plugins hat uns zu Beginn viel Zeit und
Mühe gekostet, da das Zusammenspiel von Python und C++ sichergestellt werden musste.
Aus all diesen Gründen haben wir beschlossen, ein eigenständiges Programm zu
entwickeln. Die bereits geschriebenen Algorithmen sollen dabei konzeptionell unverändert in
die neue Applikation integriert werden.
5.2
Technologie
Für die Realisierung des Programms mussten wir uns für eine geeignete Technologie
entscheiden. Diese Technologie muss verschiedenen Anforderungen genügen. So soll eine
möglichst schnelle Entwicklung möglich sein, ohne dass man sich lange in die Technik
einarbeiten muss. Weiter soll möglichst nur eine Programmiersprache zum Einsatz kommen,
nämlich C++. Als Zielplattform wurde Windows definiert. Das Programm wird aus
Kundensicht auf keinem anderen Betriebssystem eingesetzt.
All diesen FVorderungen kann das .NET Framework von Microsoft gerecht werden.
Zusätzlich stellt die momentane Verbreitung von .NET einen interessanten Aspekt dar, um
darin Erfahrungen für spätere berufliche Tätigkeiten und weitere Projekte zu sammeln.
Aus all diesen Gründen haben wir uns für diese Technologie entschieden.
Und wir wurden nicht enttäuscht. Durch das riesige Angebot an Klassen und deren guten
Dokumentation durch die MSDN Library war es uns möglich, relativ rasch und ohne viel
Muttenz, 07.07.2005
Seite 27/40
Projektarbeit Automatisierte Bildauswertung
Mühe zum gewünschten Ziel zu gelangen. Mithilfe des Visual Studio .NET 2003 ist es
möglich, schnell und intuitiv eine GUI zu entwickeln. Denn diese Entwicklungsumgebung
bietet einen integrierten GUI Designer, welcher direkt C++ Code generiert. Um zum Beispiel
einen Event Handler für einen Knopf zu erzeugen genügt es, wenn im Designer auf den
gewünschten Knopf doppelt geklickt wird. Dadurch springt die Entwicklungsumgebung
automatisch von der Grafikansicht zur Codeansicht und setzt den Cursor in die Zeile des
Event Handlers.
Die Professionalität von .NET und Visual Studio konnte uns also völlig überzeugen und bietet
unserer Meinung nach einige Vorteile gegenüber nicht kommerzieller Produkte.
Abb. 23: GUI Designer von Visual Studio .NET 2003.
5.3
GUI
Nach unserem Entscheid für .NET haben wir begonnen, einen ersten grafischen Prototyp zu
entwickeln. Nach kurzer Entwicklungszeit konnten wir dem Auftraggeber ein erstes Layout
vorstellen. Dadurch konnte er einen ersten Eindruck bekommen, wie das Programm später
ungefähr aussehen würde. So war es ihm möglich, selber Änderungsvorschläge
anzubringen, um das einfache Handling des zukünftigen Programms zu gewährleisten.
Muttenz, 07.07.2005
Seite 28/40
Projektarbeit Automatisierte Bildauswertung
Abb. 24: Der erste Prototyp. Alle Werte und Grafiken wurden von Hand eincodiert.
5.3.1
Hauptfenster
Eine offene Diskussion über die verschiedensten Aspekte des GUI ermöglichte uns die
Anwendung auf Kundenwünsche anzupassen und eine Reduzierung auf das Wesentliche
war das absolute Ziel. Mit wenig Aufwand soll einem neuen Benutzer das Durchführen einer
Messung ermöglicht werden.
Nach der Implementierung der Änderungsvorschläge sieht das GUI wie folgt aus:
Muttenz, 07.07.2005
Seite 29/40
Projektarbeit Automatisierte Bildauswertung
Abb. 25: Das Hauptfenster nach einer Einfach-Messung.
Auf der linken Seite ist der Bereich, wo neue Messungen aufgegeben und gestartet werden
können. Auf der rechten Seite werden die Resultate präsentiert. Input und Output wird somit
klar getrennt.
Es gibt 2 Möglichkeiten, um eine Messung in Auftrag zu geben. Entweder wird eine einzelne
Messung oder eine Stapelverarbeitung aufgegeben. Bei der letzteren wird gleich ein ganzer
Ordner voller Bilder auf einmal analysiert.
Bei beiden Messvorgehen muss allerdings noch das Parameter-Set angegeben werden,
welches die Einstellungen für die Messung beinhaltet.
Eine weitere Angabe, die bei beiden Vorgehen anzugeben ist, ist der Speicherort der
Resultate. Nach jeder Messung eines Bildes werden die erhaltenen Resultate in eine CSV
Datei (Character Separated Values)
geschrieben. Diese Datei kann dann z.B. in Excel
importiert werden.
Als letztes kann noch angegeben werden, ob das berechnete Bild, samt eingezeichneten
Flecken, gespeichert werden soll. Dies wird dann in denselben Ordner abgelegt, in dem sich
das Originalbild befindet. Der Name des Bildes setzt sich dabei zusammen aus dem Namen
Muttenz, 07.07.2005
Seite 30/40
Projektarbeit Automatisierte Bildauswertung
des Bildes, dem Namen der Messung, einem Präfix „OUTPUT“ und natürlich dem Dateityp.
Mit dem Wort „OUTPUT“ kann das Programm erkennen, ob es sich um ein bereits mit
Flecken eingezeichnetes Bild handelt und ignoriert dieses für Messungen.
Damit die häufig gleich bleibenden Einstellungen nicht nach jedem Programmstart erneut
eingegeben werden müssen, werden sie gespeichert.
Wenn alles korrekt eingegeben wurde, kann die Messung durch Betätigen des
entsprechenden Knopfes gestartet werden. Das Programm überprüft vorgängig, ob nicht
erlaubte Zeichen als Titel der Messung eingegeben wurden. Da dieser Titel ein Teil des
Ausgabebildes ist, darf er keine von Windows verbotenen Zeichen enthalten.
Falls mal eine Messung zu lange dauert oder fälschlicherweise aufgegeben wurde, kann
diese jederzeit durch das Drücken von „Abbrechen“ gestoppt werden.
5.3.2
Parameter-Set
Das Parameter-Set Fenster kann geöffnet werden, indem beim Hauptfenster in der
Menüleiste auf „Bearbeiten/Parameter-Set bearbeiten“ geklickt wird.
Abb. 27: Fenster
"Parameter-Set erstellen"
Abb. 26: Fenster "Parameter-Set bearbeiten"
Um ein neues Parameter-Set zu erstellen, wird auf den Knopf „Neu“ geklickt, so dass sich
das Fenster „Parameter-Set erstellen“ präsentiert. Dort muss ein Name für das neue Set
eingegeben werden. Beim Betätigen des Knopfes „OK“, wird das neu erstellte Set im Fenster
„Parameter-Set bearbeiten“ (Screenshot) automatisch ausgewählt. Jetzt müssen nur noch
die Parameter gesetzt werden:
Muttenz, 07.07.2005
Seite 31/40
Projektarbeit Automatisierte Bildauswertung
Scanner-Auflösung: Diese Angabe muss gemacht werden, da sonst falsche Resultate
berechnet werden. (Umrechnung von Pixel zu Fläche)
Schwellwert 1:
Wie in einem vorgängigen Kapitel beschrieben kann mit diesem Wert
die Anzahl gefundener Flecken beeinflusst werden.
Schwellwert 2:
Beeinflusst die Grösse der Flecken.
Morphologie:
Diese Zusatzberechnungen sind fakultativ und können zwecks
Geschwindigkeit aktiviert oder deaktiviert werden.
Jedes erstellte Parameter-Set wird in einer eigenen Datei abgespeichert. Alle diese Dateien
werden im Ordner „\Config\ParameterSet“ abgelegt.
5.3.3
Programm Einstellungen
Dieses Fenster kann geöffnet werden, indem beim Hauptfenster in der Menüleiste auf
„Bearbeiten/Einstellungen“ geklickt wird.
Abb. 28: Einstellung der Intervalle
Alle Messungen sind von diesen Einstellungen direkt betroffen. Damit die Messergebnisse
über längere Zeit vergleichbar sind, dürfen diese Intervalle nicht geändert werden. Dies sollte
nur ganz am Anfang, wenn das Programm neu benutzt wird, getan werden. Falls die
Einstellungen aber doch geändert werden, wird ein Warnhinweis angezeigt, welcher den
Benutzer auffordert, eine neue Ausgabedatei zu wählen. So werden die Messungen mit den
einen Intervallen von den Messungen mit den anderen getrennt.
Muttenz, 07.07.2005
Seite 32/40
Projektarbeit Automatisierte Bildauswertung
In
der
Datei
„\Config\Global\Settings.conf“
werden
diese
Programmeinstellungen
abgespeichert.
5.4
Logik
Für die Grobdarstellung des Programms dient die folgende Illustration:
Abb. 29: Grobaufbau des Programms.
Der linke Teil, das Benutzer-Interface, wurde bereits beschrieben. Der Fokus dieses
Unterkapitels richtet sich deshalb auf den Logik Teil.
5.4.1
Starten einer Messung
Wie eine Messung aufgegeben wird, ist oben beschrieben. Was allerdings noch nicht
beschrieben wurde ist, wie eine solche Messung Programmintern abläuft. Schematisch
dargestellt kann man dies aus der folgenden Figur ablesen:
Muttenz, 07.07.2005
Seite 33/40
Projektarbeit Automatisierte Bildauswertung
Abb. 30: Schematischer Programmablauf
Es wird angenommen, dass eine Einfach-Messung korrekt in den Eingabefeldern
eingegeben wurde und nun der Knopf „Messung starten“ betätigt wird:
1) Der CoreManager, der das Hauptfenster repräsentiert, erstellt zuerst ein ParameterSet Objekt, in dem die benötigten Parameter gespeichert werden. Diese Parameter
werden aus der entsprechenden Parameter-Set Datei ausgelesen.
2) Dieses erstellte Objekt wird danach dem Member-Objekt „Worker“ übergeben. Unter
anderem werden diesem Worker noch weitere Parameter übergeben, wie zum
Beispiel der Pfad zum Bild und ob das Ausgabebild gespeichert werden soll.
Dann wird der Worker in einen Thread gepackt, der auch gleich gestartet wird. Nun
startet der Worker die Berechnung. Mehr dazu wird in Kapitel 5.4 und 5.5
beschrieben.
3) Sobald die Arbeit getan ist, sendet der Worker ein Signal aus. Der CoreManager
empfängt dieses und ruft sogleich eine Handler-Methode auf. In dieser wird vom
Worker das ResultSet verlangt, in der sich die berechneten Resultate befinden. Diese
werden ausgelesen und im Hauptfenster angezeigt.
Abbrechen: Falls während der Berechnung der „Abbrechen“ Knopf gedrückt wird, wird
der laufende Worker-Thread abgebrochen.
Muttenz, 07.07.2005
Seite 34/40
Projektarbeit Automatisierte Bildauswertung
Wie die Algorithmen im Detail funktionieren wurde bereits im Kapitel 4 beschrieben. Da diese
auch nicht speziell auf die eigenständige Applikation angepasst wurden, wird darauf nicht
nochmals eingegangen.
5.5
Daten
Wie bereits erwähnt werden die Daten nicht nur im Programm angezeigt, sondern für spätere
Verwendungen auch gespeichert. Im Programmablauf wird dafür die Klasse ResultSet
verwendet, welche nur für das Halten und Verwalten der Daten zuständig ist. Jegliche
Berechnung findet in anderen Klassen (z.B. Statistic) statt.
Das ResultSet setzt sich also aus einer Vielzahl an Member-Variabeln, gettern, settern und
einer Methode saveToFile zusammen.
Die saveToFile-Methode ist für die korrekte Speicherung der ermittelten Werte zuständig.
Dazu wird aus dem ParameterSet-Objekt der Speicherpfad ermittelt. Befindet sich an der
gewünschten Stelle noch keine Datei, wird diese erzeugt und der Header wird durch
Semikolon getrennt reingeschrieben. Danach werden die Werte der Probe in eine Zeile, auch
durch Semikolon getrennt, geschrieben. Nicht ermittelte Kenngrössen werden durch „---“
ersetzt. In der Ausgabe-Datei stellt die 1.Zeile den Header dar, jede weitere entspricht einer
Messung.
Die ganze Datei kann mit Excel geöffnet werden. Somit wird sie übersichtlich dargestellt und
ist weiter verwendbar. Auch das Erzeugen weiterer Diagramme etc. kann wie gewohnt in
Excel mit den Daten vorgenommen werden.
Muttenz, 07.07.2005
Seite 35/40
Projektarbeit Automatisierte Bildauswertung
Abb. 31: Screenshot einer csv-Datei mit einer Messung.
Durch die Verwendung von csv-Dateien ist sichergestellt, dass die Ergebnisse in
wiederverwendbarem Format vorliegen. Unabhängig von Excel oder einem anderen
Programm können die Daten betrachtet werden. Verschiedenste Programme (TabellenKalkulations-Programme)
bieten
Import-Möglichkeiten
mit
individuell
wählbarem
Trennparameter, in unserem Fall Semmikolon. Oft ist eine Importierung wie bei Excel sogar
durch reines Öffnen der Datei möglich und das Programm erkennt automatisch das
Trennzeichen. Des weiteren wäre auch eine spätere Verwendung der Ergebnisse in einer
selbstgeschriebenen Applikation dank dieser Datenhaltung möglich.
Muttenz, 07.07.2005
Seite 36/40
Projektarbeit Automatisierte Bildauswertung
6
Ausblick
Bei den bisher entstandenen Algorithmen könnte man sicher noch an Geschwindigkeit
optimieren. Weitere Algorithmen kämen evtl. auch in Frage, müssten aber getestet werden
ob vergleichbare Ergebnisse entstehen.
Weitaus interessanter wäre aber wahrscheinlich das Ermitteln weiterer Eigenschaften der
Papierproben. Ideen dafür gibt es verschiedenste. Fraglich ist da nur die Umsetzbarkeit und
wie sinnvoll die Werte überhaupt sind. Gewisse Eigenschaften bedürften wahrscheinlich ein
Scan mit Durchlicht oder etwas Ähnliches um überhaupt auf Bildern ersichtlich zu sein.
Grundsätzlich stellt sich dann aber die Frage der Aussagefähigkeit und der weiteren
Verwendbarkeit der Eigenschaft. Denn Ziel sollte es ja sein, Bedürfnisse abzudecken und
nicht sinnlos Daten zu erzeugen, die niemand brauchen kann.
Muttenz, 07.07.2005
Seite 37/40
Projektarbeit Automatisierte Bildauswertung
7
Fazit
Zuerst einmal kann man bezüglich des Projektumfangs sagen, dass dieser vollumfänglich
erfüllt wurde und sogar noch etwas ausgedehnt wurde. Die eigenständige Applikation ist
vollumfänglich funktionsfähig und entspricht den Kundenbedürfnissen. Ein Betrieb im
Entwicklungs-Labor der van Baerle ist voraussichtlich zu erwarten.
Die Arbeit bot einen Interessanten Einblick in die Welt der automatisieren Bildverarbeitung
und im speziellen einen Ausblick auf das Erarbeiten konkreter Applikationen. Die
Kommunikation mit den Auftraggebern und Betreuern war sehr angenehm und bei Bedarf
fanden wir immer die nötige Unterstützung. Glücklicherweise konnten wir sehr frei arbeiten
und planen. Unter diesen Umständen konnten wir viele Erfahrungen bezüglich Zeitplanung,
Zielen und weiteren Dingen sammeln. Beispielsweise konnten wir an der eigenen Haut
erfahren, welche Punkte es ausser der technischen Umsetzung des Problems zu
berücksichtigen gab. Des Weiteren ist das Arbeiten im Team zu erwähnen. Oft klappt bei der
Teamarbeit ohne einen Chef, der den Weg lenkt, nicht alles perfekt. Wir verstanden uns
aber sehr gut und konnten die vorhandenen Aufgaben immer aufgrund unserer konstruktiven
Diskussionen problemlos aufteilen. Niemand bekam irgendwelche Arbeiten einfach
aufgebrummt.
Kurz gefasst, wir konnten die Erfahrung machen, Teammitglied und gleichzeitig
Projektmanager zu sein. Wir sind mit dem Ergebnis zufrieden und würden es im Rückblick
grösstenteils gleich angehen.
Muttenz, 07.07.2005
Seite 38/40
Projektarbeit Automatisierte Bildauswertung
Quellenverzeichnis
Literatur
Nachstehende Quellen wurden zur Erarbeitung des Projektes verwendet.
-
Digital Image Processing, Rafael C. Gonzalez, Richard E. Woods, Prentice Hall
International
-
Computer Graphics - Principles and Practice, By James D. Foley, Andries van Dam,
Steven K. Feiner et al., Addison-Wesley
-
The Image Processing Handbook, John C. Russ, CRC Press
-
Programmieren mit der .NET-Klassenbibliothek, Holger Schwichtenberg, Frank Eller,
Addison-Wesley
-
Python in a nutshell, Alex Martelli, O’Reilly Associates
-
PyBP, http://www.fhbb.ch/informatik/projekte/vision/
-
OpenCV, http://www.intel.com/research/mrl/research/opencv/
Abbildungen
Abb. 2: Dr. Markus Müller, van Baerle AG, Münchenstein
Alle anderen Abbildungen wurden durch uns erstellt.
Muttenz, 07.07.2005
Seite 39/40
Projektarbeit Automatisierte Bildauswertung
Anhang:
Ehrlichkeitserklärung
Hiermit bestätigen die unterzeichnenden Autoren dieses Berichts, dass alle nicht klar
gekennzeichneten Stellen von Ihnen selbst erarbeitet und erfasst wurden.
Ort und Datum
Unterschrift
Muttenz, 01.07.2005
Clemens Blumer
Dominik Oriet
Kontakte
Clemens Blumer
Dominik Oriet
[email protected]
[email protected]
van Baerle AG
FHBB, Abteilung Informatik
Dr. Markus Müller
Hofackerstr. 73
Schützenmattstr. 21
4132 Muttenz
4142 Münchenstein 2
[email protected]
http://www.vanbaerle.ch
http://www.fhbb.ch/informatik
Muttenz, 07.07.2005
Seite 40/40