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