Simple image classification on raspberry pi from pi-camera (with cycle while) using the pre-trained model VGG16 and TensorFlow
Short summary:
In this article, I will explain, how to create simple image classification on raspberry pi from pi-camera (with cycle while) using the pre-trained model VGG16. In this example, I will use the pre-train model VGG16, but you can try to use any pre-train model. All code is located here.
Note before you start:
So, Let’s start :)
Hardware preparation:
Software preparation:
1 So, for that, you need to create a new file image_classify.py with the next code:
from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input, decode_predictions
import numpy as np
from picamera import PiCamera
import timemodel = VGG16(weights='imagenet')while True:
camera = PiCamera()
camera.capture('image.jpeg')
img_path = 'image.jpeg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = model.predict(x)
print('Result:', decode_predictions(preds, top=1)[0])
camera.close()
Let me explain what this code will do:
Add cycle “while”
while True:
At first, these two lines made a photo and save it to an image.jpeg file
camera = PiCamera()
camera.capture('image.jpeg')
After that, this code will classify (predict top 3 classes) what is in the photo
img_path = 'image.jpeg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = model.predict(x)
print('Result:', decode_predictions(preds, top=3)[0])
2 run script for recognizing the image.
python3 image_classify.py
3 You should see something like that. FPS +- 1.0
Result:
In this article, we created simple image classification on raspberry pi from pi-camera (with cycle while) using the pre-trained model VGG16. In this example, I using the pre-train model VGG16, but you can try to use any pre-train model. All code is located here.