Permalänk

Multify - Den smarta stereon (Loggbok)

Av: Jack Billström

"Multify" är ett pågående gymnasiearbete, använder denna som en logg för min lärare att se, samt för att dela med mig utav en något "nördig" pryl. Oklart när det är 100% klart, här nedan kommer en kort beskrivning så du enkelt kan få en snabb förståelse:

Mitt projekt är en sorts stereo som är uppbyggd utav en enkortsdator (Raspberry Pi), med en webbkamera som känner igen ansikten. Den kör ett ansikte mot mina Facebook vänner, därefter tar den fram dennes musiksmak och genererar en spellista utifrån dennes favoritartister. Känner enheten av en ny människa så gör den samma sak igen, fast ”jämkar” och tar fram musik som båda gillar. Efter två timmar ska musiken långsamt börja ”återställas” till ansiktet den såg sist.

Tyckte att det skulle se häftigt ut med en plexiglas-högtalare som enkelt kan monteras på vägg eller ställas på ett bord. Gjorde därav denna design i Blender.

Men läste därav att det inte var särskilt optimalt att använda plexiglas så ska få se hur jag gör.

Min hårdvara består just nu utav :
* Raspberry Pi (Modell B 512MB RAM)
* Webbkamera (Clas Ohlsson Modell 106)
* Archos 5 IT (Internet Tablet 7GB)
* Eltox Monitor Centre (Högtalarmonitor)

Jag började med att fundera ut hur allting skulle fungera, samt om allting skulle fungera. Jag visste att jag skulle använda min Raspberry Pi så jag Googlade lite sök ord som exempelvis "Raspberry pi spotify" och hittade diverse program som sas fungera.
Jag valde "Respotify", finns här : https://github.com/Hexxeh/spotify-websocket-api/
Det var rätt knepigt att få till det så att det fungerade. Men efter ett flertal timmar så fick jag det att fungera, så här ser det ut i konsolen just nu när man öppnar Respotify.

Därefter så var jag tvungen att lära mig ansiktsigenkänning, jag satt mycket med OpenCV biblioteket och försökte få till något vettigt där, installerade det som tog runt 7 timmar för att kompilera på min rPI. Sedan så hittade jag ett python skript som ritade en röd triangel runt om ansikten den kunde se. Mycket bra då jag visste att jag sedan skulle skriva om den funktionen för att identifiera bilden. Det lät mycket enklare än vad det egentligen var kan jag lova, hittade därför ett API som jag valde att använda. Det heter "Rekognition", läste på om det API't. Såg att det var mycket simpelt och det tyckte jag om. Därefter så gjorde jag en HTML-fil med en mängd javascript som skulle gräva fram min vänlista från Facebooks API och sedan spara varje väns profilbild hos API't tillsammans med deras Facebook ID. Efter att ha lyckats klappade jag händerna men ville få åstadkomma mycket mer. Därefter påbörjade jag att börja koda i Python. Ska nu inte förklara flera hundra rader kod så jag gör en numrerad lista som förklarar varje process. Alla processer är inte klar, men det är en beskrivning om vad som ska ske.

1. Starta stereon
2. Skripten startas med automatik
3. När ett ansikte är identifierat så tas personens musiksmak fram (artister) från Facebook API
4. Artisterna körs mot Last.FMs API för att få fram artistens två populäraste låtar
5. Första låten skickas in mot ett skript som börjar spela upp den från Spotify (Ex.[play "Maskinen - Mamma Sa"])
6. Låten spelas upp och de resterande läggs på kö.
7. Om "stereon" ser ett annat ansikte så börjar den med samma process. Men innan den kommer till steg 5 så kommer skriptet att sålla ut sådan musik som bara en utav dom gillar så det som blir kvar är gemensam musiksmak.
8. Den gemensamma musiken spelas upp.
9. Går det en tidsinställd timer så återställ musiken och musik från den inloggades spellistor.

