The idea behind ScrubberWatch is to detect the level of emissions of incoming ships in the Hamburg Harbour using Computer Vision. Essentially, we try to classify whether the Scrubber is turned on based on the smoke the ships are emitting. For detailed information on the use-case, please refer to the One-Pager and the small technical report.
ScrubberWatch is the winning project of the EIT Digital DeepHack Hamburg. We thank all the mentors, the organizers and especially Carsten Bullemer for the valuable discussions, ideas and feedback.
The Dashboard is implemented in dash. To execute it, install the environment specified in the dashboard/requirements.txt
via pip install -r requirements.txt
. Then run python app.py
within the dashboard
directory.
Beware: the code for the dashboard is hackathon-quality!
- all relevant files are in subfolder
smoke_detection
-
Download the dataset from kaggle and unpack it into
smoke_detection
. You should now have the following folder structure:---smoke_detection/train/images/*.png
-
unzip the additional smoke data
ship_smokes_fume_pollution.zip
and link it to the train foldercd smoke_detection unzip ship_smokes_fume_pollution.zip mv ship_smokes_fume_pollution train/images
-
copy
train_smoke.csv
totrain
foldercp train_smoke.csv train
-
setup environment
conda create --name scrubberwatch python=3.7 pip install -r requirements.txt
-
train the recognition model
python smoke_classification.py
-
run inference on input image
python predict_smoke.py image.jpg
-
evaluation on validation set
python smoke_validation.py
- please refer to the small technical report.
- The ship labelling tool is a simple
jupyter notebook
withipywidgets
. It can be launched with
cd smoke_detection
jupyter-lab
# open ship_labeling_tool.ipynb
- Maximillian Franz
- Sandro Braun
- Leander Kurscheidt
- Carsten Bullemer - Thank you for valuable advice towards this project idea.