1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonが嫌いなのでC++版のPytorchで画像認識をやってみる 15日目 C++でYolov8

Last updated at Posted at 2023-08-19

YoloV8

15日目とか書きつつ既に1年経ってしまった。オジサンの一生は短い。
もたもたしているうちにYoloがバージョンアップしてYoloV8が出てしまった。
性能的にガツンと上がったわけでは無さそうだけどCLIが用意され、普通のアプリケーションのようになってきた。次はGUIになっていよいよ「アプリ」になっていくのだろうか。

C++でYoloV8を動かす

C++とYolov8の組合せについて、日本語で調べてもあまり情報が無い。というか皆無。ChatGPT先生に聞いても「最近のことは分かりません」とツレナイ返事。何かいろいろ調べていたら、何のことは無い、公式にサンプルがあった。
ここ↓
ultralytics/examples/YOLOv8-CPP-Inference/inference.cpp

公式にあるんじゃ調べても出てこないわけだ。

動かし方

基本的にはyolov8のptファイルをonnxに変換し、opencvのdnnで動かせばいい。yolov5と同じである。注意点は下記の3点。

  • Onnx convert はyolov8のCLIを使う。こんな感じ。
yolo export model=yolov8m.pt format=onnx opset=12
  • OpenCV 4.8.0を使う
    CPUバージョンだと4.8.0でないと動かなかった。自分でコンパイルとしたGPUバージョンだと4.7.0でも動いた。余談だが、4.8.0だとGPUバージョンを自分でビルドしなくてもGPUに対応しているような気がするけどどうなのか。⇒ダメでした。
  • 出力のサイズが違う
    公式のコードを見れば分かる。

手順

別につまづきポイントが有ったわけではないけど、ptファイルのダウンロードするまでをサラッと手順をメモる。公式に手順が出ているので困ることは無いと思うが一応。

  1. yolov8用の作業フォルダを作る。
  2. pythonまたはcondaでyolov8の環境を作る。
  3. その環境をアクティベーション。
  4. 下記のコマンドでyolov8をインストール。
pip install ultralytics
  1. pip install requiement.txt はしなくていい
  2. pythonを起動
  3. pythonのプロンプトで、下記コードでptファイルをダウンロードする。
>>>from ultralytics import YOLO
>>> model = YOLO("yolov8s.pt")
>>> model = YOLO("yolov8s.pt")
>>> model = YOLO("yolov8m.pt")
>>> model = YOLO("yolov8l.pt")
>>> model = YOLO("yolov8x.pt")

これで作業フォルダにcocoの学習済みのptファイルが保存されている。別に自分でリンクを探して落としてもそんなもんだと思うけど。

次はいよいよソースを載せたいが・・・
つづく

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?