Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automated feature detection (and matching) - long-term #300

Open
jywarren opened this issue Jun 27, 2018 · 14 comments
Open

Automated feature detection (and matching) - long-term #300

jywarren opened this issue Jun 27, 2018 · 14 comments

Comments

@jywarren
Copy link
Member

Let's not think too much about this YET - but one add-on feature we could add to this feature for image distortion (#299) would be a way to automatically examine 2 images and find how they ought to overlap. This has several steps:

  1. finding interest points in 2 images
  2. matching interest points between 2 images
  3. calculating the corner transformations required to use the matches (if any) to perform a distortion using Ability to distort an image with 4 corner points (perspective distortion) #299

Here's one in-depth tutorial that goes through all the necessary steps: https://hub.packtpub.com/object-detection-using-image-features-javascript/

image

This would be great to develop as an independent module, outside of Image Sequencer!

@gitmate
Copy link

gitmate bot commented Jun 27, 2018

GitMate.io thinks possibly related issues are #216 (Add WebGL in CLI/Node context (long-term)), #166 (Edge detection module), #284 (Shorten long URLs), and #205 (add "drag to crop" UI feature to Crop module).

1 similar comment
@gitmate
Copy link

gitmate bot commented Jun 27, 2018

GitMate.io thinks possibly related issues are #216 (Add WebGL in CLI/Node context (long-term)), #166 (Edge detection module), #284 (Shorten long URLs), and #205 (add "drag to crop" UI feature to Crop module).

@jywarren
Copy link
Member Author

This should be possible in OpenCV.js!

steps might be:

  1. run SURF on Image 1 to find interest points
  2. run SURF on Image 2 to find interest points
  3. find best matches of common points from each
  4. in relation to image 1, rotate, scale, and translate image 2 to best overlap the top 2-3 common points between the 2 images
  5. flatten into 1 image

Amir shared: https://docs.opencv.org/3.3.0/dc/dc3/tutorial_py_matcher.html

https://docs.opencv.org/2.4/modules/ocl/doc/feature_detection_and_description.html?highlight=feature%20description

@jywarren
Copy link
Member Author

An initial version wouldn't need to do full 4-corner transform but could start with just rotation/scale/translate!

@adisapphire
Copy link
Member

adisapphire commented Oct 1, 2018

@jywarren Can I work on this issue?
I found intersting to do it. 😄

@jywarren
Copy link
Member Author

jywarren commented Oct 1, 2018

That'd be really awesome. Have you been able to merge a more basic module first? Perhaps #165 has some, if you haven't (apologies, it's been a busy week so I forget!)

However, we'd really like your help with this. It seems like a big project but we'd love to hear how you might try to solve it? What would be your first step?

👍 🎉

@adisapphire
Copy link
Member

adisapphire commented Oct 2, 2018

Thanks @jywarren
I had'nt merge that before but i would try that in #165
Yes, It is big project but let's try to solve by detecting interesting points in two images using opencv.js.
My first step for this issue would be I will get comfortable in OpenCV.js, then try to implement code for detecting interesting points, then moving to matching points and distortion of images.

@jywarren
Copy link
Member Author

jywarren commented Oct 2, 2018 via email

@jywarren
Copy link
Member Author

There are actually feature detection and description abilities in jsfeat here: #165

I /believe/ this is in pure javascript!

@jywarren
Copy link
Member Author

and there's a very cool demo that seems to be running here: https://inspirit.github.io/jsfeat/sample_orb.html

@adisapphire
Copy link
Member

hi @jywarren,
I have created a GSOC proposal for this issue, please review and help me to improve my proposal.
Thanks (apologies for being inactive for last few months)
:)

@adisapphire
Copy link
Member

Also, please mention if it is okay to include this issue in GSOC '19.
Thanks

@jywarren
Copy link
Member Author

jywarren commented Apr 2, 2019 via email

@adisapphire
Copy link
Member

Yes,I had Posted it from username puneetbindal8989.
Link: post link
Thanks :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants