Ryze Tello drönare och datorseende

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.

Tello drone and computer vision: selfie air stick (8:55)

Github: https://github.com/geaxgx/tello-openpose

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!

Music credits: – The Place Inside – Silent Partner https://youtu.be/PRP5bV7RTV8 – Cello Suite #1 in G & Your Call : Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 License http://creativecommons.org/licenses/b…

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.

Motion tracking med Blender 2.8

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.

Linux terminal-kommandon

När du kommit till topic 3.2.3 i Cisco IoT Fundamentals-Connecting Things;
Svara på frågor om Linux-kommandon i terminalen:

  1. Vad gör linux-kommandot ps?
  2. Vad används kommandot top till?
  3. Vilket kommando använder man för att se nätverkskortets konfiguration/info?
  4. Med vilket kommando kan du se eller ändra det trådlösa nätverkskortets konfiguration/info?
  5. Ge exempel på nätverksinformation som du kan se med kommandona i fråga 3 och 4.
  6. Vilket kommando används för att installera, konfigurera eller avinstallera programpaket i Debian?
  7. Hur kan du se vilka filer och undermappar som ligger i den katalogen du för tillfället är i?
  8. Vilket kommando används för att visa vilken aktuell katalog du är i?
  9. Vad skriver du för att byta till en annan katalog/mapp?
  10. Vilket kommando används för att skapa en ny mapp?

ThisPersonDoesNotExist.com använder AI för att skapa falska ansikten

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.

Bildresultat för this person does not exist"
Dessa personer finns inte på riktigt. Ansiktena har skapats av AI-algoritmen StyleGAN på webbplatsen ThisPersonDoesNotExist.com

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.

Faktakoll på världen med data från Our World in Data

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.

Regressionsanalys med TensorFlow och Keras

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.


Get started with using TensorFlow to solve for regression problems (Coding TensorFlow) (11:38)

Get the Colab & follow along here → http://bit.ly/2xV8rVg
UCI dataset repository → http://bit.ly/2k2xH8i
Watch more Coding TensorFlow → https://bit.ly/Coding-TensorFlow

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.

Neural Network Regression Model with Keras | Keras #3 (19:04)

Introduktion till maskininlärning med TensorFlow 2.0

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.

(40:55)

Intro to Machine Learning (ML Zero to Hero, part 1)

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.

fashion-mnist-sprite

Fashion MNIST dataset

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.”

MNIST Dataset för nummerklassificering

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:

GitHub:

Find detailed information and the data set on GitHub

Här är ett exempel på datorseende som du kan testa själv: https://goo.gle/34cHkDk

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


Introducing convolutional neural networks (ML Zero to Hero, part 3)

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


Build an image classifier (ML Zero to Hero, part 4)

Vad är neurala nätverk och maskininlärning?

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.

3D fotogrammetri med Meshroom och Blender

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.



How to 3D Photoscan Easy and Free! (34:49)

Tips för bättre 3D-utskrifter med Cura

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.

3 Cura Slicer Setting Tricks For Beginners (8:19)

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.

CURA – Tree Supports vs Standard Supports (8:27)

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.

Custom Manual Supports in Cura 4.3 (7:45)

Build plate adhesion – Skirt, Brim and Raft


Build plate adhesion – Skrit, Brim, Raft (3:16)

How to get your 3d printed parts to stick to the bed and avoid curling/warping

(15:31)