物体検出は、コンピューター ビジョンの最も興味深い分野の 1 つであり、機械が画像やビデオ内の物体を認識して位置を特定できるようになります。このガイドでは、Python を使用したオブジェクト検出について紹介し、一般的なライブラリを使用して基本的な検出パイプラインを実装するのに役立ちます。初心者でも、既存のスキルをさらに強化したい場合でも、このチュートリアルは開始するための重要な洞察を提供します。
物体検出には 2 つの主要なタスクが含まれます:
これにより、モデルがクラス ラベルを予測するだけの単純な画像分類よりも複雑になります。物体検出には、画像内の物体のクラスと位置の両方を予測する必要があります。
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 中国語 Web サイトの他の関連記事を参照してください。