Sida 3 av 7

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 15:31:52
av DanielM
Ja. Du kan ha kamera på Zero.

Det måste vara en likvärdig jämförelse.
Typ om man vill göra bildigenkänning.

I långa loppet så kanske STM32 vinner trots allt, både i prismässigt och snabbhet, trots att pajen är minst lika dyr, men är lite långsammare i uppstart?

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 15:40:16
av DanielM
Nu när jag kollar upp priserna på en CPU:n F446RE så verkar en Paj Zero vara billigare.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 16:05:59
av Rick81
Ja om du jämför Nucleo, inte stm32f4:
https://se.farnell.com/stmicroelectroni ... =stm32f446

35 kr/st i 500 volym...

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 17:29:02
av DanielM
Ser nu att man kan inte köpa Paj CPU:erna separat. Då tror jag STM32 vinner här.

Så då kan jag fortsätta :) Tackar.

Dessa funderar jag på.
https://www.banggood.com/XD-95-OV2640-C ... rehouse=CN
https://www.banggood.com/3_2-Inch-ILI93 ... rehouse=CN

LCD:n har stöd för FSMC och kameran har stöd för DCMI. Kod finns för dessa, man tror du det är värt att man börjar skriva egen kod? Eller ska man återanvända andras kod? Jag tänkte att allt handlar om att läsa databladet. Jag är helt värdelös på att läsa datablad, mest för att jag tycker dom är krångliga och är inte tydlig. De bara rabblar upp massa register. Då tänker jag "Jaha, vem ska jag skriva till först då?"

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 17:46:23
av Rick81
Hänger inte riktigt på hur dina bedömningspunkter blev STM32. I ditt fall, tror jag Raspberry pi är enklare då det finns mer färdigt och jag antar du inte ska göra tusentals kretskort. Sen att jag föredrar STM32 är ju en annan femma.

Jag brukar börja med exempelkod för att snabbt komma igång och sedan när jag vill göra mer avancerade saker går jag över till databladen

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 18:25:07
av DanielM
Jo. Men tänk om man skulle vilja bygga egen Paj. Det går ju inte. Alltså är det rätt värdelöst att lära sig Paj om den inte kan byggas från grunden.

Detta brukar jag göra också vid behov. Trodde du skrev kod helt själv från grunden. Alltså börja med tom fil och knacka C kod.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 19:17:58
av DanielM
Förresten! Hur var det att implementera ett CNN nätverk i STM32? Kunde du få en otroligt bra identifiering? Eller fick bara ett litet fattigt nätverk plats?

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 19:42:03
av Rick81
Jo. Men tänk om man skulle vilja bygga egen Paj. Det går ju inte. Alltså är det rätt värdelöst att lära sig Paj om den inte kan byggas från grunden.
Instämmer.
Förresten! Hur var det att implementera ett CNN nätverk i STM32? Kunde du få en otroligt bra identifiering? Eller fick bara ett litet fattigt nätverk plats?
Jag har inte implementerat CNN nätverk i STM32, bara kollat föreläsning för jag tyckte det var intressant. Kolla tex:
https://blog.st.com/stm32cubeai-neural-networks/

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 20:09:37
av DanielM
Om du tittar här så använder han 3 dense lager och det är ett litet nätverk. Men ändå ska den ha ca 30 kB i flash. Då är detta ett enkelt nätverk. Undra hur det skulle se ut om man hade t.ex. 100 klasser i nätverket?


Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 29 juli 2020, 23:59:58
av DanielM
Med CubeMX AI så kan man utföra bildigenkänning på 5 till 8 personer. Notera att dom använder de absolut kraftfullaste ST korten också.


Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 30 juli 2020, 12:15:04
av guckrum
Skall du syssla med objektdetektering, bildklassning eller liknande behöver du ett rejält nät i botten. Moderna nät som exempelvis något Mobilenet levererar "okej" prestanda med bara ett par miljoner koefficienter. Du behöver alltså megabyte storage med snabb access för att det skall bli något.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 30 juli 2020, 12:34:25
av Rick81
Antar att du menar att det är för lite? Svårt att säga då du inte speccat vad du behöver.

