- Teachable Machine pour créer nos données d'entraînement. - Une caméra pour détecter les objets. - TensorFlow pour entraîner l’IA et faire les prédictions. - ThingsBoard pour visualiser les classes triées. - PyCharm et Arduino comme environnements de développement.
# Chargement du modèle
model = load_model("keras_Model.h5", compile=False)
# Traitement image
image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
image = ImageOps.fit(image, (224, 224), Image.Resampling.LANCZOS)
image_array = np.asarray(image)
normalized_image_array = (image_array.astype(np.float32) / 127.5) - 1
data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)
data[0] = normalized_image_array
# Prédiction
prediction = model.predict(data)
index = np.argmax(prediction)
class_name = class_names[index].strip()
confidence_score = prediction[0][index]
# Compteurs de classes
count_class_1 = 0
count_class_2 = 0
count_class_3 = 0
# Configuration ThingsBoard
THINGSBOARD_TOKEN = "nmRl1OogQbYv9fERSJBw"
THINGSBOARD_URL = f"https://demo.thingsboard.io/api/v1/{THINGSBOARD_TOKEN}/telemetry"
def send_to_thingsboard(c1, c2, c3):
payload = {
"count_class_1": c1,
"count_class_2": c2,
"count_class_3": c3
}
try:
response = requests.post(THINGSBOARD_URL, json=payload, timeout=5)
if response.status_code == 200:
print("[ThingsBoard] Données envoyées avec succès")
else:
print(f"[ThingsBoard] Erreur HTTP : {response.status_code}")
except Exception as e:
print(f"[ThingsBoard] Exception : {e}")