YOLOの性能確認

サッと確認しようと最新の Ultralytics yoloを実行したところ思ったより性能が出ませんでした。
調査してみたいと思います。

技術確認のために利用させていただいた画像

あくまで技術研究のためとして、
人数の数えやすいタレントさまの画像を利用させていただきました。

権利者さまにおかれましては、問題ある場合は削除しますのでご指摘いただけますと幸いです。

目次

検証 AKB16人画像

yolo11n : 16人中17 (?)

from ultralytics import YOLO
model = YOLO('yolo11n.pt')  

classes = [0] # 人間だけ

results = model("/content/16.jpg", classes=classes, show_labels=False, save=True, project='./' )

画像ファイルは https://x.com/AKB48_staff からお借りしました。

結果

image 1/1 /content/18.jpg: 448x640 17 persons, 10.1ms
Speed: 3.3ms preprocess, 10.1ms inference, 1.9ms postprocess per image at shape (1, 3, 448, 640)
https://x.com/AKB48_staff

一番左と後列右側、1名が2名としてカウントされてしまったようです。
後列真ん中の方がカウントできていないので、他でも重複がいくつかありそうです。

yolo11x (大きめモデル) : 16人中17 (?)

結果

image 1/1 /content/16.jpg: 448x640 17 persons, 58.9ms
Speed: 2.8ms preprocess, 58.9ms inference, 1.8ms postprocess per image at shape (1, 3, 448, 640)

今度は、前列の真ん中の方で「上半身と下半身が別の人間」とカウントされてしまったようです。

yolo11x-seg : 16人中17

結果

image 1/1 /content/16.jpg: 448x640 17 persons, 68.0ms
Speed: 2.8ms preprocess, 68.0ms inference, 2.9ms postprocess per image at shape (1, 3, 448, 640)

同様です。中央手前の方が2人分としてカウントされたようです。

yolo11x-pose : 16人中18

結果

image 1/1 /content/16.jpg: 448x640 18 persons, 59.3ms
Speed: 2.9ms preprocess, 59.3ms inference, 2.1ms postprocess per image at shape (1, 3, 448, 640)

更に増えました。
不足してるよりかは、良いのかも知れません。

yolov8x-pose-p6(古いバージョン) : 16人中16 !

結果

image 1/1 /content/16.jpg: 896x1280 16 persons, 171.3ms
Speed: 8.7ms preprocess, 171.3ms inference, 2.2ms postprocess per image at shape (1, 3, 896, 1280)

サイズが倍なので当然と言えば当然なのですが、
特に用意せず4行ぐらいのスクリプトで結果を取りたいのであれば、昔のv8モデルでも良さそうです。

yolo12n (新しいモデル) : 16人中 16、ただし検出ミス

後列右側の方を2人分としてカウント。

yolo12x (新しいモデルで最大) : 16人中16!

的確に検出出来ているようです。

検証の2 何人検出するか

今度は、何人検出できるか確認してみます。

yolov8x-pose-p6 : 29 persons

yolov8x : 19 persons

yolo11x : 13 persons

yolo12x : 10 persons

画像の解析における比較の所感

性能を確認するつもりでしたが、以下が見て取れました。

  • 新しいものほど精度が上がっている
  • 古いものほど、検出数が多い

「性能が出ない」ような印象があったのですが、検出される数自体が減っていたためにそう思ったのであり、
精度は上がっているようです。

仮説 :単に画像内の人間のサイズが小さすぎるために検出出来ていない問題であれば、大きな画像を4分割にしたあとアップスケールするなどしたほうが効くのではないか

検出スピードも上がっているので、もしかすると処理前に画像を分割し、高画質化したものをそれぞれ処理するなどしてみても良いかも知れません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次