【AI体験】姿勢推定をやってみよう

何の記事??

よく AI 系のイベントや動画で見るあれを実際に自分で動かしてみようという記事です。

youtu.be

python の知識があると尚良いですが、今回は動かしてみることを目標とするのでコードの詳細はあまり解説しませんので、AI モデルを体験してみたい方は是非試してみてくださいね。

この記事の前提は、python3 が入っていることだけです。

詳細を知りたい方は・・・一緒に飲みに行って語り合いましょう笑

早速方法をみていきましょう!!


姿勢推定実行準備

■姿勢推定プログラムを持ってくる

まずは、ローカルにプログラムを持ってきましょう。github で公開されているので clone でローカルに持ってきましょう。

git clone https://github.com/ildoonet/tf-pose-estimation
■ライブラリのインストール

持ってきたフォルダに移動し requirements.txt をベースに必要なライブラリをインストールします。

cd tf-pose-estimation/
pip3 install -r requirements.txt

さて、ここで下のようなエラーに巡り合ってしまった方は「pip3 インストール 〇〇〇」で検索してもらうと基本的に pip3 install 〇〇〇 という解決方法が出てきます。

ModuleNotFoundError: No module named ○○○
■AI モデルのインストール

それではここで AI モデルをインストールしましょう。
まずは、swig というツールをインストールします。

brew install swig

スクリプトを実行して、とうとう AI モデルをインストールします。(少し時間がかかります)

cd models/graph/cmu
bash download.sh

ちなみにここで下記エラーがでた方は 「brew install wget」を実行してください。

download.sh: line 8: wget: command not found
download.sh: line 16: wget: command not found
■実行

まずは、用意されている ここでも ModuleNotFoundError: No module named 〇〇〇 が出てくるかもしれませんが、先ほど同様に「pip3 インストール 〇〇〇」で検索すると解決策が出てきますのでどんどん解決しちゃいましょう。

python3 run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpg

ただし、下記エラーだけは少しわけが違いますので、解決策を記載します。

No module named '_pafprocess'
you need to build c++ library for pafprocess. See : https://github.com/ildoonet/tf-pose-estimation/tree/master/tf_pose/pafprocess
■pafprocess のエラー

まずディレクトリを移動します。
その後、下記コマンドで swig をインストールします。swig は C/C++ で書かれたライブラリを他言語で実行できるようにしてくれる素晴らしいライブラリです。

早速 swig を使って pafprocess をビルドしてあげます。

cd tf_pose/pafprocess
brew install swig
swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace

それでは、ディレクトリを戻ってすでにあるブログラムを実行してみましょう。

cd ../../
python3 run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpg
実行結果

さて無事に実行されると、こんな感じの結果が出力されます!!

pose_estimation 実行結果
pose_estimation 実行結果

ボールを蹴ろうとしている人に対して骨格が確かに表示されていますね。

それにしても、ここは路上でしょうか?ガチなユニフォームとスパイクを履いてボールを蹴るべきではない気がします(笑)

先ほど実行したコマンドの -image= に画像のパスを指定してあげれば(先ほどは images/p1.jpg)他の画像で姿勢推定が可能になります。

おまけ

僕はこの画像でやってみました。
人は完璧に姿勢推定できていますね。一方の犬はやはり無理か・・・これは AI モデルを変更することで解決できる部分もあります。

実行結果
実行結果(老人と犬)


最後に

このように AI を自分で一から作らなくても利用することはできます
例えばこの姿勢推定のモデル自体は作れなくても、この姿勢推定の座標を取得して整体アプリに利用するとか、体を痛めない正しい筋トレアプリ、綺麗な歩き方診断なんかに転移できたらそれは立派なプロダクトだと思っています。

その場合は、おそらく分類のため AI モデルを作成する必要がありますが、そちらに集中することができます。(作ろうよという方 twitter で DM ください笑)

全て一から自分でつくることも大切かもしれませんが使えるものはどんどん使っていきたいですね。

AI やってみたいぞという方のモチベーションや勉強の息抜きになったならとても嬉しいです。

それではまた次回〜

【福岡】〜田中田〜

先日(だいぶ前だけど)、福岡に行ってまいりました、ロクです。

 

新潟出身で、旅行は基本車だったので、あまり関西より向こうまで旅行に行ったことがないんです。

しかも、親戚もそっち側にいなかったので人生初の九州でございました。

 

さて、とある事情にて福岡に行く機会がありました。

やはりご飯もお酒も美味しかった!!

 

その中でも特に、夕飯でいった「田中田」さん!!

とても美味しかったので紹介させてください。

f:id:shaw522:20190429001933j:plain

 

ちなみに本店は、福岡の博多ですが、西麻布にもあるみたいです。

http://tanakada.net/

 

和食がメインで、馬刺しやお刺身をはじめ焼き鰆やイチボなどのお肉までなんでも揃っています。

 

f:id:shaw522:20190429002512j:plain

お酒が進む食べ物ばかりで・・・つい飲みすぎました笑

 

f:id:shaw522:20190429002616j:plain

こちらはハマグリのスープ。

すだちのさっぱりしたアクセントとハマグリから出る出汁、アルコールを飲みすぎた身体に優しい味でした。

 

f:id:shaw522:20190429002852j:plain

こちらは「アワビとアスパラガスの・・・」名前忘れちゃった笑

アワビが何と言っても大きい!!

しかも、アワビの肝?・・・初めて食べました!!

 

すごい濃厚で美味しかったです。

 

今回の食事は、諸事情につきあまり写真が取れなかったのが残念・・・

一番美味しいと思った馬刺しとうにの海苔巻きの写真が撮れなかった笑(一番が二つあるの変ですね)

 

また行きたい!!のですが、結構高くて一人当たり3万〜4万ほどでした。

お酒を抑えればもう少し安くなったかな。好き勝手に頼みすぎました笑

 

唯一の欠点が、、、

飲み物メニューには値段が書いてあるのですが、食べ物には値段が一切書いてないのです笑

 

本当に自分へのご褒美や記念日にまた行きたいと思います。

 

みなさまもぜひ、行ってみてください。

予約必須です!!

 

【React Native入門】プロジェクトを開始しよう

プロジェクトの作成

下記コマンドでプロジェクトを作成します。

expo init

すると

? Choose a template: 
  ----- Managed workflow -----
❯ blank                 a minimal app as clean as an empty canvas 
  blank (TypeScript)    same as blank but with TypeScript configuration 
  tabs                  several example screens and tabs using react-navigation 
  ----- Bare workflow -----
  minimal               bare and minimal, just the essentials to get you started 
  minimal (TypeScript)  same as minimal but with TypeScript configuration 

このように選択肢が与えられますので、矢印キーで 「blank」にカーソルを合わせ Enter で決定してください。

? Choose a template: expo-template-blank
? Please enter a few initial configuration values.
  Read more: https://docs.expo.io/versions/latest/workflow/configuration/ › 0% completed
 {
   "expo": {
     "name": "<The name of your app visible on the home screen>",
•    "slug": "<A URL friendly name for your app>"
   }
 }

今度はこのような出力がでてくるので同様に矢印キーで name にはプロジェクト名前を、slug には適当なフォルダ名(僕は demoApp としました)を入力して Enter を押してください。

それでは作成されたフォルダに移動(cdコマンド)して下記コマンドで Expo を起動しましょう。ブラウザが立ち上がり Expo の画面が出てくると思います。

expo start

これで開発環境は整いました!

「Run on iOS」や「Run on Android」を押すと先ほどシミュレータやエミュレーターで React Native が立ち上がります。

Reacti Native の開発環境構築はこちらをご覧ください。

最後に