Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python】YOLO を使った簡単なセグメンテーション処理の紹介

 YOLO(You Only Look Once)は、リアルタイム物体検出やセグメンテーションに利用される人気のあるディープラーニングモデルです。

 本記事では、YOLOv8 のセグメンテーションモデル をダウンロードし、YOLO の公式バス画像 を用いたシンプルなセグメンテーション処理を行う方法を紹介します。

 

YOLOのv8の場合、まずは ultralytics ライブラリをインストールし、YOLOv8 のセグメンテーションモデルをダウンロードします。

 

pip install ultralytics

 

また、コードの先頭では以下のコードを記載してYOLOをインポートします。

 

from ultralytics import YOLO

 

 

これを使用したYOLOによる簡単なサンプルコードは以下になります。

 

from ultralytics import YOLO

# YOLOv8セグメンテーションモデル
model = YOLO('yolov8x-seg.pt')  # 事前学習済みの重みを使用

# YOLOのサンプルイメージファイルを使用
source = "https://ultralytics.com/images/bus.jpg"

# モデルでの予測実行
results = model.predict(source, save=True, imgsz=320, conf=0.5)

 

簡単な内容説明です。

以下はYOLOのモデルを読み込んでmodelに設定しています。

 

model = YOLO('yolov8x-seg.pt')  # 事前学習済みの重みを使用

 

その次の

 

source = "https://ultralytics.com/images/bus.jpg"

 

については、YOLOが用意しているサンプル用のイメージファイルを読み込んでsourceに設定しています。

 

最後に以下により、設定したイメージファイルについて設定したモデルでの予測を行っています。

 

results = model.predict(source, save=True, imgsz=320, conf=0.5)

 

これにより、指定したフォルダ配下の、

 

\runs\segment\predict

 

の中に予測結果のファイルとして、

 

bus.jpg

 

という画像ファイルが生成されています。

 

ファイルの中身はバスのセグメンテーションマスクが適用された画像 になります。
物体の輪郭がはっきりと捉えられ、背景と区別されるのが確認できるはずです。