MMpose / main.py
xmrt's picture
3d visualization
e2522a6
raw
history blame
No virus
2.64 kB
import mmpose
import os
import glob
from mmpose.apis import MMPoseInferencer
import gradio as gr
import numpy as np
import cv2
print("[INFO]: Imported modules!")
# inferencer = MMPoseInferencer('hand') # 'hand', 'human , device='cuda'
# inferencer = MMPoseInferencer('human')
inferencer = MMPoseInferencer(pose3d='human3d')
# https://github.com/open-mmlab/mmpose/tree/dev-1.x/configs/body_3d_keypoint/pose_lift
# motionbert_ft_h36m-d80af323_20230531.pth
# simple3Dbaseline_h36m-f0ad73a4_20210419.pth
# videopose_h36m_243frames_fullconv_supervised_cpn_ft-88f5abbb_20210527.pth
# videopose_h36m_81frames_fullconv_supervised-1f2d1104_20210527.pth
# videopose_h36m_27frames_fullconv_supervised-fe8fbba9_20210527.pth
# videopose_h36m_1frame_fullconv_supervised_cpn_ft-5c3afaed_20210527.pth
# https://github.com/open-mmlab/mmpose/blob/main/mmpose/apis/inferencers/pose3d_inferencer.py
print("[INFO]: Downloaded models!")
def poses(photo):
print(photo)
result_generator = inferencer(photo,
vis_out_dir =".",
return_vis=True,
thickness=2)
# # Prepare to save video
# output_file = os.path.join("output.mp4")
# fourcc = cv2.VideoWriter_fourcc(*"mp4v") # Codec for MP4 video
# fps = 32
# height = 480
# width = 640
# size = (width,height)
# out_writer = cv2.VideoWriter(output_file, fourcc, fps, size)
# for result in result_generator:
# print("[INFO] Result: ", result)
# frame = result["visualization"]
# out_writer.write(cv2.cvtColor(frame[0], cv2.COLOR_BGR2RGB))
# print(os.listdir())
# print("[INFO]: Visualizing results!")
# print(os.listdir())
# print()
# out_writer.release()
# cv2.destroyAllWindows() # Closing window
output_file = glob.glob("*.mp4")
return output_file
# # specify detection model by alias
# # the available aliases include 'human', 'hand', 'face', 'animal',
# # as well as any additional aliases defined in mmdet
# inferencer = MMPoseInferencer(
# # suppose the pose estimator is trained on custom dataset
# pose2d='custom_human_pose_estimator.py',
# pose2d_weights='custom_human_pose_estimator.pth',
# det_model='human'
# )
def run():
#https://github.com/open-mmlab/mmpose/blob/main/docs/en/user_guides/inference.md
demo = gr.Interface(fn=poses,
inputs=gr.Video(source="upload"),
outputs=gr.Video())
demo.launch(server_name="0.0.0.0", server_port=7860)
if __name__ == "__main__":
run()
print(os.listdir())