Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers.

Added DemoArUco video mappings not working

0 votes

I'm trying to run DemoArUco at a higher resolution (1280x1024 or even 640x480) and can't get any output. I edited videomappings.cfg and added lines that result in the following mappings. JeVois is parsing my commands correctly:

    0 - OUT: NONE 0x0 @ 0fps CAM: YUYV 640x480 @ 15fps MOD: JeVois:DemoArUco

    6 - OUT: YUYV 640x480 @ 30fps CAM: YUYV 640x480 @ 30fps MOD: JeVois:DemoArUco

    7 - OUT: YUYV 640x480 @ 15fps CAM: YUYV 640x480 @ 15fps MOD: JeVois:DemoArUco

And it recognizes them when I open the camera or send setmapping commands, but there are not messages being sent over the serial USB port (after setting serout and serstyle properly) and the video is just a pink noisy background with occasional green interruptions:

So... am I doing something wrong with the mappings, or is the ArUco module not capable of working at a higher resolution? I didn't see anything in the docs or source that would suggest that, it looks like it was designed to be flexible.

asked Apr 13 in User questions by krs013 (190 points)

1 Answer

0 votes

You got it almost perfect, just a couple small fixes:

- for the mappings with video out to USB, the output size expected by the DemoArUco has to be 20 pixels taller than the input size. This is so we can print how many markers are detected. This is not well documented now, but, for future reference, you can look at outimg.require(...) statements in the source code of any module to see what output layout the module expects (and requires). In the ArUco module, we require width w and height h+20 where w, h are the dimensions of the input image. We need to add this requirement to the doc somehow, just exactly how is non-trivial because the relationship between input and output resolutions can get arbitrarily complex (see, for example, the SaliencyGist module).

I tried this and it works here:

YUYV 640 500 10.0 YUYV 640 480 10.0 JeVois DemoArUco

- now for the mapping with no USB out, there is no output size requirement obviously. What you were likely missing there is that you need to start streaming manually for the no-USB-output modes, by issuing a:

streamon

command. When I do that here and then point the camera to some ArUco markers, the detections are correctly reported over serial. This was documented in http://jevois.org/doc/UserCli.html but clearly that doc could use more details.

EDIT: by the way, the pink screen is because the outimg.require(...) threw and hence you are just gatting garbage frames. You should see an error message related to that throw if you use setpar serlog USB (assuming you are connecting to JeVois over USB).

answered Apr 13 by JeVois (7,090 points)
Ah ha, that makes sense. I also tried 640x500 and it worked, but I didn't understand the reason. Thanks!
...