Skip to content

shoda888/KeiHirano

 
 

Repository files navigation

KeiHirano

study and research 研究用のスクリプトを保存しておく場所. Kinect及びdepthデータを扱う関係のスクリプトがC++の中に それ以外のものは,pythonscriptの中に pythonスクリプトは,基本的には扱うものとかで場合分けしている. 基本的にはタイトルのまんまのスクリプトであることが多い.

作業フローに変更や追加があったらREADMEを更新すること

実験ディレクトリについては以下のフォルダ構成を守ること(2019/11/15現在)

予め以下のディレクトリを作っておくこと (初期状態はcolorDirとdepthDirとposは中身がある状態.その後正田方式を撮るか平野方式を取るかで出力されるファイルが異なる.)
basepath/
┠ color
┠ color2
┠ depth
┠ depth_mirror
┠ json
┠ pos
┠ regi
┠ regi2
┠ regi_mirror
┠ regi_mirror_fixed
┗ render

環境によるスクリプトの変更について

python関係のスクリプトで,ROSシステムが入っているせいで, opencvのライブラリ使用時に追加で記述している部分が有る. showOpenPoseResult.pyなどは,ROS有りの環境で使用する際には,showOpenPoseResult_Hirano.pyなど若干名称を変更したものを使用すること.引数や出力などは変わらない.なので,こちらは本人の許可がない限り変更しないこと.

動作作成シェルスクリプト

shoda_exe.sh Hirano_exe.sh 両者でレジストレーション画像の生成方法に違いが有る. Hirano_exe.sh内での処理や作業フローについては,Hirano_exe使い方.mdを参照

簡易作業フロー

  1. レジストレーション画像生成
    DepthMapper.cpp
    コード内入力 colorDir depthDir 入力 basepath
    出力 regiDir

  1. ミラー画像生成
    regimirror.cpp 入力 basepath 出力 regiMirrorDir

  1. レジストレーション画像アフィン変換(option)
    fixregi.py
    入力 basepath dx 出力 regiMirrorFixDir

  1. OPENPOSE解析(render生成)

    ./build/examples/openpose/openpose.bin --image_dir /home/shoda/Documents/mitsu/regi_mirror -write_images /home/shoda/Documents/mitsu/render --write_json /home/shoda/Documents/mitsu/json

  1. OPENPOSE結果確認(複数人表示)(option)
    showOpenPoseResult.py
    入力 basepath

  1. jsonfileを読み込んで一人の人の時系列データ行列に変換するためのコード
    csvposer.py
    入力 basepath peopleID startframe endframe
    出力 output.csv probability.csv test.csv

  1. OPENPOSE結果確認(指定した1人表示)(option)
    showCSVResult.py
    入力 regi_mirrorDir output.csv

    python pythonscript/OpenPose/showCSVResult.py /home/shoda/Documents/mitsu/regi_mirror /home/shoda/Documents/mitsu/output.csv

  1. 両肩座標を使用したDepthとRGBの位置誤差の確認(option)
    joint_diff.py
    入力 basepath
    出力 diff.png

  2. 三次元姿勢推定
    3DposeMaker.cpp
    入力 basepath
    出力 save.csv


  1. save.csvに3次元関節名をヘッダに記載する
    Column.py
    入力 save.csv
    出力 3dbone.csv

  1. 線形補完して各関節の時系列データを出力(カメラ座標系)(option)
    3DInterrupt.py
    入力 3dbone.csv
    出力 3DInterrupt.csv

  1. regi画像においてピクセルを指定して平面の2D点群を取得する
    BoundMaker.py
    コード内入力 basepath 対象のregi画像
    出力 2DGround.csv Z平面左上→Z平面右下→X平面左上→X平面右下→原点→その他5点

  1. 平面上のすべての3D点群を取得する
    3DChair.cpp
    コード内入力 basepath 対象のdepth画像
    出力 Xplane.csv Zplane.csv edge.csv
    edge.csvの一行目が原点を表す

  1. 軸、回転行列R、製品座標系の姿勢データを生成する
    CalProductaxis.py
    入力 basepath
    出力 axisData.csv 3dboneRotated.csv

(その他)動画,若しくは画像にモザイク処理を行う もし,顔にモザイク,もしくは黒塗りにした状態にして顔が見えないようにした動画を作成したい場合 高齢者行動ライブラリで公開されていない自分で発掘した,若しくは別途自分で顔を消した動画を作成する必要が有る場合, 対象の元画像に対してopenposeを使用し,Face_jsonというファイルにjsonファイルを格納し, python3 /pythonscript/Face_Mosaic.py を実行すると顔に黒塗りした画像が生成できる.まだ,開発段階であるため稀に止まることがあるため鋭意開発を進めたい.

About

study and research

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 93.0%
  • MATLAB 5.1%
  • Python 1.4%
  • Other 0.5%