Heim > Backend-Entwicklung > Python-Tutorial > Reifenrillenanalyse mit künstlicher Intelligenz in Python!

Reifenrillenanalyse mit künstlicher Intelligenz in Python!

Barbara Streisand
Freigeben: 2024-11-03 07:30:30
Original
475 Leute haben es durchsucht

Die Analyse des Reifenprofils ist eine entscheidende Aufgabe, um Verschleiß zu erkennen und die Sicherheit zu gewährleisten, insbesondere bei Fahrzeugen, die lange Strecken zurücklegen. Mithilfe künstlicher Intelligenz (KI) und Python können wir diesen Prozess schnell und präzise automatisieren. Hier zeigen wir, wie ein Convolutional Neural Network (CNN)-Modell, das auf der VGG16-Architektur basiert, Reifen in „neu“ oder „gebraucht“ klassifiziert, während OpenCV bei der Analyse von Bildern hilft, um die Profiltiefe zu messen.

Verwendete Technologien

  • Python:
    Beliebte Programmiersprache für KI und maschinelles Lernen, insbesondere wegen ihrer erweiterten Bibliotheken.

  • OpenCV:
    Wird verwendet, um Bilder zu verarbeiten, Konturen zu erkennen und die Reifenprofilfläche zu messen.

  • TensorFlow und Keras:
    Deep-Learning-Bibliotheken. Wir verwenden Keras, um mit dem VGG16-Modell zu arbeiten, einem vortrainierten CNN für die Bilderkennung.

  • Matplotlib:
    Bibliothek zur Datenvisualisierung und Diagrammerstellung, die Klassifizierungsergebnisse besser interpretierbar macht.

Code:

1. Bilder laden und vorverarbeiten:
Reifenbilder werden hochgeladen und in der Größe auf ein Standardformat (150 x 150 Pixel) geändert, das für die Modelleingabe erforderlich ist. Diese Größenänderung behält das Seitenverhältnis bei und normalisiert Pixelwerte zwischen 0 und 1, um die Verarbeitung durch das Modell zu erleichtern.

import cv2
import numpy as np
from tensorflow.keras.applications.vgg16 import preprocess_input

def process_image(image_path, target_size=(150, 150)):
    image = cv2.imread(image_path)
    if image is None:
        print(f"Erro ao carregar a imagem: {image_path}. Verifique o caminho e a integridade do arquivo.")
        return None, None

    image_resized = cv2.resize(image, target_size, interpolation=cv2.INTER_AREA)
    image_array = np.array(image_resized) / 255.0  
    image_array = np.expand_dims(image_array, axis=0)
    image_preprocessed = preprocess_input(image_array)

    return image_resized, image_preprocessed

Nach dem Login kopieren

2. Klassifizierung mit dem trainierten Modell:
Wir haben ein vorab trainiertes neuronales Faltungsnetzwerkmodell geladen, das darauf abgestimmt wurde, Reifen als „neu“ oder „gebraucht“ zu klassifizieren. Dieses Modell liefert einen Konfidenzwert, der die Wahrscheinlichkeit angibt, dass ein Reifen neu ist.

from tensorflow.keras.models import load_model

model = load_model('pneu_classificador.keras')
prediction = model.predict(image_preprocessed)

Nach dem Login kopieren

3. Konturanalyse für Rillentiefe:
Die Erkennung der Rillentiefe erfolgt mithilfe von Computer-Vision-Techniken. Das Graustufenbild durchläuft einen Unschärfefilter und eine Canny-Kantenerkennung, die bei der Identifizierung von Rillenkonturen hilft. Anschließend berechnen wir die Gesamtfläche der Konturen, wodurch wir den Verschleiß abschätzen können.

def detect_tread_depth(image):
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    edges = cv2.Canny(blurred, 30, 100)
    contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    total_area = sum(cv2.contourArea(c) for c in contours if cv2.contourArea(c) > 100)
    return total_area

Nach dem Login kopieren

4. Visualisierung und Analyse der Ergebnisse:
Nach der Klassifizierung und Analyse jedes Reifens werden die Ergebnisse mit Matplotlib angezeigt. Wir haben den Klassifizierungskonfidenzwert und den in jedem Bild erkannten Rillenbereich verglichen.

import matplotlib.pyplot as plt

confidence_scores = []
total_area_green_values = []
predicted_classes = []

for image_file in os.listdir(ver_dir):
    image_path = os.path.join(ver_dir, image_file)
    image_resized, image_preprocessed = process_image(image_path)
    if image_preprocessed is not None:
        prediction = model.predict(image_preprocessed)
        confidence_score = prediction[0][0]
        total_area_green = detect_tread_depth(image_resized)

        predicted_class = "novo" if total_area_green > 500 else "usado"
        confidence_scores.append(confidence_score)
        total_area_green_values.append(total_area_green)
        predicted_classes.append(predicted_class)

        plt.imshow(cv2.cvtColor(image_resized, cv2.COLOR_BGR2RGB))
        plt.title(f"Pneu {predicted_class} (Área: {total_area_green:.2f}, Confiança: {confidence_score:.2f})")
        plt.axis('off')
        plt.show()

fig, axs = plt.subplots(2, 1, figsize=(10, 10))

axs[0].bar(os.listdir(ver_dir), confidence_scores, color='skyblue')
axs[0].set_title('Confiança na Classificação')
axs[0].set_ylim(0, 1)
axs[0].tick_params(axis='x', rotation=45)

axs[1].bar(os.listdir(ver_dir), total_area_green_values, color='lightgreen')
axs[1].set_title('Área Verde Detectada')
axs[1].tick_params(axis='x', rotation=45)

plt.tight_layout()
plt.show()

Nach dem Login kopieren

Análise de Sulco de Pneus com Inteligência Artificial em Python!

Análise de Sulco de Pneus com Inteligência Artificial em Python!

Análise de Sulco de Pneus com Inteligência Artificial em Python!

Dieses Projekt von mir zeigt, wie es möglich ist, die Reifenverschleißanalyse mithilfe von KI und Computer Vision zu automatisieren, was zu einer genauen und schnellen Klassifizierung führt. Die VGG16-Architektur und die Verwendung von OpenCV sind der Schlüssel zur Kombination der Genauigkeit neuronaler Netzwerkmodelle mit visueller Sulci-Analyse. Dieses System kann für eine kontinuierliche Überwachung aller Fahrzeugflotten erweitert werden, was dazu beiträgt, Unfälle zu reduzieren und das Reifenmanagement zu optimieren.

Das obige ist der detaillierte Inhalt vonReifenrillenanalyse mit künstlicher Intelligenz in Python!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage