객체 감지는 컴퓨터 비전에서 가장 흥미로운 영역 중 하나이며, 이를 통해 기계는 이미지나 비디오에서 객체를 인식하고 찾을 수 있습니다. 이 가이드에서는 Python을 사용한 객체 감지 방법을 소개하여 널리 사용되는 라이브러리를 사용하여 기본 감지 파이프라인을 구현하는 데 도움을 줍니다. 초보자이거나 기존 기술을 기반으로 하려는 경우 이 튜토리얼은 시작하는 데 필수적인 통찰력을 제공합니다.
객체 감지에는 두 가지 기본 작업이 포함됩니다.
이는 모델이 클래스 라벨만 예측하는 단순한 이미지 분류보다 더 복잡합니다. 객체 감지를 위해서는 이미지 내 객체의 클래스와 위치를 모두 예측해야 합니다.
Python에서 객체 감지를 시작하려면 몇 가지 라이브러리가 필요합니다.
python.org로 이동하여 최신 버전의 Python(3.8+)을 다운로드하세요.
이미지 처리에는 OpenCV를 사용하고 객체 감지에는 TensorFlow를 사용하겠습니다.
pip install opencv-python tensorflow
선택적으로 Matplotlib를 설치하여 탐지 결과를 시각화할 수 있습니다.
pip install matplotlib
처음부터 훈련하는 대신 TensorFlow의 객체 감지 API 또는 PyTorch에서 사전 훈련된 모델을 사용하세요. 사전 학습된 모델은 COCO(Common Objects in Context)와 같은 데이터 세트를 활용하여 리소스를 절약합니다.
이 튜토리얼에서는 빠르고 정확한 사전 학습된 모델인 TensorFlow의 ssd_mobilenet_v2를 사용합니다.
간단한 객체 감지 파이프라인을 구현하는 방법은 다음과 같습니다.
import tensorflow as tf # Load the pre-trained model model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")
TensorFlow의 모델 동물원에서 모델을 다운로드할 수 있습니다.
import cv2 import numpy as np # Load an image using OpenCV image_path = 'image.jpg' image = cv2.imread(image_path) # Convert the image to a tensor input_tensor = tf.convert_to_tensor(image) input_tensor = input_tensor[tf.newaxis, ...]
# Run inference on the image detections = model(input_tensor) # Extract relevant information like bounding boxes, classes, and scores num_detections = int(detections.pop('num_detections')) detections = {key: value[0, :num_detections].numpy() for key, value in detections.items()} boxes = detections['detection_boxes'] scores = detections['detection_scores'] classes = detections['detection_classes'].astype(np.int64)
# Draw bounding boxes on the image for i in range(num_detections): if scores[i] > 0.5: # Confidence threshold box = boxes[i] h, w, _ = image.shape y_min, x_min, y_max, x_max = box start_point = (int(x_min * w), int(y_min * h)) end_point = (int(x_max * w), int(y_max * h)) # Draw rectangle cv2.rectangle(image, start_point, end_point, (0, 255, 0), 2) # Display the image cv2.imshow("Detections", image) cv2.waitKey(0) cv2.destroyAllWindows()
이 코드는 이미지를 로드하고 객체를 감지한 후 경계 상자로 시각화합니다. 신뢰도 임계값은 50%로 설정되어 신뢰도가 낮은 탐지를 필터링합니다.
객체 감지 기술을 한 단계 더 발전시킬 준비가 되셨나요?
Python의 객체 감지는 의료, 보안, 자율 주행과 같은 산업에서 가능성의 세계를 열어줍니다. TensorFlow 및 OpenCV와 같은 도구를 사용하면 YOLO 또는 SSD와 같은 사전 학습된 모델을 사용하여 감지 파이프라인을 빠르게 구현할 수 있습니다. 기본 사항에 익숙해지면 실시간 감지 및 맞춤 모델 학습과 같은 고급 주제를 탐색할 수 있습니다.
다음에는 객체 감지를 어디에 적용할 예정인가요? 아래 댓글로 토론해 보세요!
위 내용은 Python의 객체 감지에 대한 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!