From a7300dcb54c53b452dd0c6f168fe27265cd5c578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Garc=C3=ADa=20Garc=C3=ADa?= Date: Fri, 25 Aug 2023 17:24:33 +0200 Subject: [PATCH] rework of densepose alphalab content --- src/alpha-lab/dense-pose.md | 151 +++++++----------------- src/media/alpha-lab/densepose-colab.png | Bin 0 -> 154018 bytes 2 files changed, 41 insertions(+), 110 deletions(-) create mode 100644 src/media/alpha-lab/densepose-colab.png diff --git a/src/alpha-lab/dense-pose.md b/src/alpha-lab/dense-pose.md index bb4b87867..a0c070c3c 100644 --- a/src/alpha-lab/dense-pose.md +++ b/src/alpha-lab/dense-pose.md @@ -1,6 +1,20 @@ --- +title: "Map gaze onto body parts using DensePose" description: "Using densepose to map gaze onto body parts. To be or not to be? proclaims Prince Hamlet while holding a skull in his hand. But, where is the audience looking? At the hand, at the arm, or the face?" permalink: /alpha-lab/dense-pose/ +meta: + - name: twitter:card + content: player + - name: twitter:image + content: "https://i.ytimg.com/vi/nt_zNSBMJWI/maxresdefault.jpg" + - name: twitter:player + content: "https://www.youtube.com/embed/nt_zNSBMJWI" + - name: twitter:width + content: "1280" + - name: twitter:height + content: "720" + - property: og:image + content: "https://i.ytimg.com/vi/nt_zNSBMJWI/maxresdefault.jpg" tags: [Pupil Invisible, Neon, Cloud] --- # Map gaze onto body parts using DensePose @@ -8,138 +22,55 @@ tags: [Pupil Invisible, Neon, Cloud] -**Act 3, Scene 1:** *"To be or not to be?"* proclaims Prince Hamlet while holding a skull in his hand. But, where is the audience looking? At the hand, at the arm, or the face?
- -## Introduction - -Have you ever wondered which body parts we gaze upon while conversing with others? Where a professional basketball player looks just before passing? Does hand movement play a role when delivering a speech? - -Here we introduce a powerful and time-saving automation that can help answer these questions. It works by identifying body parts of people in the scene video and recording whether they were gazed at! +**Act 3, Scene 1:** *"To be or not to be?"* But where is the audience looking? At the hand, the face or the arm?
::: tip -This sounds really complicated...
-Don't worry! We've made this powerful tool easy-to-use, so you can get started right away – no coding required! By the end, you'll have a video like the one above, and a CSV file documenting which body parts were gazed. +Have you ever wondered which body parts we gaze upon while conversing with others? Where a professional basketball player looks just before passing? Does hand movement play a role when delivering a speech? This guide will show you how to get data that can be used to answer these questions! ::: -## Powered by DensePose -
- This tool employs DensePose (detectron2, Meta AI). Click here to learn more
- - DensePose is a method for dense human pose estimation and dense human body part segmentation. It's based on the Mask R-CNN architecture and is trained on the COCO dataset. DensePose is now a part of Detectron2's framework. You can read all the details in their paper DensePose: Dense Human Pose Estimation In The Wild. -
-
+## Understanding visual behaviour on body parts -## What you'll need +Understanding which body parts people look at during interactions, whether visual or otherwise, is an important topic in fields ranging from sports science to psycholinguistics. This guide shows you how to use Neon or Pupil Invisible eye tracking with Meta's DensePose to characterise gaze behaviour on body parts that appear in the scene video, as shown above. -1. A **[Raw data export](/export-formats/recording-data/neon/)** from your project in Pupil Cloud. The downloaded folder contains one subfolder for every recording in the project. Each subfolder contains a scene video, gaze.csv, and other files. We will work with those subfolders, so have them at hand -2. A **Google account (optional)**. We set up a Google Colab notebook so you can execute all of this [from your browser](#Running-in-your-browser). This way, Google will lend you some extra computing power and required dependencies. [FAQ about Google Colab](https://research.google.com/colaboratory/intl/en-GB/faq.html), including what it is, how it's free, and some limitations. (If you do fancy running things locally, check out [this section](#running-locally).) +## What tools enable this? +Pupil Cloud currently offers a [Face Mapper enrichment](../enrichments/face-mapper.md), which tracks faces in scene video and determines whether they were gazed at. However, tracking the rest of the body is currently not possible. This is where our guide comes in. By following our instructions, you will be able to automatically detect and track body parts of people in your eye tracking recordings. Subsequently, you can map gaze onto them, enabling a deeper understanding of how the eye tracker wearer visually interacted with them. -## Running in your browser +Until recently, existing methods for tracking body parts in eye tracking scene video were not very robust or accurate. However, Meta has released DensePose, a new tool that promises to solve many of these problems. As a result, we have decided to incorporate DensePose into our guide. For more information about DensePose, please refer to the paper, [DensePose: Dense Human Pose Estimation In The Wild](https://arxiv.org/abs/1802.00434). -Firstly, from the raw data export, upload **(uncompressed)** one of the subfolders(recording folder) that you're interested in to Google Drive. +## Steps -Now for the Google Colab part: [click here to access the notebook](https://colab.research.google.com/drive/1s6mBNAhcnxhJlqxeaQ2IZMk_Ca381p25#forceEdit=true&sandboxMode=true), and carefully follow the instructions there. +1. Download a [Raw data export]() from your project in Pupil Cloud. +2. Upload (uncompressed) one of the subfolders (recording folder) that you're interested in to Google Drive from the raw data export. +3. Access our [Google Colab Notebook](https://colab.research.google.com/drive/1s6mBNAhcnxhJlqxeaQ2IZMk_Ca381p25?usp=sharing) and carefully follow the instructions. -::: tip -The notebook contains lots of rows and this can seem overwhelming. It needn't be. It's actually really simple. Just click on each of the play buttons... -::: - -## Outputs - -After the code is executed, new files will be generated. Check the new DensePoseColab folder. Let's see what's in those files! - -#### Video - -You've already seen the accompanying video above. There's no mystery – you have a bounding box delimiting each person detected, a blue shaded mask over the body parts, a yellow highlighted body part when it's gazed at, and the typical red circle for the gaze position. +
+ +
-#### Gaze map image +## Contribution -You'll also find an image reporting the body segments and the amount of frames in which they were gazed, like below. +After executing the code, new files will be generated. Check the new DensePoseColab folder for the results: +1. A video showing a bounding box that delimits each detected person, a blue shaded mask over the body parts, a yellow highlighted body part when it's gazed at, and the typical red circle for the gaze position. +2. An image showing the body segments and the number of frames in which they were gazed, as shown below: +
+ +3. Two files are also stored: 1) a simple `[parts_count.csv](https://www.notion.so/69d881ce18cd42c2b4d95d13e98432ec?pvs=21)` showing the number of times each body part is gazed, and 2) a `[densepose.csv](https://www.notion.so/69d881ce18cd42c2b4d95d13e98432ec?pvs=21)` following a structure similar to the gaze.csv, but also with a new column indicating gazed body parts. -#### CSV files - -Two files are stored as well, 1) a simple `parts_count.csv` showing the number of times each body part is gazed, and 2) a `densepose.csv` following a structure similar to the gaze.csv, but also with a new column indicating gazed body parts. - -## Running locally - -
Learn about running this tool locally
- -Feeling brave? This is how to run locally on your computer. - -Note: this option is only for Linux and Mac users as detectron2 doesn't supports Windows 😕
- -If you don't have a GPU on your computer, we strongly recommend avoiding running locally. - -### Requirements - -- Hardware: Linux or MacOS + we recommend that you have a Cuda GPU -- Python 3.7 or higher -- Dependencies - -You only need to install two packages as we have put almost all the dependencies within a single package. Just run the following command: - -``` -python -m pip install torch 'git+https://github.com/pupil-labs/densepose-module.git' -``` - -Then, run the following command in your command prompt to get the DensePose output: - -``` -pl-densepose --no-vis --device "cuda" -``` - -You can also check out the arguments below. - -
- - -## Optional Arguments - -
Learn about additional command line arguments
- -We can't build a shoe that fits everyone, so we also allow you to pass arguments to the code:

