Linköpings Universitet Artificiell Intelligens 729G11 Autonoma Styrsystem Fördjupningsarbete inom Artificiell Intelligens 2008-09-09 Dennis Eng 860226-0070
Innehåll Sammanfattning... 2 Bakgrund... 3 Projekt Navlab... 4 ALVINN... 5 Uppbyggnad... 5 Träning... 6 On-the-fly träning... 6 Virtuella kameror... 7 Korsningar... 7 RALPH... 9 Insamling av bilder... 9 Kurvhantering... 9 Anpassning till underlag... 10 Diskussion... 11 Framtiden... 11 Reflektioner... 11 Referenser... 12 1
Sammanfattning Enda sedan Knight Rider har autonoma bilar varit häftiga. Samtidigt har de av många ansetts vara ren science fiction. Men sanningen är att utvecklingen av självgående system har kommit ganska långt. I detta arbete kommer de två autonoma systemen ALVINN och RALPH att undersökas grundligt i allt ifrån uppbyggnad till kurvtagning. 2
Bakgrund Utvecklingen av automatisk styrda agenter har på senare tid vuxit kraftigt. Vi kan till största del tacka ny teknik för detta men även människans outtröttliga vilja att upptäcka och utvecklas. I dagens samhälle fluorerar självständigt agerande maskiner och system som inom sitt avgränsande område är experter. Det finns redan idag många semi-autonoma system som är aktiva i fordon. Några exempel på sådana är antisladdsystem, låsningsfria bromsar och airbags. Dessa system jobbar för att aktivt förbättra säkerhet då den mänskliga faktorn är den absolut vanligaste orsaken till fordons olyckor. Till exempel så har man uppskattat att i och med införandet av automatiska landningssystem i flygplan, har säkerheten vid inflygningen blivit 100 gånger bättre än innan [1]. En annan fördel med många autonoma system är att de gör fordon effektivare. Kan man med hjälp av datorer minska avståndet mellan bilar i trafiken och på ett säkert sätt bibehålla detta kan man effektivisera fordonstrafiken avsevärt i takt med att antalet fordon ökar kraftigt. Utvecklingen av autonoma fordonssystem började på allvar under slutet av 70-talet då japanska forskare med hjälp av en fastmonterad kamera på en bil uppnådde automatisk styrning. Kameran följde de vita vägmarkeringarna och kunde uppnå hastigheter uppemot 30 km/h. 3
Projekt Navlab På Carnegie Mellon University i Pittsburgh, USA har man under många år forskat på system som kan köra förarlösa bilar. Det hela började 1986 då man omvandlade en helt vanlig Chevy till den autonoma bilen som kom att kallas Navlab 1. Den var fylld till bredden med datorkraft, bland annat en dåtida superdator. Trots denna last fick man vänta tills slutet av 80-talet innan man kunde få bilen att köra själv i dryga 30 km/h. [2] Navlab 2, som i 1990 konverterades från en Humvee tidigare tillhörande den amerikanska armén, byggdes för att även kunna användas i terrängkörning. Topphastigheten för terrängkörning visade sig vara dryga 10 km/h med på landsväg kunde den köra över 100 km/h. Gemensamt för de båda Navlab-bilarna var att de använda sig att en fastmonterad videokamera som registrerade vägen framför bilen och letade efter specifika kännetecken som vägkanter eller markeringar. Det som dock skiljde Navlab 2 från dess föregångare var att den använde sig att ett Artificiellt Neuralt nätverk som ger systemet möjlighet lära sig köra bil. Navlab 1 bestod i stort sätt av förprogrammerade algoritmer om hur den skulle agera i givna tillstånd. De problem man ofta stötte på när man använder sig av bildigenkänning är problemet att hantera olika väglag och väderförhållanden. Det man försöker göra i många fall är att ge varje pixel från kameran ett värde på hur ljus pixeln är. Detta för att försöka skilja på vilka pixlar som representerar asfalt och vilka som är t.ex. streckade linjer. Deras senaste fordon är Navlab 5, en Pontiac Trans Sport, som med en utvecklad version av det autonoma systemet ALVINN rullat många mil och nått en toppfart av närmare 150 km/h medan den på egen hand bibehållit riktningen. Figur 1. NAVLAB5 4
ALVINN Den första Navlab bilen använde ett system av förprogrammerade algoritmer som bestämda hur bilen skulle köra och hur den skulle hålla sig i sin fil. Det fungerade oftast bra på de testvägar som man initialt körde på. Där kunde man själv bestämma hur vägen såg ut och kännetecken såsom vägmarkeringar ritades ut noggrant eftersom det var ofta en viktig faktor för att hålla bilen på vägen. Problemet med dagens vägar är att de inte är speciellt pålitliga. Vägmarkeringar är inte alltid utmålade och många andra oanade situationer uppkommer ständigt i trafiken. Det blir uppenbart alltför tidsödande och farligt att explicit försöka programmera in alla tänkbara vägförhållanden och scenarion. Lösningen som forskarna på Carnegie Mellon University kom fram till döpte de till ALVINN (Autonomous Land Vehicle In a Neural Network). ALVINN är ett artificiellt neuralt nätverk uppbyggt för att med hjälp av percept själv lära sig att hantera bilen i olika situationer. Problemet med artificiella neurala nät är att de ofta har en ganska lång inlärningsperiod innan de fungerar bra och därför krävs en effektiv metod för denna uppgift. [4] Uppbyggnad Arkitekturen i ALVINN är uppbyggd av tre olika nivåer där input lagret består av de percept (den bild) som kameran fångar. Perceptet består av en 30x32 enheter stor retina som motsvarar samtliga 960 enheter av den projicerade bilden. På Navlab 5 användes en kamera som skalade ner upplösningen till just 30x32 pixlar och därmed symboliserar varje enhet en pixel. Alla dessa enheter är i sin tur sammanbundna till de gömda enheterna i mitten av nätverket och därifrån går sedan länkar till samtliga output-noder. Output lagret består av 30 noder som bildar en linjär kedja av enheter som styr det kommande rattutslaget. Aktivering av noden längst i mitten av kedjan resulterar i att inget rattutslag ges och att bilen fortsätter framåt. Noderna utmed kanterna symboliserar i en gradvis ökande vänster- eller högersväng. [4] Figur 2. ALVINNs uppbyggnad 5
Träning I början av ALVINNs karriär använde man sig av simulerade bilder av vägar och vägförhållanden för att träna systemet i att hantera alla sorters situationer. Forskarna matade nätverket med 1200 olika bilder av vägförhållanden och motsvarande beteende som man ville att system skulle uppvisa. Samtidigt justerade man vikterna mellan noderna i nätverket med hjälp av en back-propagation algoritm. Det vill säga att man justerade vikterna tills output-noderna hos ALVINN sammanföll med det korrekta beteendet. Det fanns dock en del problem med den typen av inlärning. För det första tog det väldigt lång tid att framställa alla olika scenarior och dessutom fungerade system inte optimalt ute på vägarna. Det blev lätt förvirrad om den t.ex. blivit tränad för en ganska rak sträcka och senare blev utsatt för skarpa kurvor. [4] On-the-fly träning Man utvecklade då en annan metod för att träna ALVINN som kallades on-the-fly träning. Det var ett mer praktiskt inlärningssätt som gick ut på att en mänsklig förare körde Navlab medan systemet observerade körningen. Det fungerade på samma sätt som första metoden med enda skillnaden att bilderna man stoppade in var direkt strömmade från kameran på bilen. Detta resulterade i mer realistiska scenarion som dessutom innehöll mer variation. Man använde på samma sätt back-propagations algoritmen för att ändra vikterna mellan noder i nätverket till dess prestation motsvarade förväntningarna. Det fanns dock en del problem med även denna metod. Dels tenderar en mänsklig förare att i såna här test situationer köra alltför bra, att köra helt rakt längs mittlinjen. Detta medför att systemet aldrig lär sig att återhämta sig från potentiella misstag som system då och då råkar ut för. Alltså ALVINN måste även tränas i att felplacera sig gentemot mittlinjen och sedan korrigera detta. Ett annat problem var att systemet lätt blev övertränat vid t.ex. långa raksträckor där det fick möta i princip samma input under långa perioder. Detta fick som effekt att ALVINN glömde bort tidigare övningar som kurvtagningar och istället bara lärde sig köra längs raksträckor. [4] Figur 3. Modifiering av input vid on-the-fly träning För att lösa dessa problem använde man sig av en teknik där man skiftade varje input-bild man fick av kameran, 7 gånger till vänster och 7 gånger till höger. Alltså, när föraren körde i mitten av filen blev ALVINN inte bara tränad på hur korrekt körning går till utan tränades även på att korrigera de fel som uppkom då den trodde sig vara ur spår. På samma sätt som tidigare försedde man systemet med de optimala utdata effekterna man eftersträvade. För 6
varje modifierad input-bild räknades den optimala utdatan ut och ALVINN förseddes med informationen om hur han förväntades agera i samtliga 15 situationer. Virtuella kameror Mycket resurser har lagts ner på ALVINN för att hålla Navlab-bilen i rätt fil och att få den att stanna där. Men den uppenbara sanningen bakom drömmen att uppnå en helt autonom bil är att den måste klara väldigt många andra, vissa simpla andra avancerade, manövrer. Ett simpelt exempel vore att få bilen att kunna byta fil. Med tanke på hur mycket tid forskarna lagt ner på att få bilen att hålla sig i en fil är filbyten inte så lätt som det låter. Ett annat mer avancerat exempel på vardaglig bilkörning är hur man agerar i en korsning. Dessa saker och många andra som mänskliga bilförare mer eller mindre tar för givet är inte alls självklara för en autonom bil. Båda dessa exempel på vardagliga händelser i trafiken har forskarna på CMU försökt lösa på snarlika sätt. Man har skapat ALVINN VC (ALVINN Virtual Camera) där man inför någonting som man kallar för en virtuell kamera vilket innebär att man genom den fysiska kameran kan ta fram en virtuell kameravinkel vart som helst inom den fysiska kamerans räckvidd. [5] Bilden nedan visar hur detta ser ut när bilen kör mot en väg och aktivt letar efter den. Figur 4. Illustrations på hur ALVINN VC hanterar en korsning Korsningar Den virtuella kameran är i detta fallet statiskt placerad på ett visst avstånd från bilen och medan bilen rör sig mot vägen jämför den kontinuerligt bilderna från den virtuella kameran med sin interna självsäkerhets algoritm, som kallas IRRE (Input Reconstruction Reliability Estimation). IRRE kalkylerar med hjälp at utdatan från ALVINN VC hur stor sannolikheten är för att det kameran pekar på är en väg eller inte. Den tittar då på samma kännetecken som ALVINN använder sig av för att hålla sig inom en fil och genom att jämföra med sin interna vetskap tar den fram ett värde på sannolikheten där värden mot 1 anger störst säkerhet. IRRE kalkylerar alltså ett värde mellan 0 och 1 på sannolikheten för att den virtuella kameran hittat en väg. På bilderna nedan illustreras vilket värde IRRE får vid de olika tidpunkterna beroende på hur långt bilen har kvar till den uppkommande vägen. I detta fall har man satt ett tröskelvärde vid 0,8 vilket innebär att när IRRE stiger över 0,8 så rapporterar systemet att en väg har uppmärksammats. [3] 7
Figur 5. Exempel på hur den virtuella kameran fungerar Dessa fyra bilder härstammar från när bilen var 20 meter från mitten av vägen och påvisar tydligt hur den virtuella kameran letar igenom området framför bilen och söker på olika avstånd tills den hittar vägen. På bilden uppe till vänster ser man ingenting, därav ett väldigt låg IRRE-värde. Värdet ökar kraftigt ju längre fram kameran söker och hittar maxvärdet på 22 meter då vägen är som tydligast. Att IRRE hittar maxvärdet 2 meter efter vägens egentliga mittpunkt säger forskarna på CMU beror på tre saker: att man ignorerat det faktum att marken framför bilen inte alltid är platt, fel vid kalibrering av kameran och initial felplacering gentemot vägen[3]. Att automatisk få bilen att svänga i en korsning är dock ett tvådelat problemet där det första problemet, som precis har lösts, är det enklare av de två. Att hitta vägen är en sak, nu återstår för bilen att faktiskt svänga upp på den nya vägen. Två olika metoder har lagts fram i ett försök att lösa detta. Första metoden går ut på att skapa en spårpunkt i mitten av den nya vägbanan som ALVINN VC siktar in sig på och när bilen nått denna punkt vet systemet att den är mitt på vägen. Problemet med denna metod var att när bilen faktiskt nått denna punkt matchar inte bilens riktning vägens och hade jätteproblem med att positionera sig rätt gentemot vägen för att då påbörja vanlig filkörning. Man slopade därför denna metod och konstruerade en ny som gick ut på att man skapade två spårpunkter som låg parallellt med varandra enligt figuren. Sträckan mellan punkterna kunde variera med oftast var den satt till 20 meter. Denna metod fungerade bättre än den förra men gjorde att det tillkom flera olika variabler som var beroende av varandra. Detta innebar stora problem vid optimering och gjorde att bilen i vissa fall lyckades svänga korrekt och påbörja vanlig filkörning, men i andra fall inte lade sig rätt gentemot vägen. Man Figur 6. Användande av spårpunkter vid korsningar var därför tvungen att överge även denna metod därför att spårpunkternas exakta position var alltför svårt att fastställa på ett dynamiskt sätt. Även om man skulle kunna programmera in de flesta scenarior och situationer skulle metoden vara alltför oelegant och bräcklig. 8
RALPH Som efterföljare till ALVINN har forskarna på CMU skapat ett annat autonomt styrsystem som kallas RALPH (Rapidly Adapting Lateral Position Handler). Grundidén bakom detta system är att bryta ner styrning i tre steg: samla in bilder, bestämma vägens böjning och bedöma bilens position gentemot mittlinjen. [6] Insamling av bilder Bilden från kameran innehåller oftast vissa delar som är oväsentliga för navigering, t.ex. instrumentbrädan eller himlen. Därför använder RALPH en metod som klipper bort allting utom vägen inom den svarta markeringen på första bilden i figur 7. Avståndet mellan bil och urklippsmarkeringen är dynamisk och ökar då fordonets hastighet ökar. Den andra bilden visar hur systemet omvandlar bilden från kameran till 30x32 pixlar som sedan är lättare att bearbeta och söka för utmärkande drag såsom vägmarkeringar eller diken. Kurvhantering Figur 7. Avskalningsstrategi RALPH hanterar kurvor på ett lite speciellt sätt. Systemet försöker räta ut de visuella percept, som vid varje given tidpunkt registreras. Med andra ord, om bilden föreställer en kurva försöker RALPH omvandla den till en rakstäcka för att på så vis räkna ut hur grov kurvan är. Figur 8 9
Transformationen går rent tekniskt till så att raderna på bilden skiftas i vänster resp. högerled mer eller mindre beroende på hur böjningshypotesen ser ut. Den översta bilden i figur 8 visas den indata som systemet erhålls. Pilarna under visar vilka antaganden som systemet automatiskt gör angående böjningsgraden av kurvan. På bilderna under har systemet omvandlat inputbilden beroende på den böjningsgrad som antogs i varje enskilt fall. Det korrekta antagandet gjordes i bild fyra då RALPH antog en lättare högerkurva. För att avgöra vilken av de transformerade bilderna som är korrekt används en metod för att kontrollera huruvida särdragen på bilden är räta eller inte. Figur 9 Figur 9 föreställer en graf som visar hur kontrasten på bilden vertikalt kan kalkyleras för att fastställa hur raka särdragen på indatan är. Summan av kolumn x blir ett värde på hur mörk resp. ljus kolumnen är. Detta innebär att RALPH i teorin kan följa i stort sett alla olika typer av spår, allt från däckspår till tydliga vägmarkeringar, så länge de är parallella med vägen. Genom att jämföra grafen för den aktuella indatan med en förutbestämd mall på aktuellt underlag kan RALPH räkna ut hur nära mittlinjen bilen är och justera. Anpassning till underlag En stor fördel med RALPH jämfört med många andra system är att anpassningen till olika vägunderlag går väldigt fort. Det finns fyra olika sätt att skapa en modell av rådande situation: Den första är en manuell variant som går ut på att föraren centrerar bilen på vägen och trycker på en knapp. Under 100 ms skapas då en mall av väglaget som även sparas för senare användning. Den andra varianten innebär att RALPH själv söker igenom en databas av mallar och plockar fram den som stämmer bäst in på situationen. Den tredje är en utvecklig av metod två med enda skillnaden att när den plockat fram en lämplig modell även modifierar denna lite så den stämmer bättre in på rådande situation. Detta för att anpassa mallen efter tillfälliga egenheter som vinkeln på solljuset. Den sista metoden går ut på att RALPH söker längre fram på bilden (oftast 70-100 meter) och tittar efter hur vägen ser ut där för att skapa en mall av väglaget som sedan används när bilen nått den punkten. 10
Diskussion Det som för några år sedan, och i viss mån än idag, var science fiction är nu närmare än vad de flesta tror. I och med system som ALVINN och RALPH har forskare världen över revolutionerat fordonstrafiken och kommer med största sannolikhet fortsätta göra det. Även om de system som diskuterats i denna uppsats inte håller måttet för fullt autonom trafikkörning så är det väldigt robusta grundstenar i vad som med största sannolikhet kommer dyka upp inom en snar framtid. Framtiden General Motors har nyligen gått ut med att de inom en 10 års period kommer ha autonoma bilar i trafiken som med hjälp av laser och kameror kommer ha fullständig koll på sin körning. [7] Om denna tidsplan kommer hålla är svårt att säga idag. Men att tekniken idag finns är ett faktum och det största problemet för autonoma bilar kommer sannolikt att bli moraliska och juridiska. Det finns en hel del nya avsnitt som måste skrivas in i lagboken innan dessa bilar lämna fabriken. Vem bär ansvar för olyckor? Hur övertygar man människor om att bilen själv kommer köra dem helskinnade till jobbet? Reflektioner Jag tror personligen att genom att inte ta alltför stora steg i utvecklingen kommer gynna självgående fordon. Hittills har semi-autonoma system blivit fler och fler i bilar och olyckor har i och med det sjunkigt. Men för att människor frivilligt ska släppa ratten krävs att de successivt bygger ett förtroende för dessa system, som idag bara känns väldigt främmande. Ett möjligt steg i utvecklingen skulle kunna vara system för automatiska motorvägar. Bildigenkänningssystem som ALVINN skulle någorlunda lätt kunna optimeras för användning på motorvägar eftersom de är väldigt raka och analoga. Med säkerheten som automatiska program för med sig skulle hastigheten kunna öka. 11
Referenser 1. Masaki, I. (1992) Vision-based vehicle guidance. Industrial Electronics, Control, Instrumentation, and Automation, 1992. Proceedings of the 1992 International Conference on 'Power Electronics and Motion Control', Volume 2, 862-867. 2. Jochem, T., Pomerleau, D., Kumar, B., Armstrong, J. (1995) PANS: a portable navigation platform. Proceedings of the Intelligent Vehicles '95 Symposium, 107-112 3. Jochem, T., Pomerleau, D., & Thorpe, C. (1995). Vision-based neural network road and intersection detection and traversal. Intelligent Robots and Systems 95, Proceedings. 1995 IEEE/RSJ International Conference on 'Human Robot Interaction and Cooperative Robots', Volume 3, 344-349. 4. Pomerleau, D.A. (1991) Efficient Training of Artificial Neural Networks for Autonomous Navigation. Neural Computation, Volume 3, 88-97. 5. Jochem, T., Pomerleau, D., Thorpe, C. (1995) Vision guided lane transition. Proceedings of the Intelligent Vehicles '95 Symposium, 30-35. 6. Pomerleau, D., Jochem, T. (1996) Rapidly Adapting Machine Vision for Automated Vehicle Steering. The Intelligent Systems, Volume 11, 19-27. 7. CBS News, http://www.cbsnews.com/stories/2008/01/07/tech/main3682391.shtml Hämtad 2008-09-07 12