Closed11

[Python / YOLO] 画像認識

あざらしあざらし

設定をみてみる

from ultralytics import settings

# View all settings
print(settings)

出力結果はJSONで吐き出されるので各項目に何が設定されているか見れるよ

あざらしあざらし

モードの種類

https://github.com/ultralytics/ultralytics/blob/main/docs/en/modes/index.md

Train

トレーニングモード。つまり学習させる場合はこれを使う

Val

トレーニングモードが完了したあと、検証するために使うモード

Predict

トレーニングされたモデルを使用して、新しい画像ではどうなるか予想するためのモード
→画像認識自体はこれを使えばよさそうね

Export

モデルをエクスポートするためのモード

Track

モデルを使用してリアルタイムでオブジェクトを追跡するためのモード
ライブとかリアルタイム監視とかに使う

Benchmark

どれだけの速度と精度を持つかを測定するためのモード

あざらしあざらし

model.predict

from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO('yolov8n.pt')

# Run inference on 'bus.jpg' with arguments
model.predict('bus.jpg', save=True, conf=0.5)

を理解する。というか model.predict(hoge)を理解する

source

引数① 'bus.jpg'
→画像認識する対象のパスをここで設定する

save

引数② save=True
→認識結果を別画像に保存するかどうか
 結果の共有とかをしたい場合はあるとべんり

conf

引数③ conf=0.5
→信頼度の閾値。この値以下の信頼度で検出されたオブジェクトは無視される

そのほかにも色々設定できる
https://github.com/ultralytics/ultralytics/blob/main/docs/en/modes/predict.md#inference-arguments

あざらしあざらし

results

model.predict('bus.jpg', save=True, conf=0.5)

ではなく、

results = model('bus.jpg')

で呼び出すと、results の中に画像認識で取得できたすべてのデータを入れることができる
また、画像認識したい対象の画像は model(['bus.jpg', 'zidane.jpg']) みたいに複数設定できる

ので、例えば results.speedとかだと処理にかかった時間を取得できる

何ができるかは以下にある

https://github.com/ultralytics/ultralytics/blob/main/docs/en/modes/predict.md#working-with-results

あざらしあざらし

トレーニングしろとか言われたので

やることになった。
画像を準備してアノテーションしてトレーニングして検証したら一連の学習ができそう。

アノテーション

「注釈」や「注解」という意味を示す英単語です。ITの分野では、テキストや音声、画像、動画などあらゆる形態のデータの1つ1つに、タグやメタデータと呼ばれる情報を付けていく工程のことをアノテーションと呼んでいます。

https://www.science.co.jp/annotation_blog/30313/

つまり、画像に対して「ここに○○があるよ!!!」とかって情報をつけていくこと
アノテーションツールとしては「labelimg」を使用した

venvとか仮想環境でやるのがいいみたい(yolov8のyamlとか編集するからね)

labelimgで矩形選択しようとしたらエラー吐いて死ぬ

ここに載ってる方法で解決
https://note.com/nagisa_hoshimori/n/n4bb4a4a5019d

このスクラップは2024/03/18にクローズされました