software-dev


wrp 18 May, 2018, 10:10:06

New channel for Pupil software development

wrp 18 May, 2018, 10:38:18

@user-b91aa6 you are trying to set up Pupil on Windows from source. Is there any reason why you are building from source? For example, could you develop plugins?

wrp 18 May, 2018, 10:39:27

@user-b91aa6 based on your last image upload it seems that the detector was not yet finished building

wrp 18 May, 2018, 10:39:32

It may take a long time for it to build

wrp 18 May, 2018, 10:39:46

And a long time for the optimization calibration to build

wrp 18 May, 2018, 10:54:11

Just to make sure - are you using Windows 10 and x64 Native Tools Command Prompt for VS 2017 Preview

user-b91aa6 18 May, 2018, 11:05:20

Thank you very much. I need to use Pupil lab in my own codes. So I need to run it from the source.

user-b91aa6 18 May, 2018, 11:05:46

I am using win10 but X64 visual studio 15

wrp 18 May, 2018, 11:06:02

ok

user-b91aa6 18 May, 2018, 11:06:04

I think the visual studio version is not a problem, right?

wrp 18 May, 2018, 11:06:28

The notes for the development machine in docs were using v15

wrp 18 May, 2018, 11:06:38

What level of customization are you seeking?

wrp 18 May, 2018, 11:07:04

I ask because setting up Pupil to run from source on Windows is a very fragile process

wrp 18 May, 2018, 11:07:20

and if you can use plugins or communicate over the network, it would be much easier/less time consuming

user-b91aa6 18 May, 2018, 11:07:36

I want to get the 2D pupil data, gaze data, 3D pupil data , 3D gaze data

wrp 18 May, 2018, 11:07:57

You can do this all over the network

wrp 18 May, 2018, 11:09:31

You can see how to subscribe here: https://github.com/pupil-labs/pupil-helpers/blob/master/python/filter_messages.py

wrp 18 May, 2018, 11:09:44

You can just subscribe to Pupil Capture or Pupil Service

wrp 18 May, 2018, 11:10:05

and get all gaze, pupil, notification, surface, log data and more

user-b91aa6 18 May, 2018, 11:10:23

I read this, for example, I want to get the data in my own C++ codes, what should I do?

wrp 18 May, 2018, 11:11:21

You would subscribe to Pupil using ZMQ with you C++ ode

wrp 18 May, 2018, 11:11:23

code*

wrp 18 May, 2018, 11:11:36

http://zeromq.org/bindings:cpp

wrp 18 May, 2018, 11:11:53

https://github.com/msgpack/msgpack-c

user-b91aa6 18 May, 2018, 11:13:30

So I run pupil_service .exe, how do I subscribe to Pupil using C++?

wrp 18 May, 2018, 11:13:56

I would suggest runing pupil_capture.exe to get started with development

wrp 18 May, 2018, 11:14:16

You subscribe to Pupil using C++ by writing C++ program using zmq and msgpack

wrp 18 May, 2018, 11:14:35

You can use the python code here: https://github.com/pupil-labs/pupil-helpers/blob/master/python/filter_messages.py - as reference

user-b91aa6 18 May, 2018, 11:15:27

Understand. Thank you very much. context = zmq.Context()

open a req port to talk to pupil

addr = '127.0.0.1' # remote ip or localhost req_port = "50020" # same as in the pupil remote gui req = context.socket(zmq.REQ) req.connect("tcp://{}:{}".format(addr, req_port))

ask for the sub port

req.send_string('SUB_PORT') sub_port = req.recv_string()

user-b91aa6 18 May, 2018, 11:15:49

So I also set corresponding addres and req_port in my C++ codes to fetch the data?

wrp 18 May, 2018, 11:16:38

yes, the default port in Pupil Capture and Service is set to 50020

wrp 18 May, 2018, 11:16:56

If you want to change the port you can do so in Pupil Capture's Pupil Remote plugin GUI

wrp 18 May, 2018, 11:17:09

the IP address is localhost

wrp 18 May, 2018, 11:17:34

if you are running Pupil on a different computer than your code, you will need to change the IP address of course

wrp 18 May, 2018, 11:18:07

I am going AFK now. I hope that these notes are helpful for your development

user-b91aa6 18 May, 2018, 11:19:18

Thank you very much. I just began to use pupillab. Thanks for the patient answer.

