ico-arrow-big-left

Predict the torque from the bolt tightening sound

Key Information

Submit
Next Deadline: Registration
15d 15h until current deadline ends
Show Deadlines

Challenge Overview

Welcome to Marathon Match sponsored by Asahi Kasei Corporation, a major Japanese chemical group company whose core business is materials, housing, and healthcare companies operating all over the world.

We have a competitive advantage in the house-building industry based on our long-term quality strategy. In addition, we are taking various actions such as introducing a system to achieve the No.1 quality in the industry. As a part of these efforts, we are aiming to improve the quality of bolted joints, which are especially important in the quality of steel frame houses.

Currently, quality is ensured through the work of craftsmen and inspections by inspectors, but this is being addressed by increasing the skill of workers and the amount of time spent on inspections. However, defects have occurred in the process of work and inspection.

Unlike torque wrenches*, electric impact wrenches used for tightening bolts in steel frame assembly can work in a short time, but it is difficult to grasp the torque, and inspection after the work is completed is a must.

This is an issue that not only our company but the entire industry is facing. We would like to contribute to the provision of housing with higher quality and at a reasonable cost with provided audio files and improve the quality and reduce the man-hours required to check bolt fastening.

Figure 1. Tightening bolt with impact wrench

Click here for a video of bolt tightening.

*Torque wrench : It can tighten bolts with the appropriate torque according to the target torque value, but it is rarely used in the field because it is expensive, difficult to handle, and the conditions under which it can be used are limited.

Problem Description

In this problem, you will be given an audio file containing the sound made while bolting steel material on a construction site. Your code should read the audio file and predict the torque value of it.

The ultimate output of your code should be a csv file, which has 2 columns, filename and result (the torque value predicted).

Data Description

Audio data overview

The audio files are wav-formatted files recorded at a sampling rate of 192 kHz. The audio duration ranges from 0 seconds to about 2 seconds.

The bolts are used by an impact wrench to tighten the steel frame to the steel frame with bolts, and the audio was recorded by a recording device attached to the impact wrench.

Device (Recording device)

Two recording devices are used for recording of this audio file. The IDs of the audio recorders used in each audio file can be found in the Device id column of Ground truth.

Figure 2. recording device

Figure 3. recording devices with wrench

Junction type

There are four types of steel-to-steel connections: beam-to-beam, beam-to-junction box*, beam-to-column, and column legs(joining with the steel frame of the lower floor), which are listed as j_a, j_b, j_c, and j_d, respectively, in the junction type column of the Ground Truth file. See the following images:

j_a

j_b

j_c

j_d

Flange

A flange is a bolted point that joins a beam to a beam in the vertical direction. 1 in the is_flange column of Ground truth (described below) indicates that the sound is generated when the flange is tightened(It appears only when junction type is j_a and j_b.). 0 indicates all cases except for the flange.

Figure 4 Flange

Data files

Ground truth

The ground truth CSV file has 5 columns: “device_id”,”filename”,”tightening_result_torque”,”junction_type” and ”is_flange”.

Example :

device_id,filename,tightening_result_torque,junction_type,is_flange
2,0001.wav,81,j_a,1
3,0002.wav,119,j_d,0
2,0003.wav,78.2,j_d,1
2,0004.wav,116.2,j_b,0
3,0005.wav,86.8,j_c,0
	...

Data sets

There are 1490 examples in total. Those are broken down into 3 sets for train, pred and test. The split is as follows:

  • train: 1230
  • pred: 130
  • test: 260 (130 + pred )

After registration we send you an email with a link to your dedicated page (we call it the “controller page”). You can download the train data from there.

Scoring

If your solution is not properly formatted, doesn't contain predictions for all test cases in the test set, or contains a prediction for an ID that doesn't belong to the test set, you will receive a score of -1. Otherwise, your score will be calculated using the following, RMSE-based logic:

where ti is the true torque value for the ith test case, pi is your predicted torque value for the ith test case, n is the number of test cases in the test set.

For display purposes your score is scaled to the [0,...,100] range, 100 being the best: score = 100 * (1 - r). If score is negative, it will be set to 0.

Implementation

Language

You can use Python, C and shell script in this challenge. We will accept code written in other languages (Java, C++, R, etc) but it will not be eligible for prizes or TCO points.

Example submission

We have provided a working example submission for you to get started with.It follows all of the requirements of a working submission, including the model handoff from training phase to prediction phase. The rest of this section goes into more detail about the submission structure.

Prepare shell scripts

When we run your Docker image, we call the following commands. Your image needs to make sure these exist and are executable: For training: /code/train.sh For prediction: /code/pred.sh

We run a Docker container with scripts above. If you need to save files for use by pred.sh, use the /tmp directory. These files will be saved to a mounted directory on the host, which will last between the Docker runs for training and prediction phases.

If you want to submit a pre-trained model and don’t need to train on the data, you don't need to write the training process in train.sh.

Mounted volumes

We mount train data directories to the following paths for your training and prediction scripts to read from and write to.

