【Python3】Mac M1でYolov8の環境を構築する方法
おはこんばんにちは、せなです。
今回はMacでYolov8の環境を構築する方法について説明したいと思います。
はじめに
Yolov8はYolov5の後継としてUltralytics社より公開されたYoloの最新物体検出モデルです。(2023年6月現在)
以下はYolov8のgithubリポジトリにて公開されている、パラメータ数と精度の比較グラフとなります。
Yolov5と比較するとパラメータ数を削減しつつ、精度が向上されていることを確認できるかと思います。

モデルの精度については以下の表が確認しやすいですね。

Yolov8の環境構築
まずは、以下のコマンドでPythonのバージョンが3.8以上であることを確認してください。
python -VYolov8ではPythonのバージョンは3.7以上であることが条件となっています。
ですが、動作させるために必須のPytorchでは3.8以上が求められているので、3.8以上とする必要があります。
※私はPython3.8の最新である3.8.16で環境を構築しています。
次に、以下のコマンドでライブラリをインストールします。
pip install ultralyticsインストールが完了したら、念のためpythonでCLIを起動してインポートが行えるか確認しましょう。
from ultralytics import YOLOModuleNotFoundErrorが発生しなければ問題ありません。
Yolov8で推論を行って検知イメージを表示する
実際に推論を行ってイメージの表示まで行ってみましょう。
以下にサンプルコードを記載しますので、コピーして実行してみてください。
(画像の書き出しにopencvが必要なため、pip install opencv-pythonでインストールを行なってください。)
from ultralytics import YOLO
import cv2
import requests
def yolov8_predict(results):
    result = results[0].numpy()
    classes = result.boxes.cls
    confidence = result.boxes.conf
    bbox = result.boxes.xyxy
    for cls, conf, xyxy in zip(classes, confidence, bbox):
        xmin, ymin, xmax, ymax = xyxy
        url = "https://ultralytics.com/images/bus.jpg"
        response = requests.get(url)
        with open("bus.jpg", "wb") as f:
            f.write(response.content)
        img = cv2.imread("bus.jpg")
        cv2.rectangle(img,
                      pt1=(int(xmin), int(ymin)),
                      pt2=(int(xmax), int(ymax)),
                      color=(0, 0, 255),
                      thickness=3)
        cv2.imwrite("bus_result.jpg", img)
if __name__ == "__main__":
    model = YOLO('yolov8l.pt')
    results = model('https://ultralytics.com/images/bus.jpg', save=False)
    yolov8_predict(results)処理内容の説明については後日、別記事にまとめようかと思いますので割愛します。
実行すると以下のように検知した対象にバウンディングボックスを表示して出力することができますね。

最後に
以上で、Yolov8の環境構築&推論の実行例となります。
意外と簡単にできてしまいますね。
次回もYolov8関係の記事を書けたらなと思います。
ではでは〜





ディスカッション
コメント一覧
まだ、コメントがありません