Challenge Overview
Background
Fujitsu has an application that matches CAD data (blueprint) with the actual manufactured product to inspect if the product is built correctly - as shown below.
Since this application is built as Windows desktop application, the client wants Topcoder community to build Web based system using browser as UI.
Overall Objective
The customer wants Topcoder community to create a prototype which implements the core features of the existing application with Web technology in multiple challenges.
The following diagram shows an illustration of the prototype:
1. Algorithm and API to detect lines/curves in 2D images
- 2D image is a photo of a real product.
2. Algorithm and API to detect lines/curves in 3D model
- The model is a blueprint of the product.
- The format is Wavefront obj.
3. Algorithm and API to calculate transformation matrix of 3D model to match 2D image
- The format is Wavefront obj.
- This uses results of 1. and 2. as input and produces matrices of transition/rotation/scaling/perspective.
4. UI to show the overlaid image of 2D image and transformed 3D model
- This should be a browser app.
Goal of this challenge
The client is interested in matching a 2D image and a 3D model. One of the fundamental steps is to detect edges of the 3D model as the line segments and curves for the later key-point matching process.3D model is supposed to consists of geometric information.
Input:
- A 3D object model file. (Wavefront obj format)
- A file containing all line segments.
- A file containing all curve segments.
- One or more JPEG images to highlight your detected lines and curve in different angles.
* 1. and 2. are supposed to represent 3D data. For example,
[{x1,y1,z1}, {x2,y2,z2}] for a line,
[{x1,y1,z1}, {x1,y1,z1}, …, {xn,yn,zn}] for a curve.
[{x1,y1,z1}, {x1,y1,z1}, …, {xn,yn,zn}] for a curve.
* 3. is expected to be useful to verify a result with human eyes in testing. Therefore, it's not necessarily images. You are encouraged to suggest better way. For example, a 3D viewer dedicated to your output.
The output format of the first two files is flexible, while JSON is preferred. You can propose your own output format but you need to carefully document it.
Note that the only the lines and curves being useful to the later matching process are important to us.
Lines/Curves Detection (Previous challenge)
Lines/Curves Detection in 3D model. (This challenge)
Subsequent Matching Process (Next challenge)
Lines/Curves Detection in 3D model. (This challenge)
Subsequent Matching Process (Next challenge)
Example
Input data (obj format 3D model data)3D Rendered
Wire Frame
Wire Frame
Output
An illustration of the expected result. Edges are shown as red lines and curves.
Judging Criteria
Note that all codes in your submission should have propoer licenses. Otherwise, the submission will be considered as invalid. Please check the "Licenses & Attribution" section for details, or ask questions in the forum.The submissions will be evaluated from different aspects:
1. Quality (60% = 20% + 30% + 10%)
- (Training Accuracy) Does it work perfectly on the public examples? (20%)
- (Testing Accuracy) Does it work reasonably well on the private testing images? (30%)
- (Robustness) Can your model work smoothly on different images with the same parameters (e.g., some thresholds)? Or, can your model automatically set the parameters (e.g., some thresholds) based on the input image? (10%)
- (Testing Accuracy) Does it work reasonably well on the private testing images? (30%)
- (Robustness) Can your model work smoothly on different images with the same parameters (e.g., some thresholds)? Or, can your model automatically set the parameters (e.g., some thresholds) based on the input image? (10%)
2. Readability (20%)
- Your solution should be documented well, including the algorithms, codes, scripts, and deployment instructions.
- If you have your own format to save the lines and curves, try to justify your choice.
- Self contained. For example, all technical terms should be well-defined.
- If you have your own format to save the lines and curves, try to justify your choice.
- Self contained. For example, all technical terms should be well-defined.
3. Innovativity (20%)
- Innovative algorithms and models are encouraged.
Requirements to Win a Prize
Final Submission:- Achieve a passing score in the top 2. See the “Judging Criteria” section above.
- Submit all codes & scripts, which can repeat your results and apply to new images.
- Submit a document up to 5 pages (2-4 pages are recommended) in word or PDF format to describe details of your algorithms, default parameter values if there is any in your model, your resources, your thought process, all useful links, and justify how your solution satisfies our judging criteria and goals.
- You are encouraged to submit the results based on the public examples.
- Submit all codes & scripts, which can repeat your results and apply to new images.
- Submit a document up to 5 pages (2-4 pages are recommended) in word or PDF format to describe details of your algorithms, default parameter values if there is any in your model, your resources, your thought process, all useful links, and justify how your solution satisfies our judging criteria and goals.
- You are encouraged to submit the results based on the public examples.
Evaluation Criteria
You will be judged on the quality of your ideas, the quality of your description of the ideas, and how much benefit it can provide for the client. The winner will be chosen by the most logical and convincing reasoning as to how and why the idea presented will meet the objective.Note that, this contest will be judged subjectively by the client and Topcoder. However, the following criteria will largely be the basis for the judgement: (check Judging Criteria for more details)
- Quality = 60%
- Readability = 20%
- Innovativity = 20%
- Readability = 20%
- Innovativity = 20%
Licenses & Attribution
Third-party assets used to build your item must be properly licensed or free for commercial use. MIT, some modified BSD, Apache 2 licenses are ok, but if a library is not commercial friendly you need to get our approval first. Generally, GNU License is not allowed in this challenge.Sufficient information regarding third-party assets must be present in your documentation. This includes the author, license info and a direct link to the asset online.
Additional Information
This contest is not rated.The previous challenge: "Lines and Curves Detection in 2D images"
Q&A
Feel free to ask questions by posting in the contest forum.Final Submission Guidelines
Your final submission should at least contain the following files.
- All codes & scripts to repeat your results and apply to new images.
- A document up to 5 pages (2-4 pages are recommended) in word or PDF format.
- All codes & scripts to repeat your results and apply to new images.
- A document up to 5 pages (2-4 pages are recommended) in word or PDF format.
1. Instructions about how to deploy your solution on a linux machine, including all dependencies.
2. Detailed descriptions of your algorithms and justifications of your choice.
3. Instructions about the parameters in your solution and how to tune these parameters, if there is any.
4. The formats of output files, if you have invented any new and more convienent ones.
2. Detailed descriptions of your algorithms and justifications of your choice.
3. Instructions about the parameters in your solution and how to tune these parameters, if there is any.
4. The formats of output files, if you have invented any new and more convienent ones.