(This template is for students applying to summer code programs with Public Lab. Use this link to start writing a post: https://publiclab.org/post?n=899&tags=soc,soc-2019,soc-2019-proposals You can delete this line once you've started filling it out.)
About me __
Tell us about yourself!
Name : Puneet Bindal
Github: https://github.com/rockstar777
GCI Mentor 2018 Public Lab
Student year: 3rd year student
Field of study: Computer Science Engineering, B.Tech_
Affiliation Indian Institute of Information Technology, Vadodara
Location: Gandhinagar, Gujrat
Project description __
Here, you don't have to have a complete proposal when you begin. Just tell us some of your ideas and we'll help you refine it into a full proposal gradually!
Abstract/summary (<20 words): [__](#Abstract/summary+(<20+words):+__:))
Enhancement for Image-Sequencer, A module that detects the object features of an image and match them with another image.
Problem __
What problem(s) does your project solve?
Computer Vision problem
issue no. #300 image-sequencer _https://github.com/publiclab/image-sequencer/issues/300
Approach __
To solve this issue my approach is to get around the best js libraries.
We have 3 opensource most used libraries for computer vision i.e :-
1. Opencvjs
2. Jsfeat
3. Trackingjs
To find the best library lets find the difference:-
Opencv.js has only feature for object detection using HAAR Cascades. The tracking.js library(Light weight library ~ 7Kb ) provides the BRIEF (Binary Robust Independent Elementary Features) descriptors and its JSFeat extension---ORB (Oriented FAST and Rotated BRIEF).Which means that even if you rotate an object, the algorithm can still detect it. Moreover, the JSFeat library provide an example using the image pyramid, which is scale invariant too.
Implementation __
Let's divide the whole big project into subparts:
1. Implement the js code using the library.
2. create the module in image sequencer
3. implement test codes in modules
4. Add step features
Discussion for Subparts:
1. Implementation of js code using the library :-
Feature detection(Fast Corner Detection) :-
// threshold on difference between intensity of the central pixel
// and pixels of a circle around this pixel
var threshold = 20;
jsfeat.fast_corners.set_threshold(threshold);
var corners = [], border = 3;
// you should use preallocated keypoint_t array
for(var i = 0; i < img.cols*img.rows, ++i) {
corners[i] = new jsfeat.keypoint_t(0,0,0,0);
}
// perform detection
// returns the amount of detected corners
var count = jsfeat.fast_corners.detect(img:matrix_t, corners:Array, border = 3);
Feature Matching(orb descripter):-
var corners = []; // jsfeat.keypoint_t Array
var cols = 32; // 32 Bytes / 256 BIT descriptor
var rows = num_corners; // descriptors stored per row
var descriptors = new jsfeat.matrix_t(cols, rows, jsfeat.U8_t | jsfeat.C1_t);
jsfeat.orb.describe(img_u8:matrix_t, corners:Array, num_corners, descriptors:matrix_t);
2. Create the module in image sequencer :-
3. implement test codes in modules
4. Add step features:-
1. Increase-decrease threshold value
2. Increase-decrease blur value
3. Increase-decrease descriptor length
4. match image with another image with given descriptor length
Timeline/milestones __
Break your project up into small projects -- one per week!
See this page for guidance on breaking your plan up into small, self-contained parts: https://publiclab.org/notes/warren/01-18-2018/software-outreach-modularity-is-great-for-collaboration
27th May to 23rd June: First Phase Evaluation (4 week duration)
Week 1 - Implementation of fast corner and orb descriptor, and producing a demo in HTML file to become user friendly with the libraries and also get through image-sequencer modules. Mentor discussion.
Week 2 and Week 3 - Implementation of module in image sequencer with minimal features. PR review at the end of each week.
Week 4 - Implementation of test module. PR review at the end of the week.
24th June to 28th June: Evaluations
29th July to 21st July:
Week 1 - Optimization and Debugging of Code. Pr review and mentor discussion at the end of the week.
Week 2 and Week 3 - Adding more features to the module. PR review at the end of the each week.
22nd July to 26th July: Evaluations
27th July to 25th August:**
Week 1 and Week 2 - Testing, Optimization and Debugging of Code. PR review at the end of the each week.
Week 3 and Week 4 - Commenting and making module code more user friendly, so that new developers who find it interesting and wanna work and improve it, can do it easily.
Mentor discussions. Final PR. Try to solve more issues associated with this module or library we will use in here.
Needs __
Guidance of my Mentor will the best for me. And most documents are available online, so no needs :).
First-time contribution __
I had my first contribution at the time of GCI 2018 which was proved to be a good experience for me.
Experience __
Languages: Ruby, Js, Java, Golang, Python, C, C++
Tools and framework: nodejs
Github link: __https://github.com/rockstar777
Won 1st prize in Projex event in my institute for the project Air Writer.
GCI Mentor 2018 Public Lab
Selected for a course in IIMA, Ahm for Entrepreneurship program, where we have started a startup called Edusherpas.
hackerrank profile: https://www.hackerrank.com/puneetbindal8989
KVPY 2014 first round qualifier
Teamwork __
I had worked on projects on github on private as well as public repo with my colleagues on different projects.
Passion __
What about our projects, and Public Lab, interests you? What are you passionate about? Open science, environmental justice?
Image-Sequencer more interests me as it is based on image processing and computer vision. I described my self as hardworking, determined, curious, and a daily learner. I have more particular interest in machine learning stuffs.
Audience __
Whom do you want your work to help? We especially appreciate proposals which make technologies and techniques more welcoming and friendly to those who've often been excluded.
My project will directly help all users (students, researchers, etc.) working in all kinds of fields that relate to studying, examining and experimenting with images.
Commitment __
Do you understand this is a serious commitment, equivalent to a full-time summer job? Tell us how you'll structure your schedule from day to day!
I do understand that this requires serious commitment, I will concentrate my summer days to Public Lab and will make a optimized and efficient module.
My work schedule will be as follows:-
For week days:-
Code, Eat, Sleep, Repeat
For Weekend days:-
Code, Eat, a movie or play badminton, Sleep
Thank you!!
2 Comments
Hi thanks for writing the proposal. We expect dates to be written in the proposal. So, please mention the dates with the week number. Also, please see other proposals to get a glimpse of how to enhance your proposal. Please upload your proposal at the Google Summer of Code website at the earliest. Please ignore this comment if already done.
Thanks lot, I will do asap.
Reply to this comment...
Log in to comment
Login to comment.