タイヤのトレッド分析は、特に長距離を走行する車両において摩耗を特定し、安全性を確保するための重要なタスクです。人工知能 (AI) と Python を使用すると、このプロセスを迅速かつ正確に自動化できます。ここでは、VGG16 アーキテクチャに基づく畳み込みニューラル ネットワーク (CNN) モデルがタイヤを「新品」または「中古」に分類する方法を示し、同時に OpenCV が画像分析を支援して溝の深さを測定する方法を示します。
使用されているテクノロジー
Python:
AI と機械学習、特に高度なライブラリで人気のプログラミング言語。
OpenCV:
画像の処理、輪郭の検出、タイヤのトレッド面積の測定に使用されます。
TensorFlow と Keras:
深層学習ライブラリ。 Keras を使用して、画像認識用の事前トレーニング済み CNN である VGG16 モデルを操作します。
Matplotlib:
データの視覚化とグラフ作成のためのライブラリ。分類結果をより解釈しやすくします。
コード:
1.画像の読み込みと前処理:
タイヤ画像がアップロードされ、モデル入力に必要な標準形式 (150x150 ピクセル) にサイズ変更されます。このサイズ変更により、アスペクト比が維持され、ピクセル値が 0 と 1 の間で正規化され、モデルの処理が容易になります。
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.トレーニング済みモデルによる分類:
タイヤを「新品」または「中古」に分類するために微調整された、事前トレーニング済みの畳み込みニューラル ネットワーク モデルをロードしました。このモデルは、タイヤが新品である可能性を示す信頼スコアを提供します。
from tensorflow.keras.models import load_model model = load_model('pneu_classificador.keras') prediction = model.predict(image_preprocessed)
3.溝深さの輪郭解析:
溝の深さの検出は、コンピューター ビジョン技術を使用して実行されます。グレースケール画像はぼかしフィルターとキャニーエッジ検出を通過し、溝の輪郭を識別するのに役立ちます。次に、等高線の合計面積を計算し、摩耗を推定できるようにします。
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.結果の視覚化と分析:
各タイヤを分類して分析した後、Matplotlib で結果を表示します。分類信頼スコアと各画像で検出された溝領域を比較しました。
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()
私のこのプロジェクトは、AI とコンピューター ビジョンを使用してタイヤ摩耗分析を自動化し、正確かつ迅速に分類できる方法を示しています。 VGG16 アーキテクチャと OpenCV の使用は、ニューラル ネットワーク モデルの精度と視覚溝分析を組み合わせる鍵となります。このシステムは、車両全体を継続的に監視するように拡張でき、事故の削減とタイヤ管理の最適化に役立ちます。
以上がPythonの人工知能でタイヤ溝解析!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。