Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiRAD Studio

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

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が必要になります。

cartoonify photos with this easy but powerful neural network ja 1 9377062

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

toonify-6170351-5672534

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

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

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

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

APIから取得したJSONデータ

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

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

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

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

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

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

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

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

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

screen shot 2021 05 16 at 23 57 16

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

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

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

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES