[Python / YOLO] 画像認識
ultralytics
YOLO Python クイックスタート
設定をみてみる
from ultralytics import settings
# View all settings
print(settings)
出力結果はJSONで吐き出されるので各項目に何が設定されているか見れるよ
公式ドキュメント
モードの種類
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
→信頼度の閾値。この値以下の信頼度で検出されたオブジェクトは無視される
そのほかにも色々設定できる
results
model.predict('bus.jpg', save=True, conf=0.5)
ではなく、
results = model('bus.jpg')
で呼び出すと、results の中に画像認識で取得できたすべてのデータを入れることができる
また、画像認識したい対象の画像は model(['bus.jpg', 'zidane.jpg'])
みたいに複数設定できる
ので、例えば results.speed
とかだと処理にかかった時間を取得できる
何ができるかは以下にある
トレーニングしろとか言われたので
やることになった。
画像を準備してアノテーションしてトレーニングして検証したら一連の学習ができそう。
アノテーション
「注釈」や「注解」という意味を示す英単語です。ITの分野では、テキストや音声、画像、動画などあらゆる形態のデータの1つ1つに、タグやメタデータと呼ばれる情報を付けていく工程のことをアノテーションと呼んでいます。
つまり、画像に対して「ここに○○があるよ!!!」とかって情報をつけていくこと
アノテーションツールとしては「labelimg」を使用した
venvとか仮想環境でやるのがいいみたい(yolov8のyamlとか編集するからね)
labelimgで矩形選択しようとしたらエラー吐いて死ぬ
ここに載ってる方法で解決
Learn OpenCV にあったYOLOv8
いったん基礎は理解した
アノテーションめんどくせーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーと思ったら確かにこの方法で後半は楽できるきがする