I den här tvådelade serien visar vi hur man märker och tränar modeller för 3D-objektdetekteringsuppgifter. I del 1 diskuterar vi datauppsättningen vi använder, såväl som eventuella förbearbetningssteg, för att förstå och märka data. I del 2 går vi igenom hur man tränar en modell på din datauppsättning och distribuerar den till produktion.
LiDAR (ljusdetektering och avstånd) är en metod för att bestämma avstånd genom att rikta in ett objekt eller en yta med en laser och mäta tiden för det reflekterade ljuset att återvända till mottagaren. Autonoma fordonsföretag använder vanligtvis LiDAR-sensorer för att generera en 3D-förståelse av miljön runt sina fordon.
I takt med att LiDAR-sensorer blir mer tillgängliga och kostnadseffektiva använder kunderna alltmer punktmolndata i nya utrymmen som robotik, signalkartläggning och förstärkt verklighet. Vissa nya mobila enheter inkluderar till och med LiDAR-sensorer. Den växande tillgängligheten av LiDAR-sensorer har ökat intresset för punktmolndata för uppgifter i maskininlärning (ML), som 3D-objektdetektering och spårning, 3D-segmentering, 3D-objektsyntes och rekonstruktion och användning av 3D-data för att validera 2D-djupuppskattning.
I den här serien visar vi dig hur du tränar en objektdetekteringsmodell som körs på punktmolndata för att förutsäga var fordonen befinner sig i en 3D-scen. Detta inlägg fokuserar vi specifikt på att märka LiDAR-data. Standard LiDAR-sensorutgång är en sekvens av 3D-punktmolnsramar, med en typisk fångsthastighet på 10 bilder per sekund. För att märka denna sensorutgång behöver du ett märkningsverktyg som kan hantera 3D-data. Amazon SageMaker Ground Sannhet gör det enkelt att märka objekt i en enda 3D-bildruta eller över en sekvens av 3D-punktmolnsramar för att bygga ML-träningsdatauppsättningar. Ground Truth stöder även sensorfusion av kamera- och LiDAR-data med upp till åtta videokameraingångar.
Data är avgörande för alla ML-projekt. Speciellt 3D-data kan vara svårt att hämta, visualisera och märka. Vi använder A2D2 dataset i det här inlägget och leder dig genom stegen för att visualisera och märka det.
A2D2 innehåller 40,000 12,499 bildrutor med semantisk segmentering och punktmolnetiketter, inklusive 3 12,499 bildrutor med etiketter för 3D-markeringsruta. Eftersom vi fokuserar på objektdetektering är vi intresserade av de 14 XNUMX ramarna med XNUMXD-markeringsrutaetiketter. Dessa kommentarer inkluderar XNUMX klasser som är relevanta för körning som bil, fotgängare, lastbil, buss, etc.
Följande tabell visar hela klasslistan:
index | Klasslista |
1 | djur |
2 | cykel |
3 | Bussen |
4 | bil |
5 | husvagnstransporter |
6 | cyklist |
7 | nödfordon |
8 | motorcyklist |
9 | mc |
10 | fotgängare |
11 | släpvagn |
12 | lastbil |
13 | Nyttofordon |
14 | skåpbil/SUV |
Vi kommer att träna vår detektor för att specifikt upptäcka bilar eftersom det är den vanligaste klassen i vår datauppsättning (32616 av totalt 42816 objekt i datamängden är märkta som bilar).
Lösningsöversikt
I den här serien tar vi upp hur du visualiserar och märker dina data med Amazon SageMaker Ground Truth och visar hur du använder dessa data i ett Amazon SageMaker-utbildningsjobb för att skapa en objektdetekteringsmodell, distribuerad till en Amazon SageMaker Endpoint. I synnerhet kommer vi att använda en Amazon SageMaker-anteckningsbok för att använda lösningen och lansera alla märknings- eller utbildningsjobb.
Följande diagram visar det övergripande flödet av sensordata från märkning till utbildning till implementering:
Du lär dig hur du tränar och distribuerar en 3D-objektdetekteringsmodell i realtid med Amazon SageMaker Ground Truth med följande steg:
- Ladda ner och visualisera en datauppsättning för punktmoln
- Förbered data som ska märkas med Amazon SageMaker Ground Truth punktmolnverktyg
- Lansera ett distribuerat Amazon SageMaker Ground Truth-utbildningsjobb med MMDetection3D
- Utvärdera dina träningsresultat och profilera ditt resursutnyttjande med Amazon SageMaker Debugger
- Distribuera en asynkron SageMaker slutpunkt
- Ring slutpunkten och visualisera 3D-objektförutsägelser
AWS-tjänster som används för att implementera denna lösning
Förutsättningar
Följande diagram visar hur man skapar en privat arbetsstyrka. För skriftliga steg-för-steg-instruktioner, se Skapa en Amazon Cognito-arbetskraft med hjälp av sidan Märkning av arbetskrafter.
Startar AWS CloudFormation-stacken
Nu när du har sett strukturen på lösningen distribuerar du den på ditt konto så att du kan köra ett exempel på ett arbetsflöde. Alla implementeringssteg relaterade till märkningspipelinen hanteras av AWS CloudFormation. Detta innebär att AWS Cloudformation skapar din notebook-instans såväl som eventuella roller eller Amazon S3 Buckets för att stödja körning av lösningen.
Du kan starta stacken i AWS-regionen us-east-1
på AWS CloudFormation-konsolen med hjälp av Starta stack
knapp. För att starta stacken i en annan region, använd instruktionerna som finns i README av GitHub repository.
Det tar cirka 20 minuter att skapa alla resurser. Du kan övervaka framstegen från AWS CloudFormations användargränssnitt (UI).
När din CloudFormation-mall är klar, gå tillbaka till AWS-konsolen.
Öppna anteckningsboken
Amazon SageMaker Notebook Instances är ML-beräkningsinstanser som körs på Jupyter Notebook-appen. Amazon SageMaker hanterar skapandet av instanser och relaterade resurser. Använd Jupyter-anteckningsböcker i din notebook-instans för att förbereda och bearbeta data, skriva kod för att träna modeller, distribuera modeller till Amazon SageMaker-värd och testa eller validera dina modeller.
Följ nästa steg för att komma åt Amazon SageMaker Notebook-miljön:
- Under tjänster sök efter Amazon SageMaker.
- Enligt Notebook, Välj Notebook-instanser.
- En Notebook-instans bör tillhandahållas. Välj Öppna jupyter lab, som finns på höger sida av den förinställda Notebook-instansen under Handlingar.
- Du kommer att se en ikon som denna när sidan laddas:
- Du omdirigeras till en ny webbläsarflik som ser ut som följande diagram:
- När du är i Amazon SageMaker Notebook Instance Launcher UI. I det vänstra sidofältet väljer du gå ikonen som visas i följande diagram.
- Välja Klona ett arkiv alternativ.
- Ange GitHub URL(https://github.com/aws-samples/end-2-end-3d-ml) i popup-fönstret och välj klona.
- Välja File Browser för att se GitHub-mappen.
- Öppna anteckningsboken med titeln
1_visualization.ipynb.
Använda den bärbara datorn
Översikt
De första cellerna i anteckningsboken i avsnittet med titeln Nedladdade filer går igenom hur man laddar ner datauppsättningen och inspekterar filerna i den. Efter att cellerna har körts tar det några minuter innan data laddas ned.
När du har laddat ned kan du granska filstrukturen för A2D2, som är en lista över scener eller enheter. En scen är en kort inspelning av sensordata från vårt fordon. A2D2 tillhandahåller 18 av dessa scener för oss att träna på, som alla identifieras av unika datum. Varje scen innehåller 2D-kameradata, 2D-etiketter, 3D-rutade anteckningar och 3D-punktmoln.
Du kan se filstrukturen för A2D2-datauppsättningen med följande:
A2D2-sensorinställning
Nästa avsnitt går igenom läsningen av några av dessa punktmolndata för att se till att vi tolkar det korrekt och kan visualisera det i anteckningsboken innan vi försöker konvertera det till ett format som är redo för datamärkning.
För alla typer av autonom körning där vi har 2D- och 3D-sensordata är det viktigt att fånga sensorkalibreringsdata. Utöver rådata laddade vi även ner cams_lidar.json
. Den här filen innehåller översättningen och orienteringen av varje sensor i förhållande till fordonets koordinatram, detta kan också kallas sensorns ställning, eller plats i rymden. Detta är viktigt för att konvertera punkter från en sensors koordinatram till fordonets koordinatram. Med andra ord är det viktigt för att visualisera 2D- och 3D-sensorerna när fordonet kör. Fordonets koordinatram definieras som en statisk punkt i fordonets mitt, med x-axeln i riktningen för fordonets framåtgående rörelse, y-axeln anger vänster och höger med vänster positiv, och z- axeln pekar genom taket på fordonet. En punkt (X,Y,Z) på (5,2,1) betyder att denna punkt är 5 meter framför vårt fordon, 2 meter till vänster och 1 meter ovanför vårt fordon. Genom att ha dessa kalibreringar kan vi också projicera 3D-punkter på vår 2D-bild, vilket är särskilt användbart för punktmolnetiketteringsuppgifter.
För att se sensorinställningen på fordonet, kontrollera följande diagram.
Punktmolndatan vi tränar på är specifikt anpassade till den främre kameran eller kameran i mitten:
Detta matchar vår visualisering av kamerasensorer i 3D:
Den här delen av notebook-datorn går igenom och validerar att A2D2-datauppsättningen matchar våra förväntningar på sensorpositioner och att vi kan anpassa data från punktmolnssensorerna till kameraramen. Kör gärna alla celler genom den som heter Projektion från 3D till 2D för att se din punktmolndataöverlagring på följande kamerabild.
Konvertering till Amazon SageMaker Ground Truth
Efter att ha visualiserat vår data i vår anteckningsbok kan vi med säkerhet konvertera våra punktmoln till Amazon SageMaker Ground Truths 3D-format för att verifiera och justera våra etiketter. Det här avsnittet går igenom konvertering från A2D2:s dataformat till en Amazon SageMaker Ground Truth sekvensfil, med det indataformat som används av objektspårningsmodaliteten.
Sekvensfilformatet inkluderar punktmolnformaten, bilderna som är associerade med varje punktmoln och alla sensorpositions- och orienteringsdata som krävs för att rikta in bilder med punktmoln. Dessa omvandlingar görs med hjälp av sensorinformationen som lästs från föregående avsnitt. Följande exempel är ett sekvensfilformat från Amazon SageMaker Ground Truth, som beskriver en sekvens med bara ett enda tidssteg.
Punktmolnet för detta tidssteg ligger kl s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/20180807145028_lidar_frontcenter_000000091.txt
och har formatet <x coordinate> <y coordinate> <z coordinate>
.
Förknippad med punktmolnet är en enda kamerabild placerad vid s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/undistort_20180807145028_camera_frontcenter_000000091.png
. Lägg märke till att vi tar sekvensfilen som definierar alla kameraparametrar för att möjliggöra projektion från punktmolnet till kameran och tillbaka.
Konvertering till detta inmatningsformat kräver att vi skriver en konvertering från A2D2:s dataformat till dataformat som stöds av Amazon SageMaker Ground Truth. Detta är samma process som alla måste genomgå när de tar med sina egna uppgifter för märkning. Vi går igenom hur denna konvertering fungerar, steg för steg. Om du följer med i anteckningsboken, titta på den namngivna funktionen a2d2_scene_to_smgt_sequence_and_seq_label
.
Punktmolnkonvertering
Det första steget är att konvertera data från en komprimerad Numpy-formaterad fil (NPZ), som genererades med numpy.vet metod, till en accepterat rå 3D-format för Amazon SageMaker Ground Truth. Specifikt genererar vi en fil med en rad per punkt. Varje 3D-punkt definieras av tre flyttals-X-, Y- och Z-koordinater. När vi anger vårt format i sekvensfilen använder vi strängen text/xyz
för att representera detta format. Amazon SageMaker Ground Truth stöder också att lägga till intensitetsvärden eller Red Green Blue (RGB) punkter.
A2D2:s NPZ-filer innehåller flera Numpy-arrayer, var och en med sitt eget namn. För att utföra en konvertering laddar vi NPZ-filen med hjälp av Numpy's läsa in metod, få tillgång till den anropade arrayen poäng (dvs en Nx3-matris, där N är antalet punkter i punktmolnet), och spara som text till en ny fil med hjälp av Numpys sparatxt metod.
Bildförbehandling
Därefter förbereder vi våra bildfiler. A2D2 tillhandahåller PNG-bilder och Amazon SageMaker Ground Truth stöder PNG-bilder; dock är dessa bilder förvrängda. Förvrängning uppstår ofta eftersom bildtagningslinsen inte är inriktad parallellt med bildplanet, vilket gör att vissa områden i bilden ser närmare ut än förväntat. Denna förvrängning beskriver skillnaden mellan en fysisk kamera och en idealiserad pinhole kameramodell. Om distorsion inte tas med i beräkningen kommer Amazon SageMaker Ground Truth inte att kunna återge våra 3D-punkter ovanpå kameravyerna, vilket gör det mer utmanande att utföra märkning. För en handledning om kamerakalibrering, titta på den här dokumentationen från OpenCV.
Även om Amazon SageMaker Ground Truth stöder förvrängningskoefficienter i sin indatafil, kan du också utföra förbearbetning innan märkningsjobbet. Eftersom A2D2 tillhandahåller hjälpkod för att utföra undistorsion, tillämpar vi den på bilden och lämnar fälten relaterade till distorsion utanför vår sekvensfil. Observera att de distorsionsrelaterade fälten inkluderar k1, k2, k3, k4, p1, p2 och snedställning.
Kameraposition, orientering och projektionskonvertering
Utöver de rådatafiler som krävs för märkning, kräver sekvensfilen också information om kamerans position och orientering för att kunna projicera 3D-punkter i 2D-kameravyerna. Vi behöver veta var kameran tittar i 3D-rymden för att ta reda på hur 3D-kubiska etiketter och 3D-punkter ska renderas ovanpå våra bilder.
Eftersom vi har laddat in våra sensorpositioner i en gemensam transformhanterare i A2D2 sensorinstallationssektionen, kan vi enkelt fråga transformhanteraren efter den information vi vill ha. I vårt fall behandlar vi fordonspositionen som (0, 0, 0) i varje bildruta eftersom vi inte har positionsinformation för sensorn som tillhandahålls av A2D2:s objektdetekteringsdatauppsättning. Så relativt vårt fordon beskrivs kamerans orientering och position med följande kod:
Nu när position och orientering har konverterats behöver vi också ange värden för fx, fy, cx och cy, alla parametrar för varje kamera i sekvensfilformatet.
Dessa parametrar hänvisar till värden i kameramatrisen. Medan positionen och orienteringen beskriver åt vilket håll en kamera är vänd, beskriver kameramatrisen kamerans synfält och exakt hur en 3D-punkt i förhållande till kameran omvandlas till en 2D-pixelplats i en bild.
A2D2 tillhandahåller en kameramatris. En referenskameramatris visas i följande kod, tillsammans med hur vår bärbara dator indexerar denna matris för att få fram lämpliga fält.
Med alla fält tolkade från A2D2:s format kan vi spara sekvensfilen och använda den i en Amazon SageMaker Ground Truth indatamanifestfil för att påbörja ett märkningsjobb. Detta märkningsjobb gör det möjligt för oss att skapa etiketter för 3D-begränsningsruta att använda nedströms för 3D-modellutbildning.
Kör alla celler till slutet av anteckningsboken och se till att du byter ut workteam
ARN med Amazon SageMaker Ground Truth workteam
ARN du skapade en förutsättning. Efter cirka 10 minuters märkningstid för jobbskapande bör du kunna logga in på arbetarportalen och använda märkning av användargränssnitt för att visualisera din scen.
Städa upp
Ta bort AWS CloudFormation-stacken som du distribuerade med hjälp av Starta stack knappen heter ThreeD
i AWS CloudFormation-konsolen för att ta bort alla resurser som används i det här inlägget, inklusive alla körande instanser.
Beräknade kostnader
Den ungefärliga kostnaden är $5 för 2 timmar.
Slutsats
I det här inlägget demonstrerade vi hur man tar 3D-data och konverterar den till en form redo för märkning i Amazon SageMaker Ground Truth. Med dessa steg kan du märka din egen 3D-data för att träna objektdetekteringsmodeller. I nästa inlägg i den här serien kommer vi att visa dig hur du tar A2D2 och tränar en objektdetektormodell på etiketterna som redan finns i datamängden.
Glad byggnad!
Om författarna
Isaac Privitera är Senior Data Scientist vid Amazon Machine Learning Solutions Lab, där han utvecklar skräddarsydda lösningar för maskininlärning och djupinlärning för att lösa kunders affärsproblem. Han arbetar främst inom datorseende, med fokus på att möjliggöra AWS-kunder med distribuerad utbildning och aktivt lärande.
Vidya Sagar Ravipati är chef på Amazon Machine Learning Solutions Lab, där han utnyttjar sin stora erfarenhet av storskaliga distribuerade system och sin passion för maskininlärning för att hjälpa AWS-kunder inom olika branschvertikaler att påskynda deras AI- och molntillämpning. Tidigare var han maskininlärningsingenjör inom Connectivity Services på Amazon som hjälpte till att bygga personaliserings- och förutsägbara underhållsplattformar.
Jeremy Feltracco är en mjukvaruutvecklingsingenjör med th Amazon Machine Learning Solutions Lab på Amazon Web Services. Han använder sin bakgrund inom datorseende, robotik och maskininlärning för att hjälpa AWS-kunder att påskynda sin AI-användning.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/using-amazon-sagemaker-with-point-clouds-part-1-ground-truth-for-3d-labeling/
- :är
- $UPP
- 000
- 1
- 10
- 100
- 1996
- 2D
- 3d
- 7
- 9
- a
- Able
- Om Oss
- ovan
- accelerera
- tillgång
- tillgänglig
- Konto
- tvärs
- aktiv
- Dessutom
- adress
- Antagande
- Efter
- framåt
- AI
- Justerat
- Alla
- tillåter
- redan
- amason
- Amazon Cognito
- Amazon SageMaker
- Amazon SageMaker Ground Sannhet
- Amazon Web Services
- och
- någon
- app
- Ansök
- lämpligt
- cirka
- arkitektur
- ÄR
- områden
- runt
- array
- AS
- associerad
- At
- augmented
- Augmented Reality
- autonom
- tillgänglighet
- AWS
- AWS molnformation
- tillbaka
- bakgrund
- BE
- därför att
- blir
- innan
- Där vi får lov att vara utan att konstant prestera,
- nedan
- mellan
- Blå
- Box
- Föra
- webbläsare
- SLUTRESULTAT
- Byggnad
- Bussen
- företag
- Knappen
- by
- kallas
- rum
- KAN
- fånga
- Fångande
- bil
- bilar
- Vid
- Celler
- Centrum
- utmanande
- ta
- Välja
- klass
- klasser
- närmare
- cloud
- moln adoption
- koda
- Gemensam
- Företag
- fullborda
- Compute
- dator
- Datorsyn
- självsäkert
- Anslutningar
- Konsol
- innehålla
- innehåller
- Konvertering
- omvandlingar
- konvertera
- konverterad
- samordna
- Pris
- kostnadseffektiv
- täcka
- skapa
- skapas
- skapar
- skapande
- Kunder
- CX
- datum
- datavetare
- datauppsättningar
- Datum
- djup
- djupt lärande
- definierade
- definierar
- demonstrera
- demonstreras
- demonstrerar
- distribuera
- utplacerade
- utplacering
- djup
- beskriva
- beskriven
- Detektering
- bestämmande
- Utveckling
- utvecklar
- enheter
- Skillnaden
- olika
- svårt
- riktning
- diskutera
- distribueras
- distribuerade system
- distribuerad utbildning
- dokumentation
- inte
- ladda ner
- drivande
- e
- varje
- lätt
- möjliggör
- Slutpunkt
- ingenjör
- säkerställa
- Miljö
- speciellt
- väsentlig
- etc
- Även
- exakt
- exempel
- förväntningar
- förväntat
- erfarenhet
- vänd
- få
- fält
- Fält
- Figur
- Fil
- Filer
- slut
- Förnamn
- flytande
- flöda
- Fokus
- fokusering
- efter
- För
- formen
- format
- Framåt
- hittade
- RAM
- Fri
- från
- främre
- fungera
- sammansmältning
- FX
- generera
- genereras
- skaffa sig
- gif
- gå
- GitHub
- Go
- Går
- Grön
- Marken
- Odling
- hantera
- Har
- har
- Rubrik
- hjälpa
- hjälpte
- hjälp
- värd
- ÖPPETTIDER
- Hur ser din drömresa ut
- How To
- Men
- html
- HTTPS
- i
- IKON
- identifierade
- bild
- bilder
- Imaging
- genomföra
- med Esport
- in
- I andra
- innefattar
- innefattar
- Inklusive
- ökat
- alltmer
- index
- industrin
- informationen
- ingång
- exempel
- instruktioner
- intresse
- intresserad
- Gränssnitt
- IT
- DESS
- Jobb
- Lediga jobb
- jpg
- json
- Snäll
- Vet
- etikett
- märkning
- Etiketter
- storskalig
- Lasern
- lansera
- LÄRA SIG
- inlärning
- Lämna
- hävstångs
- ljus
- tycka om
- Lista
- läsa in
- laster
- belägen
- läge
- se
- du letar
- UTSEENDE
- Maskinen
- maskininlärning
- underhåll
- göra
- GÖR
- förvaltade
- chef
- förvaltar
- kartläggning
- Matris
- betyder
- mätning
- metod
- minuter
- ML
- Mobil
- Mobil enheter
- modell
- modeller
- Övervaka
- mer
- mest
- rörelse
- multipel
- namn
- Som heter
- Behöver
- Nya
- Nästa
- anteckningsbok
- antal
- numpy
- objektet
- Objektdetektion
- objekt
- of
- on
- ONE
- öppet
- OpenCV
- driva
- Alternativet
- Övriga
- produktion
- övergripande
- egen
- sida
- Parallell
- parametrar
- del
- särskilt
- brinner
- bana
- Utföra
- personalisering
- fysisk
- rörledning
- pixel
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- Punkt
- poäng
- Portal
- placera
- positioner
- positiv
- Inlägg
- förutse
- Förbered
- föregående
- tidigare
- primärt
- privat
- problem
- process
- Produktion
- profilering
- Framsteg
- projektet
- Projektion
- förutsatt
- ger
- som sträcker sig
- Betygsätta
- Raw
- Läsa
- Läsning
- redo
- realtid
- Verkligheten
- inspelning
- Red
- avses
- reflekterad
- region
- relaterad
- relevanta
- Återstående
- ta bort
- ersätta
- representerar
- Obligatorisk
- Kräver
- resurs
- Resurser
- Resultat
- avkastning
- översyn
- RGB
- robotik
- roller
- Taket
- RAD
- Körning
- rinnande
- s
- sagemaker
- Samma
- Save
- scen
- scener
- Forskare
- Sök
- Andra
- §
- segmentering
- senior
- sensor
- Sekvens
- Serier
- Tjänster
- inställning
- Kort
- skall
- show
- visas
- Visar
- sida
- Signal
- eftersom
- enda
- So
- Mjukvara
- mjukvaruutveckling
- lösning
- Lösningar
- några
- Källa
- Utrymme
- utrymmen
- specifikt
- stapel
- standard
- starta
- Steg
- Steg
- struktur
- leverera
- stödja
- Som stöds
- Stöder
- yta
- System
- bord
- Ta
- tar
- targeting
- uppgifter
- mall
- testa
- den där
- Smakämnen
- den information
- deras
- Dessa
- tre
- Genom
- tid
- betitlad
- till
- verktyg
- topp
- Totalt
- Spårning
- Tåg
- Utbildning
- Förvandla
- Översättning
- behandla
- lastbil
- handledning
- typisk
- typiskt
- ui
- under
- förstå
- förståelse
- unika
- us
- användning
- Användare
- Användargränssnitt
- BEKRÄFTA
- Värden
- Omfattande
- vehikel
- fordon
- verifiera
- vertikaler
- Video
- utsikt
- visningar
- syn
- visualisering
- Sätt..
- webb
- webbservice
- VÄL
- som
- medan
- VEM
- wikipedia
- kommer
- med
- inom
- ord
- arbetstagaren
- arbetskraft
- fungerar
- skriva
- skriva kod
- skriven
- X
- jaml
- Om er
- Din
- zephyrnet