- Stuettler.org

Werbung
Laborübungen 5H
V1.0
___________________________________________________________________________
Laborübungen1
1.Korrelation und einfache Bildverarbeitung
1.1Einführung Korrelation
1.2Vergleich mit Fourier,..
1.3Ein Korrelationsbeispiel
1.4Bildverarbeitung/Mustererkennung
1.5zwei Beispiele : Handschrifterkennung, Formularverarbeitung
2. Fuzzy-Rauschfilter
3. automatischer Filterentwurf
4. automatischer Reglerentwurf
5. DAB
1.Korrelation und einfache Bildverarbeitung
1.1Einführung Korrelation
Mit Korrelation kann festgestellt werden ob Signale ähnlich sind ( ob sie korrelieren ). Der
Korrelationsalgorithmus lautet :
 ( )   u1 (t ) * u 2 (t   ) * dt
Das Ergebnis  ist groß, wenn u1 und u2 ähnlich sind, sonst klein. Ist u2 dem u1 ähnlich aber verschoben, so
wird das so erkannt, daß u2 mit dem Parameter  verschoben wird. Man kann sich das Korrelationsintegral für
viele verschiedene Verschiebezeiten  ausgewertet denken. Dann erhält man eine von der Verschiebezeit
abhängige Ähnlichkeitszahl also ein ( ). ( ) bezeichnet man als Korrelationsfunktion. Sie hat bei der
Verschiebezeit ein Maximum, bei der die Signale am ähnlichsten sind. Korreliert man zwei Sinussignale gleicher
Frequenz und ohne Phasenverschiebung erhält man bei =0 ein Maximum für die Korrelationsfunktion.
Korreliert man ein um 90% phasenverschobenes Sinussignal erhält man das Maximum bei T/4 usw. Die
Integrationsgrenzen sind bei periodischen Signalen mit der Wahl to – tu = T optimal. Ganzzahlige Vielfache von
T sind möglich aber nur sinnvoll, wenn die Signale rauschbehaftet sind. Das Rauschen mittelt sich dann besser
weg. Ist die Periode von periodischen Signalen nicht bekannt, soll ein hohes – erzwungenermaßen
ungeradzahliges – Vielfaches der geschätzten Periode integriert werden.
Sehr oft wird die Korrelation nicht analytisch eingesetzt sondern numerisch. Dann werden tatsächlich für
verschiedene Verschiebezeiten je ein Integral berechnet –in Summe also eine Vielzahl von Integralen. Die
Korrelation ist nur effizient, wenn die Signale vor der Korrelation von eventuellen Gleichspannungsanteilen (
arith. Mittelwert ) befreit werden.
Die Detektion der Ähnlichkeit ist etwas was Menschen und Tiere in Bereichen für die sie Sensorik besitzen
hervorragend beherrschen. Es ist auch wichtig zur Erkennung von Gesichtern, Buchstaben, Melodien, Worten,..
Technisch ist dieses Problem nur sehr schwierig zu lösen. In der Bildverarbeitung, der Spracherkennung finden
sich Ansätze für brauchbare technische Lösungen die oft auf der Korrelation beruhen.
1
a) die eigentlichen Übungsaufgaben sind kursiv gedruckt
b) weitere Beispiele ( LKW-Sattel-Lenkungsregler, Kran-Regler zur Vermeidung von Lastpendelungen,
Hebezeuge, Hydraulikkreis, u.a ) finden Sie auf dem Internet insbesondere unter ‚Labor EMS-Chemie’ und
‚einfacheAufgaben, Praxisaufgaben, realisierte Projekte’
http://members.aon.at/vtv/spa.htm
1/10
Laborübungen 5H
V1.0
___________________________________________________________________________
1.2 Ähnlichkeit zum selektiven Voltmeter, zur Fourierreihe, zur Faltung, zur
Modulation/Demodulation2
Auch bei der Fourierreihe stellt das Fourierintegral eigentlich nichts anderes als eine Korrelation von u(t) und
sin(w0t) dar.
Aufgrund der Tatsache, daß jedes Signal durch Superposition einer Vielzahl von
Sinusschwingungen unterschiedlicher ( in geradzahligem Verhältnis stehenden ) Frequenzen approximierbar ist
und der Tatsache, daß die Phasenlage dieser Sinusschwingungen verschieden ist, wird deutlich, daß es genau die
Korrelation ist, die jenes leistet was wir von der Fourieranalyse erwarten – nämlich die Berechnung der Stärke
des Vorhandenseins einer jeden Sinusschwingung im Signal. Die Stärke des Vorhandenseins ist die Amplitude
der Sinusschwingung. Es ist also keineswegs verwunderlich, daß Fourierreihenintegral und Korrelation beinahe
identisch sind. Der einzige Unterschied liegt darin, daß das Sinussignal nicht über das zu analysierende Signale
hinweggeschoben wird, was ja die Berechnung einer Vielzahl von Integralen erfordern würde ( Numerik ) oder
analytisch schwierig ist. Diese Verschiebung würde die Phase ( Zeitlage ) des Sinussignales liefern. Die
mühselige Verschiebung wird günstig ersetzt durch Korrelation eines Sinussignales mit Phase 0 und eines
orthogonalen Signales ( = Kosinussignal ).
Korrelation, Verschiebung nötig
um die Phase zu detektieren
 ( )   u1 (t ) * u 2 (t   )dt