Jag har även två "specialare", den ena är att jag skall använda surfplattan (Archos 5 IT) till att visa spelkön samt album omslaget till den aktuella låten. Den andra är att den dominanta färgen från album omslaget, skickas till en "RGB-strip" (RGB LED list) som får samma färg som den dominanta färgen. Färgen kan dock inte vara svart såklart.

Just nu så är det finslip på att spara fler bilder än bara profilbilderna hos vännerna då de flesta inte har "perfekta" profilbilder. Samt att Respotify inte hanterar ÅÄÖ, skicka kommandot som startar låtarna (Väldigt svårt).

Kom gärna med feedback, kritig, idéer och andra tankar. Har inte tänkt på allt men detta galleri kommer att utökas med tiden som jag lyckas åstadkomma något märkvärdigt.

Cheers

-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-09
Installerade OpenCV på min Raspberry PI
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-10
Installerade en webbkamera och lyckades få till ansiktsigenkänning. Nästa steg är nu att få till faceRecognition()
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-14
Spotifyklient installerad, funkar perfekt.
Ansikten sparas och laddas upp på alkis.se
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-14
Spotifyklient installerad, funkar perfekt.
Ansikten sparas och laddas upp på alkis.se
Ölpaus
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-19
Under denna sena kväll tillade jag så att kameran kände igen mig, identifierade mig, skrev ut en lista på all musik jag gillar. Nästa steg är att spela upp artisterna
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-26
Idag så fick jag lite hjälp på ett forum för att kunna få till en bugg jag slitit länge med, kan gott säga att jag nu kan skriva en länk till en bild (min profilbild på facebook) och få den senaste låten jag gillade (topplåten hos min senaste favoritartist) att spelas upp. Filmklipp kommer bifogas.

https://www.facebook.com/photo.php?v=641665242531811 - Film från dagens programmering, rätt nöjd!
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-09-30
Idag så har jag jobbat på att den ska:

- Söka efter den senaste låten
- Spela upp den bästa matchningen
- Vänta tills låten slutat
- Hämta nästa låt
- Fortsätt

Får dock ett felmeddelande att vissa Python Moduler saknas, jobbar på att lösa detta problem. Tittar för mycket på Shameless (TV) och latat mig. Får lov att skärpa till mig, förhoppningsvis kan jag lösa detta problem igenom att SSH'a in i min rPI och ominstallera modulen. Får bli imorgon på vägen in till skolan.
Får jag till detta kan jag se om dagensprogrammering lönat sig.
Funkar allt som det ska efteråt så kommer jag att finslipa Facebookalgoritmerna och debuga lite!
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-10-03
Idag har jag undersökt mitt UTF-8 problem, ett bra tips är att inte förvandla teckenkodningen till UTF-8 som en standard då vissa Python Moduler förlitar sig på ACSII.
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-10-04
Jobbat med att uppgradera från Python 2.7.x till Python 3.2.x på min PI. Nu ska inte modulerna krångla längre
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-10-07
Idag så har jag skapat ett projekt hos Github där endast inbjudna utvecklare kan ta del utav koden. Även påbörjat en spotify app där man sedan kan använda den. Kommer funka exakt som själv Multify stereon men i datorn som man kanske redan kopplat till sin ljudanläggning.

Vill du hjälpa mig utveckla Spotify Applikationen så hör av dig till mig via PM eller på mail, mailen är :
(Mitt förnamn) [at] alkis . (Svensk domän ändelse)

Applikationen är skriven i HTML, CSS och JS. Skickar upp all kod till mitt repo när jag minst har 5 intresserade utvecklare.
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-10-14
När den känner igen en person så kan den nu identifiera denne, därefter ta fram dess musiksmak från Facebook. Musiksmak sparas nu såhär:

["Lady Gaga - Applause", "Lady Gaga - Bad Romance", "Oskar Linnros - Hur Dom \xc3\x84n", "Oskar Linnros - Fr\xc3\xa5n balkongen", "Jazmine Sullivan - Bust Your Windows", "Jazmine Sullivan - Need U Bad", "T.I. - Whatever You Like", "T.I. - What You Know", "Timoteij - Kom", "Timoteij - Stormande"]

