TUM Course – “Artificial Intelligence in Automotive Technology” – Lecture 2

TUM Course – “Artificial Intelligence in Automotive Technology” – Lecture 2


so ich würde euch ganz herzlich willkommen heißen zur heutigen vorlesung künstliche intelligenz in der fahrzeugtechnik mich kennt ihr ja schon ich bin johannes ich habe letztes mal die vorlesung gehalten ich werde auch dieses mal die vorlesung halten wir haben heute unseren zweiten termin mit dem titel procession nächste woche werde ich auch da sein aber die vorlesung nicht halten das wird mein kollege alexander wischnewski machen letzte woche hatten wir explizit eine evolution am ende gemacht am ende der vorlesung um bei euch mal abzufragen wie gut ihr das ganze findet und wir haben positives feedback bekommen auch ich habe mich gefreut über das positive feedback von eurer seite da schon mal vielen dank aber es gab auch kritik die wir sehr ernst genommen haben wenn natürlich knapp 30 leute einen punkt reinschreiben denen sie kritisieren dann ist mir ein bisschen schwierig die wichtigsten sachen zu extrahieren das sind die drei wichtigsten punkte der vierte punkt entspricht gleich noch an der erste punkt war dass es ein bisschen zu viele folien waren und zu viel informationen in zu kurzer zeit dazu möchte ich noch einmal das bewusstsein schaffen dass wir ein thema angehen was brutal komplex ist und wo zwölf termine eineinhalb stunden wahrscheinlich nicht ausreichen um es komplett in der tiefe zu verstehen die idee dieser vorlesung ist damals tatsächlich so entstanden dass wir gesagt haben wir machen praktikum die rückmeldung von euch von euch studierenden war wir wollen eine vorlesung wir haben uns dann dazu geschlossen wir machen auch eine vorlesung aber dementsprechend können wir an einen oder anderen stelle nicht immer in die tiefe gehen nichtsdestotrotz wollen wir euch natürlich die möglichkeit geben das thema weitestgehend zu verstehen deswegen sind auch sehr viele hätten schnell slides dabei deswegen erzählen wir auch so viel und deswegen ist die vorlesung auch ziemlich vollgepackt mit informationen nimmt es nicht negativ an sondern er nimmt so anja das brauche ich um das thema komplett zu verstehen und wie gesagt das thema ist extrem komplex natürlich ist es jetzt erst mal nur eine erklärung wir haben uns aber auch noch was zusätzliches überlegt um euch vor allen dingen eins einfach zu machen nämlich was muss ich denn für die prüfungen können wir werden jetzt in jeder vorlesung lernergebnisse definieren und es können durch so vorstellen dass ich euch die frage gestellt habe ich das und das verstanden beziehungsweise kann ich das und das und diesel an ergebnisse sind für euch letztendlich das extrakt aus den 90 slides werde diese fragen beantworten können die wir als lernergebnisse definiert haben dann habt ihr auch den inhalt verstanden den wir letztendlich in der prüfung abfragen der zweite punkt war dass wir mehr ins detail gehen sollen an dieser stelle einführungsveranstaltung darauf wollten wir erst mal die methoden bekannt machen da wollten wir auch erst mal die nomenklatur euch geben damit wir wissen dass wir alle über dasselbe sprechen und keine sorge lecture zwei bis sechs oder zwölf geht mehr in die tiefe nächste woche fange man dann auch mal das rechnen also keine sorge es wird noch es gibt noch differenzen und der letzte punkt war auch einige haben gesagt hey da waren aber viele wort dreier drin tigers oder spelling mistakes den fehler nehme ich auf meine kappe viele sind dieser vorlesung hat sich auch noch kurz davor müssen geändert neue inhalte generiert und da bin ich vielleicht ein bisschen zu schusselig wir haben jetzt auch noch eine vorlesung silvia kreiert der wird dann tatsächlich da auch noch ein bisschen drüber schauen verzeiht mir an einer stelle wenn es aber tatsächlich dann auf den inhalt gehen sollte dass einer sagt ich hab es überhaupt nicht verstanden weil du dummkopf davon ist nicht richtig artikulieren konnte dann kommt ja noch mal vorbei und dann erkläre ich das euch nochmal der letzte punkt an dieser stelle letzte woche wurde angesprochen dass die prüfung ist nur 60 minuten lang das doch ein fehler ist korrekt die prüfung ist jetzt 90 minuten lang keine sorge ich freue mich auch nicht darüber weil ich muss jetzt mehr aufgaben erstellen aber letztendlich 11 uhr bis 12 uhr 30 und dann wie besprochen gerade eben haben wir uns jetzt lernergebnisse definiert und zwar nur für diese vorlesung heute es geht um das thema perzeption per session und als lernergebnisse habe ich heute definiert zum einen ihr müsst verstanden haben was die probleme der computer vision sind und wir die autonome fahren anwendet ebenfalls müsst ihr die einzelnen schritte der computer vision pipeline wiedergeben können und die sie auch verstanden haben dass drittel ein ergebnis ihr seid nach dieser vorlesung in der lage eine kamera an eurem computer anzuschließen und bilder zu extrahieren von dieser kamera das viertelergebnis ihr seid in der lage alle varianten des image processing dass wir heute kennen lernen werden zu erinnern und auch anzuwenden ihr seid in der lage bilder zu analysieren hinsichtlich ihrer merkmale diese enthalten ihr seid in der lage die varianten der feature extraction zu euch daran zu erinnern und diese auch anzuwenden und ihr kennt die unterschiedliche varianten der merkmals analyse das heißt wir haben hier in death of understanding im bereich der analyse analyse und diesel an ergebnisse die könnte ja auch zusammen extrem gut kombinieren mit der summary am ende und wie gesagt das ist das was ihr dann auch letztendlich für die prüfung können müsst das noch mal als kurze einführung und jetzt würde ich ganz gerne mit der eigentlichen vorlesung starten am samstag war nach der museen war ich mit einer freundin im museum wir haben uns bilder anschaut und viele bilder die haben immer nennen wenn sie haben ein schild dort und da steht kein untertitel bzw kein titel untitled und hier sind bild und das lasse ich mal ganz kurz auf euch wirken und ihr überlegt euch mal was würdet ihr diesem bild für einen titel geben für mich selbst ist dieses bild klar irgendwie eine stadt eine großstadt aber ich habe mir für diesen bild den untertitel alltag überlebt überlegt letzte woche haben wir kennen gelernt unsere welt ist dynamisch und komplex und das hier ist für mich eine perfekte repräsentation unseres alltags wir haben die straße auf der straße befinden sich menschen auf derselben straßenseite befinden sich auch fahrzeuge die geparkt haben und es kommen mehr fahrzeuge entgegen sehr schön in diesem bild auch zu sehen wir haben unterschiedliche lichtverhältnisse dort hinten vorne ist es dunkel mitkommen fahrzeuge eben auch entgegen auf meiner eigenen fahrspur hier an dieser stelle zu sehen und letztendlich habe ich nur einen schmalen fahrstreifen bezeichnet ihr nochmal ein hier auf dem ich mit meinem fahrzeug entlang fahren kann für uns menschen ist es kein problem gesehen ist aber wie macht es denn unser fahrzeug denken wir wieder ans autonome fahrzeug denen wir das ganze beibringen müssen und unser autonomes fahrzeug muss all diese dinge sehen und wahrnehmen der tesla hat in seinem fahrzeug den tesla autopiloten vor knapp zwei monaten haben zwei jungs ich glaube wenn es wenn ich richtig verstanden hat bei ebay ein steuergerät von tesla gekauft und da waren entwicklungs steuerentwicklung software stand drauf und dieses video zeigt wie und wieder tesla die umgebung wahrnimmt wir sehen hier gelbe fahrstreifen die definieren und so fahrspur die wir gerade haben wir sehen fahrzeuge hier in rot wir sehen auch in blau ist ein mensch zeugung gelb ist der mensch ist in blau ein anderes ein fahrrad oder motorrad wir sehen jetzt an der linken seite hier wechselt und hier wechselt die fahrspur von gelb auf rot das heißt wir haben die fahrspur kant wir sehen hier die drei eckpfeiler dieses fahrzeug folgt wir sehen hier einen truck und das ist letztendlich eine möglichkeit die umwelt zu repräsentieren für unser autonomes fahrzeug und bis jetzt sehen wir eigentlich nur viele bunte farben wir sehen vierecke aber schaut mir hier unten links rein wir sehen lernen nämlich auf welcher fahrspur befindet sich das fahrzeug überhaupt wir sehen die geschwindigkeit und wir sehen das verhalten des fahrzeug nämlich stoppt und letztendlich ist das was wir im autonomen fahrzeug beibringen müssen nämlich eine komplette repräsentation unserer umwelt letzte woche haben wir uns neuen teil probleme der künstliche intelligenz definiert und das teil problem nummer sechs nämlich die parts aktion per session die wollen wir uns heute mal genauer anschauen sie haben letzte woche die partition auch schon definiert also letztendlich das problem dahinter definiert und wir haben festgehalten rezeption bedeutet für uns als definition ein computer bekommt die möglichkeit die umwelt wahrzunehmen wir nutzen dafür sensoren beispielsweise eine kamera wieder ultraschallsensor und dafür gibt es zwei fachbegriffe einmal den fachbegriff maschinen per session maschine selbst schon bedeutet der computer bekommt die möglichkeit daten zu verarbeiten und soja in relation zu stellen zu unserer umgebung also letztendlich daten sensordaten kommen in unseren computer und das stichwort der heutigen vorlesung computer vision wir nutzen den input einer kamera was letztendlich nur ein bild oder ein video ist die analysieren ist und extrahieren daraus informationen computer vision ist das stichwort was ihr auch überall findet das ist die letztendliche definition der bildverarbeitung für das maschinelle sehen bzw die maschinen ersetzen das thema ist leider extrem komplex ich habe mich in dieser vorlesung extrem stark auch an anderen vorlesungen orientiert beispielsweise aus amerika nur als beispiel die vorlesungen amerika ich glaube die kommt von der michigan state hat tatsächlich 10 20 bis 25 einzeltermine eine stunde heute komprimieren wir das ganze eben auf eineinhalb stunden und heute möchte ich euch auch eben die wichtigsten sachen der computer vision beibringen das heißt wir müssen irgendwo ein bisschen abstrich machen und deswegen fokussieren wir uns heute in diesen eineinhalb stunden auf die kamera warum die kamera ist zum einen der billigste sensor den wir haben können den wir in unserem fahrzeug verbauen können und die kamera ist dem menschlichen auge am nächsten wenn wir nicht nur eine kamera einbauen sondern auch zwei oder beispielsweise auch zwei kameras dann haben wir exakt das was wir als menschen haben nämlich zweimal die möglichkeit unsere umwelt wahrzunehmen ebenfalls haben wir gerade eben schon in diesem video gesehen können wir extrem viele informationen aus dem kamerabild generieren das heißt das kamerabild und beinhaltet nicht nur farben es beinhaltet auch formen oder eben objekte und das brauchen wir später in einem weiteren vorlesungen für unsere maschinellen lernverfahren und das wichtigste wir können im kamerabild mit den klassischen computer vision algorithmen verarbeiten und auch mit die learning algorithmen das heißt wir haben hier die volle bandbreite an methoden zur auswahl um irgendwie etwas aus diesem bild rauszuholen doch nicht nur im bereich autonomes fahren werden kameras eingesetzt auch im gesundheitsbereich zur krebs der aktion ist ihnen im security-bereich jeder von euch kennt eine überwachungskamera es gibt schon seit den 60ern und 70ern im bereich komfort für uns roboter im bereich der spieleindustrie hier die xbox kinect aufgezeigt oder vielleicht im auch im bereich access hier das iphone iks bei dem ich eigentlich nur mein gesicht gerne es erkennt mein gesicht wider und gibt mir eben den zugang zum smartphone letztendlich nutzen hier in der maschinen perfektion in der computer vision eigentlich nur dasselbe was wir menschen auch haben nämlich unsere augen wir sehen hier aufgetragen ein objekt nämlich eine tasse und diese tasse wird von unserem auge wahrgenommen wir haben hier vorne die iris eine linse kann man sich noch mal zurück erinnern an physik achte klasse optik das ganze wird hier hinten abgebildet zwar die tasse einmal gedreht und informationen kommen über unsere retina rezeptoren in unser gehirn wo das ganze verarbeitet wird man sagt heute dass 60% des stammen wir uns damit beschäftigt sind alle visuellen reize die von unseren augen kommen zu verarbeiten zu interpretieren und letztendlich darauf auch zu reagieren das heißt für unsere augen beziehungsweise ja damals als kind wir als mensch bekommen wir die augen automatisch mit ist klar aber wir haben auch gelernt unsere umwelt dementsprechend zu interpretieren und dementsprechend auch zu agieren wenn wir das mit einem computer machen oder eben auch mit einer kamera dann gibt es einige probleme das heißt einfach eine kamera anzuschließen an den computer und eine kamera einfach die bilder zu interpretieren ist extrem schwierig erstens haben wir objekte die komplett anders aussehen können beispielsweise ein baum die haben den nadelbaum wir haben vielleicht auch einen laubbaum und unser computer kennt dort erstmal keinen unterschied für ihn sieht es eigentlich relativ ähnlich aus ich habe ihm beigebracht was ein baum ist ein laubbaum aber mit dem nadelbaum kann er nichts anfangen ebenfalls verlieren wir informationen wenn wir aus dem dreidimensionalen ins zweidimensionale projizieren uns fehlen daten hier ist das stichwort inklusion zu nennen wir sehen hier unten rechts einige katzen jeder von uns weiß dass es eine katze ist aber hier sehen wir beispielsweise nur den kopf der katze unserem computer haben wir irgendwann mal beigebracht dass eine katze vier beine hat und schwanz und verwehte hier nur den kopf damit kann er relativ wenig anfangen oder hier sieht er vielleicht eine pfote könnte ja auch von hund sein oder von dem tiger und der letzte punkt wir haben schatten oder rauschen auf unseren bildern eben signale die unser bild zerstören wir sehen es hier oben aufgetragen ein und dasselbe bild nur mit unterschiedlichen schatten wir als menschen erkennen es relativ einfach dass es im gesicht ist hier unten rechts dieses bild hier da haben wir als menschen wahrscheinlich schon probleme das tatsächlich zu erkennen ob das mensch ist das heißt wenn wir schon probleme hätten an dieser stelle wie soll es dann unser computer schaffen und das letzte problem an dieser stelle ist die unterschiedlichen klassen in einer klasse hier mal aufgetragen verschiedene arten von katzen es gibt den geilen katzen es gibt typische katzen perserkatzen aber auch wir haben unseren computer irgendwann mal beigebracht eine katze hat und schwanz und fällen und vier pfoten als ist für ihn dass immer nur eine katze in den unterschied aufzuzeigen dass das eine perserkatze ist und das mit bengalen katze ist extrem schwierig weil diese katzen sich eben in ihren merkmalen unterscheiden und letztendlich bedeutet das für uns dass wir daten brauchen und zwar nicht irgendwelche daten sondern geleitete daten und mit diesen daten können wir dann eben arbeiten computer vision ist eine thematik die seit den 60ern gibt zum ersten mal hat marvin minsky professor mit einem studenten als sommerprojekt eine kamera gegeben und hatte zudem gesagt wenn du wiederkommst am ende des sommers möchte ich sehen dass du da ein bild akquiriert hass und wir das eben anschauen können das ist ganze gestartet in den anfängen hat so ein bisschen geschockt da gab es noch nicht so viele erfolge in den 80ern kamen dann die neuronalen netze auf sind dann auch wieder gegangen nochmal stichwort chef hinten 19 86 in den 90ern hatten wir die ersten gesichtserkennung hier an dieser stelle zu sehen wo das ganze wohl based war oder eben mit logik gearbeitet wurde nämlich ein gesicht braucht bestimmte merkmale bzw wenn du bestimmte merkmale siehst wie bei computer wie der nase in den mund oder augen dann weißt du dass das ein gesicht ist erst so anfang der 2000er bis jetzt eben zu den 2010 anhin hat sich das thema erweitert verbessert und jetzt nutzen wir eben die neuronalen netze um computer vision zu betreiben um beispielsweise bilder zu klassifizieren hier unten rechts zu sehen die simpsons wo wir alle wissen dass homer simpson aber nur mit 61 prozent oder eben krusty der clown mit 95 prozent letztendlich geht es in der computer vision um bestimmte dinge nämlich an allererster stelle eine kamera auszuwählen und ihr fragt euch bestimmt auch warum komme ich eigentlich die vorlesung wenn das ganze auch auf video aufgezeichnet wird heute versuche ich das ganze mal auch ein bisschen praktischer zu machen und euch mal auch praktisch zu erklären wie das ganze funktioniert und dass mit dem bau anfangen werden habe ich meine kamera mitgebracht müssen die kamera von der firma point grey und point grey ist mehr oder weniger der standard lieferant auch für die automobilindustrie das heißt sehr viele fahrzeuge die autonom fahren nutzen diese kamera und das erste was ihr machen müsst ihr müsst euch eine kamera aussuchen das problem dabei die ist relativ teuer kostet 800 euro dann habe ich hier noch ein unterschiedliches objektiv dabei kostet 100 euro das heißt bin ich schon bei 1000 euro damit kann ich dann aber auch vernünftig arbeiten und das ist der erste schritt in unser computer vision pipeline und ich gebe es einfach mal durch können durch anschauen aber bitte wieder zurückbringen wie es geht das brauche ich noch und diese computer vision pipeline die findet ihr nicht im internet die habe ich für euch zusammengesucht mehr oder weniger ist es der ingenieurs leitfaden wie ich mit dem computer vision problemen umgehen das heißt als allererstes sucht ihr eure hardware aus hier beispielsweise noch eine zweite kamera die ich ebenfalls mitgebracht habe das ist auf der red devils leider erklärt was das für eine kamera ist die nutzen wir am lehrstuhl ist die zeg kamera kostet dann nur 400 euro haben wir auch die möglichkeit zur stelle vision hier eben mit zwei einzelnen kamera bildern und wenn ihr euch die kamera ausgesucht habt wir kommen gleich noch mal drauf wie wir die kameras unterscheiden können das heißt wir gehen in diese pipeline tief rein und schauen uns das an dann müssen wir ein bild akquirieren was denkt ihr euch ja okay im bild machen ist ja wohl nicht so schlimm und ich mein handy raus drückt drauf bild fertig nein so ist es leider tatsächlich nicht wenn ich dieses ding anschließt an den computer usb 3.0 da fängt schon mal an hat das mein computer überhaupt dann muss ich irgendwie software haben die darauf zugreift point grey liefert den fck mit als software development kit das ist dann in c++ geschrieben da wird schon schwieriger wie schaffe ich das jetzt aber letztendlich muss ich ein bild akquirieren und ich dieses bild habe dann kann ich software nutzen spezielle software zur verarbeitung unser bilder wenn ich das habe kann ich das bild letztendlich vor verarbeiten stichwort hier eben vor verarbeiten wir sind hier bei punkt 4 nächstes bild vor verarbeitet habe dann kann ich merkmale extrahieren in punkt 5 und erst wenn ich das geschafft habe kann ich diese informationen aus den merkmalen zusammenführen und extrahieren und letztendlich mit diesen informationen was anfangen stichwort klassifikationen ich weiß jetzt hier an dieser stelle dass das ein fahrzeug ist aber dann ist unsere computer vision pipeline noch immer noch nicht zu ende wir müssen letztendlich eine applikation umsätzen mit der wir tatsächlich mehr informationen generieren können zum beispiel ich weiß dass das ein audi r8 ist mit 97 prozentiger wahrscheinlichkeit also nicht nur einfach ein fahrzeug stichwort info class variability unser fahrzeug fährt 120 km h und wir haben eine beschleunigung von null meter pro sekunde quadrat und diese pipeline die kann ich euch empfehlen dass man die sich mal merkt aber letztendlich ist das euer leitfaden als ingenieur wie eure computer vision applikation umsetzen könnte und das funktioniert egal mit welcher kamera und diese sieben schritte müsst ihr euch verinnerlichen und wie gesagt immer wieder durchgehend nicht nur habe ich euch heute mal mitgebrachten beispiel von der kammer hardware sondern das was vielen immer fehlt ist auch ein hands on feb ich hab das stichwort genannt zdk ihr seht sicher vorne nochmal die habe ich jetzt eben angeschlossen und heute habe ich verschiedene codebeispiele mitgebracht dass ihr mal seht die ja eine sekunde wie man mit diesem code beispielen umgehen kann diese code beispiele sind alle in python geschrieben diese codebeispiele habe ich euch auf laufwerk legt ich nutze hier eine linux computer weil wir in unseren projekten extrem viel mit linux arbeiten weil die sensor ist ok für linux auch optimiert ist für diese kamera und das was wir machen ist jetzt mal ganz kurz auf diese kamera zu greifen das ist kamera input 1 und wir sehen hier erstmal eine einführung herzlich willkommen zur vorlesung so sind alle aufgebaut und das was wir machen wir greifen jetzt auf diese kamera zu und das erste was uns diese kamera zurückgibt ist ein abo ich schlecht aber es hat den grund weil ich eine andere software stk nutze gerade im moment das bewusst so gemacht wie in der zivilisierten die kamera wir sehen hier an dieser stelle dass wir eine auflösung von 720 haben im high definition format und mit 60 frames arbeiten wir sehen hier das wir kamera informationen bekommen die seriennummer und die firmen wir nummer und noch mal die kamera spezifikationen das heißt letztendlich habe ich es damit geschafft auf meine kamera zuzugreifen relativ simpel relativ trivial ich glaube da kann ich an dieser stelle relativ schnell weitermachen springen wir zu kapitel nummer zwei der maschinen vision das heißt wir gehen jetzt unsere pipeline von vorne bis nach hinten einmal durch und gehen an den einzelnen stellen etwas tiefer rein und erläutern das ganze zunächst einmal via kreiere ich denn jetzt ein bild ich habe eine szenerie kann irgendwas sein wir haben das licht und wir haben unsere kamera und so linse definiert das ganze geht ja gerade um diese kamera besteht aus internen filtersystemen aus dem sie den sogenannten color filter rey vielleicht kennt ihr kameras die große spiegelreflexkameras die haben den autofokus vielleicht auch eine interne stabilisierung das heißt hier nochmal das stichwort ihr müsst darauf aufpassen was für kameras ihr wählt eure kamera ist mit einem sensor definiert der letztendlich ist ermöglicht ein bild aufzuzeichnen wir haben einen frame grabber an dieser stelle was letztendlich nur die datenübertragung ist und ganz hinten unsere software anwendungen licht ist an dieser stelle ein extrem wichtiges stichwort weil nur das umgebungslicht bzw das licht mit dem wir unser objekt anstrahlen gibt uns die möglichkeit auch die informationen von diesem objekt zu gewinnen und als menschliches auge oder unser menschliches auge ist extrem gut ausgestattet dh wir können verschiedene lichtverhältnisse wahrnehmen und die kamera kann es eben nicht wir müssen hier mit blenden arbeiten das vielleicht auch im stichwort derjenige der von euch gerne fotografiert kennt es wahrscheinlich und nochmal das problem fürs autofahren unser licht ändert sich dort ständig das heißt tageslicht ist extrem schlecht für unsere computer vision pipeline aber gegen können nichts machen wir können uns dann verschiedene objektive auswählen wir können uns verschiedene linsen arten auswählen vielleicht schon mal das stichwort weitwinkelobjektiv gehört teleobjektiv wie gesagt aus dem kamera bereich kennt man das und letztendlich müsst ihr eure linse nachdem viel dorf view auswählen das heißt welche szenerie möchte ich eigentlich aufnehmen es kann sein dass ich eben nur einen bestimmten schmalen bereich aufnehmen möchte es kann sein dass ich einen sehr weiten bereich aufnehmen möchte und natürlich mit welcher auflösung ich das ganze aufnehmen möchte und da ist dann unsere kamera oder dem entsprechen oder dem hingegen wählen wir unsere kamera aus die kamera liefert uns dann ein bild zurück was in pixel definiert ist ein stichwort das man von seiner bildschirmauflösung kennt kann man dann immer wählen zwischen kate möchte 1120 oder vielleicht nur 640 x 480 das ist das stichwort für vga für eine vga kamera und letztendlich bedeutet es nur die höhe und weite und das extrem wichtig weil es wenn man gleich brauchen weil genau diese fixen größe definiert mathematisch gesehen unser bild am ende noch der framegrabber wie eben schon genannt ist es das kabel oder keines kabel der datenübertragung sein das stichwort an dieser stelle ist usb 3.0 und internet weil wir datenübertragungsraten haben von 3500 mbit pro sekunde wenn wir mit bildern arbeiten je größer unser bild wird und je höher die frames pro sekunde werden mit der wir ein bild aufzeichnen desto mehr daten müssen wir pro sekunde übertragen und letztendlich bedeutet nicht nur dass unsere kamera bereitstellen muss das bedeutet auch dass das kabel oder der anschluss das ganz übertragen muss und es bedeutet auch das ist unser computer verarbeiten muss wenn wir unser bild auf unseren computer gebracht haben dann gibt es hier noch mal ein beispiel nämlich das beispiel nummer zwei wir akquirieren netz ein bild ich führe dieses beispiel noch mal aus stichwort preis um 2 und peißen drei deswegen habe ich noch mal extra eine e mail geschrieben an euch alle und was wir jetzt eben gemacht haben wir greifen jetzt auf diese kamera noch einmal zu sagen der kamera dass wir jetzt gerne ein bild aufnehmen möchten und wir haben hier einen eigenen folder definiert und letztendlich haben wir hier ein bild unserer klasse keine sorge ich los bild wieder das wird nicht abgespeichert und es wird nicht live gefilmt und wenn wir jetzt dieses bild kreiert haben dann können wir jetzt damit weiter arbeiten und dafür brauchen wir bestimmte software als software gibt es einmal ganz klassischer weise matlab simulink matlab ist etwas was man glaube ich im ingenieurstudium gut in trug trainiert bekommt damit wächst man auf das problem bei matlab ist tatsächlich ist eine kommerzielle software das heißt sollte irgendwann mal nicht mehr ein student sein dann müsst ihr dafür zahlen und zwar viel geld aber letztendlich hat magath eine extrem gute dokumentation wir können uns auf allen unseren betriebssystemen nutzen wir können in verschiedenen sprachen programmieren entweder signal basiert in simulink oder code basiert eben in matlab und wir haben in dieser toolbox alle möglichen computer vision tools die wir brauchen gerade eben haben was gesehen nämlich denn die eigentliche akquirierung des bildes was für uns nur ein paar code zeilen sind beziehungsweise was für uns zu jung was wir uns vielleicht in der normalen kamera nur ein klick auf die kameras hier sind hier sind dass eben nur ein paar code zeilen und das ganze kamen wir eben in matlab bereitgestellt haben den vorteil dass es sehr einfach zu nutzen ist und dass wir auch gps verwenden können die gbs brauchen wir um die datenverarbeitung schneller zu machen allerdings ist matlab etwas performance schwach und wir haben eben eine geschlossene umgebung besser an dieser stelle ist open sie wie oben sie wie steht für open source computer vision und das ist eine freie software für jedermann und ganz wichtig open source bedeutet ihr könnt was entwickeln könnens zurückspielen in die community es wird integriert und jeder kann es nutzen wir programmieren hier in c++ und python das heißt wir sind schon ein bisschen schneller als in matlab c++ ist auch das stichwort was in der automobilindustrie dann für die entwicklung des codes genutzt wird auch hier können wir in linux arbeiten auf mac oder windows und die toolbox gibt es seit 2006 und seit 2006 auch weiterentwickelt das gute daran ist das ist alles enthalten was man braucht auch hier können wir mit gps arbeiten es ist sehr gut dokumentiert es gibt tutorials einige dieser tutorials habe ich euch auch international slides eingefügt aber teilweise ist die installation ein bisschen nervig ich habe ich das stichwort ganz besonders wenn man mit gpu arbeitet das ganze zu kompilieren dementsprechend zu konfigurieren da kann schon mal am tag drauf gehen und da hat man nur die toolbox installiert leicht nach aber wie gesagt am ende habe ich dann eben die komplette performance dieser toolbox und damit sind wir schon am ende von unserer maschinen vision das heißt wir jetzt gesehen es gibt verschiedene kameras hier jetzt eben die zeg kamera und die point grey kamera wir haben diese angeschlossen per usb und wir uns jetzt geschafft ein bild zu akquirieren und wir kennen jetzt auch die software mit der wir unsere bilder verarbeiten können das heißt an dieser stelle geht es jetzt eigentlich erst ans eingemachte denn jetzt haben wir unser bild auf unserem computer ich glaube es war ein punkt png und mit diesem punkt png wollen jetzt ein bisschen mehr machen wir wollen es verarbeiten wir wollen es vor verarbeiten image processing ist das stichwort dafür dass wir methoden anwenden die operationen an bildern ausführen und zwar operationen so dass wir ein erweitertes bild bekommen oder informationen generieren extrahieren die für uns wichtig sein könnten und methoden bedeutet entweder wir greifen auf funktionen zu algorithmen die irgendjemand schon mal entwickelt hat in unserer toolbox matlab oder obens wie oder wir führen ganz einfach mathematische operationen aus hier ist ein bild aus national graphics auf der rechten seite sehen wir einen blauen boden schwarze bäume und extremes orange im hintergrund auf der linken seite sieht das originalfoto und letztendlich haben wir dieses bild eigentlich nur bearbeitet also wir haben image processing durchgeführt und wie wir dahin kommen dass würde ich euch jetzt gerne in diesem kapitel zeigen auch hierfür habe ich mir eine pipeline überlegt wir wissen jetzt schon wir haben objekt wir haben unsere kamera ausgewählt und jetzt haben wir unser bild auf unserem computer und das allererste was uns auffällt irgendwie sieht so ein bisschen komisch aus es ist ein bisschen versaut weil wir unsere kamera nicht kalibriert haben der nächste schritt ist wir müssen es digital transformieren aktuell liegt nur als punkt png auf meinem desktop damit kann ich nichts anfangen und ich das geschafft habe dann könnte ich an dieser stelle schon cut machen und könnte sagen passt ich habe mein bild digital vorlegen damit mache ich jetzt irgendwas cooles wenn wir es aber richtig verarbeiten wollen dann geht es darum farbräume zu definieren wenn ich farbräume definiert habe dann kann ich das bild auch noch filtern da kann ich den kontrast erhöhen dann kann ich es verschieden kippen spiegeln oder vielleicht ganz unten ich kann suisse ampeln oder komprimieren und wenn wir das nicht ausreicht dann kann ich eben nochmal abspeichern oder ganz am ende weiter verarbeiten für zum beispiel eine klassifikation wo wir dann unsere merkmale extrahieren und diese pipeline die dürft ihr euch auch ziemlich gut merken weil das sind die einzelnen stichpunkte die wir brauchen um letztendlich das bild zu verarbeiten und auch jetzt gehen wir diese pipeline von vorne bis nach hinten einmal durch eben schon aufgezeigt unsere kamera kalibrierung ich schaue mir das bild auf meinem computer an das sich eben gemacht habe und ich sehe irgendwas passt mit diesem bild nicht ganz hier ist mal als beispiel eingetragen wir haben das bild bevor wir eine kammer kalibrierung durchgeführt haben und danach man sieht in diesem bild eine ganz leichte verzerrung und der grund dafür ist dass wir verschiedene linsen einsetzen dass wir billigere kameras haben und das ganze nennt sich das tor schien verzerrung es gibt es einmal in radialer richtungen tangentiale richtung und die kamera kalibrierung ist dafür da diese verzerrung mehr oder weniger auszurechnen eine gegen verzeihung zu berechnen die auf das bild anzuwenden und so die verzahnung zu eliminieren ebenfalls brauchen wir das ganze um objekte zu messen das heißt wenn wir eine verzahnung im raum haben bzw auf unserem bild dann würden wir eben nicht die richtige länge definieren von unserem objekt wenn wir das messen wollen oder später um tiefe informationen zu generieren kamera kalibrierung bedeutet für uns dass wir extremistische und intrinsische kamera parameter definieren zum beispiel die position der kamera oder auch die volle länge oder vielleicht auch das image sensor format das sind alles wichtige informationen die wir brauchen und für die kamera kalibrierung gibt es zwei möglichkeiten beispielsweise liefert in seinem stk eine möglichkeit die kamera ganz einfach zu kalibrieren standardmäßig läuft das ganze aber so ab drückt euch ein schachbrettmuster aus diese schachbrettmuster findet man online und mit diesem schachbrettmuster macht ihr ein paar bilder also nehmt ihr eure kamera macht ein paar bilder davon und dann sieht das ganze hier oben links aus das hab ich jetzt aus dem internet jemand hat mit seiner kamera ein bild gemacht und dann wendet ihr einen bestimmten algorithmus an dieser algorithmus nennt sich find koller rings und das sieht dann so aus der algorithmus definiert automatisch für uns die ecken in diesem schachbrettmuster wir haben ihm vorher mit gegeben wie viel felder das schachbrettmuster in längs- und querrichtung hat wir sehen hier noch mal ein zweites bild und hier nochmal ein drittes bild und mit diesen informationen schachbrettmuster können wir jetzt die verzahnung die entzerrung des matrix berechnen und das ganze auf unser bild anwenden entschuldigung das ein bisschen klein geworden aber letztendlich haben wir hier ein ein zartes bild und diese kamera kalibrierung ist standard diese kamera kalibrierung müsst ihr immer machen bevor ihr eure bilder verarbeitet und diese kammer kalibrierung ist standard in der matlab toolbox und s standard in der opentv toolbox und ich habe es als tutorial eingefügt kommt eben mit vorgefertigten funktionen und algorithmen an und jetzt haben unsere kamera kalibriert jetzt sieht unser bild auch einigermaßen besser aus wir haben es keine verzerrung mehr aber wie gesagt gerade moment liegt noch als punkt png vor und ist schlecht für uns damit können wir nichts anfangen deswegen müssen wir uns die frage stellen was ist ein bild ein bild ein image ist für uns als ingenieure oder hier auf unserem computer wenn wir verarbeiten wollen eine rein numerische repräsentation und zwar zweidimensional als standard und das habe ich jetzt mal extra eingefügt ist es für uns nicht nur eine matrix sondern dreimal tritten und zwar eben für den bereich rgb und wir sehen hier unten rechts ein objekt ist einfach nur schwarzes element dieses schwarze element wird jetzt von unserer kamera aufgenommen und als numerische repräsentation bedeutet dass wir haben hier die anzahl der pixel in xy lichtung unsere kammern haben wir vorher gesehen hat eine auflösung von 1280 x 720 letztendlich bedeutet dass die höhe und die weiter das jetzt immer unsere pixelanzahl und unser objekt wird jetzt in diesen einzelnen pixeln repräsentiert und zwar einmal durch einen roten grünen und blauen wert und genau dieser rote grüne und blaue wert kommt daher dass wir in unserer kamera einen bestimmten sensor haben einen sogenannten lichten lichtempfindliches bauteil mehr so genanntes cdc dafür gab es 2009 den nobelpreis als man den entwickelt hatte und letztendlich ist das nur eine art filter und dieser filter lässt in einem bestimmten fachbereich wir sind hier im farbbereich rot grün und blau das sind die drei grundfarben dieses fachbereichs informationen zu und speichert die auf unserem pixel raster ab das heißt wir erweitern jetzt unsere matrix um zwei weitere matrizen und sehen jetzt dass unser bild mathematisch durch diese drei matrizen repräsentiert wird ich wiederhole mich noch mal an dieser stelle wir sehen dass unser bild mathematisch durch drei matrizen repräsentiert wird das war’s mehr brauchen jetzt erstmal nicht unser bild liegt jetzt mathematisch vor und mit matrizen haben wir irgendwann mal gelernt zu arbeiten in der höheren mathematik damals vielleicht noch gymnasium und das heißt wenn wir jetzt unser bild als matrize vorliegen haben können wir mathematisch damit umgehen und das für uns extrem wichtig weil das allererste was wir machen wollen ist nämlich die farben des bildes ändern das heißt wir sind jetzt im bereich der kaller spaces es gibt verschiedene fachbereiche die gibt es nicht nur in der computer vision die gibt es nicht nur im autonomen fahren die gibt es überall für bestimmte probleme beispielsweise am drucker und letztendlich haben wir diese fachbereiche weil wir immer bestimmte probleme auch angehen wollen stichwort autonomes fahren wir haben hier sehr viel mit lichteffekten zu arbeiten das nicht ändert sich wir haben mit schatten zu arbeiten und letztendlich das bild was wir dann aufnehmen müssen wir müssen wir informationen generieren und wenn der farbraum nicht passt die wir anwenden dann können wir diese informationen nicht finden die wichtigsten farbbereiche für uns die wir auch näher beleuchten wollen ist der rgb farbraum und der asv farbraum nicht zu verwechseln mit dem fußballverein gehe es schlecht der rgb farbraum der rgb farbraum steht für rot grün und blau rot grün und blumen ich habe auch noch mal farblich markiert damit auch jeder weiß wo wir unterwegs sind und wie gesagt das sind die drei grundfarben dieses farbraums wir könnten auch andere grundfarben definieren und ein bild bzw 1 pixel bedeutet jetzt für uns die additive vermischung von diesen drei farbwerten der fachbereich geht von null bis 255 das heißt jeder pixel bekommt jetzt eine dieser zahlen warum weil wir eine auflösung von 8 bit haben 8 bit bedeutet für uns in drei fachbereichen die mögliche darstellung von 16 millionen farben sollte ausreichen wenn wir auf 16 bit hochgehen sind wir dann eben bei 230 millionen auch das sollte ausreichen drei mal die null in jeder matrix also in jeder rot grün und blau matrix bedeutet für uns ein schwarzes bild dreimal die 205 255 bedeutet für uns ein weißes bild ebenfalls gibt es dann noch den hsv braun und dieser steht für you situation und value der jufa wert wird in grad gemessen und definiert letztlich die wellenlänge unseres lichts also den farbwerte situation bedeutet für uns die sättigung das heißt die vermischung mit einem weiß wert den geben wir an von 0 bis 100 prozent letztendlich haben wir dann noch den value den v wert und dieser gibt uns den helligkeitswert an nämlich die energie des lichts die dort hinter steckt das heißt bei null prozent haben wir ein extrem dunkles bild und bei 100 prozent haben ein sehr helles bild und wie diese farbraum definition abläuft und wie man das jetzt bei den bildern sich anschauen kann das würde ich jetzt ganz gerne mal zeigen aber nicht irgendwie sondern mit einem live bild wie gesagt keine sorge ihr werdet nicht gefilmt das heißt das sind wir jetzt genau kann man mal winken und das ist jetzt unsere darstellung des bildes ein video bedeutet für uns nur dass wir mehrere matches nacheinander einladen was ich jetzt machen kann oder was ich jetzt machen möchte das sag ich das ganze erst mal in einen grau wert umwandeln ihr seht hier ich habe jetzt unseren farbraum mehr oder weniger gesprengt habe jetzt aus drei matrizen eine gemacht und stellt das ganze jetzt nur schwarz weiß da was jetzt machen kann ich bitte dieses bild in seine drei einzelnen farben das heißt wir haben hier ganz vorne links keinen grün wehrt und kein blau wert nämlich nur dem rot wird das heißt dass unser bild so sieht s road geradeaus es kommt am beamer tatsächlich ein bisschen dunkler rüber als bei mir am desktop stichwort farbraum weil hier in beamer ein anderer farbraum eingestelltes oder repräsentiert wird deswegen hier das grüne bild und letztendlich auch noch das blaue bild wenn wir jetzt in den hsv farbraum gehen dann würde das bild so aussehen wie ein bisschen komisch aus damit kann man auch nicht so viel anfangen aber wenn wir das auch hier an dieser stelle splitten dann sehen wir ganz vorne den wert sehen in der mitte den es wert die situation und ganz hinten den v wert und hier sieht man schon relativ gut dass man in diesem bild in diesem hsv farbraum wenn wir das ganze aufteilen mehr informationen bekommen oder genauere informationen als noch bei einem r oder geh oder bild wir haben gesehen das rote bild war sehr sehr dunkel das heißt ich kann da keine merkmale extrahieren das ist schlecht für uns und hier im hsv hsv farbraum haben wir eben die möglichkeit mehr informationen zu generieren das heißt unser bild ist tatsächlich weniger komplex wir haben mehr kontrast mehr kanten mehr formen und damit können wir dann auch besser arbeiten und besser arbeiten ist das stichwort für unser nächstes problem nämlich dass filtering letztendlich bedeutet filtering für uns nur die mathematische operationen oder die mathematische multiplikation mit unserem bild und da wir jetzt schon 45 minuten da eben jetzt schon 45 minuten zugehört habt würde ich an dieser stelle einen kleinen break machen für fünf minuten heute haben wir nämlich ein bisschen mehr zu tun in der übung deswegen jetzt kurze pause fünf minuten dann spart man auch mal eine dreiviertel stunde durch mit dem inhalt da gibt es noch mal eine pause und dann machen wir die übung gut wir haben jetzt kennen gelernt welche farbräume es gibt und jetzt sind wir beim nächsten schritt in unserer pipeline nämlich dem filtering filtern bedeutet für uns dass wir eigentlich nur lokale funktionen berechnen in einer umgebung von benachbarten pixeln das hat aber im grund warum wir das machen wollen wir können einmal in einem räumlichen bereich filtern da gibt es methoden wie musik oder shopping oder wenn wir texturen messen wollen wir können dem frequenzbereich filtern so genanntes die neuling also rauschen in unserem bild oder rauschen aus unserem bild entfernen hier ist das stichwort bröring zu nennen was wir gleich sehen werden oder ein sampling oder auch die image kompression oder letztendlich templates und images arbeitslose möglichkeit gibt für unseren filter über das bild zu gehen und merkmale zu extrahieren hier sehen wir mal beispielsweise wie so ein filter funktioniert ja mit eben ein filter definiert und diesem filter nennen wir können und könne ist für uns nur eine kleine matrix ohne diesem fall haben wir eine drei mal drei matrix mit bestimmten werten und diesen filter wenden wir jetzt auf unser bild an nochmal zur wiederholung unser bild ist auch nur eine matrix und wir multiplizieren jetzt diese matrix mit der kleineren matrix und bekommen auf der rechten seite neues bild mit neuen informationen das heißt um einen pixel herum verändern wie jetzt die pixel werte wir können jetzt mal durch das bild durch gehen und sehen auf der rechten seite werden neue pixel werte eingetragen da können wir uns nicht so viel drunter vorstellen sind im zahlenwerte die in der matrix stehen deswegen hier mal als beispiel mitgebracht ein bild von unserem professor liga wir haben jetzt das bild entschuldigung wir haben jetzt mal vier verschiedene filter angewandt und zwar einmal einen filter wir sehen es hier das bild ändert sich leicht wir haben einmal einen filter mit einer drei mal drei matrix und nimmt löring filter mit einer fünf mal fünf matrix bleiben oder das learning machen wir weil wir eben feinere kanten haben wollen und vor allem weniger kanten das brauchen wir im anschluss so merkmals extraktion und um das rauschen zu reduzieren eben gesagt die neue singen wird das ganze dann nicht nur drei mal drei machen sondern 5 x 5 dann sehen wir dass das bild noch weicher gezeichnet wird oder ganz rechts zu sehen wir schaffen das bild und hier denke ich mal euren blick auf die 0 das bedeutet wir entfernen pixel und zu entfernen von diesem pixel führt dann dazu dass wir an dieser stelle keine information haben und unser bild dementsprechend scharfer wird auch dafür habe ich mal ein kleines beispiel mitgebracht wie man sich das vorstellen kann das heißt wir haben es wieder die live demo von unserem klassenraum wir können das ganze erstmal in den grau wert umwandeln und jetzt muss man extrem genau hinschauen 3 2 1 wir sehen jetzt auf der linken seite das bild in seinem grau wert aktuell dargestellt und gesehen auf der rechten seite unser bild einmal mit einem 2d konklusion filter gefiltert dh das ist eben weicher gezeichnet ich finde das ganze noch mal an achtung jetzt wir haben jetzt den motion blur 3 x 3 angewandt und im vergleich zu vorher dürftet ihr fast keinen unterschied gesehen haben das heißt diese algorithmen sind sehr sehr ähnlich sie funktionieren beide fast gleich identisch und führen eben zur selben funktion nämlich den blogging unseres bildes eben dem weichzeichnen unseres bildes mit diesem filtermethoden können wir dann wie gesagt das bild weichzeichnen informationen reduzieren und damit mehr merkmale extrahieren der nächste schritt in unserer image processing pipeline ist es contrast enhancement der kontrast eines bildes ist definiert über die anzahl der pixel in bestimmten farbtiefe wir sehen hier aufgezeigt ein bild welt balanced also das ist das originalbild hier und ein histogramm gibt uns die verteilung der pixel die anzahl der pixel über den tiefen bereich der farbe zurück sie sehen hier die verteilung sehr breit wenn jetzt ein bild haben was zu dunkel ist dann verschiebt sich unser histogramm unsere verteilung zu einem bereich des geringen kontrast das heißt wir haben hier ein maximum und da hinten fels ab oder wenn unser bild zu hell ist dann verschiebt sich der kontrast in den rechten bereich und wir haben hier ein maximum der kontrast eines bildes wird eben durch die programme definiert wir sehen hier mal ein bild mit verschiedenen helligkeits bereiche mit verschiedenen kontrast bereichen und die möglichkeit aus diesem histogramm auszulesen bedeutet für uns wir sehen dass wir informationen in diesem bild verlieren wenn man zu hohen kontrast haben ist das bild zu hell damit können wir nichts anfangen weil die letztendliche informationen verloren gehen das heißt wir müssen den kontrast in unserem bild anpassen dafür gibt es zwei standardmethoden ist eine nennt sich histogramm die quali session das heißt wir schneiden unsere erhöhten pixel ab und fügen diese pixel in den mittleren bereich ein und verbreitern unser ist so gramm dann gibt es noch die methode die nennt sich clark kontrast limited adaptiv histogramm quali session als eine erweiterung der ist sogar quali session und mit dieser erweiterung schneiden wir eben oben pixel ab und fügen sie unten und oben hin zu auch das sind methoden die werden schon bzw die kommen schon standardmäßig mit dem open zivi oder auch mit matlab wir schauen uns das ganze noch mal live an das allererste was ich jetzt machen werde ist ein bild vom klassenraum dieses bild des klassenraums sieht folgendermaßen aus dass hier und zu diesem bild bekommen wir ein histogramm wir sehen jetzt hier im farbbereich der 255 eine verteilung des programms obwohl wir relativ viel licht haben in diesem bild ist es an der einen oder anderen stelle noch dunkel ich denke mal den blick auf den unteren linken bereich bei den dunklen stühlen und wir können jetzt einen algorithmus aus führen nämlich dies sogar im quali session ein bisschen groß geworden eine sekunde und letztendlich sehen wir hier auf der linken seite unser bild bevor wir den kontrast verändert haben und rechts unser bild nachdem wir den kontrast verändert haben mit diesem fertigen algorithmus wie gesagt der kommt mit der oben sowie toolbox nennt sich tv 2.0 es ist die kann man ausführen und letztendlich unsere verteilung unsere verteilung der tiefen farbtöne verändern und mit diesen informationen haben wir jetzt unser bild einmal in den farben geändert haben unser bild einmal im kontrast verändert und nun haben unser bild noch einmal gefiltert wir haben jetzt eben wie gesagt die neues reduziert das ganze eben ein bisschen weich gezeichnet und letztendlich sind wir dann an dieser stelle erst mal fertig mit unserer bildbearbeitung aber jetzt haben wir extrem viel informationen in diesem bild geändert und können mit diesen informationen weiter arbeiten die möglichkeit die wir jetzt noch haben ist eine fein transformation zu machen fein transformation bedeutet letztendlich dass wir die orientierung oder die position der pixel verändern wir können das bild einmal rotieren um einen bestimmten winkel das heißt wir drehen das bild einfach nur wir können scheren oder vielleicht klassischerweise wir spiegeln es einfach nur da ist natürlich immer die frage wann brauche ich das letztendlich und das müsst ihr immer auf euren anwendungsfall achten habt ihr beziehungsweise braucht ihr eine spiegelung oder eine störung ihres bildes ich habe hier noch mal aufgetragen letztendlich machen wir auch nur wenn wir einen kernel an den wir auf das bild mit dem bild multiplizieren mit den einzelnen pixel und bekommen dann das gewünschte ergebnis ebenfalls gibt es noch die möglichkeit zum recycling also das was wir jetzt schon kennen gelernt haben als fein transformation erweitert indem wir sagen wir haben jetzt ein bild mit einer bestimmten pixelanzahl und wir erweitern jetzt die pixelanzahl das heißt wir vergrößern das bild oder wir verringern das bild was für uns bedeutet wir reduzieren die anzahl der pixel hier eingetragen haben wir ein input bild mit sehr sehr vielen pixeln wir führen dann wieder eine mathematische operation aus und haben hier am ende ein output nämlich im bild das viel kleinere pixel hat was bedeutet das für uns das wichtigste dabei ist es dürfen keine informationen oder so wenig informationen wie möglich verloren gehen und um das auszuprobieren bzw das anzuwenden gibt es extrem viele methoden hier mal dargestellt das upcycling es gibt den nearest neighbour method wir sehen hier wie das bild davor und danach aussieht das heißt wir haben um den faktor 2 vergrößert sehr schön dabei zu erkennen dass wir starke kanten im bild haben aber es gibt noch weitere methoden die gleichzeitig unser bild wieder glätten das heißt es gehen keinerlei informationen verloren die wahl der methode kommt auch immer auf euren anwendungsfall an da gibt es kein best practice das kommt tatsächlich wie gesagt darauf an was wir damit machen wollten in welchem bereich befindet auch aus dem autonomen fahren oder der bildverarbeitung kann ich tatsächlich keine methode nennen wo ich sagen kann dass es stand der technik oder state of the art und damit sind wir am ende des image processing das heißt wir haben es kennen gelernt wie ich das bild in den computer reinbringen wir haben kennen gelernt was ich mit diesem bild machen kann wir haben kennen gelernt dass ich dieses bild weiterverarbeiten kann und zwar indem ich den farbraum ändern indem ich es filter in dem ich den kontrast erhöhen oder es vielleicht auch in seinen formen ändern und letztendlich ist die frage warum machen wir das alles und es gibt einen grund das ist er der wichtigste überhaupt wie man es sich zum spaß aus freude oder uns langweilig ist denn wir wollen merkmale sogenannte features in unserem bild erkennen das hier ist eine straße aus amerika und die frage die ich euch jetzt gerne stellen möchte ist was glaubt ihr könnten merkmale seien die wir in diesem bild nutzen können damit wir rausfinden wo sich die straße befindet wenn die derart einfach mal kurz melden die straßenmarkierungen so die straßenmarkierung ist natürlich ein relativ breites stichwort vielleicht kannst du mal gerne einschränken okay die seitenlinie auch noch ein zu großes stichwort ich frage meine kollegen die anzahl der spuren sehr gut den horizont richtig weil am himmel gibt es keine straße da brauche ich sie nicht suchen was haben auch schöne seiten schild soll ich da dagegen fahren oder das steht da auch an der seite ist richtig wenn ich jetzt mal nur den fokus aber auf diesen bereich lenke dann ist es für mich ein bisschen mehr sie einmal eine gelbe seitenlinie einmal eine weiße seitenlinie beziehungsweise eine weise mit linie das heißt farbe farbe ist für uns extrem wichtig dafür aber jetzt auch die farbräume durchgenommen des weiteren sehe ich die form das hier ist eine krümmung haben die kurve namens plein und wenn ich schon mal weiß dass es plant sein könnte dann kann ich auch danach suchen wir haben auch die orientierung der straße die straße geht wie eben kennen gelernt nicht einfach in den himmel sondern verläuft nach hinten und letztendlich auch die position in unserem bild die befindet sich nämlich immer direkt vor unserem fahrzeug oder eben an der seite also das stichwort der mehreren fahrspuren war schon gut und letztendlich sind das die merkmale nach denen wir suchen müssen also die orientierung die farbe die form und die position in unserem bild das heißt features für uns ein merkmal in einem bild wo ich sage das jetzt noch mal ganz explizit dazu in einem bild wir sind jetzt grad in der computer vision in der verarbeitung von bildern ein feature kann sehr sehr viel sein gibt es dann auch im bereich der laser scans aber für uns im bereich eines bildes ist es informationen die wir dann extrahieren können um eine bestimmte aufgabe zu erfüllen wir unterscheiden dabei zum einen in der feature detektion dh wir finden erst mal ein feature in unserem bild zum beispiel die straßenmarkierung und dann bedeutet auch gleichzeitig für uns noch feature extraction die extrahieren diese information das heißt wir können irgendwas damit anfangen und das ist tatsächlich ein himmelweiter unterschied nur weil ich es gefunden habe in einem bild heißt das noch lange nicht dass ich die informationen tatsächlich nutzen kann hier mal ein beispiel dargestellt die von der freiheitsstatue den zwei bildern das heißt wenn ich um diese statue umgehe sich verschiedene gelbe punkte das sind für uns verschiedene merkmale diese merkmale kann ich jetzt eben dazu nutzen um 3d rekonstruktion zu machen um vielleicht die bewegung zu tracken um unseren roboter zu navigieren oder um objekte wieder zu erkennen und diese objekterkennung oder diese klassifizierung die wenn wir heute als allerletztes beispiel anschauen und das erste feature was es in dem bild gibt es relativ simpel sind kanten und zwar ist es unser ziel ganz also plötzliche änderungen in unserem bild zu detektieren was wir eben als kanten wahrnehmen ihr seht hier im bild das ist aufgenommen von der straßenbahn und künstler hat die straßenbahn noch einmal nachgezeichnet das heißt hier oben links in dem fenster müssen wir menschen klar wo ist die kante von unserem computer ist es sehr schwer wenn ich jetzt aber hier unten rein geht dann sehe ich schon klare kanten da ist für unseren computer dann sehr einfach dieses merkmal letztendlich zu extrahieren das heißt wir müssen es schaffen unser bild irgendwie so umzuwandeln dass wir diese kanten detektieren können das problem dabei ist kanten können sehr sehr viel sein zum beispiel einen übergang von der fläche hier an der flasche dargestellt oder eine tiefe übergang vielleicht auch die farbe wir sehen es hier an dem von schwarz auf weiß könnte auch eine kante sein oder vielleicht weil wir den schatten dargestellt haben auch das kann die kante sein und letztendlich definieren wie eine kante wenn wir mal durch dieses durchschneiden machen wir mal hier definieren wir als kannte einen veränderungen in der intensität funktion unser pixel und wenn wir die ableitung von dieser intensität funktion bilden erst ableitung dann sehen wir hier an dieser stelle zwei kanten und genau diese beiden kannten entsprechen dann eben diesen bereich hier mal dargestellt ein schnitt durch ein ganz normales bild und diesem bild sehen jetzt die intensität funktion winkler relativ stark und wir bilden jetzt die erste ableitung und diese erste ableitung zeigt uns jetzt unsere kanten an klingt mathematisch ist es auch zum graf der ist ganz nett aber auch damit können wir noch nicht so ganz was anfangen wir ingenieure wir wollen was handfestes haben und deswegen hat sich jemand im jahr 1986 was tolles überlegt nicht schon kennen der ratgeber geschrieben computational protection zwar hat er einen algorithmus erfunden mit dem wir extrem einfach kanten erkennen können im rahmen dieser vorlesung schafft es leider nicht dass wir da tiefer einsteigen können deswegen habe ich euch das paper hochladen und wie gesagt da unten bei 27.000 situationen schon ziemlich ordentlich das ist state of the art das wird so überall eingesetzt und wie diese kanten erkennung funktioniert das schauen wir uns jetzt mal live an wir haben wieder unser bild ist lade ich jetzt als livestream rein wir sehen dass wir jetzt schon in grace geld bereich sind warum mache ich das um die komplexität des bildes zu reduzieren weil wir jetzt extrem stark auf die karten schauen wollen im zweiten schritt rechtes bild mit dem neben blur filter und im letzten bild wenn dich jetzt den algorithmus an und das ist der keltischen algorithmus der uns jetzt zeigt welche kannten wir haben wir sehen es hier an der decke relativ gut da haben wir die kanten von den lampen wir sehen hier ganz vorne den lennart lennart kannst mal winken genau wir sehen hier die anzahl der sitze er bzw die sitznummer sehr gut dargestellt aber wir sehen hier auch im rechten bereich schaut mal hier an die wand hier haben wir sehr sehr starke muster und unser algorithmus ist nicht gut genug eingestellt um das tatsächlich zu delektieren das muss ich mal schauen ob ich schaffe das auch ziemlich interessant ist ich kann tatsächlich die spiegelung von meinem handy sogar anzeigen lassen hier die 17 uhr 28 das heißt das so gut eingestellt und so scharf dass er die spiegelung auf dem handy detektiert aber auch gleichzeitig so schlecht dass er für uns rauschen aufzeigt um sie gesagt auch das hier ist ein fertiger algorithmus mit der computer vision toolbox haben jetzt die informationen für uns generiert mit dem wir weiter arbeiten können denkt an die straße das machen wir dann in der übung wenn wir jetzt die kante detektiert haben sehen wie irgendwo hier unsere straßen linien aber das reicht uns noch nicht aus das heißt wenn wir nur die kanten haben dann ist das nicht genug weil was bedeutet für uns kannte ja wir sehen jetzt wir haben jetzt axel die als kanten dargestellt sind oder übergänge aber das ist zu wenig für uns an dieser stelle das heißt wir müssen das ganze noch ein bisschen erweitern das heißt wir müssen jetzt aus der kante tatsächlich die information extrahieren dass es eine kante ist und auch dafür gibt es sehr viele methoden und eine methode hat sich etabliert in den letzten jahren ist die häfler in transformation dörflein algorithmus auch der ist ein bisschen nicht komplexer aber es dauert ein bisschen länger den zu erklären auch da lade ich euch noch ein pep auch dass ich ein bisschen tiefer einsteigen könnt wie das tatsächlich funktioniert letztendlich bedeutet das für uns dass wir die pixel aus dem bildraum in den hofraum transformieren aus einem pixel wird eine linie und dort wo sich sehr sehr viele linien schneiden dort wurde der algorithmus sagen oder würde vermuten dass ich tatsächlich linien befinden das ganze sieht so aus dass wir noch mal ein bild haben links aufgezeigt das tor wir werden den kenny hatte hektischen an und fragen jetzt den algorithmus an welcher stelle würdest du nie kannte definieren auch dafür habe ich noch mal live beispiel mitgebracht wir schauen uns das an wie gut wir jetzt die kanten erkennung hinbekommen wir sehen hier live noch mal die klasse dargestellt grace kelly umgewandelt schon gehört wir sehen ja nochmal den kenny architektur algorithmus und wir sehen jetzt letztendlich die direktion von kanten es vergleicht nochmal an der linken stelle hier alle auf der linken seite sehen wir die kanten erkennung aber letztendlich rechts das was wir als informationen also als letztendliche linien uns extrahieren können jede linie bedeutet dann für uns wieder mathematisch gesehen einfach nur eine funktion die wir nutzen können um das ganze nachzuzeichnen auch hier sehen wir schon algorithmus ist relativ schlecht eingestellt linien sie nicht durchgehend wir sehen hier vorne sehr sehr vielen wechsel und das interessanteste an dieser stelle ist wenn ich anfangen die kamera zu bewegen haben wir leichten delay das heißt mein computer kommt jetzt schon eigentlich an seine grenzen das ganze zu verarbeiten und wir sind erst bei den standardfunktionen neben der connection und der havel ein transformation sind wir jetzt eigentlich schon relativ weit um informationen aus unserem bild gewinnen zu können das heißt jetzt haben wir eigentlich schon das handwerkszeug kennengelernt um die mücke um eine straße zu reduzieren das heißt wir jetzt ein autonomes fahrzeug hätten wird dass unsere pipeline die wir anwenden um die kanten straßen zu detektieren eine weiteres feature könnte an dieser stelle seien die corner traction das sind algorithmus der nicht so oft angewandt wird aber den es tatsächlich auch gibt und den ich euch natürlich nicht vorenthalten möchte und letztendlich wenden wir einen algorithmus an und dieser algorithmus kommt ebenfalls mit einem kölner und diesen kölner schicken wir über das ganze bild eine flache region haben wir da wo sie nichts ändert eine kante haben wir da wo wir eine änderung in der ableitung haben und da haben wir natürlich eine ecke an der stelle wo sich mehr ändert oder in viele richtungen ich eine änderung habe auch das nur mal als beispiel aber wie gesagt das ist etwas was im bereich autonom fahren eher weniger eingesetzt wird der letzte punkt für die features die ich euch heute zeigen möchte ist die sogenannte detektion von tiefe springen wir an den anfang zurück ich habe ich eine kamera herum gegeben eine kamera entspricht nicht unseren menschlichen auge weil wir zwei haben hier unsere zeg kamera ist jetzt in der lage auch die tiefe wahrzunehmen weil sie eben zwei einzelne kameras besitzt ich habe von dieser kamera alle informationen und hier unten eingetragen beziehungsweise hunden aufgezeigt sehen wir jetzt das bild von unserer stelle wie sohns kammer und in diesem bild wollen wir die tiefe wahrnehmen und die tiefe ist hier aufgezeigt der abstand zum fahrzeug und was ich kenne ist den abstand der linsen zueinander die fokale länge die wir vorhin aus unserer kamera kalibrierung gewonnen haben und letztendlich berechnet sich die tiefe aus diesen einzelnen parametern und der parameter de ist die disparity nämlich der abstand x1 x2 den wir hier in den einzelnen bildern eingetragen haben und mit dieser berechnung also wenn ich die information in der kamera kenne bei dieser kamera ist relativ einfach stellt euch einfach vorjahr zwei einzelne kameras die forum gegeben habe dann müsst ihr alle diese informationen zuerst raus müssen dann habt ihr die möglichkeit die tiefe zu detektieren das von meinem kollegen dem konzentrieren der vorne sitzt der hat diese bilder gemacht hat auch den algorithmus geschrieben und das sind jetzt zwei bilder vorne boltzmann straße und wir sehen hier die tiefenwahrnehmung wir haben tiefer entfernte objekte die in blau dargestellt sind mehrere objekte in roth aber auch hier haben wir ein extrem starkes rauschen aber letztendlich geben wir mit dieser funktion auch dafür gibt es fertige algorithmen in der computer vision toolbox das kann auch selber schreiben nämlich eine mathematische überlagerung der einzelnen pixeln so hat es der konsti gemacht und mit dieser information kann ich jetzt beziehungsweise komme ich jetzt den menschen noch ein bisschen näher weil ich jetzt eben meine zwei augen dargestellt habe und es mir ermöglicht zb diese kamera zugreifen weil ich genau weiß wo sie sich befindet und mit dieser information kann ich jetzt den abstand zu objekten herausfinden oder wenn wir daran denken dass wir mehrere frames hintereinander haben die geschwindigkeit eines objektes berechnen und damit sind wir jetzt am ende von der feature redaktion bzw der feature extraktion und ich leite hinzu der fischer analyse und wir haben hier eine frage ich hoffe ich kann sie beantworten denn experten natürlich dazu eingeladen extra für diese vorlesung dankeschön für die antwort gut wir haben uns ein feature delektiert wir haben jetzt die kanten durch die cash action wir haben die linien durch die havel ein wir haben vielleicht unsere ecken auch wenn man sich jetzt an dieser stelle ich brauchen und haben die tiefenwahrnehmung und letztendlich geht es darum jetzt mit diesen features etwas anzufangen das heißt wir analysieren sie unter dieser stelle mache ich jetzt ein vorgriff auf elektro nummer vier nämlich die klassifikation klassifikation bedeutet wir definieren oder wir geben einem objekt einordnen einem objekt eine klasse zu hier dargestellt die katze die klassifikation ist nur der erste schritt wir können gleichzeitig noch lokalisieren eben das objekt tatsächlich detektieren das heißt wir wissen wo es sich im bild befindet und wir können ihnen eine klasse zu ordnen und der letzte schritt an dieser stelle wäre tatsächlich die images segmentierung und stifte legt jetzt die images segmentierung das heißt wir ordnen jeden pixel eine position im raum zu und dementsprechend auch einem objekt zu und wir ordnen im ganzen eine klasse zu dafür müssen wir einen klassifizieren trainieren das lernen wie elektro nummer vier worauf ich hinaus möchte ist dass wir diesen klassifizieren irgendwas geben müssen mit dem er tatsächlich sich trainieren kann in diesem fall sind es unsere features das heißt aus einem objekt wird der katze aus dem hund oder hier zu sehende mensch extra hier ich jetzt meine features mit den ganzen methoden die wir eben kennen gelernt haben indem ich zum beispiel sagt das ist ein stück mund aus einem mund partie oder hier seht ihr ein fenster wir haben jetzt über uns bekannten detektiert wir haben das jetzt über unsere linien delektiert über unsere tiefe detektiert das müsste doch im auge sein weil es rund ist und das sind die einzelnen features die jetzt unsere klassifizierter gebe und mit dem ich ihn dann trainieren werde das wichtigste dabei ist und das jetzt noch mal eine wiederholung von letzter woche wir können das auf verschiedene art und weise machen wir können es logik passiert machen oder indem wir eine datenbank haben das heißt irgendwo liegen alle diese features also nase bedeutet es ist irgendwie einkehren pyramidenförmig oder du hast zwei kanten übereinander liegen im auge ist rund und auf diese information greife ich frage sie ab und sagt ich hab was rundes gefunden in diesem bild ich glaube es ist ein auge machine learning das ist das stichwort dann vielleicht vier genau das greifen wir dann auf wie das funktioniert zu klassifizieren oder neuronale netze und denkt wieder dran an letzte woche also ich gesagt hab computer vision klassische computer vision algorithmen also das was wir jetzt knapp 60 minuten 70 minuten gemacht haben ermöglichen dass die neuronalen netze an dieser stelle sind aber besser sind schneller und vor allen dingen sind sie eins sie brauchen keine features von uns vorgegeben die features in diesem bild finden sie selber also alles was wir jetzt den computer vision gemacht haben diese einzelne features unserer auszusaugen die kanten raus zu saugen brauchen wir nicht mehr machen dass neuronale netz alleine dadurch dass es eben verschiedene netz tiefen hat und zum beispiel hier an dieser stelle sagt okay hier habe ich ihm bestimmte augenpartie erkannt ich habe ich eine bestimmte kannte erkannte auch gar nicht mehr wissen was eine kante ist weil ich denke dass dort etwas ist und nutze diese informationen um mich dann zu trainieren nichtsdestotrotz geht es natürlich auch darum zu wissen wie man das anwenden kann wie man diese klassischen features die wir jetzt kennengelernt haben auch mal selbst extrahieren kann und das machen wir jetzt kurz vor schluss als letztes volles beispiel wir laden jetzt mal ein bild rein wird teilen dieses bild wieder auf in unsere pixel das allererste was man machen wir verändern den farb wert bei diesem bild haben wir gesehen okay der rgb fahrt wert ist relativ gut für uns weil wir nicht nur kanten detektieren möchten sondern auch fahren also den unterschied zwischen dem t shirt und im hintergrund und wir erweitern den kontrast das ist tatsächlich besser an dieser stelle gewesen als gar keine kontrast veränderungen anzuwenden wir nutzen den klar algorithmus und dann berechnen wir unsere gradienten also das was unser kind steckt schon algorithmus automatisch macht können wir jetzt bekannt machen dafür gibt es verschiedene möglichkeiten wir nutzen hier eine zentrierte gradienten berechnung wir sehen das ergebnis dieser gradienten und dann gewichten wir diese gallien und bauen uns ein so genanntes hockauf ein history histogramm of radiance wo wir die einzelnen gradienten die wir detektiert haben in diese einzelnen bereiche einordnen und zwar in ihrer ausrichtung wir haben hier neue mögliche ausrichtungen und in ihre pixel das heißt jeden pixel können wir zum gradienten zuordnen hier und mal da gestellt wie das beide menschen aussehen könnte wir normalisierenden kontrast in unserem history of radiance und dann sammeln wir alle history of radiance in unserem bild und haben letztendlich 3780 features 3087 einzelne features mit denen wir arbeiten können und dann kommt unsere support weg der maschine wie gesagt vorgriffe auf lektion nummer vier das müsst ihr an dieser stelle auch gar nicht wissen wie das funktioniert es geht nur darum zu wissen dass man es hier an dieser stelle anwendet und dann habe ich eine klassifikation und weiß das hier ist ein mensch das heißt noch mal wir haben jetzt einzelne features definiert mit dem wissen der computer vision und können jetzt diese features nutzen um etwas zu trainieren oder auf eine datenbank zuzugreifen und diese informationen nutzen wir daneben um herauszufinden dass dass sich junge menschen handelt damit bin ich beim letzten punkt für diese vorlesung wenn ich jetzt weiß dass das ein mensch ist das heißt ich habe jetzt meinen feature nicht nur extrahiert sondern auch analysiert habe die klassifikation durchgeführt dann kann ich natürlich noch ein bisschen mehr damit machen und zwei prominente beispiele habe ich euch heute noch mitgebracht das einmal der optical floh der optische fluss wir sehen hier unten haben wir einen zauberwürfel definiert und zwei bilder davon und wir springen jetzt von einem bild zu einem video das bedeutet eine bildfrequenz über die zeit und wenn wir ein objekt haben was ich über die zeit bewegt dann haben wir eine veränderte pixel wahrnehmung das heißt unser pixel ändern sich und wenn ich weiß dass das hier ein zauberwürfel ist das heißt ich habe es vorher klassifiziert da kann ich mich auf dieses objekt fokussieren und kann jetzt den optischen floss messen und das ganze habe ich mal hier dargestellt eben haben wir schon detektiert was ein mensch ist das heißt unser algorithmus der im hintergrund abläuft sagt okay da befindet sich ein mensch und jetzt schaue ich mir die bilder über die zeit an und messen den optischen fluss das ganze wird dargestellt mit pfeilen vector feilen an den menschen menschen umso länger dieser teil ist umso schneller bewegt sich der mensch umso kleiner dieser pfeile ist um so lange langsame bewegte sich und die ausrichtung des pfeils zeigt an in welche richtung sich das objekt bewegt das heißt diese information ist für uns extrem wichtig um beispielsweise beim autonomen fahren abzuschätzen in welche richtung fährt denn ein auto und mit welcher geschwindigkeit fährt es denn dort entlang der zweite bereich wo man jetzt unser extrahierten features tatsächlich wo man tatsächlich informationen daraus gewinnen kann ist die emotion estimation das bedeutet letztendlich wenn ihr euer auto nutzfahrzeug habt oder im roboter muss diesem roboter bekannt sein dass er sich von links jetzt hier nach rechts bewegt hat ich weiß es als mensch ich habe das jetzt irgendwie abgespeichert aber der roboter nicht dafür gibt es sehr viele möglichkeiten und eine möglichkeit ist das ganze visuell zu machen das heißt ich nehme meine kamera und ich fahr irgendwo rum jetzt mal hier dargestellt in einer straße das video ist ein bisschen schneller abgespielt und ihr seht hier rechts dargestellt sind jetzt im die features die wir extrahieren dh das sind bestimmte features die wir irgendwo mal detektiert haben in diesem bild und letztendlich können wir damit jetzt eine map aufbauen ist das sogenannte slam optical slam simultaneous lokalisation and mapping wir sehen hier unten das fahrzeug fährt und fährt und fährt und fährt das kann man sich dann mal zwei minuten anschauen und ganz am ende kommt diese fahrzeug wieder zurück auf seinen ursprungsort ist hier los und jetzt haben wir tatsächlich mit unserer kamera geschafft eine map von der umgebung zu konstruieren in der wir gerade gefahren sind das heißt wir haben bilder eingeladen wir haben die features extrahiert wir haben diese features genutzt um unsere umgebung darzustellen und damit haben jetzt eine map unserer umgebung erstellt an dieser stelle bin ich am ende für die heutige vorlesung ich würde noch ganz gern mal zusammenfassen was wir heute gelernt haben um noch mal auf die lernergebnisse einzugehen bei der aktion die perfektion ist ein problem der künstliche intelligenz wir teilen das ganze eine maschine wir schon einen computer vision und machine vision beziehungsweise computer vision ist für uns die möglichkeit informationen aus der kamera zu aus dem kamerabild zu extrahieren wir nutzen die kamera weil es der billigste sensor ist und weil die extrem viele informationen daraus generieren können und ganz wichtig je nach kamera computersoftware oder objektive die wir nutzen ist unser setup unterschiedlich und muss angepasst werden wir haben eine computer vision pipeline festgelegt kamera aussuchen kamera bilder kreieren software aussuchen informationen das bild vor verarbeiten processing wir extrahieren informationen wie können die dann analysieren dafür gibt es zwei libraries matlab simulink und open sea wir nutzen heute oben zivi zuallererst filtern wir das bild immer wir verändern den kontrast oder für wer verändern den farbraum dann extra hin wir uns features wie kanten dann nutzen wir diese kanten dadurch um dafür um objekte zu detektieren und ganz am ende können wir dann diese features nutzen um unsere machine learning algorithmen zu trainieren und weiterzuverarbeiten damit bin ich am ende für diese vorlesung ich hoffe es hat spaß gemacht wenn ihr noch fragen habt stehe ich gerne noch zur verfügung ansonsten würde jetzt an dieser stelle aufbauen wir machen zehn minuten pause und dann machen wir noch mit der übung weiter hier noch eine kurze vorschlag wenn wir jetzt gleich unsere über machen macht vielleicht auch sind dass sie noch ein bisschen nach vorne kommt das heißt wir werden jetzt live programmiert beispiel durch gehen wir werden uns code anschauen wie wir es schaffen aus einem bild und einem video eine straße zu detektieren das heißt mit ihr ein bisschen weiter nach vorne kommt dann könnte das auch besser sehen was wir jetzt gleich kronen alright dann herzlich willkommen zur ersten übung letzte woche war ja erst mal nur eine eine einführung für das ganze ich hab ich noch mal gezeigt wie die hausaufgabe funktioniert ganz kurz nur ein überblick wie viele von euch die aufgabe gemacht haben und waren auch sehr viele extrem gut dabei sagt für mich eigentlich nur aus das zu einfach waren das was wir nächste mal schwerer machen der länder und ich würden nach der übung zur verfügung stehen falls es noch mal fragen zur hausaufgabe gibt ich möchte das jetzt nicht explizit in dieser übung ansprechen wir haben gehört dass hier aktuell nicht mehr darauf zugreifen konnte was die lösung war was das problem war vielleicht bei aufgaben was vielleicht falsch war wir haben es eben freigeschalten das heißt ihr habt jetzt wieder zugriff darauf und ihr könnt auch die lösungen nachhinein euch nochmal anschauen wenn es da irgendein problem gab oder wie viele von euch auch fragen gestellt haben an unsere vorlesungs k e mail falls es da probleme gibt bei den einen oder anderen aufgaben auch wir haben wieder gesehen dass es vielleicht daran einen oder anderen stelle noch ein bisschen was nachzujustieren gibt oder eben noch mal ein bisschen explizit dazu erläutern gibt wir nehmen das feedback gerne mit und wir werden das dann eben auch für die nächsten hausaufgaben anwenden ab 18 uhr 30 ist die hausaufgabe dann für diese woche frei geschaltet was ich heute mit euch machen möchte ist die übungen late action ich hoffe mal ganz lesen da ich jetzt an dieser stelle ganz gerne einmal die powerpoint offen lassen möchte hier links zu sehen und rechts daneben live mit kunden beziehungsweise den kohl habe ich schon vorbereitet habe ich auch hochgeladen den code können wir diskutieren und für euch ist es letztendlich die pipeline die wir gerade kennengelernt haben angewandt auf das problem nämlich das problem die straße zu detektieren wir haben es eben gesehen es gibt verschiedene möglichkeiten mit denen wir arbeiten können um eine straße zu definieren das problem dabei ist dass wir verschiedene arten von straßen haben hier mal aufgezeigt eine straße mit und dem rechten durchgehenden mittelstreifen hier aufgezeigt eine straße mit einem durchgehenden gelben streifen nun durchgehend gelben streifen und wir nutzen jetzt dass computer vision know how aus der übung er aus der vorlesung was wir uns jetzt arbeitet haben und versuchen die informationen so zu extrahieren dass wir letztendlich ein zeichnen können wo sich die straße befindet als allererstes müssen wir uns eine eigene pipeline definieren der code den er mitgebracht habe ist wie gesagt in python geschrieben wir definieren uns hier oben unsere funktionen an dieser stelle uns unsere entschuldigung unsere libraries die wir noch extra anwenden wollen in python funktioniert es über die importfunktion als zweites habe ich hier an dieser stelle einmal eine funktion definiert die nennt sich großes image und diese funktion greife ich immer wieder auf weil ich diese funktionen an verschiedenen stellen anwenden möchte und letzten letztendlich habe ich unten zwei varianten nämlich einmal die möglichkeit ein bild zu verarbeiten oder im zweiten schritt ein ganzes video zu verarbeiten das heißt das ziel von dieser übung ist es zu verstehen wie bilder und videos einzeln bearbeitet werden können da ich das ganze auch noch ein bisschen übersichtlicher machen wollte habe ich alle funktionen die wir hier sehen in die find prozess habe ich noch mal in eine eigene datei gepackt die ich functions punkt genannt habe wie seht ihr hier wie gesagt zur besseren übersicht das allererste was wir machen wollen ist die bilder überhaupt rein laden das heißt wir müssen jetzt irgendwie schaffen dass wir von unserem computer das bild in unser python programm bekommen dass wir genau das bild in unserer tiefenbronn bekommen in der vorlesung haben wir das ganze live gesehen wir schließen unsere kamera an wir schließen unsere software an und wir greifen auf die kamera zu ziehen uns dieses bild ab und fangen an dieses bild zu bearbeiten hier in diesem fall machen wir das nicht live sondern machen das schon mit bildern die ich vorbereitet habe auf meinem desktop befindet sich ordner den habe ich euch hochgeladen nennt sich lag takt und niedriger der befindet der nennt sich practice session und in diesem ordner findet ihr test videos und bilder ich kann mich mal kurz auf machen wir haben drei verschiedene bilder weil wir die pipeline die wir uns jetzt definieren an drei verschiedenen bildern anwenden werden einmal die straße einmal eine andere straße und einmal noch eine straße aber jetzt eben mit einer gelben markierung und wie gesagt das allererste was wir machen möchten wir greifen auf diese bilder zu das heißt wir sind in diesem code beispiel hier image ist gleich eins bedeutet wir greifen jetzt auch bilder zu nicht auf videos und was wir in peißen machen eine vor luke die uns die bilder anzeigt erstmal in diesem ordner und es gibt die funktion image mp mgm ried wo wir letztendlich das bild laden können das ist unsere standardfunktion um ein bild in python zu laden wir können auch an dieser stelle die computer vision toolbox nehmen es würde sich dann eben die die beschreibung der funktion davor ändern wir haben nicht mehr diesen mgmg sondern tv2 punkt also so wie wir eben unsere python funktion unsere beißen library definiert haben ganz wichtig an dieser stelle habe ich so aufgezogen dass wir einfach nur eine folge haben die jedes bild einmal aufruft und im zweiten schritt werden wir unser großes image also unsere funktion wie wir das bild verarbeiten auf jedes dieser bilder an das heißt immer standard vorgehen bild laden bild verarbeiten beladen und bild verarbeiten und denkt jetzt mal daran was das für unser video bedeutet unser video besteht nur aus einzelnen bildern das heißt einzelne bilder die nach und nach einkommen werden jetzt in demselben prozess verarbeitet bild laden bild verarbeitet beladen bild verarbeiten es ist also immer dasselbe und dann starten wir an dieser stelle mit der image processing pipeline ich lenke euren blick auf den bereich hier oben die ersten drei funktionen das allererste was wir herausfinden müssen ist wie groß ist unser bild wie groß bedeutet welche pixelanzahl hat es wie groß bedeutet wie groß ist uns im matrix die wir bearbeiten können in xy richtung dafür gibt’s den befehl mit shape mit shape gibt uns dann genau diese werte in der python funktion zurück im zweiten schritt definieren wir uns jetzt das bild was wir als agb bild 3 bekommen haben als bauwert gray scale wir wandeln es quasi um und laden unser bild unser image das hier ist das was wir laden von unserem folge und führen die funktion grace klaus springer hier kurz in den funktionsbereich und wir sehen hier die funktion grace kelly und letztendlich ist grace kelly nur eine funktion aus unserer computer vision toolbox nämlich sie wie true color ist immer gleich eben der präfix tv2 punkt den haben wir nur weil ich die funktion computer vision 2 eben auch so definiert habe als cv 2 ich könnte natürlich auch einen anderen namen geben eben länger ausgesprochen computer vision aber wie gesagt wir greifen jetzt auf eine funktion in unser tool box zu nämlich dvt color und wann das ganze eben um rgb 2 gb 23 wenn ich das gemacht habe gibt mir eine funktion gibt mir diese funktion ein bild raus das jetzt nicht mehr drei matrizen enthält sondern nur noch zwei als grau wird mit diesem grau wird kann ich jetzt arbeiten und das allererste was wir machen wir bleiben unser bild wir werden die funktion anbau sie auch die befindet sich wieder hier in unserem funktionsbereich und kommt auch wieder außer computer vision toolbox und letztendlich müssen wir jetzt den kernel definieren nämlich die größe des kernels vorhin haben wir kennen gelernt es gibt die keine große nummer drei dann haben wir keine große nummer fünf kennengelernt und in diesem fall laden wir die körpergröße fünf reihen um unser bild etwas weich zu zeichnen wenn wir das gemacht haben haben wir jetzt die chance die canon steht action auszuführen das heißt wir werden jetzt den caddy action algorithmus an der kent steht action algorithmus bekommt zwei input informationen einmal die fünf von einmal die 20 und das ist die definition für den trash holt wie das ressort definiert ist habe ich hier noch mal in der powerpoint extra mit dazu geschrieben aber letztendlich sind es für euch die untere grenze und die obere grenze oder algorithmus sagt er kann eine kante detektieren erinnert euch daran wir haben live gesehen dass die wand hier an dieser seite extrem viele informationen enthält und algorithmus denkt dann da befindet sich doch theoretisch eine kante und damit hat er auch recht aber das sind zu viele kannten für uns und information die dahinter steckt ist vielleicht für uns völlig überflüssig und das ist der erste paar der zweite paar meter nach dem grausigen blur wo wir spielen können und wo wir auch unterschiede sehen können das war nochmal gleich live darstellen kann euch aber empfehlen euch zu hause mal hinzusetzen der coach sollte sollte auf der box funktionieren falls nicht schämen durch die ja auch gerne mal auf ihn zukommen aber ich habe es ein paar mal ausprobiert auch verschiedene laptops sollte eigentlich gehen sollte die kette steht action ist ebenfalls wieder eine funktion aus der computer vision toolbox wir sehen hier die fein kennen tv2 punkt kenny ist der algorithmus der wahl wir müssen die einzelnen ableitungen nicht direkt berechnen wir nutzen wieder die toolbox und jagen das ganze durch und bekommen dann am ende ein geblümtes bild was wir hier an dieser stelle einfügen werden jetzt habe ich einen punkt übersprungen und zwar haben wir freunde stichwort schon gehört wir müssen doch irgendwie sehen dass wir unseren bereich definieren nämlich dem bereich wo wir auf dieses bild schauen können und ich hab mal drei bilder mitgebracht wo ich euch mal aufzeigen kann welche möglichkeiten wir haben ganz grundsätzlich könnte ich sagen an dieser stelle ich schaue mir nur diesen unteren bereich an das ist für mich erst mal vollkommen ausreichend weil ich weiß hier oben im himmel da gibt es absolut keine informationen für mich die irgendwas mit der straße zu tun haben erstens weil ich genau weiß dass da nichts ist zweitens weil ich damit die rechenleistung meines computers reduzieren kann das heißt er muss ich gar nicht mehr mit informationen herum die sich dort oben befinden das heißt wir schwarzen den himmel einfach komplett aus und schauen uns nur den unteren bereich an die zweite möglichkeit die wir hätten wir können sagen die straße vor uns die hat eine verlauf der einem dreieck ähnelt das heißt wir können uns ein dreieck rausschneiden und sagen wir schauen uns nur diesen bereich an und löschen alles andere was wir hier sehen so zweck interessiert uns nicht mehr aber wenn wir jetzt daran denken dass wir eine kurve fahren ist das dreieck auch gar nicht so geil deswegen definieren wir uns an dieser stelle einen dritten return of interest und zwar zu jungen und zwar einfach nur ein trapez in dieser form vielleicht auch ein bisschen hübscher gezeichnet und dieses trapez ist definiert über seine ecken und dieses trapez nehmen wir und schneiden jetzt hier an dieser stelle alles ab und schmerzen ins aus und das ist für uns uns jetzt letztendlich die möglichkeit den return of interest zu definieren das heißt wir schränken im bildbereich ein definiertes hier als würdest es in dem wir einen ray aufziehen wo wir die einzelnen punkte definieren anhand der bildgröße wir verbinden jetzt diesen bereich mit unserem ken loach die action bild und das heißt für uns dass wir die kanten die wir mit der kfd diktiert haben jetzt nur noch auf diesem bild bereich einschränken der letzte schritt an dieser stelle ist jetzt die hotline transformation das heißt wir sagen dem algorithmus bitte schau dir den bildbereich an wo du der meinung bist du siehst die havel 1 auch der offline algorithmus hat mehrere import parameter die wir variieren können und somit die möglichkeit die länge oder die zusammenhängende stücke als linie wirklich zu definieren wir haben es gerade eben in der vorlesung sehen ich hatte sehr als sie wir die den hafen transformation durchgeführt haben wir haben sehr sehr viele einzelne stücke die nicht zusammenhängen und das für uns schlecht weil wir wollen jetzt eine richtige straße direkt ihren und jetzt kann ich diesen algorithmus einfach mal auf ausführen indem ich hier oben auf play drücken er zeigt mir unten an also dass es bei dem übrigens was ich nutze zeigt mir einander so das bild eingeladen hat dass es verarbeitet hat und er speichert mir das bild in meinem output folder so dass ich es dann eben betrachten kann schauen wir uns das erste bild mal an wie eben jetzt dargestellt haben wir die kanten haben wir uns unser bild verarbeitet wir haben im kenyatta detektion algorithmus bekannte definiert wir haben eine hotline algorithmus bekannte gefunden wir sehen es hier als zwei rote linien ich habe das ganze eben in rot markiert und ich habe versucht das ganze eben mit dem originalbild zusammenzubringen also letztendlich hätte ich jetzt unsere straße detektiert aber schlecht sind es hier im unteren bildbereich wir sehen ist hier im unteren bildbereich dass ich kann ich jetzt tatsächlich mal ganz schlecht aber man sieht es im unteren bereich ist unsere von der havel ein detektierten linie straßen linie etwas abseits von der definierten weißen linie das heißt unser auto hätte jetzt einen schmälern im bereich in dem wir sagen müssten wo es eben fahren kann können uns das zweite bild anschauen wo das ganze auch noch mal angewandt haben auch hier haben wir dasselbe problem unsere hotline definierte linie ist ein bisschen abseits davon oder hier im dritten bereich ebenfalls dasselbe problem das heißt unsere linien wurden schon richtig erkannt auch in der ausrichtung die hotline habe ich jetzt eben auch noch als zwei einfache linien nur dargestellt mit so einem großen knobl am ende und das ist eben schlecht für uns weil wir die straßen jetzt nicht richtig dediziert haben wir haben jetzt die möglichkeit an dieser stelle zu justieren indem wir sagen okay schauen wir uns mal in kenia jackson algorithmus an fünf ist ein extrem niedriger trash out gehe ich mal vielleicht auch 50 und vielleicht erweitert im bereich an dieser stelle mal für den algorithmus noch mal aus und heben die bilder nochmal an ob sie jetzt eben besser wurden und siehe da die kanten der lektion hat an dieser stelle besser funktioniert wir haben den bereich der kanten detektion erweitert und wir sehen jetzt dass die rote linie fast mit der weißen linie übereinstimmt der grund dafür war dass wir die weiße linie zuerst als wir den fresh holt auf 25 eingestellt haben er in den linken bereich verschoben haben das heißt die weiße fahne linie der weiße fahrstreifen an der seite unser algorithmus hat nur die linke kannte mehr oder weniger erkannt und dementsprechend hat der havel ein algorithmus auch diese kannte dort drüber gelegt jetzt haben wir beide kannten erkannt von der rechten vom rechten fahrstreifen und konnten somit die offline transformation besser durchführen hier dargestellt im zweiten bild das ganze nochmal oder dargestellt im dritten bild und das sieht schon besser aus jetzt wollen wir genau noch mal diesen schritt machen und das ganze auf dem video anwenden wo wir das auto mal wo wir eben mit dem auto entlang fahren ich ende an dieser stelle den wert von image auf null das heißt wir verarbeiten nicht mehr das image sondern verarbeiten jetzt nur noch das video und diese video verarbeitung funktioniert jetzt exakt so wie die bildverarbeitung wir sind in den gleich funktioniert genauso wie unsere bildverarbeitung wir nehmen das video ebenfalls aus einem folder den wir schon vorbereitet haben wir laden dieses video in brighton und wir fangen an dieses video aufzutrennen unser video hat jetzt wieder eine auflösung der resolution und bestimmte frames pro sekunde wir können jetzt dieses video mit den einzelnen frames nehmen und jeden einzelnen frame verarbeiten und dann die frames wieder zusammenfügen und am ende bekommen wir eben ein video wo wir die hotlines eingezeichnet haben status ganze mal an dieser stelle und wir sind da unten erlebt das video verarbeitet das ganze und speichert das video ab das ist ein video das glaube ich zehn oder zwanzig sekunden geht und ich sollte jetzt 1 aufgefallen sein ich kann es noch mal machen also ich habe jetzt bis 8 gezählt das heißt wir haben von acht sekunden video in 20 sekunden video knapp 88 sekunden gebraucht um es zu verarbeiten denken das autonome fahren denken wir an das thema echtzeit denken wir an das thema von hohem regel frequenzen das sind die acht sekunden in der bildverarbeitung vielleicht ein bisschen zu viel gewesen das reicht ihr seht dieser algorithmus oder diese diese pipeline die ich jetzt definiert habe braucht zeit und das ziel in der automobilindustrie oder jetzt in der entwicklung zielt darauf ab das ganze extrem schnell zu machen das heißt mehr bilder pro sekunde größere bilder pro sekunde und alle algorithmen kate steht action havel ein transformationen die wir jetzt kennengelernt haben in echtzeit aufzuführen und dementsprechend auf das bild anzuwenden und wir schauen jetzt mal an wie gut unser algorithmus jetzt in dem video funktioniert hätte das heißt wir fahren jetzt hier mit dem auto entlang wir sehen die linien eingezeichnet und im unteren bildbereich ziehen wir unser linie springt immer wieder ich fürs gerne noch ein oder zwei mal aus die rechte linie ist extrem oder diktiert worden hat den grund dass diese linie einfach durchgehend ist dass diese linie uns extrem viel informationen extrem lange kanten bereitstellt und dass diese linie auch mit dem weißen farb wert extrem einfach zu definieren war im linden bild bereich sehen wir jetzt die zerstückelte fahrlinie die mittelspur linie eine der mittelspur linien und sehen unser algorithmus springt an dieser stelle das heißt wir müssen unseren algorithmus verbessern wie gesagt den code bzw diese übung zielt darauf ab aufzuzeigen wie die pipeline aussehen könnte oder wie man die pipeline aufsetzen kann um das ganze besser um das ganze erstmal zu detektieren und ich hätte jetzt am ende noch eine frage oder mehrere fragen die darauf abzielen wie könnte ich diesen algorithmus tatsächlich jetzt besser machen werde einer hat schon die antworten gesehen eine frage jetzt einfach mal in die runde das heißt wie würdet ihr diesen algorithmus jetzt besser machen ich habe euch mehr oder weniger nur die grundlagen beigebracht hat das ganze extrem einfach parametriert so dass es überhaupt funktioniert aber es funktioniert zu schlecht als dass es jetzt in unserem autonom fahrzeug einsetzen können jetzt einfach mal die frage an euch wie würde ihren besser machen das allererste was ich vielleicht an dieser stelle machen würde ist die kamera kalibrieren habe ich nicht gemacht das video das damals aufgenommen wurde ist auch nicht kalibriert worden das heißt ich habe vertrauen in diesem bild die informationen sind ungenügend das heißt ich müsste es eben kalibrieren das zweite was ich machen kann aktuell habe ich ihn weil ein farbiges bild reingenommen ein rgb farben wir haben natürlich jetzt die chance auch den hsv zu nutzen und damit mehr informationen zu extrahieren ebenfalls was wir nicht gemacht haben wir haben die fahrspur als gerade linie definiert wir können diese fahrspuren natürlich auch als spline definieren und ebenfalls fehlt uns an dieser stelle auch eine schnellere verarbeitung das heißt mein algorithmus die nicht so aufgezogen habe der hat die standard algorithmen der nimmt auch im extrem großes bild ich könnte das bild natürlich auch komprimieren das heißt kleider machen die informationen sind ebenfalls noch vorhanden oder was irgendwo auf der hand liegt wir nutzen den komplett anderen algorithmus wir können das jetzt nicht einzeln runder wir nehmen jetzt nicht die standard algorithmen sondern wir nehmen vielleicht was ganz anders und an dieser stelle vielleicht zu nennen die artificial new networks die algorithmen bereitstellen wo man die fahrspur automatisch detektiert weil es neuronalen netzes schafft die informationen besser zu extrahieren als wir von unseren mit unseren hand getunten paar metern ebenfalls kommt dann natürlich noch dazu bist ein erfahrungswerte vielleicht ist das image bröring was ich jetzt gemacht haben mit dem 505 filter gar nicht so gut weil es gibt noch viel viel besseren algorithmus das heißt extrem viele erfahrungswerte die da rein fließen wir haben uns an dieser stelle nur ein einfaches video gesehen wo wir am hellichten tag entlang fahren das heißt wenn ich jetzt ein video geben würde und ich würde in video geben würde wo das fahrzeug durch den schatten fährt kann es gerne mit hochladen dann würden wir eben sehen dass wir aus setzte haben an dieser stelle das heißt im schatten haben wir nicht richtig direkt irrt wir haben die farbe wieder nicht extrahiert nicht richtig stichwort hier in den hsv farbraum gehen und das sind die informationen die uns an dieser stelle fehlen werden und das heißt wir müssen die pipeline besser machen damit bin ich am ende von dieser übung wie gesagt ich wollte ich heute mal zeigen wie es funktioniert wie man fahrspuren detektieren kann relativ simple algorithmus ich habe das alles hochgeladen ihr könnt zu hause gerne damit um spielen und an dieser stelle wollen wir singen würde ich mich freuen wenn ihr diese vorlesung und diese übung evaluiert euer feedback greifen wir gerne wieder auf vielen dank fürs zuhören ich hoffe es hat spaß gemacht


Leave a Reply

Your email address will not be published. Required fields are marked *