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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

YOLO

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

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

Q&A

2回答

1401閲覧

※急募 物体検出で個数がカウントされない

hona_tan

総合スコア45

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

YOLO

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

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

0グッド

0クリップ

投稿2022/11/14 08:55

編集2022/11/21 08:11

物体検出数のカウント出力を試みています。
物体検出数のカウント出力の項目でつまづいてしまいました。

エラーは出ていないのですが、個数がカウントされません。
どうすればいいかご教授いただければ幸いです。

detect_2.pyのダウンロード先

追加したコード↓

# Write results for *xyxy, conf, cls in reversed(det): if save_txt: # Write to file xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() # normalized xywh line = (cls, *xywh, conf) if save_conf else (cls, *xywh) # label format with open(f'{txt_path}.txt', 'a') as f: f.write(('%g ' * len(line)).rstrip() % line + '\n') if save_img or save_crop or view_img: # Add bbox to image c = int(cls) # integer class label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f}') annotator.box_label(xyxy, label, color=colors(c, True)) if save_crop: save_one_box(xyxy, imc, file=save_dir / 'crops' / names[c] / f'{p.stem}.jpg', BGR=True) # Print counter n_1 = (det[:, -1] == 0).sum() #ラベルAの総数をカウント a = f"{n_1} "#{'A'}{'s' * (n_1 > 1)}, " cv2.putText(im0, "cabbage counter " , (20, 50), 0, 1.0, (71, 99, 255), 3) cv2.putText(im0, "A : " + str(a), (20, 100), 0, 1.5, (71, 99, 255), 3) n_2 = (det[:, -1] == 1).sum() #ラベルBの総数をカウント b = f"{n_2} "#{'A'}{'s' * (n_1 > 1)}, " cv2.putText(im0, "B : " + str(b), (20, 150), 0, 1.5, (0, 215, 255), 3) n_3 = (det[:, -1] == 2).sum() #ラベルCの総数をカウント d = f"{n_3} "#{'A'}{'s' * (n_1 > 1)}, " cv2.putText(im0, "C : " + str(d), (20, 200), 0, 1.5, (154, 250, 0), 3)

printしたコード↓

# Print results t = tuple(x.t / seen * 1E3 for x in dt) # speeds per image LOGGER.info(f'Speed: %.1fms pre-process, %.1fms inference, %.1fms NMS per image at shape {(1, 3, *imgsz)}' % t) if save_txt or save_img: s = f"\n{len(list(save_dir.glob('labels/*.txt')))} labels saved to {save_dir / 'labels'}" if save_txt else '' LOGGER.info(f"Results saved to {colorstr('bold', save_dir)}{s}") if update: strip_optimizer(weights[0]) # update model (to fix SourceChangeWarning)   #print print(FILE, ROOT, source, save_img, is_file, is_url, webcam, save_dir, device, model, stride, names, pt, imgsz, view_img, dataset, bs, dataset ,dataset, vid_path, vid_writer, seen, windows, dt, im, visualize, pred, p, save_path, txt_path, gn, imc, annotator, xywh, line, c, label, n_1, a , cv2.putText, cv2.putText, n_2, b, cv2.putText, n_3, d, cv2.putText, im0, dataset.mode, t, s)

実行結果↓
イメージ説明

 

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

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

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

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

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

y_waiwai

2022/11/14 08:57

コードは画像ではなく、テキストで提示しよう
hona_tan

2022/11/14 09:10

コメントありがとうございます。 テキストだと1000字超えてしまいます。
pig_vba

2022/11/15 02:03

既に他の方が回答されているので次回の質問からでもいいですが、webサービスを利用してみてください。たとえばwandboxであればソースコードをそのまま匿名で共有することができます。アカウント登録も不要なので次回から試してみてはいかがでしょうか https://wandbox.org/
guest

回答2

0

参考にされたサイトでは,

#Write resultsのfor文に入るように記述してください

と書かれてあるにもかかわらず,さらにその中のif save_crop:の中に書いてしまっています.
これでは,save_cropが真のときのみしか書き込みが行われません.

参考記事でも,例示コードはインデントが20個のスペースで,5ブロック分を示しますので,ちょうどそれはfor文の中が該当します.if save_crop:では6ブロック目のインデントになりますので違うと考えるのが妥当です.

したがって,「インデントを1つ下げて書く.」が答えになります.

投稿2022/11/15 00:01

PondVillege

総合スコア1579

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

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

PondVillege

2022/11/15 00:03

またコードが長いことを理由に画像で掲載いただいていますが,detect.pyのダウンロード元を示しつつ,自身でサイトに従って書き換えた箇所周辺を掲載いただければコード量は少なくなります.今回で言えばコードを挿入すべきと言われたfor文まわりが該当します.画像で掲載されるとコピペできず再現性が担保できませんので,欲しい回答が得られない可能性に注意してください.
hona_tan

2022/11/15 06:40

コメントありがとうございます。 インデントを一つ下げて実行してみましたが、カウント数は表示されませんでした。
guest

0

Text

1各変数をprintしてください。

投稿2022/11/14 09:03

atcoderyellow

総合スコア481

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

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

hona_tan

2022/11/15 06:42

コメントありがとうございます。 全ての変数をprintするとのことですが、一つ一つ書き出すという方法でしょうか?
hona_tan

2022/11/17 06:35

printしました。 ↑こんな感じでよいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問