Enkelt sagt, en array med strängar för all musik som den identifierade gillar. Detta funkar alldeles fint, just nu jobbas det på att när en ny person dyker upp så sparas dennes musik i en likadan lista. Därefter så kör jag en compare() funktion som sållar ut de resultat som inte är gemensamma. Men om de har för få resultat så läggs en antal från båda personerna till för att det ska finnas gott om musik.
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-10-21
Spotify premium tillåter endast att man har premium för att kunna använda tredjeparts applikationer så därför har jag nu en liten kaffepaus i arbetet. Dock så ska jag beställa en förstärkare och bygga ihop allting under tiden.
Fick även en sponsring på en ny VPS leverantör som hjälper mig med att sköta en snabb och minimal anslutning mellan alla ansikten och stereon.

Kolla in https://cloudroyale.se/ De har ett gratiserbjudande just nu!
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
2013-12-04
Nu har jag inte hört av mig på ett bra tag och anser därför att jag borde dela med mig om hur det ligger till.
Just nu så funkar det med att Python klienten ser ett ansikte, kör det mot ett öppet API (rekognition v2), får ett svar med de tre bästa matchningarna. Sedan sparar den ner alla dennes gillade band/artister från Facebook. Tillsammans med Last.FMs API så tar sedan programvaran fram de tre populäraste låtarna från dessa artister och sparar de tillsammans i en stor textfil. Spotify skriptet spelar sedan upp musik därifrån.

TODO:

- Skriptet spelar bara upp den första låten, en loop behövs(?)
- Optimering utav fps från webbkamera
- Köras mot flera ansikten

Ikväll (2013-12-04 23.28) så kommer jag försöka mig på att installera en linux maskin inuti vmware (virtuellt operativsystem är tanken), få allting att fungera igen. Därefter snabba upp processer. Efter jul när ekonomin etablerat sig hos mig igen så är även tanken att påbörja det fysiska arbetet. Att bygga in det i en högtalare!

Multify - Den smarta stereon (Loggbok)

Permalänk
Medlem

Roligt gymnasiearbete! är nyfiken på hur det blir i slutändan!

Permalänk
Medlem

Ball idé! Vore kul om du kunde dela med dig av kod/göra en guide för andra att bygga samma sak!

Permalänk
Skrivet av Xiano:

Ball idé! Vore kul om du kunde dela med dig av kod/göra en guide för andra att bygga samma sak!

Tack Jo, all kod kommer att finnas tillgänglig tillsammans med en guide framöver hos www.github.com

Permalänk
Medlem

Låter intressant

Permalänk
Medlem

Skittuff idé! Smart grej

Visa signatur
Permalänk
Inaktiv

UTF-8 är väl bara encoding, inte ett språk? Eller har jag missat nåt?

Permalänk
Skrivet av anon200933:

UTF-8 är väl bara encoding, inte ett språk? Eller har jag missat nåt?

Måste ha skrivit fel någonstans eller så har du missuppfattat mig. UTF-8 är en teckenkodning, en mycket bra sådan. Dock så jobbar jag på att få det att fungera så det flyter på Just nu så får jag felmeddelanden när ÅÄÖ skall skrivas ut :/ Men jag jobbar på det

Permalänk
Proffsmoddare

Finns ju en kamera speciellt gjord för rPi annars oxå.

Visa signatur

Crystal 280X ~ i7 8700K ~ B360M MORTAR ~ GTX1080ti ~ 32GB DDR4 ~ RM650i ~ AOC 34" IPS ~ Virtuoso SE
The Red One ~ Cold Winter ~ CURV3D ~ BarPC ~ F4DE

För allt om PC-moddning ~ Minimalistic PC

Permalänk

Ser fint ut Jack!
//André

Permalänk
Skrivet av C4B12:

Finns ju en kamera speciellt gjord för rPi annars oxå.

Jo, läste om camera board. Hade köpt en om jag inte fick till min gamla webbkamera som jag använder nu istället

Permalänk
Skrivet av The_Donut:

Ser fint ut Jack!
//André

Tack Tackar även för surfplattan, ska nog uppdatera loggen ikväll med en bild och lite text om vad den ska få gå igenom

Permalänk
Medlem

Välskrivet, en bra struktur och på en lagom nivå för oinsatta. Nu saknas bara den färdiga produkten samt nörddelen (som du redan nämnt kommer upp på github).

5/5 hallonpajer.

Skickades från m.sweclockers.com

Visa signatur

Why procastinate now when I can do it tomorrow?

Permalänk
Skrivet av Sheik Yerbouti:

Välskrivet, en bra struktur och på en lagom nivå för oinsatta. Nu saknas bara den färdiga produkten samt nörddelen (som du redan nämnt kommer upp på github).

5/5 hallonpajer.

Skickades från m.sweclockers.com

Tack! Uppskattar er feedback, det peppar mig även att jobba på och visa resultat!

Permalänk
Medlem

Verkar riktigt coolt! Bra att ha på exempelvis fester! Bara visa sitt ansikte så spelas musik upp

Visa signatur

Chassi:BeQuietDarkBase900Pro PSU:BeQuietDarkPowerPro1000w Moderkort:AsusZ170ProGamingAURA
CPU:i7-6700K 4.2Ghz Kylare:BeQuiet!SilentLoop240mm Ram:Corsair 32GB DDR4 3200MHz Vengeance
GPU:AsusRadeonRX5700XT8GBRogStrixGamingOC SSD:Corsair 2x120GB, M.2 1TB HDD:Seagate/WD->30TB Skärmar:3xBenQ 24" LCD G2450HM, LG 65"UHD65UM7100 OS:W10
Tillbehör:LogitechG915,G915TKL,ProX,G502,MxMaster3,G930,Z906,G510,K350,M705,G440,C922Pro,MionixNaos3200,5000,7200,8200,NaosQG
Mobiler:Xperia 1 III,Xperia1,SonyZ5 🎮 🖥️ ⌨️ 🖱️ 🎧

Permalänk
Medlem

Ska bli riktigt kul att följa detta!

Angående plexiglas så finns det ett gäng högtalare som är gjorde av glas, här är ett kickstarter projekt om det: http://www.kickstarter.com/projects/652195222/transparent-spe...

Kanske kan vara av intresse

Permalänk
Skrivet av Romoes:

Ska bli riktigt kul att följa detta!

Angående plexiglas så finns det ett gäng högtalare som är gjorde av glas, här är ett kickstarter projekt om det: http://www.kickstarter.com/projects/652195222/transparent-spe...

Kanske kan vara av intresse

Tack för länken, hade spanat in den sedan tidigare och därav tagit inspirationen. Visste dock inte att det varit en Kickstarter. Tack

Permalänk
Medlem

Får du till detta på ett bra sätt blir jag imponerad!

Jag skulle inte rekommendera plexiglas. Beror på hur mycket tid och pengar du vill lägga. Räkna med 3 gånger kostnad och tid jämfört mot MDF

Permalänk
Skrivet av Frasse92:

Får du till detta på ett bra sätt blir jag imponerad!

Jag skulle inte rekommendera plexiglas. Beror på hur mycket tid och pengar du vill lägga. Räkna med 3 gånger kostnad och tid jämfört mot MDF

Tack!:D Jo, pengarna kan jag tvinga mig att lägga ner för att uppnå det snyggaste resultatet (enligt mig). Men funderar på olika material just nu, lägger dock korten på plexiglaset.

Permalänk
Medlem

fan va coolt

Visa signatur

