【Python3】Mac M1でYolov8の環境を構築する方法
おはこんばんにちは、せなです。
今回はMacでYolov8の環境を構築する方法について説明したいと思います。
はじめに
Yolov8はYolov5の後継としてUltralytics社より公開されたYoloの最新物体検出モデルです。(2023年6月現在)
以下はYolov8のgithubリポジトリにて公開されている、パラメータ数と精度の比較グラフとなります。
Yolov5と比較するとパラメータ数を削減しつつ、精度が向上されていることを確認できるかと思います。
モデルの精度については以下の表が確認しやすいですね。
Yolov8の環境構築
まずは、以下のコマンドでPythonのバージョンが3.8以上であることを確認してください。
python -V
Yolov8ではPythonのバージョンは3.7以上であることが条件となっています。
ですが、動作させるために必須のPytorchでは3.8以上が求められているので、3.8以上とする必要があります。
※私はPython3.8の最新である3.8.16で環境を構築しています。
次に、以下のコマンドでライブラリをインストールします。
pip install ultralytics
インストールが完了したら、念のためpython
でCLIを起動してインポートが行えるか確認しましょう。
from ultralytics import YOLO
ModuleNotFoundError
が発生しなければ問題ありません。
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関係の記事を書けたらなと思います。
ではでは〜
ディスカッション
コメント一覧
まだ、コメントがありません