質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3204閲覧

YOLOv5での自作データで、detect.pyとPytorchで結果が違う

Gonnnn

総合スコア52

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/04/24 07:33

YOLOv5とPyTorchをインストールし画像を集め、タグをつけ

python train.py --data data.yaml --cfg yolov5m.yaml --weights '' --batch-size 8 --epochs 600

で学習し、おおよそ期待通りの学習結果を得ることができました。
生成されたbest.pyを

python detect.py --source data/images/ --weights original_pt\best.pt

で何枚か、画像を認識させると期待通りの結果が得られました。しかし、得られた結果からまた別の処理を書きたく、コマンドでの認識ではなくpythonで認識したい為

python

1img = cv2.imread('test.jpg') 2model = torch.hub.load("ultralytics/yolov5", 'custom', path='yolov5/original_pt/best.pt') 3result = model(img) 4cv2.imshow("test", result.imgs[0])

を実行すると、全く期待に沿ってない結果(認識の種類、大きさ、場所が全く違う)になってしまいます。

どうすれば、pythonで自作データの認識ができますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/04/24 07:45

detect.py」内のコードと同じ処理のコードを書いたらいいのでは?
guest

回答1

0

自己解決

jbpb0さんの言われている通りだと思い、コピペでは動かなかったのでコードを追っていくとdetect.py -> utils.datasets.py -> LoadImages で、opencvで画像を読み込んだあと、BGRをRGBに変換していることがわかりました。
そこで

python

1img = cv2.imread('test.jpg') 2img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 3model = torch.hub.load("ultralytics/yolov5", 'custom', path='yolov5/original_pt/best.pt') 4result = model(img) 5res_img = cv2.cvtColor(result.imgs[0], cv2.COLOR_RGB2BGR) 6cv2.imshow("test", res_img)

とすれば、PyTorchでも期待通りに認識してくれました。
ありがとうございました。

投稿2022/04/24 08:37

Gonnnn

総合スコア52

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問