-
ERFINDUNGSGEBIET DER OFFENBARUNG
-
Die vorliegende Offenbarung bezieht sich auf den Vergleich von Zeichnungen und genauer auf ein Verfahren zum Vergleichen von Zeichnungen, wie zum Beispiel von technischen Zeichnungen.
-
HINTERGRUND DER OFFENBARUNG
-
Zeichnungen, wie zum Beispiel technische Zeichnungen, umfassen eine Vielzahl von Zeichnungselementen, wie zum Beispiel:
- - Ansichten (grafische Projektionen eines Objekts, technische Zeichnung umfassen im Allgemeinen eine Vielzahl von Ansichten des gleichen Objekts);
- - Anmerkungen;
- - Zeichnungskopf (zum Beispiel im unteren rechten Abschnitt einer Zeichnung vorhanden);
- - einen Rahmen (zum Beispiel einen Rahmen, der am Rand der Zeichnung platziert ist und den Zeichnungskopf berührt),
- - usw.
-
Normalerweise werden Zeichnungen während des Entwurfs eines neuen Teils oder eines neuen Objekts, zur Modifikation eines vorhandenen Teils oder Objekts oder einer Änderung in den Montageanweisungen geändert. Vor der Validierung dieses Teil- oder Objektentwurfs oder der Montageanweisungen müssen die Zeichnungen geprüft werden. Die Prüfung kann in einem Vergleich zwischen einer ursprünglichen Zeichnung und der neuen Zeichnung bestehen, so dass jede Anweisung auf der Zeichnung bestätigt wird, sowohl um zu bestätigen, dass die Änderungsanforderung umgesetzt worden ist, als auch, dass keine anderen Änderungen durchgeführt worden sind.
-
Diese Prüfung zielt typischerweise darauf ab, sicherzustellen, dass alle beauftragten Änderungen vorgenommen worden sind. Diese Prüfung ist sehr zeitaufwendig, da die Zeichnungen groß sind und alle Abmessungen, Formen, Texte, Linien bestätigt werden müssen, ungeachtet, ob eine Änderung beauftragt worden ist oder nicht. Sollte die Prüfung nicht zufriedenstellend verlaufen, werden die Zeichnungen abgewiesen, modifiziert, und der Prozess der Prüfung kann von neuem beginnen.
-
Für einige Anwendungen werden die Zeichnungen mehrere Male geprüft. Sie können durch einen Ingenieur geprüft werden, der für ihre Zeichnung verantwortlich ist, durch einen Kunden des Ingenieurs oder durch seinen Vorgesetzten.
-
Somit besteht ein Bedarf an einem weiter automatisierten Vergleichsverfahren, um die Prüfung von geänderten Zeichnungen zu vereinfachen und zu beschleunigen.
-
Ein bekanntes Verfahren ist im Dokument JPA-2016021102 offenbart worden. Diese Lösung ist nicht zufriedenstellend, da sie die manuelle Identifizierung der Unterschiede vor dem Durchführen des Vergleichs erfordert.
-
Das Durchführen eines wenigstens teilweise automatisierten Vergleichs ist sehr kompliziert, da die Zeichnungen normalerweise im A0-Format oder sogar in mehrfachem A0-Format gedruckt sind. Falls die Zeichnungen anschließend gescannt werden, können die ermittelten Dateien eine Auflösung von ungefähr 50000 x 20000 Pixeln aufweisen (bei 400 Punkten pro Zoll), was eine große Menge an Rechenleistung erfordert, um die Zeichnungen automatisch zu verarbeiten.
-
Zusätzlich dazu kann das Vergleichen von Unterschieden zwischen Seiten anspruchsvoll sein, da die verschiedenen Zeichnungselemente möglicherweise relativ zueinander und zur Seite bewegt worden sind.
-
Des Weiteren sei angemerkt, dass das pixelweise Vergleichen der Unterschiede normalerweise zu nicht zufriedenstellenden Ergebnissen führt, da das Scannen eines Dokuments normalerweise dazu führt, dass eine Datei ermittelt wird, in der die Zeichnung mit einem Offset oder mit Rauschen herauskommt. Auch wenn zwischen den beiden Zeichnungen einige Unterschiede erwartet werden, kann somit die gesamte Zeichnung so erscheinen, dass sie Unterschiede aufweist, da der Scan-Prozess bewirkt hat, dass die Zeichnungen unmöglich auf einem Pixellevel ausgerichtet sein können.
-
Es ist ein primäres Ziel der Offenbarung, Verfahren und Systeme bereitzustellen, welche die Unzulänglichkeiten der derzeit verfügbaren Systeme und Verfahren überwinden.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Die vorliegende Offenbarung überwindet eines oder mehrere Defizite des Stands der Technik, indem sie ein Verfahren zum Vergleichen einer ersten Zeichnung und einer zweiten Zeichnung vorschlägt.
-
Gemäß den Ausführungsformen der vorliegenden Offenbarung umfasst die erste Zeichnung erste Zeichnungselemente, und die zweite Zeichnung umfasst zweite Zeichnungselemente, und das Verfahren umfasst Folgendes:
- - Identifizieren jedes Zeichnungselements, das auf der Zeichnung vorhanden ist, für jede Zeichnung,
- - Ausarbeiten einer Vielzahl von Zeichnungselementepaaren, die jeweils ein erstes Zeichnungselement und ein zweites Zeichnungselement, das dem ersten Zeichnungselement entspricht, umfassen,
- - Ausrichten des ersten Zeichnungselements und des zweiten Zeichnungselements für jedes Zeichnungselementepaar,
- - Vergleichen des ersten Zeichnungselements und des zweiten Zeichnungselements für jedes Zeichnungselementepaar.
-
Wie oben erklärt worden ist, kann ein Zeichnungselement ein Element einer Zeichnung sein, wie zum Beispiel eine Ansicht eines Objekts oder eines Teils, eines Textes, eines Zeichnungskopfs usw.
-
Falls die zweite Zeichnung eine geänderte Version der ersten Zeichnung ist, dann umfasst die zweite Zeichnung normalerweise mit der ersten Zeichnung gemeinsame Zeichnungselemente. Zum Beispiel können sie beide einen Zeichnungskopf (einschließlich eines Rahmens) und im Wesentlichen die gleiche Anzahl an Ansichten umfassen (falls die beiden Zeichnungen eine unterschiedliche Anzahl von Ansichten aufweisen, kann eine Ansicht, die nur auf einer der Zeichnungen vorhanden ist, als eine verwaiste Ansicht betrachtet werden). In diesen Zeichnungselementen kann der Text im Zeichnungskopf in der zweiten Zeichnung geändert sein, und wenigstens ein Teil einer Ansicht kann in der zweiten Ansicht geändert sein.
-
Es sei angemerkt, dass entsprechende Zeichnungselemente Zeichnungselemente eines gleichen Typs sein können, die Eigenschaften gemeinsam haben, wie zum Beispiel Ansichten, die aus dem gleichen Blickwinkel ausgeführt sind. Als Beispiel: eine Draufsicht eines Objekts oder eines Teils, die auf einer ersten Zeichnung dargestellt ist, kann einer Draufsicht des gleichen Objekts oder des gleichen Teils, der auf einer zweiten Zeichnung dargestellt ist, entsprechen (obwohl einige Änderungen an der zweiten Zeichnung gegenüber der ersten Zeichnung durchgeführt worden sein können). Ebenfalls als Beispiel: der Zeichnungskopf der ersten Zeichnung entspricht dem Zeichnungskopf der zweiten Zeichnung (auch wenn der Text im Zeichnungskopf der zweiten Zeichnung geändert worden ist).
-
Da die Zeichnungselemente ausgerichtet werden, bevor sie verglichen werden, können nur echte Änderungen im Ergebnis dieses Vergleichs erscheinen. Dieser Vorteil wird auch erreicht, da Zeichnungselemente mit Zeichnungselementen verglichen werden, anstatt dass Zeichnungen mit Zeichnungen verglichen werden.
-
Das oben genannte Verfahren stellt daher eine Lösung bereit, um Unterschiede zwischen zwei Zeichnungen und ihren Zeichnungselementen mit minimalen parasitären Unterschieden aufzuzeigen. Das Verfahren ist auch in der Lage, Zeichnungen zu vergleichen, die auf mehreren Seiten gedruckt sind (da es die Zeichnungselemente sind, die verglichen werden). Das Verfahren ist für Zeichnungen angepasst, die gedruckt und gescannt sind. Das Verfahren kann auch Zeichnungen behandeln, in denen die Ansichten verschoben oder sogar gedreht worden sind.
-
Das Identifizieren jedes Zeichnungselements, das auf einer Zeichnung vorhanden ist, kann umfassen, eine Vielzahl von Bereichen einer Zeichnung zu definieren, wobei jeder Bereich zum Umgrenzen eines einzelnen Zeichnungselements ausgearbeitet wird.
-
Somit wird jede Zeichnung in eine Vielzahl von Bereichen aufgeteilt, die so definiert sind, dass nur ein Zeichnungselement in jedem Bereich vorhanden ist. Das Ausführen von Zeichnungselementepaaren kann daher auf der Basis der Abschnitte von Zeichnungen durchgeführt werden, die in jedem Bereich enthalten sind.
-
Das Definieren der Vielzahl von Bereichen einer Zeichnung kann Folgendes umfassen:
- - Ermitteln einer Bitmap aus der Zeichnung,
- - Bilden von Pixelgruppen der Bitmap, so dass in jeder Pixelgruppe jedes Pixel zu wenigstens einem anderen Pixel der Gruppe benachbart ist oder von wenigstens einem anderen Pixel der Pixelgruppe um einen Abstand beabstandet ist, der kleiner als ein vordefinierter Abstandsschwellenwert ist, wobei jede Pixelgruppe einem Zeichnungselement entspricht.
-
In der vorliegenden Beschreibung entspricht eine Bitmap einer rechteckigen Pixelmatrix.
-
Normalerweise ist ein Zeichnungselement, wie zum Beispiel eine Ansicht, von anderen Zeichnungselementen getrennt. Wegen dieser Trennung ist es möglich, die Pixel zu gruppieren, die zum gleichen Zeichnungselement gehören, da sie alle von wenigstens einem anderen Pixel der Pixelgruppe um einen Abstand beabstandet sein werden, der kleiner als ein vordefinierter Abstandsschwellenwert ist.
-
Dieser vordefinierte Abstandsschwellenwert kann so gewählt werden, dass er kleiner als der kleinste Abstand, der Zeichnungselemente, wie zum Beispiel Ansichten, trennt oder der kleinste Abstand, der eine Ansicht vom Zeichnungskopf trennt, ist.
-
Die erste Zeichnung und die zweite Zeichnung können gezeichnete Flächen und leere Flächen umfassen, und das Ermitteln einer Bitmap aus einer Zeichnung umfasst, die gezeichneten Flächen der Zeichnung zu expandieren.
-
Zum Beispiel kann diese Expansion durch Expandieren der gezeichneten Flächen um eine vordefinierte Anzahl von Pixeln erfolgen. Somit kann jedes Pixel, das gezeichnet ist, von gezeichneten Pixeln in einem Kreis umgeben sein, der einen Radius aufweist, der gleich der vordefinierten Anzahl an Pixeln ist. Zum Beispiel wird diese Expansion für ein Bild, in dem die gezeichneten Flächen schwarz und die leeren Flächen weiß sind (Schwarz-auf-Weiß-Bild), häufig von Fachleuten als eine Erosion bezeichnet (die weißen leeren Flächen werden erodiert, so dass die gezeichneten Flächen verstärkt werden). Alternativ und als Beispiel: gür ein Bild, in dem die gezeichneten Flächen weiß sind und die leeren Flächen schwarz sind (Weiß-auf-Schwarz-Bild) wird die Expansion von Fachleuten häufig als eine Dilatation bezeichnet, welche die weißen Flächen wachsen lässt.
-
Auch können leere Flächen Flächen sein, welche die Farbe des Hintergrunds eines Bildes aufweisen, was Fachleute leicht in Bezug auf die Farbe der gezeichneten Flächen erkennen werden.
-
Diese vordefinierte Anzahl an Pixeln kann so gewählt werden, dass nahe Zeichnungselemente einander in der resultierenden Bitmap berühren können. Daher kann der vordefinierte Abstandsschwellenwert auf ein Pixel gesetzt werden, und jedes berührende andere Pixel gehört zur gleichen Pixelgruppe wie dieses andere Pixel. Zum Beispiel kann die vordefinierte Anzahl an Pixeln so gewählt werden, dass Buchstaben eines Textes in Berührung miteinander kommen.
-
Das Ermitteln einer Bitmap aus einer Zeichnung kann des Weiteren umfassen, die Zeichnung zu skalieren, in der die gezeichneten Flächen expandiert worden sind.
-
Obwohl die Bitmap direkt aus einem Scan der Zeichnungen ermittelt werden kann, ist es ebenfalls möglich, das gescannte Bild in eine Bitmap mit einer geringeren Auflösung zu skalieren. Ein Bild mit einer kleineren Auflösung kann weniger Rechenleistung zum Verarbeiten erfordern und kann weiterhin verwendbar sein, um die Bereiche zu definieren und die Pixelgruppen zu identifizieren. Da die Bereiche nur Pixel einer Pixelgruppe umfassen, trennen die Bereiche die Zeichnungen vollständig in Zeichnungselemente, die für Fachleute Bedeutung tragen, die miteinander verglichen werden können.
-
Das Definieren der Vielzahl von Bereichen kann Folgendes umfassen:
- a - Definieren eines Mittelpunkts jeder Pixelgruppe, der auf jeder Pixelgruppe platziert ist,
- b - Tesselierung der Bitmap, um eine erste Vielzahl von Kacheln zu ermitteln, die jeweils nur einen Mittelpunkt der Pixelgruppe umfassen,
- c - falls eine Kachel der Vielzahl von Kacheln wenigstens ein Pixel aus einer anderen Gruppe als der Gruppe umfasst, die ihren Mittelpunkt in der Kachel aufweist, dann:
- - Definieren eines Zusatzmittelpunkts für die Pixeluntergruppe,
- - Tesselierung der Bitmap, um eine neue Vielzahl von Kacheln zu ermitteln, die jeweils nur einen Mittelpunkt der Pixelgruppe oder nur einen Zusatzmittelpunkt der Pixeluntergruppe umfassen,
- d - Wiederholen von Schritt c, bis eine Abbruchbedingung erfüllt ist,
- e - Mergen von Kacheln, die Pixel einer einzelnen Pixelgruppe umfassen, um eine neue Vielzahl von Kacheln zu ermitteln,
- f - Ermitteln der Bereiche, die Zeichnungselemente umgrenzen, unter Verwendung der Vielzahl von Kacheln, wobei jede Kachel einem Bereich entspricht.
-
Der Mittelpunkt jeder Gruppe, auch ein Schwerpunkt genannt, ist ein Pixel einer Pixelgruppe, das der Schwerpunkt jeder Pixelgruppe sein kann. Falls der Schwerpunkt einer Pixelgruppe auf einem Pixel platziert ist, das nicht zu der Pixelgruppe gehört, wird der Mittelpunkt der Punkt der Pixelgruppe sein, der sich am nächsten zu diesem Punkt befindet.
-
Die Tesselierung der Bitmap kann das Bilden eines Voronoi-Diagramms umfassen.
-
Voronoi-Diagramme sind Fachleuten bekannt.
-
Die Abbruchbedingung kann erfüllt sein, falls jede Kachel der Vielzahl von Kacheln keine Pixel aus zwei unterschiedlichen Pixelgruppen umfasst.
-
Alternativ kann die Abbruchbedingung nach einer vordefinierten Anzahl von Wiederholungen von Schritt c erreicht werden. Dann ist es möglich, dass ein Nutzer den Prozess durch manuelles Trennen der Zeichnungselemente beenden kann, falls Kacheln immer noch Pixel aus anderen Pixelgruppen umfassen.
-
Vergleichen des ersten Zeichnungselements und des zweiten Zeichnungselements für jedes Zeichnungselementepaar kann Folgendes umfassen:
- - Ermitteln der Unterschiede zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement,
- - Ausarbeiten einer Maske für jedes Zeichnungselementepaar, die Flächen aufweist, welche die Unterschiede zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement umgrenzen,
- - Überlagern der Maske entweder auf dem ersten Zeichnungselement oder dem zweiten Zeichnungselement für jedes Zeichnungselementepaar.
-
Diese Maske kann teilweise transparent sein, und ihre Farbe kann so gewählt werden, dass sie die Flächen hervorhebt, in denen Änderungen vorgenommen worden sind.
-
Das Verfahren kann umfassen, die gezeichneten Flächen des ersten Zeichnungselements und des zweiten Zeichnungselements unscharf zu machen, bevor die Unterschiede zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement ermittelt werden.
-
Das Verfahren kann umfassen, auf den Unterschied zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement einen Schwellenwert anzuwenden, nachdem die Unterschiede zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement ermittelt worden sind.
-
Dies ermöglicht es, nur große Unterschiede zwischen den Zeichnungen zu berücksichtigen und kleine Unterschiede zu verbergen.
-
Gemäß einer anderen Ausführungsform der vorliegenden Offenbarung wird ein System zum Vergleichen einer ersten Zeichnung mit einer zweiten Zeichnung bereitgestellt.
-
In dieser Ausführungsform umfasst die erste Zeichnung erste Zeichnungselemente, und die zweite Zeichnung umfasst zweite Zeichnungselemente, und das System umfasst Folgendes:
- - ein Modul zum Identifizieren jedes Zeichnungselements, das auf der Zeichnung vorhanden ist, für jede Zeichnung,
- - ein Modul zum Ausarbeiten einer Vielzahl von Zeichnungselementepaaren, die jeweils ein erstes Zeichnungselement und ein zweites Zeichnungselement, das dem ersten Zeichnungselement entspricht, umfassen,
- - ein Modul zum Abgleichen des ersten Zeichnungselements und des zweiten Zeichnungselements für jedes Zeichnungselementepaar,
- - ein Modul zum Vergleichen des ersten Zeichnungselements und des zweiten Zeichnungselements für jedes Zeichnungselementepaar.
-
Es sei angemerkt, dass das System dazu ausgelegt sein kann, die verschiedenen Schritte des oben definierten Verfahrens durchzuführen.
-
Gemäß einem anderen Aspekt der Ausführungsformen der vorliegenden Offenbarung wird ein Computerprogramm bereitgestellt, das Anweisungen zum Ausführen der Schritte eines Verfahrens, wie es oben definiert ist, umfasst, wenn das Programm durch einen Computer ausgeführt wird.
-
Dieses Programm kann irgendeine Programmiersprache verwenden und die Form von Quellcode, Objektcode oder einem Code zwischen Quellcode und Objektcode annehmen, wie zum Beispiel eine teilweise kompilierte Form oder irgendeine andere erwünschte Form.
-
Gemäß einem anderen Aspekt der Ausführungsformen der vorliegenden Offenbarung wird ein Aufzeichnungsmedium bereitgestellt, das durch einen Computer lesbar ist und auf dem ein Computerprogramm aufgezeichnet ist, das Anweisungen zum Ausführen der Schritte eines Verfahrens, wie es oben definiert ist, umfasst.
-
Das Aufzeichnungsmedium kann irgendeine Entität oder Einrichtung sein, die in der Lage ist, das Programm zu speichern. Zum Beispiel können zu dem Medium Speichermittel, wie zum Beispiel ein ROM, zum Beispiel ein CD-ROM oder ein Mikroelektronikschaltungs-ROM, oder Magnetspeichermittel, zum Beispiel eine Diskette (Floppy Disk) oder eine Festplatte, zählen.
-
Alternativ kann das Aufzeichnungsmedium eine integrierte Schaltung sein, in der das Programm enthalten ist, wobei die Schaltung dazu angepasst ist, das betreffende Verfahren auszuführen oder bei seiner Ausführung verwendet zu werden.
-
Figurenliste
-
Wie die vorliegende Erfindung umgesetzt werden kann, wird jetzt beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben:
- 1 ist ein Blockdiagramm eines beispielhaften Verfahrens zum Vergleichen von zwei Zeichnungen,
- 2A und 2B sind jeweilige Beispiele für eine erste und eine zweite Zeichnung,
- 3A und 3B sind die erste und die zweite Zeichnung, nachdem sie expandiert worden sind,
- 4 bis 8, 9A und 9B und 10 veranschaulichen die zum Ermitteln der Bereiche ausgeführten Schritte,
- 11 veranschaulicht die Vielzahl von Zeichnungselementepaaren,
- 12 veranschaulicht das Ausrichten der Zeichnungselemente,
- 13A und 13B veranschaulichen eine Ansicht eines Objekts mit einer Maske auf den geänderten Teilen, und
- 14 ist ein Blockdiagramm der Schritte eines Beispiels für den Vergleich von zwei Ansichten.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Jetzt wird ausführlich Bezug auf beispielhafte Ausführungsformen der Offenbarung genommen, für die Beispiele in den zugehörigen Zeichnungen veranschaulicht werden. Wann immer es möglich ist, werden in den Zeichnungen durchweg die gleichen Beugzugszeichen verwendet, um auf die gleichen oder ähnliche Teile Bezug zu nehmen.
-
1 ist ein Blockdiagramm eines beispielhaften Verfahrens zum Vergleichen von zwei Zeichnungen.
-
Es sei angemerkt, dass die Schritte des in der 1 veranschaulichten Verfahrens durch einen Prozessor eines Computers umgesetzt werden können.
-
Die Schritte des im Anspruch 1 veranschaulichten Verfahrens können auch durch ein System durchgeführt werden, das Module zum Durchführen der unterschiedlichen Schritte des Verfahrens zum Vergleichen von zwei Zeichnungen der 1 umfasst, zum Beispiel ein Rechnersystem.
-
Der Kürze halber kann sich in der vorliegenden Beschreibung „Zeichnung“ auch auf die gezeichneten Flächen einer Zeichnung beziehen, und die Zeichnung kann in Computerdateien vorliegen. Zum Beispiel kann in einer Schwarz-auf-Weiß-Zeichnung die „Zeichnung“ die schwarzen Flächen bezeichnen.
-
Das Verfahren der 1 wird umgesetzt, um Zeichnungen zu vergleichen, die Zeichnungselemente umfassen. Falls die Zeichnungen technische Zeichnungen sind, so können die Zeichnungen Ansichten, Zeichnungsköpfe oder sogar Anmerkungen sein. Die Zeichnungen können gedruckt und anschließend gescannt worden sein.
-
In einem ersten Schritt S01 werden die Zeichnungselemente auf jeder Zeichnung identifiziert. Zum Beispiel kann jede Ansicht als ein Zeichnungselement einer Zeichnung identifiziert werden, der Zeichnungskopf kann ebenfalls als ein Zeichnungselement der Zeichnung identifiziert werden, und ein Anmerkungsblock kann als ein Zeichnungselement der Zeichnung identifiziert werden.
-
In einem zweiten Schritt S02 werden Paare entsprechender Zeichnungselemente ausgearbeitet. Dieser Schritt wird ausgeführt, indem zwischen der ersten Zeichnung und der zweiten Zeichnung Zeichnungselemente ermittelt werden, die ähnlich sind.
-
In einem dritten Schritt S03 werden in jedem Paar das erste Zeichnungselement und das zweite Zeichnungselement ausgerichtet.
-
Dann werden in einem vierten Schritt S04 die Zeichnungselemente verglichen.
-
Es sei angemerkt, dass in dem oben genannten Verfahren die beiden Zeichnungen verglichen werden, da jedes Zeichnungselement, das sie umfassen, mit einem entsprechenden Zeichnungselement verglichen wird. Falls ein Zeichnungselement nicht in einem Paar vorliegen kann (zum Beispiel, falls eine Ansicht während der Ausarbeitung der zweiten Zeichnung hinzugefügt worden ist), dann wird dieses Zeichnungselement automatisch als neues Zeichnungselement und als ein Unterschied betrachtet. Ein derartiges Zeichnungselement kann auch als ein verwaistes Zeichnungselement bezeichnet werden.
-
Die 2A ist ein Beispiel für eine erste Zeichnung. Diese Zeichnung umfasst eine Vielzahl von Zeichnungselementen. Das mit dem Bezugszeichen 20 bezeichnete Zeichnungselement ist eine Ansicht eines zylindrischen Objekts. Das mit dem Bezugszeichen 21 bezeichnete Zeichnungselement ist eine Seitenansicht eines Teils eines anderen Objekts, das in der Zeichnung vorhanden ist. Das mit dem Bezugszeichen 22 bezeichnete Zeichnungselement ist eine Seitenansicht eines Objekts. Das mit dem Bezugszeichen 23 bezeichnete Zeichnungselement ist eine Seitenansicht des Objekts des Zeichnungselements 22 entlang der Schnittlinie A-A'. Das mit dem Bezugszeichen 24 bezeichnete Zeichnungselement ist ein Anmerkungsblock. Das mit dem Bezugszeichen 25 bezeichnete Zeichnungselement ist der Zeichnungskopf einschließlich des Rahmens der Zeichnung.
-
Es sei angemerkt, dass ein Zeichnungselement in der vorliegenden Beschreibung sowohl eine Zeichnung als auch andere Elemente umfassen kann, wie zum Beispiel Pfeile, Abmessungen, Bezugnahmen (die Bezugnahmen der Zeichnung werden mit „XXXX“ bezeichnet, damit sie nicht mit den in der vorliegenden Beschreibung verwendeten Bezugnahmen verwechselt werden).
-
Die 2B ist ein Beispiel für die zweite Zeichnung. Diese zweite Zeichnung ist durch Ausführen von Änderungen an der ersten Zeichnung ausgeführt worden.
-
Diese zweite Zeichnung umfasst Zeichnungselemente, die alle den Zeichnungselementen der ersten Zeichnung der 2A entsprechen. Die zweite Zeichnung umfasst Zeichnungselemente, die mit den Bezugszeichen 20', 21', 22', 23', 24' und 25' bezeichnet sind. Es ist zu erkennen, dass die Zeichnungselemente 20 und 20' einander entsprechen und dass zwischen der ersten und der zweiten Zeichnung keine Änderung durchgeführt worden ist. Es ist ebenfalls zu erkennen, dass die Zeichnungselemente 21 und 21' einander entsprechen und dass zwischen der ersten und der zweiten Zeichnung eine Ecke geändert worden ist. Es ist ebenfalls zu erkennen, dass die Zeichnungselemente 22 und 22' einander entsprechen und dass zwischen der ersten und der zweiten Zeichnung die gleiche Ecke geändert worden ist. Es ist ebenfalls zu erkennen, dass die Zeichnungselemente 23 und 23' einander entsprechen und dass das runde Teil der ersten Zeichnung in ein eckiges Teil geändert worden ist. Es ist ebenfalls zu erkennen, dass die Zeichnungselemente 24 und 24' einander entsprechen und dass die Anmerkungen der zweiten Zeichnung geändert worden sind. Es ist ebenfalls zu erkennen, dass die Zeichnungselemente 25 und 25' einander entsprechen, da sie beide Zeichnungsköpfe sind, und dass der Text im Zeichnungskopf der zweiten Zeichnung geändert worden ist.
-
Die folgenden Figuren veranschaulichen ein Beispiel für die Identifizierung eines Zeichnungselements, wobei die gezeichneten Flächen der ersten Zeichnung und der zweiten Zeichnung expandiert werden.
-
In der 3A sind die gezeichneten Flächen der ersten Zeichnung expandiert worden.
-
Es sei angemerkt, dass in einem Schritt, der vor dieser Expansion ausgeführt wird, die erste Zeichnung und die zweite Zeichnung skaliert worden sein können, um Bilder von Pixeln zu ermitteln, die mit der ersten und der zweiten Zeichnung verknüpft sind.
-
Die Expansion wird durch Expandieren der gezeichneten Flächen der ersten Zeichnung ausgeführt. Jede Linie ist in dieser Zeichnung stärker gemacht worden. Dies ist durch Hinzufügen von gezeichneten Pixeln in jeder Richtung um jedes gezeichnete Pixel der ersten Zeichnung erfolgt.
-
Diese Expansion wird so durchgeführt, dass Buchstaben aus einem Text miteinander in Kontakt kommen. Die Texte der Bezugnahmen der Zeichnung sind ebenfalls expandiert worden, so dass sie in Kontakt mit den Linien kommen, die sie mit der Zeichnung verbinden. Die Abmessungen und Pfeile werden ebenfalls expandiert, so dass sie in Kontakt mit der Zeichnung kommen. Fachleute werden verstehen, um wie viel die Zeichnung expandiert werden muss.
-
Als ein Ergebnis ist jedes gezeichnete Pixel, das zu einem Zeichnungselement 20 bis 25 gehört, in Kontakt mit einem anderen gezeichneten Pixel, das zum gleichen Zeichnungselement gehört. Somit werden Pixelgruppen gebildet, die zusammenhängend sind.
-
In der 3B sind die gezeichneten Flächen der zweiten Zeichnung in einer ähnlichen Art und Weise expandiert worden.
-
Die 4 bis 8 veranschaulichen die Definition einer Vielzahl von Bereichen, die jeweils ein Zeichnungselement der ersten Zeichnung umfassen.
-
In der 4 sind Mittelpunkte 40 jedes Zeichnungselements platziert worden. In diesem Beispiel ist jeder Mittelpunkt der Schwerpunkt jeder Pixelgruppe oder das nächste Pixel der Gruppe zum tatsächlichen Schwerpunkt (somit sind alle Mittelpunkte in einer Pixelgruppe platziert).
-
In der 5 ist ein erstes Voronoi-Diagramm 50 durch Tesselierung der ersten Zeichnung und durch Bilden einer Kachel für jeden Mittelpunkt 40 gebildet worden (jeder Mittelpunkt ist ein Schwerpunkt im Sinne eines Voronoi-Diagramms).
-
Wie in der 5 zu erkennen ist, umfasst jede Kachel Pixel aus wenigstens zwei Pixelgruppen.
-
In jeder Kachel gibt es Pixel, die zur Pixelgruppe des Mittelpunkts 40 gehören. Es gibt auch Pixeluntergruppen, die zu einer anderen Pixelgruppe als der des Mittelpunkts 40 gehören.
-
In der 6 werden Zusatzmittelpunkte 60 für jede Pixeluntergruppe definiert. Diese Zusatzmittelpunkte 60 sind die Schwerpunkte jeder Pixeluntergruppe oder das nächste Pixel der Untergruppe zum tatsächlichen Schwerpunkt.
-
In der 7 wird ein neues Voronoi-Diagramm 70 gebildet, um neue Kacheln zu ermitteln, die jeweils nur einen Mittelpunkt der Pixelgruppe oder nur einen Zusatzmittelpunkt der Pixeluntergruppe umfassen. Hier werden alle Mittelpunkte und Zusatzmittelpunkte Mittelpunkte (oder Schwerpunkte) im Sinne eines Voronoi-Diagramms sein.
-
Wie in der Figur zu erkennen ist, umfassen einige Kacheln immer noch Pixel aus wenigstens zwei Pixelgruppen.
-
In jeder Kachel gibt es Pixel, die entweder zur Gruppe des Mittelpunkts der Kachel (der ein Mittelpunkt 40 oder ein Zusatzmittelpunkt 60 sein kann) zählen, oder Pixel, die zu einer anderen Gruppe als der des Mittelpunkts der Kachel zählen, und diese Pixel können neue Pixeluntergruppen bilden. Somit müssen die vorherigen Schritte erneut wiederholt werden.
-
Für jede neue Pixeluntergruppe werden neue Zusatzmittelpunkte 80 bestimmt, wie in der 8 veranschaulicht wird. Diese Zusatzmittelpunkte 80 sind die Schwerpunkte jeder neuen Pixeluntergruppe oder das nächste Pixel der neuen Untergruppe zum tatsächlichen Schwerpunkt.
-
In der 8 wird ein neues Voronoi-Diagramm gebildet, um neue Kacheln zu ermitteln, die jeweils nur einen Mittelpunkt 40 der Pixelgruppe oder nur einen Zusatzmittelpunkt 60 der Pixeluntergruppe oder nur einen neuen Zusatzmittelpunkt 80 der Pixeluntergruppe umfassen.
-
Wie in der 8 zu erkennen ist, gibt es immer noch Kacheln, die Pixel aus unterschiedlichen Gruppen umfassen.
-
Der Kürze halber wird die Wiederholung der vorherigen Schritte nicht in mehr Figuren gezeigt, und die Endergebnisse werden in der 9A und der 9B veranschaulicht.
-
In der 9A wird ein Voronoi-Diagramm 90 in der ersten Zeichnung gezeigt, in dem jede Kachel nur Pixel aus einer einzelnen Pixelgruppe umfasst, dieses Diagramm ist durch Wiederholen der vorherigen Schritte ermittelt worden.
-
In der 9B wird ein Voronoi-Diagramm 90' in der zweiten Zeichnung gezeigt, in der jede Kachel nur Pixel aus einer einzelnen Pixelgruppe umfasst. Das Verfahren zum Ermitteln dieses Diagramms ist das gleiche wie das unter Bezugnahme auf die erste Zeichnung in der 4 bis 8 beschriebene.
-
Es ist möglich, einen Bereich zu definieren, der nur Pixel aus einer einzelnen Pixelgruppe und somit nur Pixel aus einem einzigen Zeichnungselement einer Zeichnung umfasst, indem die Kacheln kombiniert werden, die Pixel der gleichen Pixelgruppe umfassen.
-
Eine Veranschaulichung der Kombination von Kacheln in einen Bereich 100 ist in der 10 veranschaulicht worden. Diese Kombination kann automatisch oder auch manuell durch einen Nutzer erfolgen. Ein Nutzer kann auch manuell das Diagramm korrigieren, um sicherzustellen, dass jede Kachel Pixel einer einzelnen Pixelgruppe umfasst. Diese manuelle Korrektur kann ausgeführt werden, falls die Expansion ein Teil der Zeichnung isoliert gelassen hat, das in eine Pixelgruppe eingeschlossen werden sollte, oder auch falls die vorherigen Schritte nur eine vordefinierte Anzahl von Malen wiederholt werden.
-
Nach dem Kombinieren der Kacheln, die Pixel der gleichen Gruppe umfassen, werden Bereiche ermittelt, die in der anfänglichen ersten und zweiten Zeichnung zum Abgrenzen der Zeichnungselemente der Zeichnungen ausgewiesen oder angewendet werden können.
-
Es ist dann möglich, eine Vielzahl von Zeichnungselementepaaren auszuarbeiten, die jeweils ein erstes Zeichnungselement und ein zweites Zeichnungselement, das dem ersten Zeichnungselement des Paares entspricht, umfassen. Zum Beispiel kann das Ausarbeiten der Paare den SURF- (Speeded Up Robust Features) Algorithmus oder den SIFT- (Scale-Invariant Feature Transform) Algorithmus oder den Harris Corner Detektor-Algorithmus verwenden.
-
Zum Beispiel kann eine Umsetzungsform der Ausarbeitung einer Vielzahl von Zeichnungselementepaaren Folgendes umfassen:
- - für jede Zeichnung Ermitteln aller in der Zeichnung vorhandenen Merkmale unter Verwendung des SIFT- oder SURF-Merkmalsdetektors oder eines Harris Corner Detektors;
- - Neugruppieren der Merkmale je vorher identifiziertem Zeichnungselement. Somit werden jedem Zeichnungselement eine bestimmte Anzahl von Merkmalen zugeordnet;
- - Berechnen eines Übereinstimmungsgrads für alle möglichen Zeichnungselementepaare. Es ist zum Beispiel möglich, SURF-Merkmale zu verwenden, die Eigenschaften aufweisen, die es ermöglichen zu identifizieren, welche Merkmale zwischen zwei Zeichnungselementen übereinstimmen. Auf Basis der Übereinstimmungsgröße und der Verteilung der Linienlänge, die ähnliche Merkmale verbinden, ist es möglich, dass sie einen Grad aufweisen, der darstellt, wie ähnlich sich Zeichnungselemente sind.
- - Verknüpfen jedes Zeichnungselements mit einem anderen durch Sortieren der Übereinstimmungsgrade und Auswählen des Zeichnungselements mit dem höchsten Übereinstimmungsgrad.
-
Es sei angemerkt, dass das Verwenden von Übereinstimmungsgraden ermöglicht, potentielle Übereinstimmungen von Zeichnungselementen, die nicht übereinstimmen, zu bestimmen (falls es zum Beispiel ähnliche Übereinstimmungsgrade gibt oder falls irgendein Übereinstimmungsgrad zu niedrig ist).
-
In der 11 sind die Zeichnungselementepaare P1, P2, P3, P4, P5 und P6, die aus der ersten Zeichnung und in der zweiten Zeichnung ermittelt worden sind, dargestellt worden. Das Paar P1 umfasst die Zeichnungselemente 20 und 20', das Paar P2 umfasst die Zeichnungselemente 21 und 21', das Paar P3 umfasst die Zeichnungselemente 22 und 22', das Paar P4 umfasst die Zeichnungselemente 23 und 23', das Paar P5 umfasst die Zeichnungselemente 24 und 24', das Paar P6 umfasst die Zeichnungselemente 25 und 25'.
-
Die Zeichnungselemente sind alle unter Verwendung der Bereiche ermittelt worden, die der ersten Zeichnung in der ersten Zeichnung entsprechen, und der Bereiche, die der zweiten Zeichnung in der zweiten Zeichnung entsprechen, die möglicherweise gescannt worden ist. Es ist möglich, dass diese Zeichnungen wegen des Scannens fehlausgerichtet sind.
-
Daher werden die Zeichnungen jedes Zeichnungselements zueinander ausgerichtet, wie in der 12 veranschaulicht wird. Zum Beispiel kann das Ausrichten von zwei Zeichnungselementen das Verwenden der Merkmale der Zeichnungselemente umfassen, die unter Verwendung von SURF, SIFT oder Harris ermittelt worden sind. Diese Merkmale können Ecken sein, und zum Beispiel können drei übereinstimmende Ecken jedes Zeichnungselements verwendet werden, um das Ausrichten durchzuführen (übereinstimmende Ecken können unter Verwendung der SURF-Eigenschaften der Merkmale bestimmt werden).
-
Das Ausrichten kann auch über eine Affintransformation durchgeführt werden, indem das Achsensystem von zwei auszurichtenden Zeichnungselementen (zum Beispiel einer Ecke) auf dem gleichen spezifischen Merkmal mit der gleichen Ausrichtung platziert wird.
-
Es sei angemerkt, dass andere Arten von Transformationen verwendet werden können. Zum Beispiel kann eine Dreiecks-Tesselierung ausgeführt werden, um jedes Zeichnungselement in mehrere Zellen zu unterteilen, bevor jede Zelle unter Verwendung einer Affintransformation ausgerichtet wird. Diese Transformation stellt bessere Ergebnisse bereit, falls eines der Zeichnungselemente nichtlinearer Verformung unterzogen worden ist (zum Beispiel wegen der Verwendung eines Scanners, der Welligkeit erzeugt).
-
Nach dem Ausrichten der Zeichnungselemente ist es möglich, die Zeichnungselemente zu vergleichen, zum Beispiel durch Subtrahieren eines Zeichnungselements vom anderen Zeichnungselement des Paars. Vorzugsweise und wie unter Bezugnahme auf die 14 beschrieben wird, sollten Bildfilter vor der Subtraktion und nach der Subtraktion angewendet werden, um nur die wichtigsten Änderungen zwischen den beiden Zeichnungselementen zu ermitteln. Da die Zeichnungen gescannt worden sind, können minimale und nicht wahrnehmbare Unterschiede bleiben, auch nachdem die Zeichnungen ausgerichtet worden sind, wie später beschrieben wird, ermöglicht es die Verwendung von Filtern, die am wenigsten wichtigen Änderungen zwischen den Zeichnungselementen außer Acht zu lassen.
-
Da die Zeichnungselemente ausgerichtet und vorzugsweise gefiltert worden sind, werden die Änderungen zwischen den beiden Zeichnungen das Ergebnis dieser Subtraktion sein.
-
Für jedes Zeichnungselementepaar kann eine Maske ausgearbeitet werden, die Flächen aufweist (zum Beispiel hervorgehobene Flächen, zum Beispiel halbtransparente Flächen einer bestimmten Farbe), welche die Unterschiede zwischen dem ersten Zeichnungselement und dem zweiten Zeichnungselement des Paares umgrenzt.
-
Diese Maske kann den Zeichnungselementen des Paares überlagert werden.
-
In der 13A und in der 13B ist die ausgearbeitete Maske für die Zeichnungselemente 21 und 21' dem Zeichnungselement 21 und dem Zeichnungselement 21' überlagert.
-
In diesem Beispiel ist die Fläche der Maske, die den Unterschied umgrenzt, eine halbtransparente graue Fläche MSK. Alternativ kann eine Maske das Negativ sein, und sie kann überall halbtransparent sein, außer um die Unterschiede herum, wo sie transparente Flächen aufweisen wird, welche die Unterschiede umgrenzen.
-
Die 14 ist ein Blockdiagramm der Schritte eines Beispiels für den Vergleich von zwei Ansichten.
-
In diesem Beispiel wird ein erstes Zeichnungselement 141 mit einem zweiten Zeichnungselement 142 verglichen, und die Wirkung der Schritte kann entlang der Linie L-L' der Zeichnungselemente veranschaulicht werden.
-
In einem ersten Schritt S101 wird die Zeichnung des ersten Zeichnungselements unscharf gemacht, zum Beispiel unter Verwendung eines Gaußschen Weichzeichners. Die Zeichnung des zweiten Zeichnungselements wird in einem entsprechenden Schritt S101' unscharf gemacht.
-
Die unscharf gemachten Zeichnungen werden im Schritt S102 subtrahiert.
-
Eine Schwellenwertanwendung wird auf das Ergebnis der Subtraktion im Schritt S103 ausgeführt. Wie in der Figur zu erkennen ist, kann diese Schwellenwertanwendung kleine Unterschiede filtern, die als nicht relevant betrachtet werden können. Zum Beispiel kann die Schwellenwertanwendung Rauschen herausfiltern, das während der Druck- und Scan-Schritte auftritt.
-
Um die Maske zu ermitteln, welche die Unterschiede umgrenzt, wird das Ergebnis der Schwellenwertanwendung unter Verwendung eines anderen Unscharfmachens expandiert (Schritt S104), dann wird eine andere Schwellenwertanwendung durchgeführt (Schritt S105), und ein anderes Unscharfmachen wird ausgeführt, um die Kanten der Maske, die dann ermittelt wird, weich zu machen.
-
Zusätzlich kann ein Nutzer entscheiden, wie die Maske auf die Zeichnungen überlagert werden sollte, zum Beispiel ihren Transparenzgrad oder ihre Farbe.
-
Somit zeigen die oben beschriebenen Ausführungsformen alle die Unterschiede zwischen zwei Zeichnungen und ihren Zeichnungselementen mit minimalen parasitären Unterschieden. Die oben genannten Verfahren sind auch in der Lage, Zeichnungen zu vergleichen, die auf mehreren Seiten gedruckt sind (da es die Zeichnungselemente sind, die verglichen werden). Die Verfahren sind für Zeichnungen angepasst, die gedruckt und gescannt sind. Die Verfahren können auch Zeichnungen behandeln, in denen die Ansichten verschoben worden sind.