映像や画像からその中に映っている人物の姿勢を推定し、データ化することができるライブラリです。映像はファイル以外にもWebカメラ(1台でも!)からもリアルタイムに解析することが可能です。ビルドできるようにする方法を紹介いたします。2017は導入済みとします)インストールに関してプライマリに参考すべきURLを記しておきます。https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.mdCUDAのインストールnVidia製のビデオカードを持っているならCUDAと呼ばれる仕組みを利用することでGPUによる並列計算を利用することができます。いうか、これがなければおそらく話にならないでしょう。いう組み合わせを前提としているので、それ以外の組み合わせだと、インストールで苦労する可能性があります。新しいものを導入することで更なる速度向上が見込まれますが、まずはビルドできてからチャレンジするべきでしょう。入手https://developer.nvidia.com/cuda-80-ga2-download-archive上記よりOSにあわせたものを入手し、インストールしてください。入手CuDNNを入手するためには、nVidiaのdeveloper登録(無料)が必要です。入手しインストールしてください。cuda8.0をインストールしたフォルダにcudaフォルダ以下をそのまま展開します。デフォルトでは下記になると思います。2015だったので、関連モジュールは2017のライブラリに対応していないことがあります。2017で2015のツールセットが使えるようにコンポーネントを導入します。立ち上げ、「ツール>ツールと機能を取得」を開きます。ツールセット」を導入してください。3.5」を導入してください。CMakeによるOpenPoseのビルド環境構築OpenPoseソースの入手と配置OpenPoseのGitHubを開き、ZIPファイルを入手します(勿論、gitから直接でも構いません)。展開したとして、話を進めます。インストールOpenPoseのビルド環境を自動生成するためのツールとしてにCMakeをインストールします。インストールしましたが、より新しいものでも問題はないと思います。古いものがインストールされているならアンインストールしてからの方が良いでしょう。CMakeによるビルド環境の構築CMakeを開き、ソースコードの場所とビルド環境を構築する場所を指定します。ここでは、それぞれ12D:/development/openposeD:/development/openpose/build_windowsとして、「Configure」を押します。ビルド環境を構築する場所が存在しない場合は、許諾ウィンドウが出るので「Yes」を押してください。開発環境を指定します。ところに「v140」と追記してください。これがないと、Configureはうまくいかない場合があります。「Finish」を押すと、必要な環境変数の生成や必要なファイルのダウンロードが始まります。数分はかかると思います。あるZIPファイルを消去してやり直してください。done」が出て、変数内容に特に怪しいところがなければ次に進みます。チェックのついていない項目を入れたい場合はチェックして再度「Configure」を押してください。その際はエラーがわかりやすいように一つ一つやることをお勧めします。ソリューションが開かれます。-write_json=”d:\output”)がうまく働かず、オプションで指定した値が反映されません。したがって、Release構成でビルドしましょう。うまくビルドできたら、IDE上から開始することができます。生成した実行ファイル(.exe)から起動したいとき生成した実行ファイル(.exe)から起動するときは、外部ファイル(DLL等)が必要なのでパスを通すか同じディレクトリに持ってくる必要があります。実際に必要なのは下記になります。ここに集めるのが一番簡単でしょう。modelsフォルダごとコピーしてください。撮影した動画(mp4)内には、GPS情報が含まれている。そのGPS情報をgpx形式で抜き出してやると、いろいろ面白いことが出来そうである。gpx化についての流れは下記が分かりやすい。Blackで撮影した動画からKMLファイルを抽出してみましたただし、こちらのサイトで作成されたものはHERO5に対応したものでHERO7で作成した動画に処したところエラーが出て止まってしまうので、HERO7でも使用できるものの作成方法について以後補足する。(最終的にKML形式に変換しているが、大体のGPS情報入力ソフトはgpxをサポートしているので、途中のgpxの抽出で目標は達成である。Format)形式で記録されたセンサーデータ(バイナリ)を分離するgopro2gpxというソフトを使用して分離したデータをgpx形式に変換する折角なので、どのOSでも使えるようにUnixライクな環境で実行できるように話を進める。その前に、Windowsユーザーには既にgopro2gpxの実行形式(exe)が配布されているので下記をダウンロードの上、動画からgpxファイルを作成する手順からお読みください。(WSL)における環境設定ここではWindows10上で動作するLinux(Ubuntu)サブシステムを使って環境を構築する方法について触れる。Windowsユーザー以外は読み飛ばしてください。インストールの方法についてはたくさん情報があるので調べてください。golang・・・以上。ちなみに、WSL上からWindowsのCドライブやDドライブへの参照はそれぞれ/mnt/c/mnt/dとなる。gopro2gpxの作成ここでは、Go言語を用いてgopro2gpxの実行形式を作成する手順を紹介する。Macを含むUNIXライクな環境があってGo言語までインストールされているならここから読めばよい。必要なパッケージをダウンロードするためにGoではgetコマンドを用いる。そのダウンロード先として環境変数GOPATHであらかじめ指定する必要がある。ここではホームディレクトリ直下にgoというフォルダを作成して、これをダウンロード先とする。~/go実行ファイルを作成したいディレクトリに移動して、下記を入力すると必要なパッケージをダウンロードして実行ファイル(gopro2gpx)が作成される。揃っていればここから読めばよい。話を簡単にするためにgopro2gpxと処理する動画(ここではGH010047.MP4とする)はカレントディレクトリにあるとする。GH010047.gpxいろいろと警告が出てきて、もやっとするが、gpxが作成されていれば成功である。得られたgpxは下記のサイトにて正しく抽出できたか確認できる。18.04LTSを導入したところ、ネットワークインターフェース名が「ens192」という表示になった。udevのバージョン197以降、デフォルトの動作では予測可能なネットワークインタフェース名がつけられるように仕様が変更された結果である。言ってもやはり慣れ親しんだ「eth0」等の表記に戻したいと考えている人は少なくないのではないだろうか。見てみると、ブート時に一度eth0を認識した後、わざわざens192に変更されているのが分かる。eth1要はこの動作を無効にすれば良い。biosdevname=0を追加することにより可能となる。grubからの起動時にカーネル起動オプションを永続的に追加する方法である。追加のカーネル起動オプションを設定する。biosdevname=0"grubに設定を反映させる。次に起動時にインターフェースにIP等が設定されるようにNetplanのデバイス名も変えておく。Stringのリストを保存しようと思い下記のようにした。stringSet).apply()ところが次のような不思議な現象に遭遇した。アプリの動作中は問題ないアプリをいったん終了し、再度立ち上げると、一番最初に記録した値のみが再現され、その後に追加した値はなかったことになっていたどうやら、(環境により異なるが)/data/data/(applicationId)/shared_prefs辺りに生成される「prefs.xml」(SharedPreferencesの実態)が最初の書き込み以降更新されていないようなのだ。これはバグなのだろうか?調べてみたところJavaでも同じことが起こっているようだ。解決策として、いくつか考えてみた。うまくxmlファイルの更新がかかるのでそれを利用した。冗長なデータを書き込むのであまり気分はよくない。stringSet).apply()気分一新、全ての内容をクリアしてから再度上書きする。この場合はこれでもなんとかなってしまうのだが、このデータベースに他の情報が一緒に記録されていれば(というかその可能性は高い)目も当てられないことになる。stringSet).apply()該当情報だけ消して書き直す。角が立たない方法だろう。するのがポイント!これを忘れるとやっぱり最初の現象と同じになってしまう。ThemeCountry。