Giter Club home page Giter Club logo

association-rosia / vesuvius-challenge Goto Github PK

View Code? Open in Web Editor NEW
2.0 0.0 0.0 52.7 MB

Unveiling the secrets of an ancient library buried by Mount Vesuvius, this Kaggle competition, supported by the Vesuvius Challenge organization, tasked participants with detecting ink from 3D X-ray scans of charred scrolls preserved in a Roman villa in Herculaneum.

Home Page: https://www.kaggle.com/competitions/vesuvius-challenge-ink-detection

License: MIT License

Makefile 0.01% Jupyter Notebook 98.78% Python 1.21%
artificial-intelligence binary-segmentation deep-learning efficientunet ink-detection kaggle kaggle-competition kaggle-dataset pytorch pytorch-lightning

vesuvius-challenge's Introduction

πŸ“œ Vesuvius Challenge - Ink Detection

This exciting competition, available on Kaggle and supported by the Vesuvius Challenge organization, aims to bring back to life an ancient library buried under the ashes of a volcano. In this competition, our mission was to detect ink from 3D X-ray scanners. Thousands of scrolls were part of a library located in a Roman villa in Herculaneum. This villa was buried by the eruption of Mount Vesuvius nearly 2000 years ago. The scrolls were charred by the heat of the volcano and are now impossible to open without damaging them.

πŸ† Challenge ranking

The score of the challenge was the F0.5 score.
Our solution was in the top 10% (out of 1249 teams) with a F0.5 score equal to 0.620813 πŸŽ‰.

The podium:
πŸ₯‡ ryches - 0.682693
πŸ₯ˆ RTX23090 - 0.682443
πŸ₯‰ wuyu - 0.681137

πŸ› οΈ Data processing

Tilling Method

Ink labels with tilling method performing on it

In order to process the ultra-high definition images effectively, we employed an image tiling method. The images were divided into smaller sub-images with a size of 256 by 256 pixels to feed into the model. This approach allowed us to handle the large dataset more efficiently. Additionally, we implemented a selection criterion where we only considered tiles that contained a minimum of 5% ink pixels. By focusing on these specific tiles, we were able to concentrate our efforts on the areas most likely to contain valuable information within the ancient scrolls.

πŸ›οΈ Model architecture

Architecture of EficientUnet V2 model

πŸ“ Citing

@misc{RebergaUrgell:2023,
  Author = {Louis Reberga and Baptiste Urgell},
  Title = {Vesuvius Challenge - Ink Detection},
  Year = {2023},
  Publisher = {GitHub},
  Journal = {GitHub repository},
  Howpublished = {\url{https://github.com/association-rosia/vesuvius-challenge}}
}

πŸ›‘οΈ License

Project is distributed under MIT License

πŸ‘¨πŸ»β€πŸ’» Contributors

Louis REBERGA

Baptiste URGELL

Johan MONCOUTIÉ

vesuvius-challenge's People

Contributors

baptisteurgell avatar louisreberga avatar moncoutiej avatar

Stargazers

 avatar  avatar

vesuvius-challenge's Issues

When NUM_SLICES is not 2**n

File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/make_train.py", line 144, in
main()
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/make_train.py", line 25, in main
trainer.fit(model=model, train_dataloaders=train_dataloader, val_dataloaders=val_dataloader)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 520, in fit
call._call_and_handle_interrupt(
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/call.py", line 44, in _call_and_handle_interrupt
return trainer_fn(*args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 559, in _fit_impl
self._run(model, ckpt_path=ckpt_path)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 935, in _run
results = self._run_stage()
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 976, in _run_stage
self._run_sanity_check()
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/trainer.py", line 1005, in _run_sanity_check
val_loop.run()
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/loops/utilities.py", line 177, in _decorator
return loop_run(self, *args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 115, in run
self._evaluation_step(batch, batch_idx, dataloader_idx)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/loops/evaluation_loop.py", line 375, in _evaluation_step
output = call._call_strategy_hook(trainer, hook_name, *step_kwargs.values())
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/trainer/call.py", line 288, in _call_strategy_hook
output = fn(*args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/pytorch_lightning/strategies/strategy.py", line 378, in validation_step
return self.model.validation_step(*args, **kwargs)
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/lightning.py", line 50, in validation_step
outputs = self.forward(images)
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/lightning.py", line 38, in forward
x = self.pytorch_model(inputs)
File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/unet3d.py", line 114, in forward
x = self.decoder(x, list_skips)
File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/unet3d.py", line 84, in forward
x = decoderblock(x, skip)
File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/kaggle/working/vesuvius-challenge-ink-detection/src/models/unet3d.py", line 67, in forward
x = torch.cat([x, skip], dim=1)
RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 2 but got size 3 for tensor number 1 in the list.

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.