2

GOAL: I have to create a 3d model of a machine part. I have about 25 images of the same thing taken from different angles.

Progress: I am able to extract the coordinates for a label that is on the machine for most of the images.

Problem: but I have no idea how to proceed. I have read a bit about aero-triangulation, but I couldn't figure out how to implement it. I would really appreciate it, if you could guide me in the right direction.

It would be really helpful, if you could provide your solutions using python and opencv.

Edit: sorry but I cannot upload the code for this one as it is confidential. don't blame me please I am just an intern. Although I can tell that I cropped a template of the label from an image and then used Sift to match that template on all the images to get the coordinates of the label.

Yash Sharma
  • 39
  • 1
  • 5
  • 4
    Welcome to Stack Overflow - nice to have you. Please read [How do I ask a good question?](https://stackoverflow.com/help/how-to-ask) and [How to create a Minimal, Complete, and Verifiable example](https://stackoverflow.com/help/mcve) to help keeping Stack Overflows content on the highest possible level and increase your chances getting an appropriate answer. Please provide the code you are have right now, otherwise we could not help you. – sebast26 Aug 06 '18 at 11:06
  • Yeah, the missing code will fit nicely your "progress" section. Use the "edit" button to improve your question. Best regards – YakovL Aug 06 '18 at 18:46

1 Answers1

1

If you want to implement things yourself with OpenCV, I would command looking at SIFT (or SURF) features, RANSAC and the epipolar constraint. I believe the OpenCV cookbook describe those. Warning: math involved. And I don't know how to do dense mapping in OpenCV.

I know the GUI program "VisualSFM" that can automatically recreate 3D model from images. It uses SFM and other command line utilities behind the scenes. Since everything is opensource, you could create a python wrapper around the actual libraries (I found https://github.com/mapillary/OpenSfM asking Google). VisualSFM prints the command it calls, so a hacky way could be to call the same commands from python.

If it is a simple shape and you don't want to automate it, it could be faster to model it yourself (and the result could look better). In 1.5 week I managed to learn the basics of blender and to model a guitar necklace: https://youtu.be/BCGKsh51TNA . And I would now be able to do it in less than 1h. How long are you ready to invest to find a solution with OpenCV?

0xc0de
  • 8,028
  • 5
  • 49
  • 75