- -**- Device** -The device on which to run the DensePose model. You can choose between `cpu` and `cuda`. The default is `--device "cpu"`. But this can be a bit slow, so we recommend using `cuda` if you have a GPU with CUDA support. - -::: warning -Even running on `cuda` can be slow, just be aware we estimate inference time to be around 2.5 FPS on a Nvidia RTX 3060. -::: - -**- Visualize** -Use the flag `--vis` to enable live visualization of the output. By default, the visualisation is turned off to save resources, but even with this off, you'll still get the final video output. - -**- Input and output paths** -Specify the input and output paths using `--input_path` and `--output_path`. If none are given, a UI will open to select the input and output paths. The input path shall be the subdirectory of the raw download, containing the video, world, and gaze data. The output path shall be the directory where the output files shall be saved. - -**- Confidence threshold** -The default confidence is 0.7. You can change this value to tune the confidence threshold by using `--confidence` followed by a number between 0 and 1. - -**- Start and end** -If you want to run it only on one specific section of your recording, you can pass the start and end event annotations to be used, like this: `--start "recording.begin" --end "recording.end"`. - -
- +## Runing locally -## Behind the scenes +You can also run everything on your local machine. However, this option is only available for Linux and MacOS users, as detectron2 does not support Windows 😕. If you do not have a GPU on your computer, we strongly recommend using our Google Colab notebook. Detailed instructions on running locally can be found in the [Github repository](). -
-Model details & FAQ
- -- Model weights:
-densepose_rcnn_R_50_FPN_DL_s1x

-- Why is there no gaze recorded on the back of the head, hands or feet?
-There is no definition for those parts in DensePose. Likewise the frontal view of the arms in the picture refers to the inside of the arms, not the front.
-
-
\ No newline at end of file +::: tip +Need assistance in implementing your gaze-contingent task? Reach out to us via email at [info@pupil-labs.com](mailto:info@pupil-labs.com) or on our [Discord server](https://pupil-labs.com/chat/) or visit our [Support Page](https://pupil-labs.com/products/support/) for dedicated support options. +::: \ No newline at end of file diff --git a/src/media/alpha-lab/densepose-colab.png b/src/media/alpha-lab/densepose-colab.png new file mode 100644 index 0000000000000000000000000000000000000000..1cebc150c105bada57e7df75392146bb3950a946 GIT binary patch literal 154018 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

mm23W$^e|>X}i+R?=HOJ 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