28 January 2016

What's the progress in PVS2?

Got some requests asking for news, so here they are:

I moved a bit from the path I was working on and decided to make my first WPF interface, better looking, more modern and I get the chance to learn something new.

So now we have a WPF interface built in C# around a C++ DLL.
I used this chance to create my own WPF borderless windows (FlyPT Window) looking for a design more to my liking and hopefully more professional.

I have also created a new library for video capture (FlyPT Video Capture), based Microsoft on Media Foundation, with the intention to better understand the system and solve some problems with the libraries I was using.
I'm now prepared to capture from cameras/boards with more than one stream, since I can select the stream for capture.
I can also control all the camera parameters without errors (one of the problems I had).

I'm right now dedicating more time to calibration, trying to achieve a better, faster and more reliable result.
To test my new calibration system I made a small test rig.
It's a cardboard box with multiple chequerboards, all of them with different sizes so they can be distinguished.
The idea behind this method, is to calibrate the cameras with one shot:

To test the calibration I also built a new camera rig:

Now with 3 possible ranges. One way to enhance camera dislocation calculation and better range on reconstruction:

Beside all this I'm working on the depth maps, testing some Cuda accelerated solutions.

That's it for now..


  1. since july 2015 , four time a week , always visit this blog ! magninificent job bro ...? thanks

    1. Wish I had more time for this.
      Anyway, thank's for coming here.

  2. me again:
    Are you able to genlock sync now? I was thinking that for capturing it might be worh considering phone cameras. I've an Lg g4 an makes very nice pictures. The 4k video is not very good as sometimes in wobbles, but tested in car in a pod and video is ok. Still top quality 1080. So the good point is that a phone can datalog gps and inertial sensors so this data could be used to help fix possible camera location errors. In addition, may be with two phones you could make the second phone slave of the other in a similar setup via otg cable.

    A video I found that takes advantage of all imputs, visual, inertial gps. https://www.youtube.com/watch?v=f1oT74VZEHs

    You could release an alpha build so we can test it as development goes on.

    Can´t wait for monocular implementation as many of us do not have dual (same model) cams but plenty of single cams :)

    1. Sync?
      Not with PVS.
      We can achieve synch only with hardware capabilities.
      There are some stereo cameras that might feed two streams and with that maybe PVS could handle the two streams, but I have no stereo cameras.
      PVS achieves "synch" by capturing frames the fastest way possible (made my own libraries). Wit good light we can achieve good results, like the example in PVS1.
      Another way is to capture frames in stand still.

      Multiple inputs and GPS:
      One of the types of sources is GPS.
      I'm trying to make an Android app to feed PVS with GPS info from Android devices but without success until now. I have to put more time there.
      PVS2 handles multiple sources and you can decide the wheight you want to give them to compute the final result.

      Alpha build?
      Good idea, I will try to make something for you to help testing.

      Not has good or dense has Stereo, but I will put that there (it was silent in PVS1, but code was there).

  3. Is it possible to use 4 or more cameras? 2 cams pointing forward and 2 pointing backwards.
    I have a friend who would like to scan racetracks and make them to racing sims. If you need help with software testing, I believe he would be more than happy to test the software.

    1. I'm building it to use the cameras we want.
      Can be more then 4.
      Limitation is hardware.
      Main problem for multi cameras is calibration between them, but I have some ideas.

  4. This comment has been removed by the author.