스포츠가 잘되고 싶다・・・그렇다, 자세 추정하고 능숙한 사람과의 차이를 잡으면・・・! ! ~초급편:colaboratory, openpose로 간단 동영상의 자세 추정~
12770 단어 딥러닝파이썬OpenPosecolaboratory기계 학습
소개
볼더링을 시작했지만 전혀 능숙하지 않다… 그렇다! ! 자세 추정하고 다른 사람에 비해 나쁜 곳을 구체적으로 보이는 형태로 하면 좋다!
라고 하는 곳에서, 우선은 colaboratory에서 자세 추정(openpose)을 해 보려고 되었습니다.
동영상 링크 결과↓(전혀 추정할 수 없다...)
시스템 구성
이번 시스템 구성은 이런 느낌입니다.
주로 사용하는 것은 Google Drive 및 google colaboratory입니다.
모두 클라우드상이므로, 브라우징용의 빈약한 PC만 있으면 OK입니다.
Tips:colaboratory란?
무료로 사용할 수 있으며 대부분의 주요 브라우저에서 작동하는 구성 불필요한 Jupyter 노트북 환경입니다. Google이 기계 학습의 교육, 연구용으로 사용되는 것을 목적으로 무료 제공하고 있습니다.
인용구 : 초속으로 무료 GPU 사용】심층 학습 실습Tips on Colaboratory
그럼 바로 구현합시다.
이번에는 아래 기사의 내용을 주로 참고하고 있습니다. 나나코 님 감사합니다.
tensorflow (tf-openpose)로 이미지에서 골격 추정
손쉽게 코드를 보고 싶은 분은 아래를 부탁드립니다!
htps : // 기주 b. 코 m/바로 포코/오펜포세_모ゔぃ에/bぉb/마s테 r/오펜포세_도ぃぃ에. 이 pyn b
공동체에 액세스! (처음의 방향)
먼저 이 URL을 방문해 보세요.
htps : // 코 b. 레세아 rch. 오, ぇ. 코 m / 노보보 ks / ぇ l 코메. 아니 pyb? hl = 그럼
그리고 "파일 → python3의 새로운 노트북"을 클릭하십시오.
그러면 아래와 같은 새 페이지가 표시됩니다.
이제 준비 OK입니다!
여기에 코드를 작성하여 "Shift + enter"로 python 스크립트를 쉽게 실행할 수 있습니다.
자, 개발 환경 정비합시다.
Openpose를 작동시키기 위해서는 5가지 작업이 필요합니다.
OpenPose_movie.ipynb# SWIG を準備
!apt-get -q -y install swig
# TF-openposeをクローン
!git clone https://www.github.com/ildoonet/tf-openpose
# ------- 変更点:ここから 挿入 -------
# クローンしたディレクトリに入る
%cd tf-openpose
# ------- 変更点:ここまで 挿入 -------
# openpose動作のための、ライブラリをインストール
!pip3 install -r requirements.txt
# Openposeのモデルをダウンロード
%cd models/graph/cmu
!bash download.sh
%cd ../../../
# pafprocessをインストール
%cd tf_pose/pafprocess
!ls
!swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace
%cd ../../
실험! !
우선은 정지화상으로 실험해 본다.
이런 일이 가능하면 성공입니다!
OpenPose_movie.ipynb# ネットから画像DL
!wget https://www.pakutaso.com/shared/img/thumb/150415022548_TP_V.jpg
# 実行!!
%run -i run.py --model=mobilenet_thin --resize=432x368 --image=150415022548_TP_V.jpg
그런 다음 동영상에서 실행
여기에 버릇이 있었기 때문에, 조금 고생했습니다.
우선 Google 드라이브에서 동영상을 로드하는 작업
아래의 코드를 실행.
OpenPose_movie.ipynbfrom google.colab import drive
drive.mount('./gdrive')
drive_root_dir="./gdrive/My Drive/Colab Notebooks/"
URL에 액세스해 다음을 연타해 가면 URL이 또 표시되므로, 그것을 입력.
이런 화면이 나오면 OK.
Google 드라이브에서 colab로 동영상 복사
아래와 같은 명령을 입력하여 복사할 수 있습니다. 디렉토리는 개별적으로 다르므로 놓고 있는 동영상의 위치에 따라 변경하세요.
OpenPose_movie.ipynb!cp './gdrive/My Drive/Colab Notebooks/movies/climbing2.mp4' "./"
마지막으로, 실행입니다! !
원래, run_video.py라고 잘 실행할 수 없었으므로 스크립트를 개조하고 실행합니다.
조금 까다로운 것이, DNN에 입력하는 사이즈는 16의 배수를 전제로 하고 있는 곳입니다.
그래서 스크립트에서 W는 540 -> 544로 변경되었습니다. 그러나 동영상을 저장할 때는 원래 크기로!
OpenPose_movie.ipynbimport argparse
import logging
import time
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tf_pose import common
from tf_pose.estimator import TfPoseEstimator
from tf_pose.networks import get_graph_path, model_wh
movie_name = 'climbing2'
img_outdir = './img'
os.makedirs(img_outdir, exist_ok=True)
# 動画作成
fourcc = cv2.VideoWriter_fourcc('m','p','4', 'v')
video = cv2.VideoWriter('ImgVideo2.mp4', fourcc, 30.0, (540, 960))
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='tf-pose-estimation Video')
outimg_files = []
count = 0
w = 544
h = 960
e = TfPoseEstimator(get_graph_path('mobilenet_thin'), target_size=(w, h))
# 動画出力先
cap = cv2.VideoCapture('climbing2.mp4')
# 動画用の画像作成
while True:
ret, image = cap.read()
if ret == True:
# 1フレームずつ処理
count += 1
if count % 100 == 0:
print('Image No.:{0}'.format(count))
humans = e.inference(image, resize_to_default=(w > 0 and h > 0), upsample_size=4)
image = TfPoseEstimator.draw_humans(image, humans, imgcopy=False)
# 画像出力
outimg_file = '{}/{:05d}.jpg'.format(img_outdir, count)
cv2.imwrite(outimg_file, image)
video.write(image)
else:
break
video.release()
마지막으로 저장
마지막으로 Google 드라이브 사본으로 끝납니다.
OpenPose_movie.ipynb!cp './ImgVideo2.mp4' "./gdrive/My Drive/Colab Notebooks/movies/"
요약
OpenPose로 전혀 추정할 수 없었기 때문에, 어떻게 개선해 나갈지 생각하지 않으면 안됩니다. . .
예를 들어, 데이터 세트를 늘리거나? (아니 아니 힘든...)
아래의 기사와 같이 야구의 스윙이라고 잡히고 있습니다만. . .
htps : // 코 m / 나나코 _ t / ms / 1 아 9 세 5d4 에카 672b38d2d
좋은 아이디어와 논문을 아는 분 모집하고 있습니다! !
하지만,
자세 추정의 장애물은 높지 않으므로, 여러분 시험에 해 봅시다! !
python, colaboratory의 초보자도 몇 시간 만에 할 수 있습니다.
Reference
이 문제에 관하여(스포츠가 잘되고 싶다・・・그렇다, 자세 추정하고 능숙한 사람과의 차이를 잡으면・・・! ! ~초급편:colaboratory, openpose로 간단 동영상의 자세 추정~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugup/items/ebe1c0783f5c4db330d0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번 시스템 구성은 이런 느낌입니다.
주로 사용하는 것은 Google Drive 및 google colaboratory입니다.
모두 클라우드상이므로, 브라우징용의 빈약한 PC만 있으면 OK입니다.
Tips:colaboratory란?
무료로 사용할 수 있으며 대부분의 주요 브라우저에서 작동하는 구성 불필요한 Jupyter 노트북 환경입니다. Google이 기계 학습의 교육, 연구용으로 사용되는 것을 목적으로 무료 제공하고 있습니다.
인용구 : 초속으로 무료 GPU 사용】심층 학습 실습Tips on Colaboratory
그럼 바로 구현합시다.
이번에는 아래 기사의 내용을 주로 참고하고 있습니다. 나나코 님 감사합니다.
tensorflow (tf-openpose)로 이미지에서 골격 추정
손쉽게 코드를 보고 싶은 분은 아래를 부탁드립니다!
htps : // 기주 b. 코 m/바로 포코/오펜포세_모ゔぃ에/bぉb/마s테 r/오펜포세_도ぃぃ에. 이 pyn b
공동체에 액세스! (처음의 방향)
먼저 이 URL을 방문해 보세요.
htps : // 코 b. 레세아 rch. 오, ぇ. 코 m / 노보보 ks / ぇ l 코메. 아니 pyb? hl = 그럼
그리고 "파일 → python3의 새로운 노트북"을 클릭하십시오.
그러면 아래와 같은 새 페이지가 표시됩니다.
이제 준비 OK입니다!
여기에 코드를 작성하여 "Shift + enter"로 python 스크립트를 쉽게 실행할 수 있습니다.
자, 개발 환경 정비합시다.
Openpose를 작동시키기 위해서는 5가지 작업이 필요합니다.
OpenPose_movie.ipynb# SWIG を準備
!apt-get -q -y install swig
# TF-openposeをクローン
!git clone https://www.github.com/ildoonet/tf-openpose
# ------- 変更点:ここから 挿入 -------
# クローンしたディレクトリに入る
%cd tf-openpose
# ------- 変更点:ここまで 挿入 -------
# openpose動作のための、ライブラリをインストール
!pip3 install -r requirements.txt
# Openposeのモデルをダウンロード
%cd models/graph/cmu
!bash download.sh
%cd ../../../
# pafprocessをインストール
%cd tf_pose/pafprocess
!ls
!swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace
%cd ../../
실험! !
우선은 정지화상으로 실험해 본다.
이런 일이 가능하면 성공입니다!
OpenPose_movie.ipynb# ネットから画像DL
!wget https://www.pakutaso.com/shared/img/thumb/150415022548_TP_V.jpg
# 実行!!
%run -i run.py --model=mobilenet_thin --resize=432x368 --image=150415022548_TP_V.jpg
그런 다음 동영상에서 실행
여기에 버릇이 있었기 때문에, 조금 고생했습니다.
우선 Google 드라이브에서 동영상을 로드하는 작업
아래의 코드를 실행.
OpenPose_movie.ipynbfrom google.colab import drive
drive.mount('./gdrive')
drive_root_dir="./gdrive/My Drive/Colab Notebooks/"
URL에 액세스해 다음을 연타해 가면 URL이 또 표시되므로, 그것을 입력.
이런 화면이 나오면 OK.
Google 드라이브에서 colab로 동영상 복사
아래와 같은 명령을 입력하여 복사할 수 있습니다. 디렉토리는 개별적으로 다르므로 놓고 있는 동영상의 위치에 따라 변경하세요.
OpenPose_movie.ipynb!cp './gdrive/My Drive/Colab Notebooks/movies/climbing2.mp4' "./"
마지막으로, 실행입니다! !
원래, run_video.py라고 잘 실행할 수 없었으므로 스크립트를 개조하고 실행합니다.
조금 까다로운 것이, DNN에 입력하는 사이즈는 16의 배수를 전제로 하고 있는 곳입니다.
그래서 스크립트에서 W는 540 -> 544로 변경되었습니다. 그러나 동영상을 저장할 때는 원래 크기로!
OpenPose_movie.ipynbimport argparse
import logging
import time
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tf_pose import common
from tf_pose.estimator import TfPoseEstimator
from tf_pose.networks import get_graph_path, model_wh
movie_name = 'climbing2'
img_outdir = './img'
os.makedirs(img_outdir, exist_ok=True)
# 動画作成
fourcc = cv2.VideoWriter_fourcc('m','p','4', 'v')
video = cv2.VideoWriter('ImgVideo2.mp4', fourcc, 30.0, (540, 960))
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='tf-pose-estimation Video')
outimg_files = []
count = 0
w = 544
h = 960
e = TfPoseEstimator(get_graph_path('mobilenet_thin'), target_size=(w, h))
# 動画出力先
cap = cv2.VideoCapture('climbing2.mp4')
# 動画用の画像作成
while True:
ret, image = cap.read()
if ret == True:
# 1フレームずつ処理
count += 1
if count % 100 == 0:
print('Image No.:{0}'.format(count))
humans = e.inference(image, resize_to_default=(w > 0 and h > 0), upsample_size=4)
image = TfPoseEstimator.draw_humans(image, humans, imgcopy=False)
# 画像出力
outimg_file = '{}/{:05d}.jpg'.format(img_outdir, count)
cv2.imwrite(outimg_file, image)
video.write(image)
else:
break
video.release()
마지막으로 저장
마지막으로 Google 드라이브 사본으로 끝납니다.
OpenPose_movie.ipynb!cp './ImgVideo2.mp4' "./gdrive/My Drive/Colab Notebooks/movies/"
요약
OpenPose로 전혀 추정할 수 없었기 때문에, 어떻게 개선해 나갈지 생각하지 않으면 안됩니다. . .
예를 들어, 데이터 세트를 늘리거나? (아니 아니 힘든...)
아래의 기사와 같이 야구의 스윙이라고 잡히고 있습니다만. . .
htps : // 코 m / 나나코 _ t / ms / 1 아 9 세 5d4 에카 672b38d2d
좋은 아이디어와 논문을 아는 분 모집하고 있습니다! !
하지만,
자세 추정의 장애물은 높지 않으므로, 여러분 시험에 해 봅시다! !
python, colaboratory의 초보자도 몇 시간 만에 할 수 있습니다.
Reference
이 문제에 관하여(스포츠가 잘되고 싶다・・・그렇다, 자세 추정하고 능숙한 사람과의 차이를 잡으면・・・! ! ~초급편:colaboratory, openpose로 간단 동영상의 자세 추정~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugup/items/ebe1c0783f5c4db330d0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# SWIG を準備
!apt-get -q -y install swig
# TF-openposeをクローン
!git clone https://www.github.com/ildoonet/tf-openpose
# ------- 変更点:ここから 挿入 -------
# クローンしたディレクトリに入る
%cd tf-openpose
# ------- 変更点:ここまで 挿入 -------
# openpose動作のための、ライブラリをインストール
!pip3 install -r requirements.txt
# Openposeのモデルをダウンロード
%cd models/graph/cmu
!bash download.sh
%cd ../../../
# pafprocessをインストール
%cd tf_pose/pafprocess
!ls
!swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace
%cd ../../
우선은 정지화상으로 실험해 본다.
이런 일이 가능하면 성공입니다!
OpenPose_movie.ipynb
# ネットから画像DL
!wget https://www.pakutaso.com/shared/img/thumb/150415022548_TP_V.jpg
# 実行!!
%run -i run.py --model=mobilenet_thin --resize=432x368 --image=150415022548_TP_V.jpg
그런 다음 동영상에서 실행
여기에 버릇이 있었기 때문에, 조금 고생했습니다.
우선 Google 드라이브에서 동영상을 로드하는 작업
아래의 코드를 실행.
OpenPose_movie.ipynb
from google.colab import drive
drive.mount('./gdrive')
drive_root_dir="./gdrive/My Drive/Colab Notebooks/"
URL에 액세스해 다음을 연타해 가면 URL이 또 표시되므로, 그것을 입력.
이런 화면이 나오면 OK.
Google 드라이브에서 colab로 동영상 복사
아래와 같은 명령을 입력하여 복사할 수 있습니다. 디렉토리는 개별적으로 다르므로 놓고 있는 동영상의 위치에 따라 변경하세요.
OpenPose_movie.ipynb
!cp './gdrive/My Drive/Colab Notebooks/movies/climbing2.mp4' "./"
마지막으로, 실행입니다! !
원래, run_video.py라고 잘 실행할 수 없었으므로 스크립트를 개조하고 실행합니다.
조금 까다로운 것이, DNN에 입력하는 사이즈는 16의 배수를 전제로 하고 있는 곳입니다.
그래서 스크립트에서 W는 540 -> 544로 변경되었습니다. 그러나 동영상을 저장할 때는 원래 크기로!
OpenPose_movie.ipynb
import argparse
import logging
import time
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tf_pose import common
from tf_pose.estimator import TfPoseEstimator
from tf_pose.networks import get_graph_path, model_wh
movie_name = 'climbing2'
img_outdir = './img'
os.makedirs(img_outdir, exist_ok=True)
# 動画作成
fourcc = cv2.VideoWriter_fourcc('m','p','4', 'v')
video = cv2.VideoWriter('ImgVideo2.mp4', fourcc, 30.0, (540, 960))
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='tf-pose-estimation Video')
outimg_files = []
count = 0
w = 544
h = 960
e = TfPoseEstimator(get_graph_path('mobilenet_thin'), target_size=(w, h))
# 動画出力先
cap = cv2.VideoCapture('climbing2.mp4')
# 動画用の画像作成
while True:
ret, image = cap.read()
if ret == True:
# 1フレームずつ処理
count += 1
if count % 100 == 0:
print('Image No.:{0}'.format(count))
humans = e.inference(image, resize_to_default=(w > 0 and h > 0), upsample_size=4)
image = TfPoseEstimator.draw_humans(image, humans, imgcopy=False)
# 画像出力
outimg_file = '{}/{:05d}.jpg'.format(img_outdir, count)
cv2.imwrite(outimg_file, image)
video.write(image)
else:
break
video.release()
마지막으로 저장
마지막으로 Google 드라이브 사본으로 끝납니다.
OpenPose_movie.ipynb
!cp './ImgVideo2.mp4' "./gdrive/My Drive/Colab Notebooks/movies/"
요약
OpenPose로 전혀 추정할 수 없었기 때문에, 어떻게 개선해 나갈지 생각하지 않으면 안됩니다. . .
예를 들어, 데이터 세트를 늘리거나? (아니 아니 힘든...)
아래의 기사와 같이 야구의 스윙이라고 잡히고 있습니다만. . .
htps : // 코 m / 나나코 _ t / ms / 1 아 9 세 5d4 에카 672b38d2d
좋은 아이디어와 논문을 아는 분 모집하고 있습니다! !
하지만,
자세 추정의 장애물은 높지 않으므로, 여러분 시험에 해 봅시다! !
python, colaboratory의 초보자도 몇 시간 만에 할 수 있습니다.
Reference
이 문제에 관하여(스포츠가 잘되고 싶다・・・그렇다, 자세 추정하고 능숙한 사람과의 차이를 잡으면・・・! ! ~초급편:colaboratory, openpose로 간단 동영상의 자세 추정~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sugup/items/ebe1c0783f5c4db330d0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(스포츠가 잘되고 싶다・・・그렇다, 자세 추정하고 능숙한 사람과의 차이를 잡으면・・・! ! ~초급편:colaboratory, openpose로 간단 동영상의 자세 추정~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sugup/items/ebe1c0783f5c4db330d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)