Git Product home page Git Product logo

3dv's People

Contributors

corkillj avatar kannwism avatar skimslozo avatar teamathe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

kannwism unit15

3dv's Issues

Pixel coordinate discrepancy

As mentioned in #11 , there seems to be a discrepancy between the renedered position of the ball on the screen, and what the projected coordinates predict it to be, based on the 3D ground-truth ball position and calibration matrices.

My best guess is that there is a factor added somewhere between geometric calculations of the camera (which is the info we use to calculate pixel coordinates) and the rendering of the image, however, I have failed to find it so far.
Even though I have also checked my methods for calculating the calibration matrices quite rigorously, there is, of course, a chance I have made a mistake in calculating those, but I could not find it.

Could you guys take a look at it at some point, if you think it's worth looking into?
@teamathe @Quexor @corkillj

3D trajectory accuracy tests, robustness

Based on a metric of your choice (e.g. RMSE), compare the 3D reconstruction accuracy with different set-ups of the simulation:

  1. Number of cameras, N = 1, ..., some upper bound?
  2. Noisy 2D detections, noise type, variance and number of datapoints it is applied to TBD
  3. Noisy camera extrinsics/intrinsics - robustness of reconstruction with respect to calibration errors

Supervisor communication

  • Ask about robustness feasibility
  • Send the proposal to them on Friday (19/03/2021) on Thursday
  • Ask about GRF implementation - have they worked with them? Advice on e.g. camera view change
  • Ask about data availability

Read data

We need a method to import the data from GRF into our 3D trajectoty implementation pipeline.

Project Proposal PDF

  • Create Project Proposal PDF until Friday 08:00
  • Send to supervisor
  • Implement feedback
  • Submit before 23:59

Generate first simulation data from GRF

First set of data shoud be generated using Google Football Research. Data shoud include:

  1. Ground-truth 3D trajectory points of the ball:
  • x, y, z [m] - position of the ball in the world frame at a T [timestamp]
  1. 2D projected trajectories of the ball from 2 calibrated cameras (perhaps trajectories themselves not necessary, if we have the camera info then we should be able to project the 3D trajectory). Requirements:
  • u, v position of the ball [pix] at a specific timestamp T from at least 2 camera views
  • Ideally, T (approximately) the same for both cameras
  • In case it is not explicitly possible, we estimate the 2D trajectories ourselves by projecting the 3D path on multiple 2D image panes. Can be done either by implementing in GRF side, or on our side.
  1. Camera calibration info. This includes:
  • Camera pose matrix [R|T] in the world coordinates
  • Camera internal calibration matrik K

For now, the data type is not relevant/tbd as the task advances. Let's keep each other updated on progress within this issue

Code Framework Visualization

We need a way how to make a 3D visualization of our triangulated 3D points and the spline fitted/interpolated through them.

Literature Review of 3D estimation algorithms

  • Do a literature review of the state of the art in extracting a 3D trajectory from multiple 2D trajectories (e.g. bundle adjustment). Understand the algorithms and the Math. Aspects to figure out:
  • Correspondence, Triangulation, Trajectory Estimation
  • What is already implemented and accessible for us?
  • Computational performance?
  • Robustness against disagreement of the multiple streams.
  • Robustness against occlusion
  • Kalman Filtering
  • Learning based elements or more or less pure math
  • Select Performance Metrics

fix clipping planes

increase the clipping plane parameter value such that it does not get cut off somewhere in the field

Implement RANSAC or some other outlier removal

what ever data we get from real word stuff will have wrong outliers, these need to be detected and removed.

The leasts_sqares method in the nonlinear refinement method might have some options...

Segmentation Fault

Hello,

I'm trying to run the following command to test my installation on Ubuntu 22.04, with python-3.7 and gcc-9.4.0:
python datagen.py

However, it produces a segmentation fault when trying to import anything from gfootball library.
I followed the installation instructions in the main branch exactly. Also tried different python and gcc versions but these did not solve the problem.

There seems to be no problem if I compile the original repo from Google Research. The simulation launches and, expectedly, it gives an error where it tries to set the camera location which the original repo does not support.

Any idea why it could give segmentation fault?

Thanks.

Code framework for 3D triangulation

It would be nice to have methods already defined for the triangulation, so the higher-level architecture with some dummy variables. So this would include:

  • Reading corresponding 2D points from 2 different image stream dataframe (already clean data, provided by @teamathe implementation)
  • Reading the camera intrinsic and extrinsic parameters
  • Triangulation method (calculate a 3D point based on n 2D correspondences)
  • Iteration and minimization (of a metric still TBD) to obtain the final 3D point

@Quexor could you update with the possible metrics (e.g. reprojection error, LSQ in case of bundle adjust) that we'll use to iterate on and to obtain the "final" 3D point? Feel free to add/edit what goes in there

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.