EUR | USD

Snel aan de slag met 3D-time-of-flight-toepassingen

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van Digi-Key

3D time-of-flight (ToF)-imaging biedt een efficiënt alternatief voor video imaging voor een breed scala aan toepassingen, waaronder industriële veiligheid, robotnavigatie, gebaarbesturingsinterfaces en nog veel meer. Deze aanpak vereist echter wel een zorgvuldige mix van optisch ontwerp, precisie-timingcircuits en signaalverwerkingscapaciteiten, waardoor ontwikkelaars vaak moeite hebben om een effectief 3D ToF-platform te implementeren.

Dit artikel zal de nuances van de ToF-technologie beschrijven alvorens te laten zien hoe twee kant-en-klare 3D ToF-kits Analog Devices' AD-96TOF1-EBZ-ontwikkelplatform en ESPROS Photonics' EPC660-evaluatiekit kunnen ontwikkelaars helpen bij het snel prototypen van 3D ToF-applicaties en de nodige ervaring opdoen om 3D ToF-ontwerpen te implementeren om aan hun unieke vereisten te voldoen.

Wat is ToF-technologie?

De ToF-technologie is gebaseerd op het bekende principe dat de afstand tussen een object en een bepaald bronpunt kan worden gevonden door het verschil te meten tussen de tijd dat de energie door de bron wordt uitgezonden en de tijd dat de reflectie ervan door de bron wordt ontvangen (Afbeelding 1).

Diagram van ToF-systemen berekenen de afstand tussen het systeem en externe objectenAfbeelding 1: ToF-systemen berekenen de afstand tussen het systeem en externe objecten door de tijdvertraging te meten tussen de energieoverdracht en de ontvangst door het systeem van de door een object gereflecteerde energie. (Bron afbeelding: Analog Devices)

Hoewel het basisprincipe hetzelfde blijft, variëren de ToF-oplossingen sterk en dragen ze de mogelijkheden en beperkingen die inherent zijn aan hun onderliggende technologieën, waaronder ultrasound, lichtdetectie en -bereik (LiDAR), camera's en millimetergolf (mmWave) RF-signalen:

  • Ultrasone ToF-oplossingen bieden een goedkope oplossing, maar met een beperkt bereik en ruimtelijke resolutie van objecten
  • Optische ToF-oplossingen kunnen een groter bereik en een grotere ruimtelijke resolutie bereiken dan ultrasone systemen, maar worden gecompromitteerd door zware mist of rook.
  • Oplossingen op basis van mmWave-technologie zijn doorgaans complexer en duurder, maar kunnen wel binnen een aanzienlijk bereik werken, terwijl ze informatie geven over de snelheid en de koers van het doelobject, ondanks rook, mist of regen.

Fabrikanten maken gebruik van de mogelijkheden van elke technologie om aan specifieke eisen te voldoen. Ultrasone sensoren zijn bijvoorbeeld zeer geschikt voor het detecteren van obstakels als robots over een pad bewegen of als bestuurders hun voertuigen parkeren. De mmWave-technologie daarentegen biedt voertuigen het soort langeafstandssensors dat nodig is om naderende gevaren op de weg te detecteren, zelfs wanneer andere sensors niet in staat zijn om door te dringen in zware weersomstandigheden.

ToF-ontwerpen kunnen worden opgebouwd rond een enkel zender/ontvanger-paar. Bijvoorbeeld, een eenvoudig optisch ToF-ontwerp vereist conceptueel alleen een LED om een bepaald gebied te verlichten en een fotodiode om reflecties van objecten binnen dat gebied te detecteren. Dit schijnbaar eenvoudige ontwerp vereist echter nauwkeurige timing en synchronisatiecircuits om de vertraging te meten. Bovendien kunnen modulatie- en demodulatiecircuits nodig zijn om het verlichtingssignaal te onderscheiden van achtergrondbronnen of om complexere continugolfmethoden te ondersteunen.

