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
- The format is Wavefront obj.
Goal of this challenge
Overview of the tasks
Tasks 3
In this challenge, we will focus on the task 3 only. As we have obtained algorithms that can detect lines and curves in 2D images and 3D models separately through the previous contests. Now, we are going to match a 2D image and a 3D model with limited human effort.Since the main purpose of the Subtask 3 is to carefully check whether the real product matches its CAD model, in this challenge, we assume
- The user will always provide an image with its corresponding 3D model.
- The user is willing to help.
Allowed Inputs
(1) The 2D image and the 3D object. They are guaranteed to be corresponded to each other.
(2) Camera calibration parameters.
(3) The results of Subtasks 1 and 2. You can also develop your own algorithms for the first two subtasks. If so, please document these parts as well.
(4) User Guidance. You may incorporate user guidance for a more accurate matching. While the accuracy is at certain level, we want to minimize the human effort and make the interaction as easy as possible. Therefore, in this step, you may want to develop some simple auxiliary UI.
- For example, the existing customer-owned application requires users to choose some pair of edges, one is from 2D and another is from 3D, and to try to find the best match with this help.
- As another possibly useful interaction, you may ask users to help you rotate the 3D model by an appropriate but approximate angle.
(1) Transformation matrices including translation, rotation and scaling. These matrices should transform 3D model to match to the 2D image with specified Camera calibration parameter.
(2) Some visualization (could be a picture) to show the transformed 3D model overlaid with transparency on the 2D image.
* It will be great if the visualization can enable users to perceive how much the image and model are matched and differences between them. Since the final goal is to serve results of contests as Web service, Web-based visualization is preferred, but it's NOT a priority.
* In the matching process, it’s expecting to utilize not only the lines, but also curves well.
* Although the output format is not specified, JSON is preferred. You can propose your own output format but you need to carefully document it.
Information of tasks 1 and 2
1. Detecting lines/curves in 2D image
Output - Data of line and curves segments detected in the input image.
This has been done in the previous challenge.
2. Detecting lines/curves in 3D object
Output - Data of line and curves segments detected in the input model data.
This has been done in the other previous challenge.
Judging Criteria
The submissions will be evaluated from different aspects:1. Quality (60% = 20% + 30% + 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%)
- 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. Human Effort (20%)
- If user guidance is needed, the way to interact should be easy. For example, some simple auxiliary UI may help.
Requirements to Win a Prize
Final Submission:- 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)
- Readability = 20%
- Human Effort = 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 review process with the client
Q&A
Feel free to ask questions by posting in the contest forum.Final Submission Guidelines
- 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.
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.