Fourierreihe
orhtog. Kosinussignal
(~zur Phasenbestimmung)
T
2
bi   u (t ) * sin( i *  0 * t )dt
T 0
T
ai 
2
u (t ) * cos(i *  0 * t )dt
T 0
Fourierreihe
Darstellung als Amplitude
und Phase
A  ai2  bi2
a
bi
  arct ( i )  max 

360
T
Die Vermischung beider ist dasselbe wie das gesucht Sinussignal mit seiner von 0 verschiedenen Phase. Dieser
Trick ist nur möglich weil, einerseits jedes Signal in Sinussignale ( wi = i*wo) mit den unterschiedlichen Phasen
phi i zerlegbar ist und andererseits, weil jedes phasenverschobene Sinussignal in Sinus und orthogonalen
Kosinus zerlegt werden kann.
Der Verschiebemechanismus ist nötig, wenn die Ähnlichkeit von Signalen detektiert werden soll, von denen
keines der beiden in orthogonale Signale zerlegt werden kann. Allerdings ist ein mit der Korrelation völlig
gleichwertiger Weg die Zerlegung der beiden Signale in Sinussignale – was einer Transformation in den
Freqeunzbereich betrifft und Vergleich der Spektren der Signale. Bei diesem Weg wird die Verschiebetechnik
nicht benötigt und sie ist deshalb der Korrelation numerisch ( was die Rechenzeit anbetrifft ) überlegen. In der
Bildverarbeitung und Spracherkennung wird deshalb auch oft Frequenzbereich3 verglichen und nicht mit
Korrelation.4 Genauso werden in der Rundfunktechnik die Zeitsignale in verschiedene Frequenzbereich
transformiert, weil dort gute Trennungsmechanismes ( Filter ) realisierbar sind. Eine Transformation in
verschiedene Signalformen im Zeitbereich und eine Trennung in demselben anhand der unterschiedlichen
Signalformen wäre mit der Korrelation prinzipiell möglich. Damit ist schon angedeutet, daß möglicherweise die
Korrelation und die Demodulation eines amplitudenmodulierten Signales gar nicht so unterschiedlich sind.
Tatsächlich werden bei der Demodulation ja auch zwei Signale zusammenmultipliziert und gemittelt ( = Integral
) was wiederum genau der Korrelation entspricht : es wird detektiert wie stark der Träger im modulierten Signal
vorkommt. Wenn die Phasenlage des Trägers bekannt ist, ist dabei kein Verschiebemechanismus nötig. Ist die
Phasenlage nicht bekannt ( trägerlose Funkübertragung ) bietet sich der Trick mit Kosinus /Sinus an.
2
interessant wäre auch der Zusammenhang zu 'wavelets'
weil sich das Spektrum eines Sprechsignales zeitlich ändert müssen sogenannte windowing – Techniken
angewendet werden. Dabei werden Zeitfenster mit unterschiedlichen Durchlaßkurven über das Zeitsignal
geschoben und der zu jedem Zeitpunkt sichtbare Teil des Signales in Frequenzbereich transformiert. Das
Ergebnis ist ein zeit- und frequenzabhängiges Spektrum ( JTFT .. joined time frequency transformation ). JTFT
ist ein wertvolles Forschungsgebiet ( Radarflugzeugerkennung, Spracherkennung, Handschrifterkennung, ct.. )
4
Der Vergleich im Frequenzbereich hat in der Bildverarbeitung einen weiteren Vorteil : die Unterscheidung von
großen und kleinen Objekten ist mit Korrelation aufwendig; im Frequenzbereich erscheinen diese aber einfach
als gedehnte oder gestauchte Frequenzmuster, das Muster aber ist dasselbe. In der Sprachverarbeitung gilt
ähnliches : dasselbe Wort weist je nach Sprechweise und Tonlage dasselbe Frequenzmuster auf, es ist nur
gestaucht/gedehnt oder im Frequenzbereich verschoeben.
3
http://members.aon.at/vtv/spa.htm
2/10
Laborübungen 5H
V1.0
___________________________________________________________________________
Signal und Träger
vermischt
Signalanteil herausgefiltert
mit Demodulation ( Korrelation ohne Verschiebung)
fs
fs
fT
Signal und Träger
vermischt
Signalanteil herausgefiltert
mit Demodulation ( Korrelation ohne Verschiebung)
fs
x2
cos(6.28fT)
+
x0.5
sin(6.28fT)
fs
+
fT
x2
Weil das selektive Voltmeter eigentlich nur das Fourierreihenintegral für eine selektive Frequenz auswertet, also
identisch mit einem Glied der Fourierreihe ist, gilt für dieses dasselbe wie für die Fourierreihe. Auch beim
selektiven Voltmeter wird der Trick der Korrelation mit dem Sinus und dem Kosinussignal angewendet, um den
Verschiebemechanismus der Korrelation vermeiden zu können.
x2
Signal
cos(6.28f)
+
x0.5
sin(6.28f)
Afs
+
x2
Das selektive Voltmeter detektiert selektiv wie stark die Frequenz f im Signal enthalten ist.
http://members.aon.at/vtv/spa.htm
3/10
Laborübungen 5H
V1.0
___________________________________________________________________________
1.3 Korrelationsbeispiel
Es soll untersucht werden, ob ein Dreiecksignal das völlig verrauschtes ist mit Korrelation im verrauschten
Signal gefunden werden kann.
%detect availability of a known signal within a noisy signal
a=[rand(1,475) [1:1:50]/50 rand(1,475)]; %signal in middle of this vector
plot(a);title('signal');pause;
a=[rand(1,475) [1:1:50]/50 rand(1,475)]-0.5; % eliminate offset!
a=a+rand(1,1000)-0.5;
%noise added
plot(a);title('noisy signal : noise of same amplitude than signal');pause;
b=[1:1:50]/50-0.5;
%signal to detect, no offset!
cf=xcorr(a,b);
%matlab correlation
plot(cf); title('signalposition indicated at peak of correlation result')
pause;
%try again but with longer correlation time
%due to this error is smaller, signal better detected
a=[rand(1,4900)*0 [1:1:50]/50 rand(1,4900)*0];
plot(a);title('correlate signal again, but with long correlation time');
pause;
a=[rand(1,4900) [1:1:200]/200 rand(1,4900)]-0.5;
a=a+2*rand(1,10000)-1;
%now we risc double noise
plot(a);title('noisy signal : noise of double amplitude compared to signalamplitude');pause;
b=[1:1:200]/200-0.5;
cf=xcorr(a,b);
plot(cf);title('as the peak shows, signal can more clearly be detected')
Ergebnisse :
noisy signal : noise of the same amplitude than signal
1
signal
1
0.5
position of signal is at peak of correlation function result
10
5
0
0.5
0
-0.5
-5
-1
0
0
500
0
1000
500
1000
correlate below signal again, but with long correlation time noisy signal : noise of double amplitude compared to signal-amplitude
1
2
0.5
0
0
5000
10000
500
1000
1500
2000
as the peak shows, signal can more clearly be detected
20
0
-2
0
0
-20
0
5000
10000
0
0.5
1
1.5
2
4
x 10
Wir werden im folgenden Mustererkennung im Zeitbereich mit der Korrelationstechnik anwenden.5 Bei Bildern
ist die Ausdehnung der Korrelation auf zwei Dimensionen nötig.
5
alle diese Techniken können durch ein oder zweidimensionale Transformationen in den Frequenzbereich und
Vergleich im Frequenzbereich effizient ersetzt werden
http://members.aon.at/vtv/spa.htm
4/10
Laborübungen 5H
V1.0
___________________________________________________________________________
1.4 Bildverarbeitung/ Mustererkennung
Zur Längenmessung und einfachen Positionsbestimmungen sind hoch auflösende ( 4000 Pixel und mehr )
Zeilenkameras zu empfehlen. Wichtig bei allen Bildverarbeitungsproblemen ist eine gute und zeitinvariante
Beleuchtung. Zeilenkameras verfügen meist über einen Centronics, I2C , RS422- Schnittstelle. Seltener wird
eine PC-Karte mitgeliefert ( ISA, PC104 ).
Sollen Abstände in der Ebene oder flächige Formen ( zum Bsp. zur Bestückungskontrolle,.. ) erkannt werden
können sind CCD-Kameras notwendig. Hochauflösende Varianten ( über 2000x2000 Pixel ) sind verfügbar aber
teuer. Die Pixel von CMOS-CCDs können direkt addressiert und ausgelesen werden - die Framegrabberkarte
kann entfallen. CMOS-CCDs sind für Eignekonstruktionen sehr gut geeignet. Für DSP's sind Frame Grabbersysteme erhältlich. Seltener für VME- und Mikrokontrollersysteme. Empfehlenswert ist die Verwendung
von käuflichen Bildanalyseprogrammen ( AdOculus,.. ) . Teilweise sind sie auch als DLL verfügbar und können
in eigene Programme integriert werden. Leistungsfähige Bildverarbeitungssysteme sind sehr teuer. . Kleine aber
universelle Systeme ( z.B. Matsushita ) werden für einfachere Aufgaben mit Erfolg eingesetzt.
Beispiele für Applikationen :
biometrische Zutrittsysteme ( Gesichtserkennung, Irisvergleiche .. )
Farbahn/ Verkehrszeichen/ Fahrzeugerkennung , optisches Radar
Fertigungskontrolle ( Platinen,.. ), optische Prüfstandüberwachung
Die mathematische Basis bilden Korrelation, JTFT, Korrelation im Frequenzbereich und diskrete
Identifikationsalgorithmen.
Bildverarbeitungsprogramme bieten u.a. folgende Funktionen :
-
Kantenerkennung, Konturpukteverkettung
Schärfung
Histogramm und Histogrammverbesserung
Mittelwert, Maximalwert, Minimalwert
Hochpaß, Tiefpaß, Addition, Subtraktion, XOR
Mustererkennung, Texterkennung
Bildfolgedifferentiation
Iterative Verbesserung aus Bildfolgen ( Bildauflösungs/Bildqualiätsverbesserung )
Automatisches Zählen
Verschieden Bilddarstellungen
Zerlegung von Bildern in drei Farbkanäle
Kontur- und Objektverfolgung
Umrechnung von Bildformaten
Houghtransformation o.ä. zur Lageerkennung
a) Mustererkennung mit Projektionen :
Zwei oder mehr Projektionen werden als
Mustersignale abgespeichert. Die Mustersignale
werden mit den Projektionen des zu erkennenden
Objektes korreliert. Die Projektionen haben den
Vorteil, daß die Korrelation eindimensional
erfolgen kann. Nachteil : die Projektionen des zu
erkennenden Objektes müssen berechnet werden.
Zwei Projektionen des Buchstabens 'e' :
http://members.aon.at/vtv/spa.htm
e
5/10
Laborübungen 5H
V1.0
___________________________________________________________________________
b) 2d-Korrelation zur Mustererkennung :
Die Musterbilder und das zu erkennende Bild sind als Matrix ( Sobelmatrix ) gespeichert und werden einer 2dKorrelation ( eigentlich Kreuzkorrelation ) unterzogen. Die Korrelation ergibt ein Maximum für jenes
Musterbild das mit dem zu erkennenden Objekt am meisten übereinstimmt.
Detektierung linker Kanten
mit einer kleinen Mustermatrix :
-2
-2
-2
-2
o.:
-1
-2
-1
-2
-2
-2
-2
2
2
2
2
0
0
0
1
2
1
2
2
2
2
Kanten unten:
-2
-2
2
2
o.:
-1
0
1
-2
-2
2
2
-2
-2
2
2
-2
0
2
-1
0
1
Erkennung von o's ( Patternmatching ) :
-2
-2
2
2
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
4.5
4.5
4.5
-1
-1
-1
-1
4.5
-1
-1
-1
4.5
-1
-1
4.5
-1
-1
-1
-1
-1
4.5
-1
-1
4.5
-1
-1
-1
4.5
-1
-1
-1
-1
4.5
4.5
4.5
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
Die Mustermatrix wird über die Bildmatrix geschoben und an jeder Stelle wird die gewichtete Summe aller
Bildpixel berechnet. Als Gewichte fungieren die Werte der Mustermatrix ( = Korrelation ). Beachten Sie, daß der
Mittelwerte einer jeden Matrix 0 sein soll. Günstig ist es außerdem wenn die Elementesumme eines jeden
Zeilenvektors und jedes Spaltenvektors der Mustermatrix etwa 0 ergeben. Empfehlenswert ist die Generierung
der Mustermatrix mit Optimierungsverfahren.
Je größer die Kantenmusermatrix umso besser werden kurze Kantenunterbrechungen überbrückt. Die
Kantenmustermatrix muß aber nicht die Länge der Kanten lang sein. Dh. Sie erkennt Kanten beliebiger Länge.
Eine Matrix zur Erkennung eines Objektes hingegen muß exakt so groß sein wie das Objekt in der Bildmatrix
und die Lage muss gleich sein.
Sei Mk die k-te Mustermatrix und B die Bildmatrix.
f (M k ) 
Max (  (M
ii , jj 1.. dim( B )
Matrix zum Schärfen
(Punktdetektierung)
-1
-1
-1
-1
8
-1
-1
-1
-1
i
k
i, j
j
* Bii i , jj  j ))  Max
k
zum Weichzeichnen :
0.25
0.25
0.25
0.25
0.5
0.25
0.25
0.25
0.25
c) Segmentierung zur Objekterkennung :
Ein Beispiel für eine Segmentierungsalgorithmus : Die Kontur eines Objektes wird Pixel für Pixel in eine
sogenannte Richtungskette zerlegt:
Zu Segmentierendes Bild:
Richtungsreferenz :
3 2 1
4 P 0
5 6 7
http://members.aon.at/vtv/spa.htm
Liefert für den Startpunkt (3,2) die Richtungskette :
600006646646622442242022
Die Richtungskette wird in ihrer Länge normiert und
kann mit einer Vergleichskette korreliert werden.
6/10
Laborübungen 5H
V1.0
___________________________________________________________________________
d) Zum Zwecke der Objektverfolgung in Bildern mit nicht konstantem Hintergrund kann der
Algorithmus beschleunigt werden :
1. Die Form des zu verfolgenden Objektes ist meist konstant. Allenfalls ändert sich neben der Position auch
seine Lage und Größe. Dh. nur eine eventuelle zu drehende/verkleinernde/vergrößernde Mustermatrix reicht.
2. Nicht die ganze Bildmatrix muß abgesucht werden, weil durch Extrapolation eine vermutete Position
bestimmt werden kann. Von dieser vermuteten Position ausgehend wird das Objekt schnell gefunden sein.
3. Ist der Hintergrund unbeweglich fest, kann die Objektverfolgung einfachst auf dem Wege der Differentiation
der Bildfolge ermittelt werden ( Differenzbildung ).
Einige Schwierigkeiten bei der Objekterkennung :
a) Einfluß der Objektgröße
Die Mustermatrix einer Objektform muß in allen Größenstufen mit dem Bild korreliert werden! Der
Rechenaufwand steigt beträchtlich. Besser eignet sich ein Vergleich im Frequenzbereich.
b) Einfluß der Objektentfernung
Die Objektentfernung soll möglichst konstant sein ( siehe auch a) ). Ansonsten muß mit einer Stereokamera die
Entfernungen der Objekte bestimmt werden. Dazu kann zuerst eine Kantenerkennung für beide Kamerabilder
durchgeführt werden, dann wird die Entfernung der Kanten aus dem Versatz in beiden Bildern bestimmt. Die
Kanten werden soweit möglich Entfernungsebenen zugeordnet, die Mustermatrizen der Entfernung entsprechen
skaliert und ein Objekterkennungsalgroithmus gestartet.
c) Einfluß der Objektdrehung
Wenn das zu erkennende Objekt verschiedene Drehlagen einnehmen kann, steigert sich der Rechenaufwand
enorm, weil auch die Mustermatrix in alle möglichen Drehlagen gedreht werden muß. Erleichterung schafft die
Houghtransformation. Sie liefert mit einigem Rechnaufwand den Drehwinkel von Geraden.
d) Einfluß von Schatten
Schatten sind nicht ohne weiteres von Objekformen zu trennen. Man soll deshalb unbedingt für eine allseitige
Ausleuchtung sorgen!
e) vermischte Formen
Sollen komplexere Formen erkannt werden ist die Methode über die Mustermatrix aufgrund ihrer Vielzahl nicht
geeignet. Besser ist es, das betrachtete Bild zunächst in grober Auflösung darzustellen und auf einfach Formen
zu untersuchen. Die Wahrscheinlichkeit des Zutreffens dieser einfachsten Formen dient einer ersten
Klassifikation des Objektes. Ähnlich schreitet man in Bildern immer feinerer Auflösung fort um Details zu
registrieren. Die Objektform und die Detailformen führen über eine Datenbank zum gesuchten Objekt.
1.5 Zwei Beispiele zur Bildverarbeitung/Mustererkennung :
a).Automatische Auswertung für Multiple-Choice Tests
1. Einleitung
Systemvoraussetzungen sind : Einzugsscanner mit 40 Blatt - Schacht, Textverarbeitung.
Die Vorgehensweise zur automatischen Analyse der Tests ist wie folgt :
1. Der Multiple-Choice Test wird mit einer Textverarbeitung erstellt.
2. Das Auswerteprogramm wird gestartet.
3. Hintereinander werden der unausgefüllte, der mit allen Markierungsmöglichkeiten versehener Test, dann der richtig angekreuzte Test und
schließlich ein Test mit Markierung der Markierungsmöglichkeiten in der Kopfzeile in den Scanner gelegt und vom Programm verarbeitet.
4. Die zu bewertenden Tests werden eingelegt ( Einzugsscanner nötig ! ) und verarbeitet
5. Das Programm druckt die Katalognummer-Notenliste und eventuell eine Statistik
http://members.aon.at/vtv/spa.htm
7/10
Laborübungen 5H
V1.0
___________________________________________________________________________
2. DerTest. Der Testkopf enthält digital einfach verarbeitbare Daten :
Miko Magnetfeld1
Klasse6 : 2A 2B 2F
Jahr : 98 99 00 01
Name :
7
Kat.N .: 0 1 2 3 4 5 6 7 8 9 / 0 1 2 3 4 5 6 7 8 9
Pu:
Note
:
Kreuzen Sie die richtige Aussage an : Der Kehrwert der Impedanz Z ist die
a) Reaktanz b) Scheinleitwert c)Admittanz
d)Blindleitwert
e)Induktanz
Akzeptanz
Kreuzen Sie die richtigen Antworten an : Der Effektivwert an einer 230V Steckdose ist
a) jene Gleichspannung die in einem ohmschen Widerstand dieselbe Wärmewirkung wie die
Wechselspg. erzeugt
b) =Us*0.707 c) 330V
d) der quadratische Mittelwert der Spannung
e) der
Mittelwert der Spannung
Kreuzen Sie die richtigen Aussagen an :
a) U an einer Drossel kann sich sprunghaft ändern
ändern
c) U an einem Kondensator kann sich sprunghaft ändern
ändern
a) I in L kann sich sprunghaft
d) I in C kann sich sprunghaft
. . .
3. Programmübersicht ( Pseudocode )
Modules
calc_mean(matrix;mean)
loop i,j sum = sum + matrix(i,j)
mean = sum/(i_max*j_max)
calc_mean_radius(matrix,radius;mean_with_radius)
loop i,j
loop k,l sum = sum + matrix(i+radius,j+radius)
mean_with_radius(i,j) = sum/(radius*radius)
sum =0
calc_ deviation(matrix;deviation_x, deviation_y)
loop i,j
deviation_x = -matrix(i,j)+matrix(i,j+1)
deviation_y = -matrix(j,i)+matrix(j,i+1)
calc_positions(matrix,position)
calc_deviations(matrix; deviation_x, deviation_y)
calc_mean(matrix;mean
calc_mean_radius(matrix;mean_with_radius)
loop i,j
if sign(deviation_x(i,j)=-sign(deviation_x(i+1,j) and
sign(deviation_y(i,j)=-sign(deviation_y(i+1,j) and
mean_with_radius > mean*factor
then position(k) = i,j;
test_nearby(reference_positions,positions,right)
loop i
if distance( reference_positions(i) -positions(i) ) < radius/2
then right = 1 else 0;
6
7
MainModul
read_settings( scan-parameter, diameter scanning field,.. )
scan(empty)
scan(all_marked_not_header)
difference = -empty + all_marked_not_header
calc_positions(difference;all_positions)
scan(header_marked)
difference = -empty + header_marked
calc_positions(difference;header_positions)
do
scan(test)
test = test - empty
calc_positions(test;test_positions)
for 1 to length(header_positions)
test_nearby(header_positions,test_positions;right)
code = shiftright(code) or right
class=..; student_number =..; year =
for 1 to length(all_positions)
test_nearby(all_positions,test_positions;right)
right_ones = rigth_ones+ right
percent = right_ones*100/length(all_positions)
print( year, class, student_number, right_ones,
until scanner_empty
Zutreffendes Ankreuzen, z.B. : 2A 2B 2FN
erlaubt die digitale Verarbeitung ohne Namenseingabe
http://members.aon.at/vtv/spa.htm
8/10
Laborübungen 5H
V1.0
___________________________________________________________________________
b). Echtzeit-Handschrifterkennung8
Für eine erste Version der Handschrifterkennung wollen wir davon ausgehen, daß zwischen den Buchstaben der
Schreibstift abgesetzt wird.
Blockbild
lesen der t,x,y-Koordinaten
der Schreibstiftspitze
(Tablet o.ä.)
Normierung der Größe
des Buchstabens;
möglicherweise getrennt
in x-, und y-Richtung
an bestimmten Buchstaben
Neigung ermitteln ( t, l,.. )
Diskretisierung in eine
optimale Anzahl von
Meßpunkten
Neigung korrigieren
Erkennung der Neigung
der Buchstaben
Umrechnung in
natürliche Koordinaten
t,s,' ( '.. Krümmung )
Normierung
an bestimmte Buchstaben
Welligkeit ermitteln
(mittlere,kleine f )
Offset beseitigen
Wortdatenbank
Korrelation mit
Vergleichsbuchstaben
Wort detektieren
Wort mit der Wortdatenbank vergleichen
Wort ausgeben
falsch , schlecht erkannte
Buchstaben in der
Buchstabendatenbank
aktualisieren
Testen Sie die Handschrifterkennung mit Matlab oder Matlab-Simulink!
8
beachten Sie, daß eine Echtzeit-Handschrifterkennung höhere Erkennungsraten aufweist wie eine
Handschrifterkennung die ein fertig geschriebenes Blatt vorgelegt bekommt. Der Grund liegt darin, daß erstere
ein Zeitsignal zur Verfügung hat und damit über mehr Information verfügt wie die zweite Variante. Konkret
sieht das so aus, daß bei Schriftspurkreuzungen in der ersten Variante kein Zweifel über die Bewegungsrichtung
der Schreibspitze entstehen können bei der zweiten schon.
http://members.aon.at/vtv/spa.htm
9/10
Laborübungen 5H
V1.0
___________________________________________________________________________
Fuzzy – Rauschfilter
2.
% Defined below is a hypothetical information signal x sampled',
% at 100Hz over 6 seconds.
time = (0:0.01:6)'
x = sin(40./(time+0.01));
%noise
n1 = randn(size(time));',
%Unfortunately, the information signal x cannot be measured',
%without an interference signal n2, which is generated from',
%another noise source n1 via a certain unknown nonlinear',
%process.',
%zz = 4*sin(xx).*yy./(1+yy.^2);'
n1d0 = n1;
% n1 delay 0',
n1d1 = [0; n1d0(1:length(n1d0)-1)]; % n1 delay 1',
n2 = 4*sin(n1d0).*n1d1./(1+n1d1.^2);
% interference',
plot(time, n1);',
plot(time, n2);',
%
%
%
%
The noise source n1 and interference n2 are shown together.',
Note that n2 is related to n1 via the highly nonlinear process',
shown previously; it is hard to see if these two signals are',
correlated in any way.'};
m = x + n2;
plot(time, m)',
% measured signal',
http://members.aon.at/vtv/spa.htm
10/10
Herunterladen