Som jag förstår det med CubeAI så gör man ju nätverket först i ex tensor flow och sen optimerar den för STM32 och då får man ju veta om det får plats i nån STM32.

Ska du bara styra en liten bil som undviker hinder så är det ju mycket enklare använda en ultraljudssensor eller liknande. Har själv implementerat det i en 8 bit PIC på 2 MHz.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 30 juli 2020, 13:58:51
av DanielM
guckrum skrev: 30 juli 2020, 12:15:04 Skall du syssla med objektdetektering, bildklassning eller liknande behöver du ett rejält nät i botten. Moderna nät som exempelvis något Mobilenet levererar "okej" prestanda med bara ett par miljoner koefficienter. Du behöver alltså megabyte storage med snabb access för att det skall bli något.
Ja. Det var lite. Väldigt fattigt.
Men jag nöjer mig om jag kan identifiera 10 klasser. :)

Hittade ett exempel på GitHub som använder en av dom största ST processorna.
https://github.com/ABurrello/CubeMX-AI-demo

I den så finns det en CIFAR10 modell. Den kan alltså klassificera 10 saker. Det är dock 32x32 bilder.

Notera att han använder ingen kamera eller LCD. Utan han skickar data via UART från PC till STM32 och STM32 gör sina beräkningar och skickar sedan tillbaka. Detta STM32 kort har ca 2 MB i ram. Bara ett 320x240 16 bit kamera kort med en kamera är 163.2 kB i minne. Så man får väll kopplas att CIFAR10 inte tar mer än 1 MB i minne.

Jag tvekar.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 30 juli 2020, 14:11:29
av DanielM
Rick81 skrev: 30 juli 2020, 12:34:25 Antar att du menar att det är för lite? Svårt att säga då du inte speccat vad du behöver.

Som jag förstår det med CubeAI så gör man ju nätverket först i ex tensor flow och sen optimerar den för STM32 och då får man ju veta om det får plats i nån STM32.

Ska du bara styra en liten bil som undviker hinder så är det ju mycket enklare använda en ultraljudssensor eller liknande. Har själv implementerat det i en 8 bit PIC på 2 MHz.
Jag bara utforskar lite. Min specifikation är:
* Detektion
* Klara minst 10 klasser
* Kamera
* LCD med taffs

Nu när jag har forskat kring vad CubeMX AI kan generera så börjar jag tro att ST har inte processorer som klarar inte mer komplexa bilder.

Någon som har tränat ett neuralt nätverk förut? Hur gick det?

Jag funderar på testa CubeMX AI nu och kolla storleken på olika nät.

Re: Linuxbaserade processorsystem VS FreeRTOS

Postat: 30 juli 2020, 14:19:17
av DanielM
Nu såg jag något! Om detta är sant så kan jag ju använda en vanlig Nucleo då.

https://my.st.com/content/my_st_com/en/ ... 5.1.2.html
Allows the use of larger networks by storing weights in external Flash memory and activation buffers in external RAM
Easy portability across different STM32 microcontroller series through STM32Cube integration
Free, user-friendly license terms
Jag börjar inse att priset sticker iväg när man vill ha lite mer RAM och FLASH.
För att tillämpa ett neuralt nätverk på en STM32 så krävs det att jag utökar RAM och FLASH enormt. Minst 50 MB måste jag ha i Flash och RAM har jag ingen aning om, men det måste säkert ha en markant ökning. Jag hittar tyvärr inte sånna kraftfulla IC-chip att köpa. Så jag tror åter igen att Raspberry Pi är en både billigare, snabbare och enklare lösning än STM32. Bevisa gärna att jag har fel :)