pupil-labs/pupil: Pupil Capture, Player, and Service release
Authors/Creators
- Moritz Kassner1
- Pablo Prietz2
- Patrick Fürst3
- Will1
- Marc Tonsen
- Roman Roibu2
- Ching
- Michael Barz
- Windson yang4
- Emre D.2
- Rafael Picanço5
- ckbaumann
- Sarah Leu
- Andrew Xia6
- Patrick Faion2
- Nathakit Sae-Tan2
- fneitzel7
- Polynomdivision
- Chadwick Boulay8
- pointcontrols
- majoge
- helei0147
- Toshi Kurauchi9
- Tobias Fischer10
- Patrick Burke11
- Manuel Spitschan12
- Ignacio Freiberg13
- Evan
- Christopher Gundler
- Aeefire
- 1. Pupil Labs
- 2. @pupil-labs
- 3. @crate
- 4. unicooo
- 5. Imagine Tecnologia Comportamental
- 6. @limebike
- 7. eye square GmbH
- 8. The Ottawa Hospital Research Institute
- 9. @Insper
- 10. Imperial College London
- 11. OFFIS, Institut für Informatik
- 12. University of Oxford
- 13. Toptal
Description
We are pleased to announce the release of Pupil v1.15!
Download the latest bundle and let us know what you think via the #pupil channel on Discord :smile:
Features Apriltags support for Surface TrackingStarting with v1.15, the Surface Tracker will detect apriltags instead of "square markers".
We highly recommend to replace "square markers" with apriltags in your setup since their improved detection performance translates to gaze being mapped to surfaces with higher accuracy and surfaces being detected more reliably, especially during movements.
You can still use the "square markers" by setting the Marker Detector Mode to Legacy square markers. This is especially useful, if you want to process recordings that were made previous to this release.
We started to maintain our own fork of @duckietown's apriltags Python bindings for @AprilRobotics' AprilTag 3 library. Forking the projects was mostly necessary in order to support them on Windows.
This change allows us to finally enable the Head Pose Tracker feature (initially released in v1.12) on Windows!
You now have the option to freeze the current eye model. Doing so will prevent any changes to the current eye model and discard any alternative models that might have built up in the background.
Warning: Freezing the eye model will disable its ability to compensate for any kind of slippage.
Bugfixes- Drop invalid frame after disconnect - #1573
- Revert change that caused eye process to crash when minimizing
Please install apriltags via
pip install git+https://github.com/pupil-labs/apriltags
API changes
Improved fixations_on_surface export
A fixation is based on gaze data that full-fills the maximum-dispersion-minimum-duration-criterion. We use it to infer e.g. fixation's position. When mapping a fixation to a surface, we use the surface's homography to calculate the fixation's position in surface coordinates. The surface's homography is calculated based on the detected surface markers for a given world frame. In most cases, the fixation appears during multiple world frames, i.e. there are multiple surface homographies which could be used to map the fixation to the surface. Until now, we only exported fixations for the first frame during which the fixation appeared. This is not a problem, as long the surface does not move in relation to the world camera during the fixation. Since this is an assumption, that does not always hold true, we will export all fixation mappings starting with v1.15. This means, that if a fixation spans multiple world frames during which a surface was detected, we will export the fixation and its position for each of these world frames.
Therefore, we added two new columns, world_timestamp and world_index, to identify the world frame which was used to map the fixation.
You can un/freeze the 3d eye models via a notification:
{
"subject": "pupil_detector.set_property.3d",
"name": "model_is_frozen",
"value": True, # set to False to unfreeze
# remove this line if you want
# to freeze the model both eyes
"target": "eye0",
}
See this example on how to use the Pupil Detector Network API.
Change pupil detection ROI by notification - #1576You can change the pupil detector's region of interest via a notification:
{
"subject": "pupil_detector.set_property",
"target": "eye0",
"name": "roi",
# value: (minX, maxX, minY, maxY)
"value": [0, 100, 0, 200],
}
HMD-Eyes Streaming - #1501
This new video backend allows to stream a virtual Unity camera to Pupil Capture.
HMD-Eyes Streaming is an experimental feature for the hmd-eyes project and can only be activated via a network notification.
More news on this topic will follow soon over at the hmd-eyes project!
Hey - you're reading the developer notes, so this is for you! We're looking to hire developers to contribute to Pupil source code. If you love Python and enjoy writing code that is a joy to read, get in touch. Experience with the scientific Python stack is a plus, but not required. We have a lot of exciting projects in the pipeline.
We are also looking for Dev Ops engineers that have experience with kubernetes, docker, and server-side Python.
Send an email to jobs@pupil-labs.com with a CV to start a discussion. We look forward to hearing from you.
Files
pupil-labs/pupil-v1.15.zip
Files
(12.6 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:5b732f4d61730500ef70c2d721ae0265
|
12.6 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/pupil-labs/pupil/tree/v1.15 (URL)