Analisis bunga tayar adalah tugas penting untuk mengenal pasti haus dan memastikan keselamatan, terutamanya dalam kenderaan yang melakukan perjalanan jauh. Menggunakan Kecerdasan Buatan (AI) dan Python, kami boleh mengautomasikan proses ini dengan cepat dan tepat. Di sini, kami menunjukkan cara model rangkaian neural convolutional (CNN), berdasarkan seni bina VGG16, mengklasifikasikan tayar kepada "baharu" atau "terpakai", manakala OpenCV membantu menganalisis imej untuk mengukur kedalaman bunga.
Teknologi Digunakan
Python:
Bahasa pengaturcaraan popular untuk AI dan Pembelajaran Mesin, terutamanya untuk perpustakaan canggihnya.
OpenCV:
Digunakan untuk memproses imej, mengesan kontur dan mengukur kawasan bunga tayar.
TensorFlow dan Keras:
Perpustakaan pembelajaran mendalam. Kami menggunakan Keras untuk bekerja dengan model VGG16, CNN terlatih untuk pengecaman imej.
Matplotlib:
Pustaka untuk visualisasi data dan penciptaan graf, menjadikan hasil klasifikasi lebih boleh ditafsirkan.
Kod:
1. Muatkan dan Pra-proses Imej:
Imej tayar dimuat naik dan diubah saiz kepada format standard (150x150 piksel) yang diperlukan untuk input model. Saiz semula ini mengekalkan nisbah bidang dan menormalkan nilai piksel antara 0 dan 1 untuk memudahkan model diproses.
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
2. Klasifikasi dengan Model Terlatih:
Kami memuatkan model rangkaian saraf konvolusi yang telah terlatih, yang diperhalusi untuk mengklasifikasikan tayar sebagai "baru" atau "terpakai". Model ini memberikan skor keyakinan yang menunjukkan kebarangkalian bahawa tayar adalah baharu.
from tensorflow.keras.models import load_model model = load_model('pneu_classificador.keras') prediction = model.predict(image_preprocessed)
3. Analisis Kontur untuk Kedalaman Alur:
Pengesanan kedalaman alur dilakukan menggunakan teknik penglihatan komputer. Imej skala kelabu melalui penapis kabur dan pengesanan tepi Canny, yang membantu mengenal pasti kontur alur. Kami kemudian mengira jumlah luas kontur, yang membolehkan kami menganggarkan haus.
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
4. Visualisasi dan Analisis Keputusan:
Selepas mengklasifikasikan dan menganalisis setiap tayar, hasilnya dipaparkan dengan Matplotlib. Kami membandingkan skor keyakinan pengelasan dan kawasan alur yang dikesan dalam setiap imej.
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()
Projek saya ini menunjukkan cara mengautomasikan analisis haus tayar menggunakan AI dan penglihatan komputer, menghasilkan pengelasan yang tepat dan pantas. Seni bina VGG16 dan penggunaan OpenCV adalah kunci untuk menggabungkan ketepatan model rangkaian saraf dengan analisis sulci visual. Sistem ini boleh dikembangkan untuk pemantauan berterusan merentas armada kenderaan, membantu mengurangkan kemalangan dan mengoptimumkan pengurusan tayar.
Atas ialah kandungan terperinci Analisis Alur Tayar dengan Kepintaran Buatan dalam Python!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!