🦊

[Python / YOLOv8] Webえんじにゃ、物体検知をする①仮想環境構築まで

2024/03/19に公開

Webえんじにゃです
機械学習は大学時代(n>1 年前🤔)にチョトヤッタくらいのレベルです
当時とはだいぶ進化している…ので1からやっていきます
今回はPythonとYOLOv8を使って機械学習して物体検知にとりくみます

長くなるので分割して記事にしていきます

[Python / YOLOv8] Webえんじにゃ、物体検知をする①仮想環境構築まで
[Python / YOLOv8] Webえんじにゃ、物体検知をする②YOLOv8で簡単に遊ぶ
[Python / YOLOv8] Webえんじにゃ、物体検知をする③学習の準備
[Python / YOLOv8] Webえんじにゃ、物体検知をする④学習モデルを自作する

つかうもの

  • Python 3.11.0
  • YOLOv8 (ultralytics)
  • labelimg

使うツール/単語などの紹介

そもそも YOLO とは

物体を検出するときに使用されるアルゴリズムのこと。とくにリアルタイム検出アルゴリズムと言われるようです
→処理速度が速く正確性が高いことが特徴!っょそう

https://aismiley.co.jp/ai_news/yolo/

ほかにもR-CNNなどのようなアルゴリズムがあるよ

生みの親は Joseph Redmon さん
Darknet っていう如何にも怪しそうな名前をしている…😎
(あざらしは本当にアクセスしても大丈夫なやつなのか最初ビビッたよ…)

https://github.com/pjreddie/darknet

では YOLOv8 とは

Ultralytics 社が2023年1月にリリースしたモデル
コードを書かずにYOLOモデルの学習や推論が可能になった!これはっょぃ(確信)
https://www.ultralytics.com/ja
https://github.com/ultralytics/ultralytics

labelimg とは

物体検出タスクのためのオープンソースのアノテーションツールのこと

https://github.com/HumanSignal/labelImg
https://tech.aru-zakki.com/how-to-use-labelimg/

アノテーションとは

テキストや音声・画像といったデータに、ラベル・タグやメタデータを付ける作業のこと
物体検出でのアノテーションとは、検出したい物体に枠とラベル・タグをつけていく
→これを何枚もの画像で行ってから機会に学習させるのであるぞ!

環境構築

仮想環境下にて作業するのがおすすめです!
(理由:インストールしたパッケージを編集するため。ぶっ壊しても悲しくないように仮想環境でゴリゴリやります)

  1. とりあえず mkdir でプロジェクトフォルダを作る
  2. フォルダ直下に移動して、下記を実行する
python -m venv venv
  1. venv フォルダができたら下記を実行し、仮想環境を構築
.\venv\Scripts\activate

⇒カレントディレクトリの表示の前に (venv) が出てこればOK
 以降はこの仮想環境が立ち上がっている状態(venv直下)で作業を進めます

  1. YOLOv8 をインストール
pip install ultralytics

これだけ唱えておけば、あとは必要なものは良しなに入れてくれます

  1. labelimg をインストール
pip install labelimg

あとは 仮想環境下で labelimg を実行すればツールのウィンドウが開きます

今回はここまで

次は実際に YOLOv8 を使って遊んでみます

Discussion