ViTrox Electronic Component Body Detection Challenge
Prove That You Are The Right Candidate
Intuition
Artificial Intelligence (AI) is considered as one of the technological pillars in Industry 4.0. In the past few years, ViTrox is always looking for AI talents who are capable to follow current research trends and write Deep Learning codes to join. However, we find that the verbal interview might not be an effective way to distinguish the competency level of an AI-related job applicant. Although traditional face to face interview in 2 hours is good enough to understand the skills possessed by an AI-related job applicant, it is really too short for calling him to showcase his skills. Therefore, this challenge is introduced for AI talents to prove their competency. It is aligned to what the principal developer of the Linux kernel has said:
Talk is cheap. Show me the code. ― Linus Torvalds
Challenge Statement
As an automated vision inspection equipment manufacturer, we are always looking for robust and fast algorithms to improve our customers’ productivity. The models currently released by various research groups do not explicitly suit our needs as they are mostly designed for scene images collected from the uncontrolled environment. ViTrox solutions are highly focusing on the SMT problems captured in a controlled environment (i.e. the lighting is almost consistent). The measures of robustness and speed forced the AI teams in ViTrox to always think out of the box while designing the Deep Learning algorithms. The talents who possess a deep understanding of machine learning-based computer vision algorithms with the infinite energy of creativity are essential to keep ViTrox growing and pushing the edge of technology.
Dataset
We are releasing the dataset named “Body-1k”, which is collected from multiple ViTrox Automated Optical Inspection (AOI) machines for this challenge. The dataset can be downloaded here.
We intend to use this dataset as one of the interview questions to help managers in identifying the right candidates. If you are a student, you are welcome to develop an AI solution for this.
Background
By using the traditional computer vision algorithms, ViTrox AOI machines can locate the position of electronic components soldered on the circuit boards as shown in the pictures below. It also seems that the position of the electronic components is good enough to become an indicator in detecting whether the electronic components are perfectly located on the circuit board or not.
Annotation
The dataset is annotated using COCO data format with a slight modification to suit our needs. Let’s look at the following snippet from our annotation file.
The snippet of the annotation file
Unlike original COCO format which defines bbox = [x_min,y_min,x_max, y_max]
, the first 2 values of the bbox
array, x,y
, represent the centre point of the electronic component. The 2 subsequent values of the array, w,h
, represent the dimension of the electronic component. The last value of the array, theta
, indicates the orientation of the electronic component.
The value of the theta will be positive if the electronic component is rotated anti-clockwise. On the other hand, if the electronic component is rotated clockwise, the original theta
is recorded as a negative value. To make sure that all the theta
values are positive, the negative theta is transformed by positive_theta = 360 + negative_theta
Challenge
Develop a deep learning model that can detect the body of the component. Your solution should work for different shapes and orientation of the component, taking into account that not all components will be placed properly.
Model Evaluation
With all the annotated label, we shall discuss how to measure the accuracy of the model now. The keen reader may notice that we are essentially trying to measure body size with pixel-level accuracy. Often, this is when the conventional approach breaks down and the creativity takes over.
The Average Precision, which is one of the popular object detection evaluation metrics, does not fit our requirements well as the accuracy on the location of the bounding box is very crucial for this challenge. Its accuracy should be within 1 pixel wide according to the specification provided by the product R&D team. However, performing the model evaluation down to the pixel level is not an easy job as well if the rotation of the electronic component is taking into consideration. We finally decided on SkewIoU metric which provides a rough overview and easily understood by us.
In addition, inference speed is an important metric for us. A faster algorithm with lower accuracy may be favoured over a slower but accurate one. So model performance does not solely rely on accuracy. Granted, model optimization is an even larger topic, we leave the topic for other days but you shall claim a better model with good speed.
What you can do?
If you are interested in solving this problem, please share your solution with us at coe_mv[at]vitrox.com with the email title “
ViTrox Electronic Component Body Detection Challenge -{Your Name}
” to prevent from the overlook. You are encouraged to publish your solution on the web and share the link to us.
As a start, your solution should include your understanding regarding the dataset on hand, solution architecture, model accuracy and inference speed. Since it is a complex problem, we are not looking for a perfect solution. If your solution can archive 0.8 SkewIoU, we would consider it as a good solution.
We are also excited to hear your thought process when working on the challenge, often this draws the line between a good engineer and a great engineer.