Git Product home page Git Product logo

assemblytransformer's Introduction

Identifying Wagon Numbers Using Transformers

This repository contains the implementation of our Transformer-based approach for identifying railway wagon numbers using raw results from an object detection model. This README provides instructions for repeating training for all models, training the best model architecture, and testing the model.

Repository Structure

  • README.md: This file containing instructions.
  • notebooks: Directory containing Jupyter notebooks for exploratory data analysis and model evaluation.
  • results: Directory where results are stored.
  • uic_dataset.py: Script for handling the dataset of UIC numbers.
  • model_stats.py: Script for calculating model statistics.
  • paper_content: Directory containing the content related to the paper publication.
  • test_inference.py: Script for running inference tests on the trained model.
  • datasets: Directory containing the datasets.
  • models: Directory where trained models are saved.
  • models.py: Script defining the model architectures.
  • pyproject.toml: Configuration file for the project.
  • train.py: Script for training the models.
  • train_best_arch_long.py: Script for training the best model architecture for an extended period.
  • requirements.txt: List of dependencies required for the project.

Prerequisites

Ensure you have Python 3.8 or above installed. Install the required dependencies using the following command:

pip install -r requirements.txt

Dataset Preparation

  1. Download the dataset from the provided link in the paper.
  2. Extract the dataset and place it in the data directory.
  3. Ensure the dataset is organized as specified in the uic_dataset.py script.

Training All Models

To train all models, execute the following command:

python train.py

This script will train multiple models defined in models.py and save the trained models in the models directory.

Training the Best Model Architecture

To train the best model architecture for an extended period, use the following command:

python train_best_arch_long.py

This script trains the best-performing model identified during the initial training phase for an extended period to improve performance further.

Testing the Model

To test the trained model, run the following command:

python test_inference.py

This script will load the trained model from the models directory and perform inference on the test dataset. The results will be saved in the results directory.

Additional Information

For more detailed explanations of the model architectures and training process, refer to the notebooks directory which contains Jupyter notebooks used for exploratory data analysis and model evaluation.

For any questions or issues, please refer to the contact information provided in the paper or open an issue in the GitHub repository.


We hope this repository and the instructions provided here help you in reproducing our results and further exploring the potential of Transformer-based models for industrial object detection tasks.

assemblytransformer's People

Contributors

glaadiss avatar danielgoldeuvic avatar mbober01 avatar

Watchers

 avatar

assemblytransformer's Issues

generate new datasets based on model-test

60% as training dataset
20% as validation dataset
20% as test dataset

Data should be distributed in a way that the same run isn't included in more than one dataset

All the data will be available in the publication

Baseline/Transformer comparison

Baseline is an algorithm that we use currently to assembly digits into UIC

  • Create a code that measures the performance of baseline vs transformer
  • Include different metrics such as precision/recall
  • Prepare the code to run a test on test dataset

Transformer training routine

Standardize the training routine from notebook/test_uic_models.py into one script. The goal is to make it possible for everyone to run it to reproduce our results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.