April 21st, 2023
Wanneer we een object vastpakken, maken meerdere delen van de vingers en hand meestal contact met het oppervlak van het object. Het reconstrueren van dergelijke contactgebieden is een uitdaging. Hier presenteren we een methode voor het ongeveer schatten van de contactgebieden door marker-gebaseerde motion capture te combineren met bestaande deep learning-gebaseerde handmesh-reconstructie.
Eerder gedragsonderzoek naar menselijk grijpen is beperkt gebleven tot zeer beperkte metingen in strak gecontroleerde scenario's. Ons protocol maakt een veel rijkere karakterisering van complex naturalistisch grijpgedrag mogelijk. Deze techniek maakt gebruik van gedetailleerde kaarten van contactoppervlakken van handobjecten als gevolg van meercijferige grepen.
Dit stelt ons in staat om te onderzoeken hoe mensen objecten met een ongekend niveau van verfijning grijpen. Nauwkeurige metingen van menselijke grijpvermogens zijn nodig om motorische controle, haptische waarneming en interactie tussen mens en computer te begrijpen. Deze gegevens kunnen het ontwerp van robotgrijpers en prothesen voor de bovenste ledematen informeren.
Kira Dehn, een afgestudeerde studente die haar masterscriptie in mijn laboratorium afrondt, zal de procedure demonstreren. Plaats om te beginnen een werkbank met een trackingvolume dat vanuit meerdere hoeken wordt afgebeeld door bewegingscamera's die op een frame rond de werkruimte zijn geplaatst. Bereid reflecterende markers voor door dubbelzijdig plakband aan de basis van elke marker te bevestigen.
Voer Qualisys Track Manager, of QTM, uit als beheerder. Plaats het L-vormige kalibratieobject binnen het trackingvolume. Klik in de QTM op Kalibreren in het menu Vastleggen en wacht tot er een kalibratievenster wordt geopend.
Selecteer de duur van de kalibratie en druk op OK. Zwaai met de kalibratiestaaf over het trackingvolume voor de duur van de kalibratie. Druk op de knop Exporteren en geef een bestandspad op om de kalibratie als tekstbestand te exporteren.
Accepteer de kalibratie door op OK te drukken. Als u een stimulusobject wilt maken, construeert u een virtueel 3D-objectmodel in de vorm van een veelhoeknet. Gebruik een 3D-printer om een fysieke replica van het objectmodel te maken.
Om een stimulusobject voor te bereiden, bevestigt u vier niet-vlakke reflecterende markeringen aan het oppervlak van het echte object. Plaats het object binnen het traceervolume. Voer in de projectrepository het aangegeven Python-script uit.
Volg de instructies in het script om de 3D-positie van de objectmarkeertekens in één seconde vast te leggen. Selecteer alle markeringen van het stijve lichaam. Klik met de rechtermuisknop en selecteer Rigid Body definiëren of 6DOF en vervolgens Current Frame.
Voer de naam van het stijve lichaam in en druk op OK. Selecteer in het menu Bestand de optie Exporteren naar TSV. Vink in het nieuwe venster de vakjes 3D, 6D en Skelet aan in de instellingen voor gegevenstype.
Vink alle vakjes aan in de algemene instellingen. Druk op OK en vervolgens op Opslaan. Open Blender en navigeer naar de werkruimte Scripting.
Open het aangegeven bestand en druk op Uitvoeren. Navigeer naar de werkruimte Indeling en druk op N om de navigatiekolom in te schakelen. Ga in de navigatiekolom naar het tabblad Aangepast.
Selecteer het obj-bestand dat u wilt co-registreren en druk op de knop Object laden. Selecteer het trajectbestand dat eerder is geëxporteerd en geef de namen op van de markeringen die zijn gekoppeld aan de starre objecten, gescheiden door puntkomma's. Geef in de markeringskop de regel op in het trajectbestand met de kolomnamen van de gegevens.
Selecteer vervolgens het bijbehorende stijve lichaambestand met het 6D-achtervoegsel en geef de naam op van het stijve lichaam dat in de eerdere stap is gedefinieerd. Geef in de 6D-koptekst de regel op in het rigide hoofdtekstbestand met de kolomnamen van de gegevens. Druk op Belastingsmarkeringen en vertaal en roteer het markeerobject of het object om ze uit te lijnen.
Geef een mesh-uitvoerbestand op en druk op Co-registratie uitvoeren om een obj-bestand uit te voeren dat het co-geregistreerde stimulusnet bevat. Bevestig 24 bolvormige reflecterende markeringen op verschillende oriëntatiepunten van de hand van een deelnemer met behulp van dubbelzijdige tape. Plaats de markers centraal op de vingertoppen in de distale interfalangeale gewrichten, proximale interfalangeale gewrichten en metacarpofalangeale gewrichten van de wijsvinger, middelvinger, ringvinger en kleine vinger.
Plaats voor de duim één marker elk op de vingertop en het basale carpale middenhandsgewricht en een paar markers elk op de metacarpofalangeale en interfalangeale gewrichten. Plaats ten slotte markeringen in het midden van de pols en op het scaphotrapeziotrapeziumgewricht. Vraag de deelnemer om zijn hand plat op de werkbank te leggen met de handpalm naar beneden gericht en zijn ogen te sluiten.
Plaats het stimulusobject op de werkbank voor de deelnemer. Terwijl de QTM wordt uitgevoerd, voert u het aangegeven Python-script uit in de projectrepository. Vraag de deelnemer om zijn ogen te openen en de instructies van het script te volgen om een enkele proef vast te leggen waarbij de deelnemer het stimulusobject vastpakt.
Binnen de QTM sleept u de afzonderlijke markeringstrajecten van de niet-geïdentificeerde trajecten naar gelabelde trajecten en labelt u ze volgens de naamgevingsconventie. Selecteer alle markeringen die aan de hand zijn gekoppeld, klik met de rechtermuisknop en selecteer AIM-model genereren uit de selectie. Selecteer in het nieuwe venster Een nieuw model maken op basis van markeringsverbindingen van het bestaande AIM-model en druk op de knop Volgende.
Selecteer de modeldefinitie van RH_FH en druk op Openen. Druk op Volgende, voer een naam in voor het AIM-model en druk op OK. Druk ten slotte op Voltooien om een AIM-model te maken voor de hand van de deelnemer om automatisch markers te identificeren in opeenvolgende onderzoeken van dezelfde deelnemer.
Open in de QTM de projectinstellingen door op het tandwielpictogram te drukken. Navigeer in de navigatiekolom naar Skeletoplosser en druk op Laden om een skeletdefinitiebestand te selecteren. Stel de schaalfactor in op 100% en druk op Toepassen.
Navigeer naar TSV-export en vink de vakjes 3D, 6D en Skeleton aan in de instellingen voor gegevenstypen. Vink alle vakjes aan in de algemene instellingen. Druk op Toepassen en sluit de projectinstellingen.
Druk op het pictogram Opnieuw verwerken, schakel vervolgens de selectievakjes Skeletten oplossen en Exporteren naar TSV-bestand in en druk op OK. Open een opdrachtvenster in de projectrepository en activeer de conda-omgeving door de aangegeven opdracht uit te voeren. Voer vervolgens de aangegeven opdracht uit en volg de instructies van het script om voor elk frame van de proef een handgaas te genereren dat de huidige handhouding reconstrueert.
Voor schattingen van het handobjectcontactgebied voert u de aangegeven opdracht uit en volgt u de instructies van het script om schattingen van het hand- en objectcontactgebied te genereren door het snijpunt tussen de hand en objectnetten te berekenen. In deze studie werd de dynamiek van de greep vastgelegd met behulp van 24 bolvormige reflecterende markers die aan verschillende oriëntatiepunten van de hand waren bevestigd. Aanpassingen aan de voorgetrainde deep hand-mesh decoder worden hier getoond.
Ten eerste, omdat het netwerk niet is getraind op specifieke deelnemers, wordt de generieke ID-afhankelijke mesh-correctie gebruikt die bij het vooraf getrainde model wordt geleverd. Verder wordt de ID-afhankelijke skeletcorrectie afgeleid met behulp van de QTM Skeleton Solver. Proportionele schilfering van de hand met de skeletlengte wordt verondersteld en de maaswijdte wordt uniform geschaald door een factor die is afgeleid van de relatieve schilfering van het skelet.
De uiteindelijke 3D-handgaasreconstructie van de huidige handpose in hetzelfde coördinaatkader als het 3D-gevolgde objectgaas wordt weergegeven. Een video van een hand met bijgehouden punten en co-geregistreerd gaas die allemaal naast elkaar bewegen tijdens een enkele greep naar een 3D-geprint kattenbeeldje wordt getoond. Een enkel frame op het moment van hand-tot-object contact van een greep naar een 3D-geprinte croissant, samen met de mesh-reconstructies van het handobject en de geschatte contactgebieden op het oppervlak van de croissant.
Het object en de markeringen die eraan zijn bevestigd, moeten correct worden gecoregistreerd. Het is belangrijk om ze grondig op elkaar af te stemmen, omdat afwijkingen een grote impact kunnen hebben op schattingen van contactregio's. Naast contactoppervlakken biedt de procedure gezamenlijke Euler-hoeken voor elk vingergewricht.
Deze kunnen worden gebruikt om te bestuderen hoe handhoudingen tijdens meercijferige grepen zich in de loop van de tijd ontvouwen.
Deze studie presenteert een nieuwe methode voor het schatten van contactgebieden tijdens menselijk grijpen door marker-gebaseerde bewegingsregistratie te integreren met deep learning technieken. De aanpak maakt een gedetailleerde analyse mogelijk van hoe meerdere gebieden van de hand interageren met objecten, wat ons begrip van motorische controle en haptische perceptie verbetert.