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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

187閲覧

特定の文字を含む行のフレームごとの総数カウント方法について

taketake1012

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/30 01:23

前提・実現したいこと

YOLOという物体検出モデルの実行結果から、1フレームごとに人々の数を検出するプログラムを考えています。
以下のようなテキストファイルから人の数だけ(dogやcatなど他の検出物を除いたもの)を抽出し、フレームごとに数を算出させたいのですが、解決策が見つからず行き詰っています。(Foundから次のFoundまでの間が1フレームで検出された物体の総数)

Found 3 boxes for img
person 0.76 (1112, 320) (1143, 367)
person 0.81 (862, 313) (887, 364)
dog 0.36 (1104, 320) (1132, 367)
Found 1 boxes for img
person 0.81 (1108, 321) (1138, 368)
Found 0 boxes for img
Found 3 boxes for img
person 0.72 (1105, 320) (1132, 368)
person 0.90 (862, 314) (885, 364)
cat 0.36 (1104, 320) (1132, 367)
Found 2 boxes for img
person 0.72 (1105, 320) (1130, 368)
person 0.91 (863, 315) (886, 364)
.
.
.

理想としては
total of person is:2
total of person is:1
total of person is:0
total of person is:2
total of person is:2
.
.
.
のように対応関係を出力できたらと考えています。

発生している問題・エラーメッセージ

フレームごとに検出された人の総数を求め、出力する方法が分からない状況です。

該当のソースコード

python3

1ld = open("textfile") 2lines = ld.readlines() 3ld.close() 4person = 0 5for line in lines: 6 if line.find('person') >= 0: 7 person += 1 8 print(person) 9 elif line.find("Found") >= 0: 10 print("total of person is:")

試したこと

様々な関数を試してみましたが、うまく実行できませんでした。
上記のコードでは、

sum of person is:
1
2
sum of person is:
3
sum of person is:
sum of person is:
4
5
.
.
.

と出力されてしまい、フレームごとに総数を対応させることができませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ごく単純な概念コードですが、以下のように処理すればよいです。

Python

1n = 0 # pの数 2for c in 'FpdFppFd': 3 if c == 'F': 4 if n > 0: 5 print('total p={}'.format(n)) 6 n = 0 7 elif c == 'p': 8 n += 1 9if n > 0: 10 print('total p={}'.format(n)) 11 12# total p=1 13# total p=2

投稿2019/07/30 07:53

can110

総合スコア38262

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

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

taketake1012

2019/07/30 09:47

こちらのコードを参考にし、アレンジを加えた結果、無事理想の形に持っていくことができました。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問