wrp 18 May, 2018, 11:19:46

You're welcome 😄

user-b91aa6 18 May, 2018, 11:54:08

For msgpack, how should I set the address and port?

Chat image

user-b91aa6 18 May, 2018, 12:31:57

Does zeromq supports windows?

user-b91aa6 18 May, 2018, 12:37:40

The zeromq.org/bindings:cpp is used for receiving data, what's the role of msgpack-c?

user-b91aa6 18 May, 2018, 12:46:51

For zmq, is it supported on windows? Many commands are not recognized

Chat image

wrp 18 May, 2018, 12:55:36

@user-b91aa6 I am not able to help you there - I am not a C++ expert

user-b91aa6 18 May, 2018, 15:52:36

Question about 3D calibration in VR: Why you show 3 circles and show 3 markers

Chat image

user-f1eba3 20 May, 2018, 01:00:25

Chat image

user-f1eba3 20 May, 2018, 01:00:38

Funny typo somebody will sometimes want to connect

user-f1eba3 20 May, 2018, 01:01:28

Chat image

user-f1eba3 20 May, 2018, 01:01:31

Chat image

user-f1eba3 20 May, 2018, 01:01:43

void OnCalibtaionStarted() {

user-f1eba3 20 May, 2018, 01:02:04

@user-b91aa6 I have something already implemented in my c++ unreal plugin

user-b91aa6 20 May, 2018, 06:19:01

Thank you very much. Can you share the codes, I have send you an friend request. It would be very helpful. Thanks [email removed]

user-b116a6 22 May, 2018, 17:07:12

Hello, I have a small issue when subscribing with ZMQ to the IPC Backbone, it seems that it blocks in the following command ipc_sub_port = requester.recv().decode("utf-8") I am not sure if this is related with the following but I update the pyglui package and I had to update then the pyaudio package but first I had to brew install the portaudio dependency. The current version of pyglui which I updated to is 1.22 and the version of pyaudio is 0.2.11. I tried using the ZMQ.NOBLOCK flag and we receive the EAGAIN however my code does not proceed any further than that command. Is there any way to debug this issue? My code used to work before I updated those packages. I tried reverting back to the versions I used to have but still no luck. Any help would be greatly appreciated as next week I have to submit my thesis :/

(EDITED) Found the problem guys, I reverted to the previous versions of the MacOS dependencies and re-downloaded the previous version of the source code and the methods are working again. Tried using the v1.7 Capture application as well as the newer version of the source code and it works too. 😄

user-b91aa6 22 May, 2018, 18:29:50

Question about calibration: What the projected sphere mean? How do you project the sphere from 3D space (unit: mm) to image space(unit: pixels)?

Chat image

user-b91aa6 22 May, 2018, 18:29:59

@papr

user-e5aab7 22 May, 2018, 21:11:54

Has anyone had any luck taking the source code and making it compatible with a Raspberry Pi 3 ?

user-bab6ad 23 May, 2018, 08:18:00

@user-e5aab7 I did not start with it yet, but I might need to try getting it run on a rasp3 or an odroid xu4. I naively hoped it will just work since there is a linux version ^_^"....

mpk 23 May, 2018, 08:31:45

@user-b91aa6 we do this projection based on a pinhole camera model.

user-b91aa6 23 May, 2018, 08:33:46

Thank you very much for your reply. Can you describe more details? Why the pinhole camera model can map the 3D eye sphere to a 2D projected sphere in image space? @mpk

user-b91aa6 23 May, 2018, 08:34:22

Question 2: What the 3 markers mean in the VR demo? Red Green and Blue circle?

Chat image

mpk 23 May, 2018, 08:34:53

let, right and avg gaze position. If they are close you have a good calibration.

mpk 23 May, 2018, 08:35:14

regarding q1: this is trivial if you know the pos and size of the 3d sphere.

user-b91aa6 23 May, 2018, 08:37:27

Why do you project the 3D sphere to 2D image space?

mpk 23 May, 2018, 08:37:45

just for visualisation in the eye window. No other reason.

mpk 23 May, 2018, 08:38:12

we might remove this soon, its not really needed anywhere else and can be computed trivially.

user-b91aa6 23 May, 2018, 09:00:06

Thanks

user-049a7f 23 May, 2018, 19:38:43

@user-bab6ad I am also trying to do on rasp3 but I am having no luck, I am very new to it so I may just be making mistakes. I would be very interested if you get it to work.

user-bab6ad 24 May, 2018, 10:54:21

@user-049a7f I don't know when exactly I will try that. There are some other things in the project which are higher priority now. But when I do I will post it here

user-06a050 24 May, 2018, 14:04:29

Hey! I think I found an error in Pupil when using the most recent version of the boost-python3 homebrew package. I created an issue as well as a PR. Not sure if this is the right way to do it... (#1195 and #1196)

mpk 24 May, 2018, 14:04:49

@user-06a050 this is perfect! Thank you!

user-29e10a 25 May, 2018, 12:03:38

hey guys, I had some time so I implemented the "PuRe" pupil detection algorithm into Pupil Labs on my fork. I raised a PR (mattem86) ... I'm not sure about license, I just was curious how it would be perform and I'm not disappointed. Maybe you could gain something from this. Just select it in your GUI and turn on algorithm view. * Thiago Santini, Wolfgang Fuhl, Enkelejda Kasneci, PuRe: Robust pupil detection * for real-time pervasive eye tracking, Computer Vision and Image Understanding, * 2018, ISSN 1077-3142, https://doi.org/10.1016/j.cviu.2018.02.002.

user-d53fa1 26 May, 2018, 13:37:09

Hello! I'm trying to run main.py from source but failed with ImportError: pupil_src/shared_modules/pupil_detectors/detector_2d.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2cv3Mat20updateContinuityFlagEv. I'm sure I have removed the opencv installed by apt-get.

user-d53fa1 26 May, 2018, 13:37:50

By the way, my opencv is installed from conda. Is this the matter? Thanks

user-d53fa1 26 May, 2018, 15:51:02

I figured it out. I didn't get fully installed pyav and pyndsi.

user-d53fa1 26 May, 2018, 15:56:37

Using ffmpeg4.0, pyndsi have to modify some changed macros and PyAV can be installed from https://github.com/mikeboers/PyAV

papr 26 May, 2018, 18:10:52

@user-d53fa1 this is actually not possible. We have added few modifications to our fork that are required for Capture and Player. We will rebase the required changes as soon as possible.

user-d53fa1 27 May, 2018, 02:24:53

Thank you for your response. I didn't notice your modifications on your fork. I will reinstall the av module later.

user-e5aab7 28 May, 2018, 19:13:12

I got pupil to open on raspi but now I am trying to get pupil to communicate with the raspi Noir camera module for eye tracking. Does pupil only communicate through usb? Is there anyway to get pupil to communicate with the Noir peripheral?

mpk 29 May, 2018, 11:23:37

@user-d53fa1 just an FYI, I made changes to pupil-labs/PyAV to make it work with ffmpeg4.0

papr 30 May, 2018, 07:31:28

@user-e5aab7 How do you know that it is running successfully? Do you have a display connected to the raspi?

user-c7a20e 30 May, 2018, 10:30:28

Sorry for the offtopic but how is raspberry able to handle at least one 120Hz camera frame processing in realtime at all to be usable with Pupil? Maybe (big maybe) Asus Tinkerboard could but I'm scratching my head about usage of Rasperry.

user-049a7f 30 May, 2018, 21:19:48

@papr Yes, I have a HDMI connected, I have 3 windows open when I run python3 main.py

user-049a7f 30 May, 2018, 21:21:51

@user-c7a20e Well I do not know if it is possible to be fair. I am hoping it is but I would understand if it isn't. I am very new to RPI so I am learning as I progress.

papr 30 May, 2018, 21:27:14

@user-049a7f you will have to write your own backend if the Noir camera is not listed in the UVC Manager

user-b91aa6 31 May, 2018, 14:38:53

In 2D mode, you should easily be able to achieve tracking accuracy within the physiological limits (sub 1 deg visual degrees). May I ask that what the physioloical limits mean? @papr

user-b91aa6 31 May, 2018, 17:35:55

Why does the example codes can't run? This is from https://github.com/pupil-labs/hmd-eyes/blob/master/python_reference_client/hmd_calibration_client.py#L42. Why it says a bytes-like object is required, not str?

Chat image

user-b91aa6 31 May, 2018, 17:36:19

Why does the example codes can't run?

Chat image

End of May archive