타이어 트레드 분석은 특히 장거리를 이동하는 차량의 마모를 식별하고 안전을 보장하는 데 중요한 작업입니다. 인공지능(AI)과 Python을 사용하면 이 프로세스를 빠르고 정확하게 자동화할 수 있습니다. 여기서는 VGG16 아키텍처를 기반으로 하는 CNN(컨벌루션 신경망) 모델이 타이어를 "새 제품" 또는 "중고"로 분류하는 방법을 보여주고, OpenCV는 이미지를 분석하여 트레드 깊이를 측정하는 데 도움을 줍니다.
사용된 기술
파이썬:
AI 및 기계 학습, 특히 고급 라이브러리에 널리 사용되는 프로그래밍 언어입니다.
OpenCV:
이미지 처리, 윤곽 감지, 타이어 트레드 면적 측정에 사용됩니다.
TensorFlow 및 Keras:
딥러닝 라이브러리. 우리는 Keras를 사용하여 이미지 인식을 위해 사전 훈련된 CNN인 VGG16 모델로 작업합니다.
매트플롯립:
데이터 시각화 및 그래프 생성을 위한 라이브러리로 분류 결과를 더욱 쉽게 해석할 수 있습니다.
코드:
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. 홈 깊이에 대한 윤곽 분석:
그루브 깊이 감지는 컴퓨터 비전 기술을 사용하여 수행됩니다. 그레이스케일 이미지는 홈 윤곽을 식별하는 데 도움이 되는 흐림 필터와 Canny 가장자리 감지를 거칩니다. 그런 다음 윤곽의 전체 면적을 계산하여 마모를 추정할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!