For the training phase you should:

  • Read input audio data for training from: /data/input/train
  • Read ground truth for training from: /data/gt/train

    We provide the gt file named “training.csv” in this folder.

  • Save models for use in prediction from: /tmp

And for the prediction phase you should:

  • Read models from training from: /tmp

    Or use a prebuilt model shipped with your container or downloaded before running inference.

  • Read input audio data for prediction from: /data/input/pred

  • Write output predictions from: /data/output/pred

Predicted data

You must output your prediction in the following format:

  • Prediction file must be named /data/output/pred/result.csv
  • The CSV should have the 2 columns, “filename” and ”result”, It should also include the header line “filename,result”.

Submission Format

There are 2 ways to submit your solution. The first is to submit a Dockerfile, which we will build for you. The second is to push a Docker image to our registry directly. Instructions follow for each approach.

Dockerfile

1.Write your solution.

2.Create a Dockerfile to build it.

Example:

FROM tensorflow/tensorflow:1.15.0-gpu-py3
RUN pip install tensorflow_datasets ;\
	 mkdir /code
COPY your_code.tar.gz /code
RUN cd /code && tar xfz your_code.tar.gz  && rm your_code.tar.gz

3.Zip the Dockerfile and your code. Create a zip file including Dockerfile and your code. We recommend following the directory structure from the example submission.

Example:

submission └ code ├── Dockerfile └── {your_codes}

4.Submit the ZIP file on this page.

Docker image

You should see the following items in your controller page:

  • A Docker registry endpoint URL to push your image.
  • The Submit button.

If you choose this option, you should:

1.Create your Docker image from a Docker container or from a Dockerfile on your machine.

2.Tag your submission Example:

docker commit {CONTAINER_ID}  {YOUR_REPOSITORY_NAME}:latest

3.Push your image to the contest registry endpoint: Example:

docker push {YOUR_REPOSITRY_NAME}:latest

4.Click the “Submit” Button on your controller page.

Check your submission status

You can see your latest submission status on your controller page. It will show your:

  • Submission status: Running, Complete, Success, Failed, etc.
  • Submission execution times for training and prediction, displayed separately.

Submission requirements

  • You must not submit more often than every 6 hours, and the next submission can’t be made until the last submission is completed. However, if an error occurs before your submission enters the prediction phase, you may submit your next submission without waiting 6 hours.
  • You must not take any longer than 10 hours for submission. If there are many other submissions and yours is in the queue, the waiting time will not be calculated into the 10 hours.
  • You must not take any longer than 6 hours for the training phase.
  • You must not take any longer than 10 minutes for the prediction phase.
  • You must not include external datasets into submission.

Execution Environment

GPU

We run your solution on an instance with a GPU, which will provide a computational advantage if you can use it. However, please use it only for training and not for prediction. Since this challenge uses Docker as described above, we recommend you set up Docker 19.03 or later on your computer or a cloud instance with an NVIDIA GPU. If your solution needs CUDA, use 10.1 or earlier.

If you’d like help setting up Docker and nvidia-tool-kit, refer to the following document, in which we describe how to set up Docker on a GPU instance.

Instance specification

The contest will be run on instances with the following specs:

  • CPU: 16vCPU
  • Memory: 64GB
  • GPU: NVIDIA, 16GB memory
  • NVIDIA Driver version: 430.50

Max number of running instances simultaneously is 10. If the number of instances exceeds the number, your submission will be queued.

Solution Description

The top-scoring contestants, in order to be eligible to receive a prize payment, must submit the following:

  • A complete archive including their code and supplementary data that is used for the computation.
  • The code for training and instructions for using such code should be included.
  • Instructions for running the code, such that results similar to what were submitted during the contest can be replicated. (It is understood that some algorithms rely on randomness and thus may produce small variations.)
  • Within 7 days from the announcement of the contest winners, submit a report at least 2 pages long describing the solution, including most of the following:

    • How the code works
    • Why the given approach was used
    • Limitations of the approach
    • Other approaches that were tried but did not work
    • Any information that you feel may be of use
    • Use of any open source libraries and it’s URL/source

    We accept the report written in English or Japanese.

If you place in top 5 but fail to do any of the above, then you will not receive a prize, and it will be awarded to the contest with the next best performance who did all the above.

General Notes

  • This match is rated, and TCO21 eligible.
  • Teaming is not allowed.
  • In this match you may use any open source software. If your solution includes commercial licensed software, even just in the training stage, please ask in the forum if it can be approved. You must include the full license agreements for all software used (including any open source and approved commercial license) with your submission. Include your licenses in a folder labeled "Licenses". Within the same folder, include a text file labeled "README" that explains the usage of 3rd party software and purpose of each licensed software package as it is used in your solution.
  • The usage of external resources (pre-built models, public solvers, etc) is allowed as long as they are public and freely available.
  • Use the match forum to ask general questions or report problems, but please do not post comments and questions that reveal information about the problem itself or possible solution techniques.

Payments

Topcoder will compensate members in accordance with our standard payment policies, unless otherwise specified in this challenge. For information on payment policies, setting up your profile to receive payments, and general payment questions, please refer to ‌Payment Policies and Instructions.