"Beschreiben Sie die Schritte um ein Bild im Bildmittelpunkt um den Winkel $\\alpha$ entgegen dem Uhrzeigersinn zu drehen. Die Rotation eines Punktes (𝑗𝑘) um den Winkel 𝛼\n",
"## Teil 1\n",
"\n",
"ergibt sich mittels der Rotationsmatrix wie folgt:\n",
"\n",
"(𝑗′𝑘′)=(cos𝛼−sin𝛼sin𝛼cos𝛼)(𝑗𝑘)\n",
"Beschreiben Sie die Schritte um ein Bild im Bildmittelpunkt um den Winkel $\\alpha$ entgegen dem Uhrzeigersinn zu drehen. Die Rotation eines Punktes $\\begin{pmatrix} j \\\\ k \\end{pmatrix}$ um den Winkel $\\alpha$ ergibt sich mittels der Rotationsmatrix wie folgt:\n",
"(Tipp: Gehen Sie so ähnlich wie bei der Größennormierung vor. Was passiert mit Punkten die nach der Rotation außerhalb des neuen Bildes liegen?)\n",
"\n",
"## Teil 2\n",
"\n",
"Implementieren Sie den von Ihnen zuvor entwickelten Algorithmus zur Rotation eines Bildes um einen beliebigen Winkel im Bildmittelpunkt. Verwenden Sie nicht die Rotationsfunktion aus OpenCV.\n",
"\n",
"# Aufgabe 2\n",
"# TODO:\n",
"\n",
"Implementieren Sie den von Ihnen zuvor entwickelten Algorithmus zur Rotation eines Bildes um einen beliebigen Winkel im Bildmittelpunkt. Verwenden Sie nicht die Rotationsfunktion aus OpenCV."
"Das ist so die alte Struktur. Das macht denke ich eher Sinn, wenn das getrennte Aufgaben sind und man zur Theorie erst Feedback bekommt. Das sollte besser zu nur dem zweiten praktischen Teil umformuliert werden."
]
}
],
...
...
%% Cell type:markdown id: tags:
# Aufgabe 1
# Aufgabe
Beschreiben Sie die Schritte um ein Bild im Bildmittelpunkt um den Winkel $\alpha$ entgegen dem Uhrzeigersinn zu drehen. Die Rotation eines Punktes (𝑗𝑘) um den Winkel 𝛼
## Teil 1
ergibt sich mittels der Rotationsmatrix wie folgt:
(𝑗′𝑘′)=(cos𝛼−sin𝛼sin𝛼cos𝛼)(𝑗𝑘)
Beschreiben Sie die Schritte um ein Bild im Bildmittelpunkt um den Winkel $\alpha$ entgegen dem Uhrzeigersinn zu drehen. Die Rotation eines Punktes $\begin{pmatrix} j \\ k \end{pmatrix}$ um den Winkel $\alpha$ ergibt sich mittels der Rotationsmatrix wie folgt:
(Tipp: Gehen Sie so ähnlich wie bei der Größennormierung vor. Was passiert mit Punkten die nach der Rotation außerhalb des neuen Bildes liegen?)
# Aufgabe 2
## Teil 2
Implementieren Sie den von Ihnen zuvor entwickelten Algorithmus zur Rotation eines Bildes um einen beliebigen Winkel im Bildmittelpunkt. Verwenden Sie nicht die Rotationsfunktion aus OpenCV.
# TODO:
Das ist so die alte Struktur. Das macht denke ich eher Sinn, wenn das getrennte Aufgaben sind und man zur Theorie erst Feedback bekommt. Das sollte besser zu nur dem zweiten praktischen Teil umformuliert werden.
"Worauf müssen Sie bei der Berechnung des Skin Locus achten, um einen Programmabsturz zu vermeiden?\n",
"\n",
"## Teil 2\n",
"\n",
"#TODO: zip archiv entpacken, Sachen aufräumen die nicht mehr benötigt werden, skin_color schon einlesen -> Aufgabe ist nur die Visualiserung in der RG Ebene, kann man das Annotationsprogramm mit 5-10 Bildern direkt ins Notebook einbetten\n",
"\n",
"Im Archiv extractFaceColor.zip befinden sich die Dateien skin_color_cpp.yml und skin_color_python.yml (Programmiersprache beachten).\n",
"Diese Dateien enthalten jeweils 8344 hautfarbene Pixel.\n",
"Sie wurden mit den jeweiligen Programmen, welche sich im Archiv unter 'applications' befinden erstellt.\n",
"Dort finden Sie auch Beispiele zum einlesen solcher yml Dateien in den jeweiligen Programmiersprachen. \n",
"\n",
"Erstellen Sie ein Programm, das die Hautfarbenwerte einliest und in der RG-Ebene visualisiert.\n",
"\n",
"Was fällt Ihnen im Vergleich mit dem Skin-Locus aus dem Skript auf? \n",
"\n",
"Erstellen Sie mit Hilfe der Annotationsprogramme weitere/andere Trainingsdaten und diskutieren Sie die unterschiedlichen Resultate.\n",
"\n",
"## Teil 3\n",
"* Um eine effiziente Klassifikation in hautfarbene und nicht-hautfarbene Pixel durchzuführen, approximiert man die Ränder des Skin Locus mittels zweier Parabeln. Wie kann man die Parameter dieser Parabeln sinnvoll bestimmen?\n",
"* Wie kann die Klassifikation in hautfarbene und nicht-hautfarbene Pixel noch effizienter als über die Approximation von Parabeln realisiert werden?\n",
"* Meist befindet sich die Farbe weiß ($r=g=0.33$) innerhalb des Skin Locus. Wie könnte man vorgehen um solche Flaschklassifikationen zu vermeiden?\n",
"\n",
"## Teil 4\n",
"\n",
"#TODO zip Archiv schon entpacken -> evtl. nicht alle Bilder behalten; Nur den Klassifikator implementieren, das visualiseren soll schon vorgegeben sein.\n",
"\n",
"Ein anderer Hautfarbenklassifikator ist durch die folgenden Regeln definiert (Peer et al., 2003, \"Human skin color clustering for face detection\", EUROCON2003):\n",
"Implementieren Sie diesen Klassifikator und testen Sie ihn mit den Bildern im SkinImages.zip Archiv. Was fällt Ihnen auf? Beschreiben Sie vor und Nachteile des Klassifikators. "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
# Aufgabe
## Teil 1
Worauf müssen Sie bei der Berechnung des Skin Locus achten, um einen Programmabsturz zu vermeiden?
## Teil 2
#TODO: zip archiv entpacken, Sachen aufräumen die nicht mehr benötigt werden, skin_color schon einlesen -> Aufgabe ist nur die Visualiserung in der RG Ebene, kann man das Annotationsprogramm mit 5-10 Bildern direkt ins Notebook einbetten
Im Archiv extractFaceColor.zip befinden sich die Dateien skin_color_cpp.yml und skin_color_python.yml (Programmiersprache beachten).
Diese Dateien enthalten jeweils 8344 hautfarbene Pixel.
Sie wurden mit den jeweiligen Programmen, welche sich im Archiv unter 'applications' befinden erstellt.
Dort finden Sie auch Beispiele zum einlesen solcher yml Dateien in den jeweiligen Programmiersprachen.
Erstellen Sie ein Programm, das die Hautfarbenwerte einliest und in der RG-Ebene visualisiert.
Was fällt Ihnen im Vergleich mit dem Skin-Locus aus dem Skript auf?
Erstellen Sie mit Hilfe der Annotationsprogramme weitere/andere Trainingsdaten und diskutieren Sie die unterschiedlichen Resultate.
## Teil 3
* Um eine effiziente Klassifikation in hautfarbene und nicht-hautfarbene Pixel durchzuführen, approximiert man die Ränder des Skin Locus mittels zweier Parabeln. Wie kann man die Parameter dieser Parabeln sinnvoll bestimmen?
* Wie kann die Klassifikation in hautfarbene und nicht-hautfarbene Pixel noch effizienter als über die Approximation von Parabeln realisiert werden?
* Meist befindet sich die Farbe weiß ($r=g=0.33$) innerhalb des Skin Locus. Wie könnte man vorgehen um solche Flaschklassifikationen zu vermeiden?
## Teil 4
#TODO zip Archiv schon entpacken -> evtl. nicht alle Bilder behalten; Nur den Klassifikator implementieren, das visualiseren soll schon vorgegeben sein.
Ein anderer Hautfarbenklassifikator ist durch die folgenden Regeln definiert (Peer et al., 2003, "Human skin color clustering for face detection", EUROCON2003):
Implementieren Sie diesen Klassifikator und testen Sie ihn mit den Bildern im SkinImages.zip Archiv. Was fällt Ihnen auf? Beschreiben Sie vor und Nachteile des Klassifikators.