paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

1タップで顔写真が生きているように動き出す画像認識アプリ「Mug Life」を使ってみた!

f:id:paiza:20171213115442j:plain
どうも、まさとらん(@0310lan)です!

今回は、1枚の「顔写真」がまるで動画のように生き生きと動きだすユニークなスマホアプリをご紹介します。

高度な機械学習によって顔写真を高速に解析・分解することで、ハリウッド映画にも劣らない滑らかな3DCGを実現しているのが大きな特徴です。

Mug Life

f:id:paiza:20171213115508j:plain
(※2017年12月現在、Android版は開発中とのことです…)

■「Mug Life」の使い方

早速ですが、実際に「Mug Life」アプリを使いながらどのように顔写真が動き出すのかを見ていきましょう!

とりあえず用意するのは「顔」が写っている写真だけです!


そこで、サンプル例として「Pixabay」から顔写真を探してみます。
f:id:paiza:20171213115540j:plain

(Pixabayについて詳細はコチラ


今回は、「男性の顔」が写っている写真を使ってみましょう。
f:id:paiza:20171213115642j:plain
(PCの画面に「顔写真」を表示しておいてください)


「顔写真」が用意できたら、「Mug Life」アプリを起動して「(1)カメラ」メニューから「(2)Camera」アイコンを選択します。
f:id:paiza:20171213115656j:plain


そして、PCの画面に写っている「顔写真」をそのままスマホのカメラで撮影すると3Dスキャンが始まります!
f:id:paiza:20171213115708j:plain
そして、「シャッターボタン」を1回タップするだけで完成!


すると、以下のように動き出します!

1枚の写真から生成された動画とは思えないクオリティです…。

しかも、よく見ると「歯」や「舌」など、写真に存在していないオブジェクトまで丁寧に合成されていることに感心します。

今回は、スマホのカメラで撮影しましたが、もちろん「カメラロール」に保存してある写真を読み込んで利用することも可能です!

■「テンプレート」を使おう!

「Mug Life」を使って生成できる動きのパターンは、あらかじめいくつかのテンプレートとして用意されています。

顔写真をスキャンして読み込んだあとに、画面下に並んでいるパターンがテンプレートです!
f:id:paiza:20171213115733j:plain
好きな動きがあれば、それをタップするだけですぐに適用されるので便利です。


例えば、海外の人がよくやる顔を左右に振りながら「がっかり」する動きや…


アゴが外れたようなコミカルな動きであったり…


「YES !」を何度も言うパターンなどがあります。

このように、「Mug Life」を使うと驚くほど簡単に「顔」を自在に操ることができるようになるわけです。

「Mug Life」は機械学習を応用した写真解析技術を活用して「顔」の部位を細かく分解し、映画やゲームなどで使われるアニメーション技術を駆使して動きを生成しています。

これをわずか数秒で実行し、さらにはスマホ内で完結しているのが「Mug Life」の最大の特徴と言えるでしょう。


そして、生成した動画は「Mug Life」のタイムラインに公開するか、それとも非公開にして自分だけが楽しむかを選ぶことができます!
f:id:paiza:20171213115753j:plain


さらに、FacebookTwitterなどのSNSへそのままシェアしたり、カメラロールに保存することも可能!
f:id:paiza:20171213115804j:plain
カメラロールに保存してから、Googleフォトへアップロードするような使い方でもいいでしょう。

■有料の「編集モード」がさらにスゴイ!

「Mug Life」のもう1つの醍醐味である「編集モード」についてもご紹介しておきます!

こちらの機能だけは有料になっており、アプリ内課金によって追加できるようになっています。
f:id:paiza:20171213115825j:plain


この「編集モード」の何がスゴイかは、以下の動画を見るとよく分かります!

つまり、「顔」の動くパターンを自分で作成することができるんです。

通常はさまざまなテンプレートを適用させるだけなのですが、このテンプレートを自作して好きな動きを作れるのが「編集モード」の魅力です。
(テキストを追加することも可能…)

元の顔写真が無表情であったとしても、あとから好きなように喜怒哀楽を生成できるのは面白いと思います。


「Mug Life」のタイムラインには、このように自作したパターンが数多く公開されています!
f:id:paiza:20171213115841j:plain
そして、ユニークなのは第三者が自作したパターン(テンプレート)を誰でも再利用することができるという点です。

これに関しては無料ユーザーでも利用できるので、さまざまなパターンで遊んでみると面白いでしょう!

■動画でプログラミングが学べるレッスン「paizaラーニング」公開中


paizaでは、プログラミング未経験者・初心者向け学習サービス「paizaラーニングを公開しています。

PythonJavaC言語PHPRubySQLJavaScript、HTML/CSSなど、プログラミング初心者でも動画で学べる入門レッスンが多数ございます。プログラミング初心者の方はぜひごらんください。

また、ただいまpaizaラーニングでは、そのほか普段有料の講座も無料で受講できるキャンペーンを実施中です。

例えば無料の「Python入門編1・2」を受講すれば、有料の「Python入門編3」が期間限定で無料に、さらに「Python入門編3」を終えると「Python入門編4」が無料に…といった感じで、最大4つの有料レッスンを無料受講できます!

■まとめ

今回は、「Mug Life」アプリの基本的な機能を駆け足でご紹介してみました。

まだ新しいアプリということもあって、頻繁にバージョンアップを繰り返しているので今後も素敵な機能がどんどん追加されると思います。

YouTubeにもチャンネルを公開しており、アプリの使い方などを詳しく解説しているのでぜひ参考にしてみてください!


<参考>





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのスキルチェック

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

初心者でもほぼ無料でRuby用フレームワーク「Sinatra」について学べるコンテンツ8選

f:id:paiza:20171128153418j:plain
Photo by Gavin St. Ours
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

Ruby」と言われると、すぐに「Ruby on Rails」が思い浮かぶ方は多いかと思います。Railsは多数の機能を取り揃えたフレームワークです。生産性が高く、素早くWebサービスを作ることができるため、Webサービスを運営している企業でも多く使われています。

Railsは便利なフレームワークであるがゆえ、「どこで何が起きているか」「こう書くとなぜこう動くのか」といったことを意識しなくてもそれなりのWebサービスを作ることができます。

ただ、いずれはRubyエンジニアを目指して勉強しているのであれば、「何が起きてるのかよくわかんないけど、Rails使ったらそれなりのものができたからいいや」で終わるのはよくありません。使っているフレームワークの構造や裏で何が行われているかをある程度知っておかないと、多少のコードは書けても「おまじない」で終わってしまいます。

実際に、サービスを開発・運用していると、さまざまな不具合やトラブルなどが発生します。そんなとき、「何が起きてるのかよくわかんない」という状態では、どこに不具合の原因が隠れているのか探ったり、「これは恐らくDB側で問題が起きてるな」「この前フロント側に追加した機能が悪さをしてるっぽいな」といった切り分けもできません。

そこで、フレームワークの中で何が行われているかをもう少し学びたい方、実務で通用するレベルまで学びたい方は、Sinatraのような小規模なフレームワークを使って勉強してみることをおすすめします。

Sinatraは、Railsと比べると大変シンプルなRuby用のWebアプリケーションフレームワークです。Railsと比べると機能は少ないですが、そのぶん自分でいろいろと作業したり拡張したりする必要があるため、Webサービス開発に必要な手順を、手を動かしながら学ぶことができます。

というわけで今回は、なるべくコストをかけずにSinatraに触れられて、学習に役立てられるコンテンツを8件ご紹介していきます。

Sinatraが学べるコンテンツ

ドットインストール:Sinatra入門


動画でプログラミングの書き方、環境構築方法などが学べます。Sinatra入門 のレッスンがあります。

Udemy:Rails入門:基礎をSinatraで理解しRailsで作れるようになる

※有料
f:id:paiza:20171128151745j:plain
リクエスト・レスポンスのような概念やbundlerやgemなどのRubyの環境の基礎などについて、Sinatraを使って学べるコースです。

paizaラーニング Webアプリ開発入門 Sinatra編

※無料チャプター有(一部有料)

paizaラーニングSinatraの入門講座が追加されました!

paizaラーニングは一回3分程度の動画を見て、ブラウザ上で演習問題を解きながら、Sinatraの使い方について楽しく・効率よく学ぶことができます。未経験者でもブラウザさえあれば、環境構築不要で手を動かしながらSinatraの基礎を習得できます。

◆公式ドキュメント(翻訳版)

sinatra/README.ja.md at master · sinatra/sinatra · GitHub
公式ドキュメントのありがたい日本語訳版がGitHub上で公開されています。

Sinatraチュートリアル系記事

Sinatraチュートリアルにはこういった記事が参考になるかと思います。

Sinatraの初心者向け入門 〜簡単にWebサイトを作れるRubyフレームワーク

www.gamehuntblog.com

◇【初心者向け】RubySinatra、アンテナサイトの作り方

shgam.hatenadiary.jp

SinatraでとりあえずWebページを立ち上げてみる

qiita.com

◆書籍

◇入門 Sinatra――Web制作のためのシンプルなRuby DSL

※価格:1,836円
www.oreilly.co.jp
オライリー本の電子書籍です。

■まとめ

Sinatraを使ってWeb開発をしてみると、Railsよりも多少の手間はかかりますが、そのぶん必要な手順について深く理解できるかと思います。

フレームワークの使い方は、自分で手を動かして使ってみないことには習得できませんので、実際にモノを作ったりいろいろと試したりしてみるのがよいでしょう。





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza

初心者もゲーム感覚でPythonプログラミングを学べる、6つのサイトが楽しすぎる!

f:id:paiza:20171211133934j:plain
Photo by Kenny Louie
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

Python初心者の皆さんは、これからどうやって勉強を進めていこうと考えていますか?

プログラミング初心者の人が勉強を始めるとなると、

  • 独学でどう勉強したらいいのか分からない
  • 経験者向けの解説を読んでも難しい

といった悩みもあるかと思います。

そんな中、ゲームなどを通して遊び感覚で勉強ができたらいいですよね。

そこで今回は「初心者だけどPythonについて楽しく勉強したい!」という方のために、ゲーム感覚で楽しくPythonを学べるサイトを紹介していきます。

最近は、こういった遊び感覚でプログラミングについて学べるサイトやサービスがかなり増えてきましたので、以前より学習のハードルはかなり下がっていると思います。


【目次】

一攫千金プログラミング~ボットdeジャックポット~

『一攫千金プログラミング~ボットdeジャックポット~』は、プレイヤーのあなたがギャンブルAI(人工知能)のプログラムを作り、ハイスコアを目指すプログラミングカードゲームです。Pythonはもちろん、JavaRuby、C、C++C#PHPなどなど24言語に対応しています。

カジノでおなじみのブラックジャックゲームで、さまざまなAIディーラーたちと自分のコードを対戦させて、勝利すれば手持ちのチップが増えていきます。最強のAIを作りあげ、ランキング上位を目指しましょう!

プログラミングが得意な方はもちろん、プログラミング初心者の方でも、サンプルコードを参考にしながら気軽に楽しめるゲームとなっています。チップを使って他のプレイヤーが書いたコードを購入・使用することもできます!

コードガールこれくしょん

コードガールこれくしょん」略してガルこれは、ナビゲーターと一緒にプログラミング問題を解き、「コードガール」を集めながらストーリーを進めていく、プログラミング学習ゲームコンテンツです。内容は上記の一攫千金~よりもさらに初心者向けとなっています。Pythonはもちろん、JavaPHPRuby、C、C++C#JavaScriptに対応しています。

ゲーム内ではクエスト報酬やログインボーナス・ミッションクリア等の各種特典として手に入る「コイン」や「ダイヤ」を使って、ガチャでさまざまな「コードガール」を収集することができます。クエストで有利になる特殊スキルを発動させたり、「これくしょん」に入れてマイページに飾ったりと、コードガールをたくさん集めるほど楽しみ方が広がります。

pyQ

f:id:paiza:20171211122632j:plain

pyQは、ブラウザだけでPythonを学べるプログラミング学習サービスです。500問以上の大量のクエスト(問題)をゲーム感覚でクリアしながら、学習を進めていきます。

f:id:paiza:20171211114258j:plain
f:id:paiza:20171211114351j:plain

問題はコースやレベルに合わせたものが多数用意されているため、プログラミング未経験者から経験者まで、楽しく学べます。データ分析・機械学習入門のコースでpandasの使い方なども学べます!


Empire of Code

f:id:paiza:20171211123334j:plain

Empire of Codeは、兵士の動きを自分でプログラミングできるストラテジーゲームです。(JavaScript版もあります)

f:id:paiza:20171211113606j:plain

敵を倒すためには、敵軍の状況に応じて、コードを最適なものに書き換えていかなければなりません。また、プログラミング問題に正解すれば、自軍の施設をアップグレードすることもできます。

Empire of Codeについて詳しく解説している記事はこちら
paiza.hatenablog.com


CheckiO

f:id:paiza:20171211113308j:plain

CheckiOは、Pythonでプログラミング問題を解きながら進めていくゲームです。(JavaScript版もあります)

f:id:paiza:20171211125700j:plain

問題は段階的に難しくなっていくので、初心者でも始めやすいかと思います。また、他人が書いたPythonコードを見ることもできます。


CodinGame

f:id:paiza:20171211113817j:plain

CodinGameは対応言語が大変多く、ビジュアルも美しいので、楽しく遊びながら学べるプログラミングゲームです。(Python以外にもたくさんの言語に対応しています)

f:id:paiza:20171211114027j:plain

シューティングやアクションなどいろいろなゲームがあり、問題のレベルもチュートリアルから始まって、トレーニングコースから応用コースまであるので、初心者から中・上級者まで楽しく遊びながらプログラミングを学べます。


■まとめ

こうした遊び感覚で学べるサービスは、ただ問題を解くだけでなく、ストーリーを進めたり、マップを埋めたり、敵を倒したりといったゲーム要素があることで、初心者でも楽しく勉強を続けていけるかと思います。

ご興味のある方はぜひPythonの学習を始めてみてください。そしてある程度の基礎が身につきましたら、ぜひpaizaでご自分のスキルをはかってみてくださいね。


ただいまpaizaラーニングでは、2017年内限定で、普段有料のレッスンが4つまで無料受講できるキャンペーンを実施中です。

例えば、無料の「Python入門編1・2」を受講すれば、普段は有料の「Python入門編3」が期間限定で無料に、さらに「Python入門編3」を終えると「Python入門編4」が無料に…といった感じで、最大4つの有料レッスンを無料受講できます!(どの有料レッスンでも4つまで無料受講できますので、Python以外のレッスンももちろんOKです!)





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza