Vad är häftiga CPU projekt?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
rvl
Inlägg: 5720
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Vad är häftiga CPU projekt?

Inlägg av rvl »

>Tre chip räcker egentligen.
Förutsatt att alla är i samma plan ...ja eller det är de givetvis för de definierar ett plan, men det planet ändrar när roboten flyttar på sig, om inte de övriga partera är lika högt över golvnivån.

Ta TVÅ likadana kameror med offset emellan, då kan man bedöma avstånd till punkter som matchar varann i bilderna. - Djupseende, you know.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Kanske kamera är då mer värt att satsa på.
Användarvisningsbild
JimmyAndersson
Inlägg: 26308
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: Vad är häftiga CPU projekt?

Inlägg av JimmyAndersson »

Ja jag tycker det. Precis som du skrev i ditt förra inlägg så ger det fler möjligheter.
Det här med en bildband är också intressant och kan vara något att fundera på till ett projekt.

(Jag har ingen praktisk erfarenhet eller utbildning kring neurala nätverk, så jag förstår inte koden kring det, men jag förstår hur det fungerar och det passar ett abstrakt tankesätt som jag gillar. Kort sagt: Jag är nog lite knäpp. :))

Rvl:
Så sant. Precisionen av kamerornas placering är ju i relation till ytan som roboten behöver röra sig, vilket påverkar precisionen hos roboten.

Det som är så kul är ju att datorkraft är lätttillgängligt och billigt, så det är idéerna kring utförandet som sätter gränserna. Lite som att programmera i assembler. :)
Som ”test av koncept” kring orientering så har jag gjort C#-kod för att styra ett 3D-tennis-spel med bara 1 st stillastående kamera.

Just det här med kamera och igenkänning/orientering kommer bli ett mer attraktivt område framöver. Inom 2 år kommer flera här att ha stött på det i vardagen.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Jag tycker neurala nätverk är ett sjukt dåligt sätt att göra bildigenkänning.
Det kräver överdrivet mycket data. Flera dagars träning. Överdrivet bra hårdvara. Överdrivet komplex matematik.

Men trots att det är dåligt så är det ändå det senaste som fungerar hyfsat.

Bildigenkänning fungerar bra om man ska som sagt analysera objekt på bilder.

Men problemet är att du kan typ bara ha 80 klasser i ett neuralt nätverk som är anpassat för typ mobiltelefoner. Då är sannolikheten att den prickar rätt ca 60% också. Ska du ha ett nätverk med 80 klasser som prickar rätt 98% så måste du ha typ en riktig dator. Du kan inte ha en STM32 för bildigenkänning. Detta är ett problem.

Dessutom med bildigenkänning så blir det ändå svårt att avgöra avstånd och liknande.

Jag löste ett optimeringsproblem med linjärprogrammering i en STM32F446RE + LCD graf. Detta tog lång tid trots en liten matris på ca 10*10. Ibland kunde det ta ca 6 sekunder för att LCD:n visa nytt värde.

Tänk då en bild på 416*416 vilket är en standard för Darknet TinyYolo. Det är gå riktigt segt på en STM32. Så segt att man börjar fundera på om STM32 processorn har hakat upp sig och stannat.

För att en bildigenkänning ska bli bra hos robotseende så krävs mer komplexa metoder än just CNN + YOLO. Vilket är dagens teknik för att identifiera objekt på en stillbild eller video.
Gimbal
Inlägg: 7878
Blev medlem: 20 april 2005, 15:43:53

Re: Vad är häftiga CPU projekt?

Inlägg av Gimbal »

Återigen då så hänvisar jag till robotdammsugare (ja, jag vet att du inte ska bygga en dammsugare) men även de finns med kameror åt alla håll för navigering. En nedåt för att likt en mus mäta rörelse på delar av millimeter, en uppåt för navigering, samt ett par framåt för att undvika hinder. Nackdelar brukar anges vara att de kräver ljus för navigering samt en liten liten risk finns att utomstående hackar sig in och "spionerar" med kamerorna. (Det finns/fanns modeller där ägaren själv kan fjärrstyra och köra runt och titta genom kamerorna så funktionen finns.)

Så även för denna navigeringsmetod så finns det gott om färdiga robotar att köpa. Kul projekt dock.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Eller något som skulle vara riktigt kul är att försöka implementera YOLO på en stm32? Optimerat YOLO.

Robotstyrning kanske för långt in i framtiden.

Jag vet att STM har försökt med detta och lyckats. Dock med ett minimalt nätverk för ansikten.



Ett problem är att man måste använda ST's egna CubeMX-AI. Jag har testat det och det var buggigt. Nytt var det också. Allt var begränsat. Svårt. Bökigt. Man fick ingen frihet alls. Ej öppen källkod, vilket betyder att om ST skrotar CubeMX-AI så är man körd.

Jag lyckas bara implementera Dense - layer, dvs vanligt enkelt neuralt nätverk. Sådant kan man inte lösa så mycket av. Det måste vara CNN och R-CNN om man ska tillämpa YOLO.



En annan nackdel är att med ST's teknik så är det fortfarande begränsade saker man kan identifiera. 5 ansikten liksom....
Dessutom marknadsför ST bara sina fetaste processorer när det kommer till CubeMX-AI :wink: man vet dock varför.
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Vad är häftiga CPU projekt?

Inlägg av guckrum »

Eftersom du nämner just YOLO är det ju lugnt, eftersom de näten är implementerade i ren C-kod via P. J. Reddies ramverk Darknet. Behövs ingen specialmjukvara där, precis som det skall vara. Men jag gissar att du inte har plats för tiotals miljoner parametrar? Och inferenstiden kommer ju att vara ganska signifikant...
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Ja. Darknet må vara skriven i C, men tror inte på att YOLO kommer vara något lyft för robotiken.

Det går 5 år och sedan har någon annan kommit på ett bättre sätt att identifiera. Tänk på att trots senaste YOLO v5 så skiljer den sig mycket från YOLO v1. Dessutom är senaste YOLO v5 skapat av PyTorch.

Neurala nätverk är dessutom mycket svåra att träna. Det är flera parametrar man måste vrida på och det är mycket jobb att få jobbet gjort.

Då är det enklare att man köper en färdig modell eller ladda ned en färdig modell.

Men alla modeller idag är bara universella. Jag har inga lejon eller tigrar hemma.

Lägg även till att YOLO är så krävande att man behöver en GPU tillsammans med CPU.

Jag byggde en algoritm via FisherFaces som använder egenvektorer och singular value Decomposition för att beräkna fram en modell.

Undra om man skulle fått införa lite rekrusion så att man kan få detektion också? Vore häftigt. Fisherfaces kräver max bara 100 bilder totalt om man har 5 objekt. 20 bilder var. Helt OK.

Eller om man bygger en REST applikation i Java som kommunicerar med en STM32 som har kamera + WiFi modul + LCD. Då kan man ju ha bildigenkänning på en stor fet server.

Då har man löst den biten iallafall. Men det kvarstår fortfarande om just bildigenkänning är ett bra sätt att mäta avstånd med.
Senast redigerad av DanielM 27 december 2020, 21:21:03, redigerad totalt 1 gång.
guckrum
Inlägg: 1671
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Vad är häftiga CPU projekt?

Inlägg av guckrum »

Både "fyran" och "femman" har ju andra upphovsmän, så namngivningen kan ju diskuteras...

Precis som du säger är det mycket energikrävande att beräkna parametrar i ett större nätverk. Därför brukar man använda transfer learning för att rikta en generell modell mot ett specifikt problem.

Egenvektorlösningar som Fisher faces kan du inte jämföra med, eftersom de inte är invarianta avseende position och storlek. Därmed inte sagt att moderna objektdetekteringsnätverk inte lämnar mycket övrigt att önska.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Jag ändrade mitt inlägg och kompletterade med en REST applikation i Java för att köra bildigenkänning.

Sådant lär fungera.
Men frågan är också om bildigenkänning är ett bra robotverktyg?

Edit:

Nu vet jag! Jag får dra en tejp på golvet! Som ett rutmönster. Sedan får jag använda ett enkelt neuralt nätverk för att identifiera om jag är utanför banan eller inte.

- STM32 för att hålla "processen" igång
- Enkel kamera
- ESP8266 för att hosta upp en liten hemsida vart roboten
- Röstigenkänning för att navigera roboten med enkla kommandon typ "Robot Kök Bord"
- A* algoritmen för att beskriva sökvägen. Denna algoritm har jag redan gjort klart sedan länge tillbaka
- Bildigenkänning för att se till så att man inte avviker från tejpen

Vad tror ni?

Eller varför inte använda FisherFaces istället för bild- och röstigenkänning? Det är ju ännu enklare.
Användarvisningsbild
AndLi
Inlägg: 17049
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Vad är häftiga CPU projekt?

Inlägg av AndLi »

Gör något bara, strunta i vad alla andra tycker och bygg något, tejp på golvet är väl kanske inte det jag räknar som häftigt, det är det man brukar göra i robotkurs101 (och som LEGO har i sin Mindstorm kit)... men kör! Gör något!
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

Ja. Du har rätt. Tejp är verkligen inte rätt väg.

Det kanske inte finns vettiga metoder idag för robotstyrning, som är alltså självgående.

Nu har jag bestämt mig. Det får bli övervakning + enkel bildigenkänning.


Skillnaden är att jag kommer bara implementera kamera + LCD + WiFi. Själva kommunikationen så som SMTP(Epost), DSN, Uppladdning, Databas, Bildigenkänning, CRUD och massa annat kul kommer se på en extern server i Java. Det blir alltså en REST applikation.

Som processor blir det en STM32F407. Den har både FSMC för LCD och DCMI för kamera. Övrigt så är den snabb och har mycket minne osv.
DanielM
Inlägg: 2166
Blev medlem: 5 september 2019, 14:19:58

Re: Vad är häftiga CPU projekt?

Inlägg av DanielM »

En fråga till er övriga.

Ansluta ett REST API med ESP-01 för STM32. Har ni något bra bibliotek att rekommendera då? :)

Jag tänker skicka över film och ljud samt kommandon. Väldigt snabbt. Minst varje 50ms.
Skriv svar