HALLÅ KISSEKATTER!
Skylake i7 6700k, Corsair ven16gb 2133mhz RAM, red dragon 5700 xt 8gb, 500gb x2 Samsung EVO, Fractal design node 304 ,beQuiet pure rock,Fractal design 650W interna, Gigabyte z170 wifi, Win 10

Permalänk

förstod inte riktigt om du skulle bygga upp en plexi-högtalare eller inte...
Om du inte har tänkt på förstarkare, element ev. reflexrör osv skulle jag ksk kunna hjälpa dig:)
ska den köras på batteri förresten? skulle faktiskt kunna funka.

i förstärkarväg borde du kolla in class T amps, med ta2020 chip

Väldigt intressant projekt f.ö:)

Permalänk
Medlem

Imponerande må jag säga!

Permalänk
Skrivet av HolyAchmed:

förstod inte riktigt om du skulle bygga upp en plexi-högtalare eller inte...
Om du inte har tänkt på förstarkare, element ev. reflexrör osv skulle jag ksk kunna hjälpa dig:)
ska den köras på batteri förresten? skulle faktiskt kunna funka.

i förstärkarväg borde du kolla in class T amps, med ta2020 chip

Väldigt intressant projekt f.ö:)

Vet faktiskt inte själv om jag ska köra på plexi eller ej, men jag har följt dig och kommer nog kontakta dig när programmeringen är klar

Permalänk
Skrivet av Mozziee:

Imponerande må jag säga!

Skrivet av accel1:

fan va coolt

Tackar!

Permalänk
Medlem

Som förstärkare, denna är nedsatt till grymt bra pris!

http://www.ebay.com/itm/111008997739?ssPageName=STRK:MEWNX:IT...

Visa signatur

HTPC - Bygglogg; http://www.sweclockers.com/album/?id=2902
HTPC - Galleri; http://www.sweclockers.com/galleri/6562-htpc-galleribilder
42U - Bygglogg; http://www.sweclockers.com/galleri/7862-42u-rackskap-i-hemmet
i7 8700K, Antec kühler 620, Asus ROG Strix Z370-I Gaming, Corsair Vengeance RGB DDR4-2666 2x16GB RAM, ASUS GTX 1070

Permalänk
Skrivet av Tozzi:

Som förstärkare, denna är nedsatt till grymt bra pris!

http://www.ebay.com/itm/111008997739?ssPageName=STRK:MEWNX:IT...

Lägger till den i kassan så länge så får vi se om jag köper den, grymt pris och bra storlek. Tack för tipset!:)

Permalänk
Hedersmedlem

Bra jobbat, lycka till med resten!

Visa signatur

yayaya I am Lorde yayaya

Permalänk
Medlem

Kickstarter projekt nästa? Riktigt nördigt och jag är imponerad!

Visa signatur

Tack och lov för internetsladden i hårddisken.

Permalänk
Medlem

Riktigt tjockt akrylglas skulle kunna funka som bas, dock tror jag det väger mer än t.ex. MDF och är dyrare.

10mm akrylglas skulle nog vara jäkligt stabilt.

Akrylglas är nästan samma som plexiglas, det är hårdare men spricker lättare (om man borrar/sågar i det t.ex.) Men brukar vara mycket billigare än plexiglas.

Visa signatur

HTPC - Bygglogg; http://www.sweclockers.com/album/?id=2902
HTPC - Galleri; http://www.sweclockers.com/galleri/6562-htpc-galleribilder
42U - Bygglogg; http://www.sweclockers.com/galleri/7862-42u-rackskap-i-hemmet
i7 8700K, Antec kühler 620, Asus ROG Strix Z370-I Gaming, Corsair Vengeance RGB DDR4-2666 2x16GB RAM, ASUS GTX 1070

Permalänk
Medlem

Sjukt coolt samt intressant projekt. Kommer följas!!!

Visa signatur

HDD 1: Surface Book 2 15" (W10 Enterprise)
HDD 2: RYZEN 5900X, 64GiB, 2TB SSD, 2080 Super (W10 Enterprise)
Colo: 3 x Dell R710 (proxmox)