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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

Q&A

0回答

2063閲覧

PoseNetで検出した座標の数値を書き出したい

toropicalwtr

総合スコア0

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

0グッド

0クリップ

投稿2021/06/10 07:45

編集2021/06/10 07:48

前提・実現したいこと

macOS Big Sar 11.4
Python3.6.12
anaconda3

動画を取り込んで測定を行なって書き出すということはhttps://zenn.dev/bboytaiso/articles/c46e4917e7b49e
上記サイトからできることは分かったのですが、検出した座標をCSVなどなんでもいいので数値を書き出すにはどうすれば良いか分からないのでお力添えが欲しいです。

import tensorflow as tf import cv2 import time import argparse import numpy as np import posenet parser = argparse.ArgumentParser() parser.add_argument('--model', type=int, default=101) parser.add_argument('--cam_id', type=int, default=0) parser.add_argument('--cam_width', type=int, default=1280) parser.add_argument('--cam_height', type=int, default=720) parser.add_argument('--scale_factor', type=float, default=0.7125) parser.add_argument('--file', type=str, default=None, help="Optionally use a video file instead of a live camera") args = parser.parse_args() def main(): with tf.Session() as sess: model_cfg, model_outputs = posenet.load_model(args.model, sess) output_stride = model_cfg['output_stride'] if args.file is not None: cap = cv2.VideoCapture(args.file) else: cap = cv2.VideoCapture(args.cam_id) cap.set(3, args.cam_width) cap.set(4, args.cam_height) start = time.time() frame_count = 0 output_video = None is_first = True try: while True: input_image, display_image, output_scale = posenet.read_cap( cap, scale_factor=args.scale_factor, output_stride=output_stride) if is_first: fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') fps = cap.get(cv2.CAP_PROP_FPS) output_video = cv2.VideoWriter('output.mp4', fmt, fps, (display_image.shape[1], display_image.shape[0])) is_first = False heatmaps_result, offsets_result, displacement_fwd_result, displacement_bwd_result = sess.run( model_outputs, feed_dict={'image:0': input_image} ) pose_scores, keypoint_scores, keypoint_coords = posenet.decode_multi.decode_multiple_poses( heatmaps_result.squeeze(axis=0), offsets_result.squeeze(axis=0), displacement_fwd_result.squeeze(axis=0), displacement_bwd_result.squeeze(axis=0), output_stride=output_stride, max_pose_detections=10, min_pose_score=0.15) keypoint_coords *= output_scale skeleton_img = np.zeros(display_image.shape, dtype=np.uint8) skeleton_img = posenet.draw_skeleton( skeleton_img, pose_scores, keypoint_scores, keypoint_coords, min_pose_confidence=0.1, min_part_confidence=0.1) # 検出元の画像と検出後の画像を両方表示する cv2.imshow('posenet', skeleton_img) cv2.imshow('src', display_image) frame_count += 1 output_video.write(skeleton_img) if cv2.waitKey(1) & 0xFF == ord('q'): break finally: if output_video: output_video.release() if __name__ == "__main__": main()

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

PoseNet自体は正常に動きます。
解決策でなくてもいいので何かアドバイスをいただければ嬉しいです。よろしくお願いいたします。

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

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

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

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

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

can110

2021/06/10 09:24

何が分からない、知りたいのかを明確にしていただければ。 まずは検出した座標の数値は、コード中のどの変数にどのようなカタチ(リストなど?)で格納されているかは把握していますか? それは分かっているうえで、printなりCSVファイルなりに出力する方法が分からないということでしょうか?
toropicalwtr

2021/06/10 09:51

残念ながら把握できておりません。 無知で申し訳ありません。 座標数値が格納されている場所や格納・保存する際の形式?みたいなものが分かれば良いのでしょうか
toropicalwtr

2021/06/10 10:55

下記の配列が各部位のことを指していることは分かっているのですが、 これが検出した時にどのように格納されるかは分かっていません。 pose_scores, keypoint_scores, keypoint_coords = posenet.decode_multi.decode_multiple_poses( heatmaps_result.squeeze(axis=0), offsets_result.squeeze(axis=0), displacement_fwd_result.squeeze(axis=0), displacement_bwd_result.squeeze(axis=0), output_stride=output_stride, max_pose_detections=10, min_pose_score=0.15)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問