Springen naar inhoud

Blob detectie


  • Log in om te kunnen reageren

#1

Gunskes

    Gunskes


  • 0 - 25 berichten
  • 7 berichten
  • Gebruiker

Geplaatst op 01 april 2010 - 16:52

Ik ben momenteel bezig met een automatische keeper te maken.
De bedoeling is door middel van een (of twee) camera(s) een balletje te detecteren en te lokaliseren. De positiegegevens van de bal worden doorgestuurd naar een ServoDrive die op zijn beurt de sturing van een XY positioneertafel voor zich neemt.

Het detecteren van de bal gebeurt door middel van een zogenoemde smart camera. Dit is een camera die voorzien is van interne rekenkracht. Op de camera die ik gebruik (een VC4485 van Vision Components) draait een op C gebaseerd programma die de blobdetectie kan uitvoeren.

Nu vroeg ik mij af wat de achtergrond van zo'n blobdetectie is. Weet er iemand welke wiskundige algoritmes achter een blob detectie schuilen, of kunnen schuilen ?

Alvast bedankt!
Jonas

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 01 april 2010 - 20:45

Nu weet ik niet hoeveel wiskundige achtergrond je hebt, ik ga ze hier dus niet uitleggen, want die algoritmes zijn over het algemeen ERG moeilijk te vatten zonder (verregaande) kennis van signaalverwerking of AI.

Voor zover ik weet kunnen ze gebruik maken van (combinaties van) een heleboel algoritmen, gaande van edge-detection, beeldcompressie, bewegingsestimatie, neurale netwerken of andere zelflerende systemen, ... en talloze andere beeldverwerkingalgoritmes. Er is niet echt 1 'winning' algoritme voor beeldverwerking/herkenning.

Maar dit is normaal gezien voer voor specialisten. Meer info kun je vinden op: http://en.wikipedia....mage_processing
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#3

Gunskes

    Gunskes


  • 0 - 25 berichten
  • 7 berichten
  • Gebruiker

Geplaatst op 04 april 2010 - 09:49

Bedankt voor je antwoord.

Aangezien ik geen doctoraat in de abstracte wiskunde heb en mijn kennis over artificiŽle intelligente ook bijzonder beperkt is zal dit een moeilijk te doorgronden onderwerp worden.

Ik ben een laatstejaars student Industrieel Ingenieur, enig inzicht en logisch denkvermogen zou ik dus wel moeten hebben.

Voor zover ik begrijp hoe de camera werkt, dacht ik dat het vooral om contrastwerking ging. In de op te roepen functie wordt een treshold-waarde meegegeven. Enkel blobs waarvan de lichtintensiteit (we werken met een grijswaardenbeeld) lager (of hoger) is dan de tresholdwaarde worden gezocht. Ook een minimale grootte van de blob kan meegegeven worden.
Ik dacht dat deze blobdetectie werkt door het uitrekenen van de laplaciaan. Ik moet mijn boeken wiskunde van vroeger er nog eens bijhalen om de juiste werking van deze laplaciaan terug te begrijpen.

#4

mcs51mc

    mcs51mc


  • >250 berichten
  • 470 berichten
  • Ervaren gebruiker

Geplaatst op 04 april 2010 - 11:31

Meer info hier
Jouw camera zal wel een VC4458 zijn zeker ipv van een VC4485 zoals je aangaf ](*,)

De processor op die camera is een DSP van Texas, misschien is het dus mogelijk eender welke C-code op die DSP te laten draaien.

Het is mij niet duidelijk of je die code zelf moet ontwikkelen of je kan beroep doen op een of ander "vision library".
Met een goede vision library moet je eigenlijk met al die wiskunde geen rekening houden, vandaar dat ik je vraag niet 100% versta :eusa_whistle:
Meer info over de Python vision lib hier

Stuur je die XY-keeper rechstreeks uit de camera of niet?

#5

Gunskes

    Gunskes


  • 0 - 25 berichten
  • 7 berichten
  • Gebruiker

Geplaatst op 05 april 2010 - 17:30

Ik heb inderdaad de VC4458.

De blobdetectie is reeds geprogrammeerd. Ik gebruik daarvoor de bibliotheken die Vision Components ter beschikking stelt.

De vraag is dan ook louter informatief. Ik vroeg me af hoe zoiets werkt.
De kennis van zo'n blob detectie is handig meegenomen bij het schrijven van mijn thesis en de jurering ervan.

De camera geeft XY coordinaten door aan een servodrive. De communicatie gebeurt over ethernet, door middel van een UDP protocol. De Drive, een Simotion D425 neemt de controle van de XZ-positioneer eenheid op zich.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures