サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

簡単で強力なニューラルネットワークを使用して顔写真を漫画化してみる

smartmockups korfoay5

この記事は、Heru Susanto氏のブログの抄訳です

このwikiに基づいた情報ですが、畳み込みニューラルネットワーク(CNN、または ConvNet)は、ディープニューラルネットワークの一種であり、最も一般的では、視覚画像の分析等の分野に利用されています。シフト不変または位置不変の人工ニューラルネットワーク(SIANN)とも呼ばれています。

畳み込みニューラルネットワーク?なんだか難しそうですが・・・?

朗報です。DeepAI.orgはCNNにアクセスするためのAPIを提供していますので、それを使用して素早くアプリケーションを作ることができます。このブログでは、その方法についてご紹介いたします。

DeepAI APIを使用してアプリを設定するにはどうすればよいですか?

DeepAI APIを利用するためには、https://deepai.org へサインアップしてください。

サインアップが完了すると、下図のようにapi keyが取得できます。これはユーザー固有のIDで、Toonify APIへアクセスするためには、このapi keyが必要になります。

Toonify APIへアクセスすると、畳み込みニューラルネットワークを使用して、どんな顔の写真でも、人工知能で瞬時にカートゥーン(漫画)な画像に変換されます。

詳しくは、以下のToonify API のドキュメントを参照してください。

https://deepai.org/machine-learning-model/toonify

curlコマンドを利用してDeepAI APIにアクセスするためのエミュレートが行えます。これが最も簡単な方法です。

[crayon-67688eb8dcf2d628452736/]

これと同じ事をDelphiでコーディングすると、以下のようなコード例になります。

[crayon-67688eb8dcf36665080929/]

APIから取得したJSONデータ

上記のコードは、Toonify APIへアクセスし、渡した元の画像の出力結果をJSON形式で取得しています。取得したJSONデータは、以下の通りです。

[crayon-67688eb8dcf38512439328/] 取得したJSON出力のデータの中には、output_urlという項目があり、これは元画像を漫画加工されたJPEG画像のURLです。

APIから取得した画像データの表示

せっかくなのでoutput_urlの画像をダウンロードし、TImageコンポーネントで表示できるように変換してみましょう、そのコードは以下の通りです。 [crayon-67688eb8dcf39362484709/]

このブログで紹介した内容の完全なソースコード

以下は、DeepAI APIを使用して、元画像データを漫画化および取得した画像データを表示するDelphiアプリケーションの全ソースコードです。

[crayon-67688eb8dcf3a925003087/]

このブログで紹介したDelphiのFMXアプリケーションのプロジェクト一式は、以下のGitHubからダウンロードできます。

https://github.com/herux/DelphiDeepAI-Toonify.git

このサンプルプロジェクトをビルドして実行すると、こんな感じです。

上記は、このブログの作者であるHeru Susanto氏の写真を漫画化した例です。どうでしょう? 元の雰囲気は残っているような・・別人のような(笑)

皆さんは、いかがでしょうか?  

もし興味がございましたら、是非 試してみてください!!

モバイルバージョンを終了