De complexiteit van het ontwerp neemt snel toe naarmate de ontwikkelaars werken aan het verbeteren van de signaal-ruisverhouding (SNR) en het elimineren van artefacten in ToF-systemen. De meer geavanceerde detectieoplossingen maken het nog ingewikkelder en maken gebruik van meerdere zenders en ontvangers om meerdere objecten te volgen of ondersteunen geavanceerdere algoritmen voor het volgen van bewegingen. Zo zullen mmWave-systemen vaak meerdere ontvangers gebruiken om de koers en snelheid van meerdere onafhankelijke objecten bij te houden. (Zie,"Gebruik millimetergolfradarsets voor snelle ontwikkeling van ontwerpen voor nauwkeurige objectdetectie").

3D-optische ToF-systemen

3D-optische ToF-systemen breiden het idee uit om meer ontvangers te gebruiken door gebruik te maken van beeldsensors die gewoonlijk gebaseerd zijn op een reeks van oplaadbare apparaten (CCD's). Wanneer een set lenzen een bepaald interessegebied op de CCD-array richt, wordt elk laadopslagapparaat in de CCD-array opgeladen door de retourverlichting die wordt gereflecteerd vanuit een corresponderend punt in dat interessegebied. Gesynchroniseerd met gepulseerde of continue golfverlichting wordt het gereflecteerde licht dat de CCD-array bereikt, in wezen vastgelegd in een opeenvolging van vensters of fasen. Deze gegevens worden verder verwerkt tot een 3D-dieptekaart die bestaat uit voxels (VOlume piXELs) waarvan de waarde de afstand tot het corresponderende punt in het betreffende gebied weergeeft.

Net als frames in een video kunnen individuele dieptekaarten achter elkaar worden vastgelegd om metingen te leveren met een temporele resolutie die alleen wordt beperkt door de beeldsnelheid van het beeldopslagsysteem en met een ruimtelijke resolutie die alleen wordt beperkt door de CCD-array en het optische systeem. Met de beschikbaarheid van grotere 320 x 240 CCD-imagers vinden 3D-optische ToF-systemen met een hogere resolutie toepassingen in uiteenlopende segmenten, waaronder industriële automatisering, onbemande luchtvaartuigen (UAV's) en zelfs gebaarinterfaces (Afbeelding 2).

Beeld van 3D-optische ToF kan gebaarinterfacesystemen voorzien van gedetailleerde gegevensAfbeelding 2: Met hun hoge beeldsnelheid en ruimtelijke resolutie kunnen 3D-optische ToF-systemen met een gebaarinterface voorzien van gedetailleerde gegevens zoals de hand van een persoon die in de richting van de ToF-camera wordt opgestoken, zoals hier getoond. (Bron afbeelding: ESPROS Photonics)

In tegenstelling tot de meeste op camera's gebaseerde methoden, kunnen 3D ToF-systemen nauwkeurige resultaten leveren ondanks de schaduwwerking of veranderende lichtomstandigheden. Deze systemen bieden hun eigen verlichting, meestal met behulp van lasers of high-power infrarood LED's zoals de Luxeon IR-LED's van Lumileds die kunnen werken op de megahertz (MHz) schakelfrequenties die in deze systemen worden gebruikt. In tegenstelling tot methoden zoals stereoscopische camera's, bieden 3D ToF-systemen een compacte oplossing voor het genereren van gedetailleerde afstandsinformatie.

Vooraf gebouwde oplossingen

Om 3D ToF-systemen te implementeren staan ontwikkelaars echter voor meerdere ontwerpuitdagingen. Naast de eerder genoemde tijdcircuits zijn deze systemen afhankelijk van een zorgvuldig ontworpen signaalverwerkingspijplijn die geoptimaliseerd is om de resultaten van de CCD-array voor elke venster- of fasemeting snel uit te lezen en vervolgens de verwerking te voltooien die nodig is om die ruwe gegevens om te zetten in dieptekaarten. Geavanceerde 3D ToF-imagers zoals de EPC660-CSP68-007 ToF-imager van ESPROS Photonics combineren een 320 x 240 CCD-array met de volledige aanvulling van de mogelijkheden voor timing en signaalverwerking die nodig zijn om 3D ToF-metingen uit te voeren en 12-bits afstandsgegevens per pixel te leveren (Afbeelding 3).

Diagram van ESPROS Photonics epc660 (klik om te vergroten)Afbeelding 3: De ESPROS Photonics epc660 integreert een 320 x 240 pixelimager met een volledige aanvulling van timingcircuits en controllers die nodig zijn om ruwe imagergegevens om te zetten in dieptekaarten. (Bron afbeelding: ESPROS Photonics)

ESPROS Photonics' EPC660-007 card-edge connector chipdrager monteert de epc650-imager op een 37,25 x 36,00 millimeter (mm) printplaat (pc-board) compleet met ontkoppelingscondensators en kaartrandconnector. Hoewel deze chipdrager de basishardware-interface in een 3D ToF-systeemontwerp aanpakt, blijven de ontwikkelaars verantwoordelijk voor het voltooien van het juiste optische ontwerp aan de voorkant en het verstrekken van verwerkingshulpmiddelen aan de achterkant. ESPROS Photonics' epc660-evaluatiekit elimineert deze taken door een volledige 3D ToF-applicatie-ontwikkelingsomgeving te bieden die een vooraf gebouwd 3D ToF-beeldvormingssysteem en bijbehorende software bevat (Afbeelding 4).

Diagram van de evaluatiekit van ESPROS Photonics' epc660 (klik om te vergroten)Afbeelding 4: De evaluatiekit van ESPROS Photonics' epc660 biedt een kant-en-klaar 3D ToF-camerasysteem en bijbehorende software voor het gebruik van diepte-informatie in toepassingen. (Bron afbeelding: ESPROS Photonics)

De ESPROS-kit is ontworpen voor evaluatie en rapid prototyping en biedt een voorgemonteerd camerasysteem dat de epc660 CC-chipdrager, optische lensassemblage en een set van acht LED's combineert. Samen met het camerasysteem dient een BeagleBone Black-processorboard met 512 megabyte (Mbytes) RAM en 4 gigabyte (Gbytes) flitser als hostcontroller en applicatieverwerkingsbron.

ESPROS biedt ook epc660-evalkit-ondersteuningssoftware die kan worden gedownload van de website en geopend met een wachtwoord dat kan worden aangevraagd bij het lokale verkoopkantoor van het bedrijf. Na het verkrijgen van toegang tot de software, draaien de ontwikkelaars eenvoudigweg een grafische gebruikersinterface (GUI) applicatie met een van de verschillende meegeleverde configuratiebestanden om het camerasysteem te kunnen gebruiken. De GUI-toepassing biedt ook regel- en weergavevensters voor het instellen van aanvullende parameters, waaronder ruimtelijke en temporele filterinstellingen, en ten slotte voor het bekijken van de resultaten. Met minimale inspanning kunnen ontwikkelaars met de kit beginnen met het vastleggen van dieptekaarten in real time en deze gebruiken als input voor hun eigen applicatiesoftware.

3D-optische ToF-systemen

Een 320 x 240 imager zoals de ESPROS epc660 kan vele toepassingen dienen, maar heeft mogelijk niet de resolutie die nodig is om kleine bewegingen in gebaarinterfaces te detecteren of om kleine objecten te onderscheiden zonder het bereik van de interesse sterk te beperken. Voor deze toepassingen stelt de beschikbaarheid van kant-en-klare ontwikkelingskits op basis van 640 x 480 ToF-sensoren de ontwikkelaars in staat om snel een prototype te maken van toepassingen met een hoge resolutie.

De DepthEye Turbo-dieptecamera van Seeed Technology integreert een 640 x 480 ToF-sensor, vier 850 nanometer VCSEL-dioden (VCSEL), verlichting en detectie van het bedieningscircuit, vermogen en USB-interfaceondersteuning in een zelfstandige kubus van 57 x 57 x 51 mm. Software-ondersteuning wordt geboden via een open-source libPointCloud SDK github repository met ondersteuning voor Linux, Windows, Mac OS en Android-platforms.

Samen met C++ stuurprogramma's, bibliotheken en voorbeeldcode bevat de libPointCloud SDK-distributie een Python-API voor rapid prototyping en een visualisatiehulpmiddel. Na de installatie van het distributiepakket op hun host-ontwikkelingsplatform kunnen de ontwikkelaars de camera via USB op hun computer aansluiten en onmiddellijk beginnen met het gebruik van de visualisatietool om fase, amplitude of point cloud maps weer te geven, die in wezen verbeterde dieptekaarten zijn die met textuuroppervlakken worden weergegeven om een gladder 3D-beeld te verkrijgen (Afbeelding 5).

Afbeelding van de Seeed Technology DepthEye Turbo-dieptecamerasoftwareAfbeelding 5: Gebruikt in combinatie met de Seeed Technology DepthEye Turbo-dieptecamera, stelt het bijbehorende softwarepakket ontwikkelaars in staat om eenvoudig 3D ToF-data te visualiseren in een verscheidenheid aan renderings, inclusief point clouds zoals hier getoond in het hoofdvenster. (Bron afbeelding: Seeed Technology/PointCloud.AI)

De AD-96TOF1-EBZ 3D ToF-evaluatiekit van Analog Devices biedt een meer open hardwareontwerp, gebouwd met een paar borden en ontworpen om Raspberry Pi 3 Model B+ of Raspberry Pi 4 te gebruiken als de hostcontroller en de lokale verwerkingsbron (Afbeelding 6).

Afbeelding van de AD-96TOF1-EBZ 3D ToF-evaluatiekit van Analog DevicesAfbeelding 6: De AD-96TOF1-EBZ 3D ToF-evaluatiekit van Analog Devices combineert een tweebordige assemblage voor verlichting en data-acquisitie met een Raspberry Pi-bord voor lokale verwerking. (Bron afbeelding: Analog Devices)

De analoge front-end (AFE)-printplaat van de kit bevat de optische assemblage, CCD-array en buffers, firmware-opslag en een processor die de algehele werking van de camera beheert, inclusief de verlichtingstiming, sensorsynchronisatie en het genereren van dieptekaarten. De tweede printplaat bevat vier 850 nm VCSEL-laserdiodes en -drivers en is ontworpen om aan te sluiten op de AFE-printplaat zodat de laserdiodes de optische assemblage omringen zoals aangegeven in de bovenstaande afbeelding.

Analoge apparaten ondersteunen de AD-96TOF1-EBZ-kit met de open-source 3D ToF-softwaresuite met de 3D ToF SDK, samen met voorbeeldcode en wikkels voor C/C++, Python en Matlab. Om zowel hosttoepassingen als low-level hardware-interacties in een netwerkomgeving te ondersteunen, splitst Analog Devices de SDK op in een hostpartitie die is geoptimaliseerd voor USB- en netwerkverbindingen, en een low-level partitie die draait op Embedded Linux en is gebouwd op een Video4Linux2 (V4L2)-stuurprogramma (Afbeelding 7).

Diagram van Analoge Apparaten 3D ToF SDK APIAfbeelding 7: De Analog Devices 3D ToF SDK API ondersteunt toepassingen die op de lokale Embedded Linux-host draaien en toepassingen die op afstand op netwerkhosts draaien. (Bron afbeelding: Analog Devices)

Deze SDK met netwerkfunctionaliteit maakt het mogelijk dat applicaties die draaien op netwerkaansluitingen op afstand werken met een ToF-hardwaresysteem om toegang te krijgen tot de camera en dieptegegevens vast te leggen. Gebruikersprogramma's kunnen ook draaien in de Embedded Linux-partitie en ten volle profiteren van de geavanceerde opties die op dat niveau beschikbaar zijn.

Als onderdeel van de softwaredistributie biedt Analog Devices voorbeeldcode die belangrijke operationele functies op laag niveau demonstreert, zoals camera-initialisatie, basisframe-opname, externe toegang en platformonafhankelijke opname op een hostcomputer en lokaal met Embedded Linux. Extra voorbeeldtoepassingen bouwen voort op deze basisbewerkingen om het gebruik van vastgelegde gegevens in toepassingen op een hoger niveau, zoals het genereren van point cloud, te illustreren. In feite toont een voorbeeldtoepassing aan hoe een diep neuraal netwerk (DNN)-inferentiemodel kan worden gebruikt om de door het camerasysteem gegenereerde gegevens te classificeren. Geschreven in Python, toont deze DNN-monsterapplicatie (dnn.py) elke stap van het proces dat nodig is om gegevens te verkrijgen en de classificatie ervan voor te bereiden aan de hand van het inferentiemodel (Lijst 1).

Copy
import aditofpython as tof
import numpy as np
import cv2 as cv
. . .
    try:
        net = cv.dnn.readNetFromCaffe(args.prototxt, args.weights)
    except:
        print("Error: Please give the correct location of the prototxt and caffemodel")
        sys.exit(1)
    swapRB = False
    classNames = {0: 'background',
                  1: 'aeroplane', 2: 'bicycle', 3: 'bird', 4: 'boat',
                  5: 'bottle', 6: 'bus', 7: 'car', 8: 'cat', 9: 'chair',
                  10: 'cow', 11: 'diningtable', 12: 'dog', 13: 'horse',
                  14: 'motorbike', 15: 'person', 16: 'pottedplant',
                  17: 'sheep', 18: 'sofa', 19: 'train', 20: 'tvmonitor'}
 
    system = tof.System()
    status = system.initialize()
    if not status:
        print("system.initialize() failed with status: ", status)
 
    cameras = []
    status = system.getCameraList(cameras)
. . .
    while True:
        # Capture frame-by-frame
        status = cameras[0].requestFrame(frame)
        if not status:
            print("cameras[0].requestFrame() failed with status: ", status)
 
        depth_map = np.array(frame.getData(tof.FrameDataType.Depth), dtype="uint16", copy=False)
        ir_map = np.array(frame.getData(tof.FrameDataType.IR), dtype="uint16", copy=False)
 
        # Creation of the IR image
        ir_map = ir_map[0: int(ir_map.shape[0] / 2), :]
        ir_map = np.float32(ir_map)
        distance_scale_ir = 255.0 / camera_range
        ir_map = distance_scale_ir * ir_map
        ir_map = np.uint8(ir_map)
        ir_map = cv.cvtColor(ir_map, cv.COLOR_GRAY2RGB)
 
        # Creation of the Depth image
        new_shape = (int(depth_map.shape[0] / 2), depth_map.shape[1])
        depth_map = np.resize(depth_map, new_shape)
        distance_map = depth_map
        depth_map = np.float32(depth_map)
        distance_scale = 255.0 / camera_range
        depth_map = distance_scale * depth_map
        depth_map = np.uint8(depth_map)
        depth_map = cv.applyColorMap(depth_map, cv.COLORMAP_RAINBOW)
 
        # Combine depth and IR for more accurate results
        result = cv.addWeighted(ir_map, 0.4, depth_map, 0.6, 0)
 
        # Start the computations for object detection using DNN
        blob = cv.dnn.blobFromImage(result, inScaleFactor, (inWidth, inHeight), (meanVal, meanVal, meanVal), swapRB)
        net.setInput(blob)
        detections = net.forward()
. . .
        for i in range(detections.shape[2]):
            confidence = detections[0, 0, i, 2]
            if confidence > thr:
                class_id = int(detections[0, 0, i, 1])
. . .
                if class_id in classNames:
                    value_x = int(center[0])
                    value_y = int(center[1])
                    label = classNames[class_id] + ": " + \
                            "{0:.3f}".format(distance_map[value_x, value_y] / 1000.0 * 0.3) + " " + "meters"
. . .
        # Show image with object detection
        cv.namedWindow(WINDOW_NAME, cv.WINDOW_AUTOSIZE)
        cv.imshow(WINDOW_NAME, result)
 
        # Show Depth map
        cv.namedWindow(WINDOW_NAME_DEPTH, cv.WINDOW_AUTOSIZE)
        cv.imshow(WINDOW_NAME_DEPTH, depth_map)

Lijst 1: Dit fragment uit een voorbeeldtoepassing in de Analog Devices 3D ToF SDK-distributie toont de paar stappen aan die nodig zijn om diepte- en IR-beelden te verkrijgen en deze te classificeren met een inferentiemodel. (Bron code: Analog Devices)

Hier begint het proces met het gebruik van OpenCV's DNN-methoden (cv.dnn.readNetFromCaffe) om het netwerk en de bijbehorende gewichten voor een bestaand inferentiemodel te lezen. In dit geval is het model een Caffe-implementatie van het Google MobileNet Single Shot Detector (SSD)-detectienetwerk dat bekend staat om het bereiken van een hoge nauwkeurigheid met relatief kleine modelgroottes. Na het laden van de klassennamen met de ondersteunde klasse-identificaties en klassenlabels, identificeert de voorbeeldtoepassing de beschikbare camera's en voert ze een reeks initialisatieroutines uit (niet weergegeven in Lijst 1).

Het grootste deel van de voorbeeldcode gaat over het voorbereiden van de dieptekaart (depth_map) en de IR-kaart (ir_map) voordat ze worden gecombineerd (cv.addWeighted) in een enkele array om de nauwkeurigheid te verbeteren. Tot slot roept de code een andere OpenCV DNN-methode op (cv.dnn.blobFromImage) die het gecombineerde beeld omzet in het vierdimensionale blob-datatatype dat nodig is voor de gevolgtrekking. De volgende regel code stelt de resulterende blob in als invoer in het inferentiemodel (net.setInput(blob)). De call to net.forward() doet een beroep op het inferentiemodel dat de classificatieresultaten weergeeft. De rest van de voorbeeldtoepassing identificeert classificatieresultaten die een vooraf ingestelde drempelwaarde overschrijden en genereert voor die resultaten een label en een begrenzingsvak met de vastgelegde beeldgegevens, het label dat wordt geïdentificeerd door het inferentiemodel, en de afstand tot de camera (Afbeelding 8).

Afbeelding van DNN-monsterapplicatie in de 3D ToF SDK-distributie van Analog DevicesAfbeelding 8: Met behulp van enkele regels Python-code en de OpenCV-bibliotheek legt de DNN-monsterapplicatie in de 3D ToF SDK-distributie van Analog Devices dieptebeelden vast, classificeert ze en geeft ze het label en de afstand van het geïdentificeerde object weer. (Bron afbeelding: Analog Devices)

Zoals de DNN-voorbeeldtoepassing van Analog Devices laat zien, kunnen ontwikkelaars 3D ToF-dieptekaarten gebruiken in combinatie met machinale leermethoden om meer geavanceerde toepassingsfuncties te creëren. Hoewel toepassingen die een lage latentie vereisen deze functies waarschijnlijker zullen bouwen met C/C++, blijven de basisstappen hetzelfde.

Met behulp van 3D ToF data en high performance inferentiemodellen kunnen industriële robotsystemen hun bewegingen veiliger synchroniseren met andere apparatuur of zelfs met mensen in "cobot"-omgevingen waar mensen en robots in nauwe samenwerking werken. Met verschillende inferentiemodellen kan een andere toepassing een hoge-resolutie 3D ToF-camera gebruiken om fijne bewegingen voor een gebaarinterface te classificeren. In automobieltoepassingen kan deze zelfde aanpak de nauwkeurigheid van geavanceerde bestuurdersassistentiesystemen (ADAS) helpen verbeteren, waarbij ten volle wordt geprofiteerd van de hoge temporele en ruimtelijke resolutie die beschikbaar is met 3D ToF-systemen.

Conclusie

ToF-technologieën spelen een sleutelrol in bijna elk systeem dat kritisch afhangt van een nauwkeurige meting van de afstand tussen het systeem en andere objecten. Onder de ToF-technologieën kan optische 3D ToF zowel een hoge ruimtelijke resolutie als een hoge temporele resolutie bieden, waardoor een fijner onderscheid kan worden gemaakt tussen kleinere objecten en hun relatieve afstand nauwkeuriger kan worden bewaakt.

Om te kunnen profiteren van deze technologie hebben de ontwikkelaars echter meerdere uitdagingen moeten aangaan in verband met het optische ontwerp, de precisietiming en de gesynchroniseerde signaalacquisitie van deze systemen. Zoals blijkt uit de beschikbaarheid van vooraf gebouwde 3D ToF-systemen, zoals het AD-96TOF1-EBZ-ontwikkelingsplatform van Analog Devices en de EPC660-evaluatiekit van ESPROS Photonics, worden deze belemmeringen voor de toepassing van deze technologie in industriële systemen, gebaarinterfaces, veiligheidssystemen voor auto's en nog veel meer weggenomen.

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of Digi-Key Electronics or official policies of Digi-Key Electronics.

Achtergrondinformatie over deze auteur

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van Digi-Key