Repository for Course AI in WiSe 2022 at DHBW Mannheim.
Ziel war es, mit einm RaspberryPi aufgenommene Fotos lokal zu klassifizieren. Dafür wurde mit Tensorflow ein Image Classifier trainiert und anschließend in ein Tensorflow lite Modell umgewandelt. Diese wurde auf dem RaspberryPi ausgeführt.
- Ein passender Trainingsdatensatz wurde online gesucht (Quelle)
- Training eines eigenen CNNs, dabei wurde berücksichtigt und getestet: (
EigenesModel.ipynb
)- verschiedene Modell-Architekturen (Layer Arten und Aufbau)
- Drop-outs
- Image Augmentation
- Transfer Learning auf Grundlage des ResNet50 (
TransferLearning.ipynb
) - Konvertierung in Tensorflow lite Modell
- Hardware Setup: RaspberryPi mit Kamera und GPIO Button einrichten
- Script zur Aufnahme von Bilder mit RapsberryPi
- Tensorflow lite Model für Vorhersage verwendet
Eigenes Model: ca. 65% val accuracy
Transfer Learning: ca. 85% val accuracy
- Raspberry Pi
- Camera Module
- lots of braincells
- Extract
./data/dataset-resized.zip
into./data/
- Create new folder
./images/
- Prepare python enviroment according to
requirements.txt
- Run Notebook of your choice, set attributes according to your desired exports (eg. Images, Model, TF_lite model, ...)
- For custom model run
EigenesModel.ipynb
- For transfer learning run
TransferLearning.ipynb
- For custom model run
- Conver the choosen model to TFlite by setting
convert_model = False
in the corresponding notebook block - For RaspberryPi deployment see: https://github.com/maximilian-graf2019/trashAI_pi
- https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/4
- https://projects.raspberrypi.org/en/projects/push-button-stop-motion/4
- https://techoverflow.net/2019/07/24/how-to-capture-raspi-camera-image-using-opencv-python/
- https://stackoverflow.com/questions/9427553/how-to-download-a-file-from-server-using-ssh
- https://www.tensorflow.org/overview
- https://www.tensorflow.org/lite
Added Notes: