Drönaren Ryze Tello powered by DJI är kul att flyga som den är. Men den erbjuder även en möjlighet att programmeras med Python för att utöka sina funktioner med t ex datorseende (Computer Vision).
I filmklippet ”Tello drone and computer vision: selfie air stick”, av geaxgx1, får du se flera intressanta exempel på hur man kan låta Tello följa och styras av vad den ser med sin kamera genom Pythonkod och OpenCV. Exempelkod på hur man gör ansiktsigenkänning, kroppspositionsdetektering m.m finns i länkarna nedan.
I want to thank all the people who wrote and shared the great libraries/programs I used here : – https://github.com/hanyazou/TelloPy : DJI Tello drone controller python package, – https://github.com/CMU-Perceptual-Com… : Real-time multi-person keypoint detection library for body, face, hands, and foot estimation. This is an amazing library! – https://github.com/Ubotica/telloCV/ : Ubotica wrote a code for the Tello to follow a color ball. Instead of starting from scratch, I used his code. It makes me saved a lot of time for UI!
TELLO har fått en ny app som ger den helt nya funktioner!
Den här nya appen från VOLATELLO ger nytt liv åt den gamla lilla drönaren. Appen hittar du i Google Play butiken: https://play.google.com/store/apps/de… Se filmklippet nedan från Captain Drone för mer information om de nya funktionerna ”Return to home”, ”Object tracking”, ”Panorama” och hur appen fungerar.
In this blender 2.8 tutorial, by CGMatter (https://www.cgmatter.com), we go over the fundamentals of motion tracking inside blender. Specifically we go over image sequence conversion and the motion models (location, rotation, scale, affine, perspective) used for tracking. This is the first part of a 3 part tutorial series covering everything to do with motion tracking. TIMESTAMPS: 00:00:00 – Introduction 00:01:18 – What is motion tracking? 00:01:55 -Image sequences (theory + conversion) 00:08:33 – Switching to movie clip editor 00:10:05 – Setting up 00:11:46 – Location tracking (and some basics) 00:16:43 – Tracking panel (track speed, frames limit, etc) 00:19:16 – Search area and pattern area (optimization) 00:22:20 – Default settings vs local settings 00:23:03 – Modifying the pattern area 00:24:33 – Graphs (how to interpret X and Y data) 00:26:10 – Link empty to track 00:27:33 – Basic 3d integration 00:28:37 – Location rotation motion model (+ comparing to location model) 00:33:10 – What a tracker really stores 00:33:58 – 2 point tracking (for rotation/scaling data) 00:39:20 – Normalize 00:42:16 – Location rotation scale motion model 00:46:17 – Previous frame vs keyframe (match mode) 00:48:47 – Correlation (with a small mistake :D) 00:53:03 – Affine motion model 01:00:19 – Perspective motion model 01:13:03 – RGB color channels 01:15:10 – Closing thoughts + sneak-peek
Blender 2.8 Motion tracking #2: Even more to go over (tutorial)
In this blender 2.8 tutorial we continue developing the theory of motion tracking by going over techniques like join tracks and offset tracking. We also talk about applications like masking, plane tracks, stabilization, and compositing. TIMESTAMPS: 00:00:00 – Introduction (what we’ll go over) 00:01:11 – Setup 00:02:35 – Obstructions (join tracks) 00:08:23 – Offset tracking 00:14:52 – Stabilization (lot’s of stuff in here) – multiple trackers – stab weight – rotation/scale 00:23:21 – Color coding 00:24:36 – More stabilization – autoscale – anchor frame 00:26:51 – Compositing (stabilize 2d node) 00:32:32 – Rendering stabilized result 00:35:23 – Plane track 00:42:30 – Compositing (plane track deform node) – masking – dilate/erode node 00:49:44 – Manual hook approach 00:57:12 – Masking 01:00:16 – Mask node (compositing) 01:01:37 – Overview + sneak-peek
Blender 2.8 Motion tracking #3: Camera tracking in depth (tutorial)
In this blender 2.8 tutorial we finally go over camera tracking and the theory involved in reducing your solve error. We also talk about orientation and compositing which lets us put 3d objects in our scene.
Blender 2.8 Motion tracking #4: Camera tracking examples (tutorial)
In this blender 2.8 tutorial we review what we’ve learned about camera tracking. Specifically we try to get a good camera solve on two new shots one of which is a tripod shot.
Från bildigenkänning till artificiell bildgenerering. AI-forskningen och utvecklingen inom maskininlärning (machine learning), när det handlar om bilder och foton, har i huvudsak handlat om artificiell bildigenkänning. Dvs att skapa algoritmer för att lära datorer att känna igen visuella objekt i bilder och tolka det som syns och sker i foton. (engelska: Image recognition, object detection, object classification)
De senaste åren har även AI:s förmåga att skapa (generera) falska fotorealistiska bilder tagit stora kliv framåt. På webbplatsen, ThisPersonDoesNotExist.com, kan du se själv med egna ögon hur långt utvecklingen kommit.
Webbplatsen är skapad av Phillip Wang, en fd programvaruingenjör vid Uber, och skapar automatiskt nya bilder på människors ansikten som inte finns på riktigt. Algoritmen bakom den bygger på forskning som släpptes förra året av grafikchipdesignern Nvidia. AI:t är tränat på ett enormt stort dataset med foton på riktiga människoansikten, och använder sedan en typ av neuralt nätverk som kallas ett Generativt Adversarialt Nätverk (engelska Generative Adversarial Network, GAN) för att tillverka nya falska människoporträtt.
”Varje gång du läser in webbsidan skapar nätverket en ny ansiktsbild från början,” skrev Wang i ett Facebook-inlägg. ”De flesta förstår inte hur bra AI:er kommer att vara på att syntetisera bilder i framtiden.”
Den underliggande AI-algoritmen som drivs på webbplatsen uppfanns ursprungligen av en forskare som heter Ian Goodfellow. Nvidias AI-algoritm, kallat StyleGAN, gjordes nyligen till öppen källkod och har visat sig vara otroligt flexibel. Även om den här versionen av modellen är tränad för att generera mänskliga ansikten, kan den i teorin användas för att efterlikna någon annan källa. Forskare experimenterar redan med andra mål, som t e x anime tecken, teckensnitt och graffiti.
På Our World in Data hittar du data med tabeller och över 3000 diagram inom nästan 300 olika områden. Allt är open source och fritt att använda. Ett perfekt ställe att gå till för att faktakolla hur saker och ting ser ut och förhåller sig i världen. Ypperlig källa för att källkritiskt granska påstående om t ex utsläpp, demografisk utveckling, politik, undervisning i olika länder m.m. Det finns även specifika sidor för lärare mer anpassat och paketerat material som kan användas direkt i undervisningen.
Man behöver ofta lösa regressionsproblem när man tränar sina modeller för maskininlärning. I detta avsnitt av Coding TensorFlow diskuterar Robert Crowe hur man bygger och tränar en TensorFlow-modell med Keras, där du försöker hitta modellen som löser ett enda numeriskt resultat, med andra ord regression. Lär dig hur du kommer igång med regressionsproblem genom ett exempel där AI-modellen förutser en bils bränsleförbrukning i miles per gallon. Detta kräver att vår modell undersöker och lär sig av de data vi tillhandahåller för att förutsäga vårt slutliga nummer.
Neural Network Regression Model with Keras | Keras #3
I den här videon användes både en linjär och icke-linjär regressionsmodell för att förutsäga antalet visningar på en youtube-video baserat på den videons ”likes”, ”dislikes” och prenumeranter (en webcrawler användes för att samla in denna statistik). Modellerna är Neural Networks, och de implementeras med Keras API och Tensorflow-backend. I videon får du veta saker som vad regression är, hur man ställer in saker i Jupyter Notebook, träna-testa-dela, valideringsdelning, skalning / normalisering av data och när det är bra att göra det, batchstorlek, Stochastic Gradient Descent (SGD), Adam, epoker, iterationer, inlärningshastigheter, r2 (r ^ 2) poäng och mer.
Maskininlärning (Machine Learning, ML) representerar ett nytt paradigm i programmering, där du istället för att programmera explicita regler på ett språk som Java eller C ++, bygger ett system som tränas och lärs upp på data från ett stort antal exempel, för att sedan kunna dra slutsatser av ny data baserat på de mönster som identifierats utifrån träningsdatat. Men hur ser ML egentligen ut? I del ett av Machine Learning Zero to Hero går AI-evangelisten Laurence Moroney (lmoroney @) genom ett grundläggande Hello World-exempel på hur man bygger en ML-modell och introducerar idéer som vi kommer att tillämpa i det senare avsnittet om datorseende (Computer Vision) längre ner på denna sida. Vill du ha en lite mer omfattande introduktion rekommenderar jag Introduction to TensorFlow 2.0: Easier for beginners, and more powerful for experts.
Prova själv den här koden i Hello World of Machine Learning: https://goo.gle/2Zp2ZF3
Basic Computer Vision with ML (ML Zero to Hero, part 2)
I del två av Machine Learning Zero to Hero går AI-evengalisten Laurence Moroney (lmoroney @) genom grundläggande datorseende (Computer Vision) med maskininlärning genom att lära en dator hur man ser och känner igen olika objekt (Object Recognition).
Fashion MNIST – ett dataset med bilder på kläder för benchmarking
Fashion-MNIST är ett forskningsprojekt av Kashif Rasul & Han Xiao i form av ett dataset av Zalandos artikelbilder. Det består av ett träningsset med 60 000 bildexempel och en testuppsättning med 10 000 exempel. Varje exempel är en 28 × 28 pixlar stor gråskalabild, associerad med en etikett från 10 klasser (klädkategorier). Fashion-MNIST är avsett att fungera som en direkt drop-in-ersättning av det ursprungliga MNIST-datasättet för benchmarking av maskininlärningsalgoritmer.
Varför är detta av intresse för det vetenskapliga samfundet?
Det ursprungliga MNIST-datasättet innehåller många handskrivna siffror. Människor från AI / ML / Data Science community älskar detta dataset och använder det som ett riktmärke för att validera sina algoritmer. Faktum är att MNIST ofta är det första datasetet de provar på. ”Om det inte fungerar på MNIST, fungerar det inte alls”, sägs det. ”Tja, men om det fungerar på MNIST, kan det fortfarande misslyckas med andra.”
Fashion-MNIST är avsett att tjäna som en direkt drop-in ersättning för det ursprungliga MNIST-datasetet för att benchmarka maskininlärningsalgoritmer, eftersom det delar samma bildstorlek och strukturen för tränings- och testdelningar.
Varför ska man ersätta MNIST med Fashion MNIST? Här är några goda skäl:
Se mer om att koda TensorFlow → https://bit.ly/Coding-TensorFlow Prenumerera på TensorFlow-kanalen → http://bit.ly/2ZtOqA3
Introducing convolutional neural networks (ML Zero to Hero, part 3)
I del tre av Machine Learning Zero to Hero diskuterar AI-evangelisten Laurence Moroney (lmoroney @) CNN-nätverk (Convolutional Neural Networks) och varför de är så kraftfulla i datorseende-scenarier. En ”convolution” är ett filter som passerar över en bild, bearbetar den och extraherar funktioner eller vissa kännetecken (features) i bilden. I den här videon ser du hur de fungerar genom att bearbeta en bild för att se om du kan hitta specifika kännetecken (features) i bilden.
Codelab: Introduktion till invändningar → http://bit.ly/2lGoC5f
Build an image classifier (ML Zero to Hero, part 4)
I del fyra av Machine Learning Zero to Hero diskuterar AI-evangelisten Laurence Moroney (lmoroney @) byggandet av en bildklassificerare för sten, sax och påse. I avsnitt ett visade vi ett scenario med sten, sax och påse, och diskuterade hur svårt det kan vara att skriva kod för att upptäcka och klassificera dessa. I de efterföljande avsnitten har vi lärt oss hur man bygger neurala nätverk för att upptäcka mönster av pixlarna i bilderna, att klassificera dem, och att upptäcka vissa kännetecken (features) med hjälp av bildklassificeringssystem med ett CNN-nätverk (Convolutional Neural Network). I det här avsnittet har vi lagt all information från de tre första delarna av serien i en.
Colab anteckningsbok: http://bit.ly/2lXXdw5
Rock, papper, saxdatasätt: http://bit.ly/2kbV92O
Det verkar som om allt drivs av AI nuförtiden. Det handlar dock sällan om speciellt intelligenta system, eller riktig Artificiell Intelligens. AI används mest som en marknadsföringsterm, för det som oftast är maskininlärning (Machine Learning – ML) och tekniker som Neural Networks (NN). Dessa termer kan verka lite skrämmande och svåra, men de är faktiskt inte så komplexa som du kanske tror.
I följande filmklipp ges en enkel och tydlig förklaring till vad neurala nätverk och maskininlärning är, hur det fungerar och vad vi kan använda det till.
Lär dig hur du 3D-scannar genom att ta mängder av foton med din mobilkamera, importera bilderna i programvaran Meshroom (a free open-source 3D Reconstruction Photogrammetry Software based on the AliceVision framework), och sedan justera, ljussätta och rendera 3D-modellen i Blender för att skapa en fotorealistisk 3D-modell av det du fotograferat av.
Cura är ett open-source slicer-program. Det är ursprungligen utvecklat av företaget Ultimaker som en slicer till deras 3D-skrivare, men fungerar lika bra till nästan alla andra 3D-skrivare på marknaden. Det är ett av de mest populära programmen för detta ändamål.
För att skriva ut saker i en en 3D-skrivare behövs ett så kallat slicer-program. Det är ett program som gör om en STL-fil till G-code som 3D-skrivaren kan tolka. Slicern skivar upp 3D-modellen i olika lager där G-coden bestämmer var det ska läggas ut filament och hur. Här är ett antal parametrar man kan justera i inställningarna för sin 3D-utskrift:
Layer height: Höjden på varje lager i utskriften
Wall thickness: Tjockleken på väggarna i utskriften
Top/bottom thickness: Tjockleken på “tak” och “golv” i utskriften
Infill density: Hur mycket av insidan ska täckas upp med material?
Printing temperature: Temperatur på munstycke – beror på vilket material vi väljer
Build plate temperature: Temperatur på byggplatta – beror på vilket material vi väljer
Travel speed: Hur fort munstycket rör sig när det inte extruderar plast
Enable print cooling: Om vi vill kyla plasten med “part cooling fan” när det kommer ut
Build plate adhesion: Olika metoder för att få bättre fäste vid byggplatta
Enable supports: Om det automatiskt ska genereras stödstrukturer
Support placement: Vart stödstrukturer ska genereras
Support density: Hur mycket stödstrukturer ska genereras
Support overhang angle: Vart stödstrukturer ska genereras
Print speed: Utskriftshastighet – hur fort munstycket rör sig när det extruderar plast
I nedanstående filmklipp visar Chuck dig tre Cura Slicer-inställningstrick för nybörjare som han använder på sina ENDER 3 och CR-10 Mini hela tiden. Dessa Cura-tricks är särskilt användbara för alla som precis kommit igång med 3D-printing.
Support eller stödstrukturer
Om ett 3D-objekt du vill skriva ut har delar med överhäng behöver du använda supportmaterial eller s k stödstrukturer. Det finns olika sätt att lägga till stödstrukturer till ett en 3D-modell. Hur du ställer in Cura Tree Supports (trädstöd) och Simple Support och vilka inställningar du kan göra hittar du i nedanstånde avsnitt av Filament Friday med Chuck. Han använder en enkel testutskrift för att se vilket Cura-stöd som fungerar bäst och varför. Han visar hur enkla de är att ta bort och hur bra utskriften ser ut när du är klar.
Med en plugin till Cura går det att skapa mer precisa manuella stödstrukturer bara just där du vill ha dem, så att du kan spara plast och snabba upp utskrifterna jämfört mot att använda de automatiska verktygen.
Build plate adhesion – Skirt, Brim and Raft
How to get your 3d printed parts to stick to the bed and avoid curling/warping