-
-
Notifications
You must be signed in to change notification settings - Fork 943
Google Summer of Code @ Kornia
Edgar Riba edited this page Mar 20, 2021
·
44 revisions
Welcome to the Google Summer of Code @ Kornia
- What is Google Summer of Code π π©βπ»
- How to apply ? π§βπ
- Project Ideas List π‘ π‘
- Timeline π
- How do I pass the GSoC evaluations ? π
more info: https://developers.google.com/open-source/gsoc/resources/downloads/GSoC2021Presentation.pdf
- Are you a student at a university in an eligible country ? [ READ ] π§βπ πΊοΈ
- GO through the Project Ideas List list below π
- Pre-Apply to this [ FORM ] AND join Kornia Slack [ JOIN ]
- IF you are contacted by a mentor THEN write the project proposal βοΈ
- ELSE improve your skills and try next year π
-
SUBMIT your project proposal through GSoC website !! (VERY IMPORTANT)
β οΈ β οΈ - The project admins will balance the applications βοΈ
- IF you passed this process THEN Congratulations!! You're in !! π π
- GO TO How do I pass the GSoC evaluations ? β‘οΈ π
DISCLAIMERS:
- We won't consider any application from a student that hasn't been contacted by a mentor.
- Projects without a detailed schedule won't be considered. π
- The GSoC is a full-time internship; do not expect being contacted or if you are already working.
- A Project failure is not an option; we won't take that risk.
- The final application is on the GSoC site; otherwise your are out.
- Do not open useless pull requests to increase your git history; we know how to detect fake profiles.
- Pre-selected students might expect a screen interview.
- Google pays to the student; not kornia.org.
- If you are not notified by Google; you are not in.
- Read the GSoC student GUIDELINES & FAQ
-
- Description: Review the documentation and the tutorials website. Re-organise existing tutorials, create new examples, improve testing on the tutorials, better link between functions and examples, benchmarks, etc.
-
Expected Outcomes:
- A new reformatted website for tutorials and examples.
- Proper benchmarkin suite.
- Resources:
- Skills Required: PyTorch and basic knowledge about computer vision and Kornia
- Possible Mentors: Edgar Riba, GridAI || Victor Vaquero, IVEX.ai.
- Difficulty: Easy
-
- Description: Create an API with low level and possibly high level routines to perform camera calibration. Currently, OpenCV is one of the few libraries where this kind of algorithms can be found and easily used. This module can be oriented in two directions: intrinsic or extrinsic calibration. The goal is to have at least one of those algorithms implemented in a differentiable fashion, running in GPU and providing an easy way to develop new differentiable methods based on them.
-
Expected Outcomes:
- Regarding the intrinsic calibration:
- Merge in Kornia one differentiable method to estimate the intrinsic and undistortion parameters.
- Regarding the extrinsic calibration:
- Merge in Kornia one differentiable method to estimate the camera position wrt a given reference object in terms of rotation and translation.
- Regarding the intrinsic calibration:
-
Resources:
-
Camera resectioning in Wikipedia.
- Intrinsics:
- Opencv tutorial about camera calibration.
- Zhang's camera calibration method is one of the most well known and accurate camera calibration methods.
- Extrinsics:
- OpenCV tutorials (one, two) about pose estimation.
- PnP OpenCV function shows some different methods that could be implemented. The most basic method iteratively estimates the camera/object pose using Levenberg-Marquardt optimization.
- Intrinsics:
-
Camera resectioning in Wikipedia.
- Skills Required: Good geometry and linear algebra basis. Experience using PyTorch.
- Possible Mentors: Luis Ferraz (PhD, Kognia Sports), Francesc Moreno (PhD, IRI).
- Difficulty: Medium/Hard
-
- Description: Add modern local features, e.g. R2D2, SuperPoint, DELF, D2Net, etc to the kornia.feature. Currently, there is no way practitioners could easily add learned local features to their code without cloning authors' implementation separately and spending time on code integration. Moreover, the official implementations of R2D2, SuperPoint have a restricted license, prohibiting its commercial usage. The student's goal is to adopt or re-implement the local feature and possibly re-train it from scratch following the description in the official paper.
-
Expected Outcomes:
- new modern local features with pre-trained weights are integrated into kornia.feature
- re-implementation is evaluated on standard benchmarks and has similar performance to the official implementation
- Resources:
- Skills Required: Experience with training deep neural networks in pytorch. Access to GPU (can be done with a Google Colab).
- Possible Mentors: Dmytro Mishkin, CTU in Prague
- Difficulty: Medium/Hard.
-
- Description: Implement differentiable structure-from-motion frontends (triangulation, camera resectioning) and backends (bundle adjustment, motion averaging).
-
Expected Outcomes:
- An
epipolar
submodule implementing two-view epipolar geometry functionality. - A
frontend
submodule that scales existing feature matching routines to large image collections. - A
backend
submodule implementing routines for nonlinear least squares optimization (bundle adjustment).
- An
- Possible Mentors: Krishna Murthy, Mila || Edgar Riba, GridAI.
- Difficulty: Hard.
-
- Description: Write probabilistic testing for non-deterministic augmentations. Monte Carlo based testing of functions allows for testing.
-
Expected Outcomes:
- Testable Reproducibility of random methods.
- Testing Reproducibility across devices.
- Possible Mentors: Anguelos, Jian.
- Difficulty: Medium.
The program duration is ~2months; we will be flexible but there are some major RULES.
- Google pays you IF ONLY IF you pass the evaluations
- The mentors will evaluate you based on the performance during the project.
The Full Program Timeline: https://summerofcode.withgoogle.com/how-it-works/#timeline
- Organization Applications Open - [ January 29, 2021 ] π¬ βοΈ
- Organization Application Deadline - [ February 19, 2021 ] π
- Organizations Announced - [ March 9, 2021 ] π -> WE ARE OUT :(
- Student Application Period - [ March 29, 2021 - April 13, 2021 ] π§βπ
- Application Review Period - [ April 13, 2021 - May 17, 2021 ] π
- Student Projects Announced - [ May 17, 2021 ] π’
- Community Bonding - [ May 17, 2021 - June 7, 2021 ] π₯
- Coding - [ June 7, 2021 - August 16, 2021 ] π©βπ»
- Evaluations - [ July 12 - 16, 2021 ]
- Students Submit Code and Final Evaluations [ August 16 - 23, 2021 ]
- Mentors Submit Final Evaluations [ August 23 - 30, 2021 ]
- Results Announced [ August 31, 2021 ] π
The Kornia.org team