いま、ここにあるエッジAI
PhotoshopなどでエッジAIを活用するAdobe
~労力のかかっていた被写体の選択をAIが自動処理
2020年7月16日 09:50
Intelは近年マシンラーニング(機械学習)を利用したAIの普及に力を入れている。とくに「推論」と呼ばれる、学習済みデータを利用した物体判別や、音声認識をクラウド側で行なう処理では、その多くの処理に同社のデータセンター向けプロセッサである「Xeon Scalable Processors」が利用されており、われわれのデジタルライフを支える存在になっている。
そのようにAIというものは、データセンターと結びつけて語られることも多く、文字どおり、どこか雲の上の存在のように感じているユーザーもいるかもしれない。しかし、Intelでは、エッジAIの普及にも力を入れている。エッジAIとは、先端のAI、つまりユーザー端末などローカル上で実行するAIのこと。Windowsで動作するAI対応アプリもその1つだ。
そうしたエッジアプリでのAI活用の背景には、Intelが提供するツールキットや開発サポートなどが重要な役割を果たしていることをご存じだろうか? とくに無償のAI向け開発キットである「OpenVINO toolkit」は多くのメーカーで採用されている。この連載では、Intelの取材協力のもと、各ソフトメーカーにどのようにして、どういったAIを活用した機能を実装していったのかを聞いていく。
連載第1回目として、Adobeのクリエイターツール「Creative Cloud」を取り上げる。
いま、ここにあるエッジAI 記事一覧
CPUやGPUなど各種プロセッサに対応するOpenVINO
AIという言葉でくくられることの多い、マシンラーニングやディープラーニング(深層学習)を利用した処理は、ここ数年で一般消費者にもおなじみになりつつある。AppleのSiri、MicrosoftのCortana、AmazonのAlexaなど、スマートフォンやWindows PCで利用されている音声認識機能はその代表と言える。
これらの音声認識機能では、ローカルでキャプチャした音声データをクラウドへアップロードし、クラウド側で推論処理、音声を文字へと変換して検索などの必要な処理を行ない、クライアントへ戻すという一連の作業を行なっている。つまり、実態としてはクラウドベースのアプリだと言える。
一方、クルマの自動運転では、前方カメラから取り込んだ画像をもとに、障害物があればそれを避けるなどの作業を行なっている。ここで、いちいちクラウドにデータを送って処理をしていると、処理結果が返ってくる前に障害物に衝突してしまう。そこで自動運転の場合は、クルマに内蔵されたCPU/GPUで画像認識を行ない、即座にハンドルやアクセル操作をローカルプロセッサが指示する。こうしたローカルで完結するAIをエッジAIと呼んでいる。
最近は、Windows 10アプリでも高速処理のためエッジAIで対応するものが増えている。その実装を下支えしているのがIntelが提供するOpenVINOという開発ツールキットだ。OpenVINOを利用すると、CaffeやTensorFlowなどの一般的なフレームワークを利用して、Intelプロセッサに最適化を行なうことができる。
OpenVINOは、CPUのみならず、GPUやMovidiusの買収で入手したVPU(Visual Processing Unit、1W以下で画像認識などに使えるプロセッサ)にも対応している。まとめて「xPU」と総称される各種プロセッサへの最適化を行ない、効率のよい処理を実現するのがOpenVINOの役割だ。
またIntelは、業界を挙げてのAI普及のため、OpenVINOだけでなく、AppleのCore MLやAndroidのTensorFlow Liteなどに対してもハードウェアの最適化を促している。
開発コードネームIce Lake(アイスレイク)で知られる第10世代Coreプロセッサーには、「Intel GNA(Gaussian Neural Accelerator)」という推論アクセラレータが搭載されているが、OpenVINOはGNAにも対応している。
Adobe SenseiベースのエッジAI開発にOpenVINOが採用
そうしたAIを利用したソフトウェアの開発で、先頭を行く企業の1つがAdobeだ。Adobeは2016年に発表した「Adobe Sensei」(アドビセンセイ)というAIの実装を近年進めている。
Adobe Sensei全体としては、その実体はクラウドにあり、基本的にはクラウド側で学習や推論などを行なう。たとえば、同社のストックサービスであるAdobe Stockの検索には、Adobe Senseiにもとづく推奨や検索機能などが活用されている。
それに対して、Photoshopでは、Adobe Senseiのエッセンスを利用した機能がエッジAIとして実装されている。その代表例が、「被写体を選択」機能だ。詳しい機能はAdobeのWebサイトを参照していただきたいが、簡単に言えば写真などで切り抜きたい被写体があるときに、それをある程度適当に選択するだけで、AIが自動で複雑な物体の輪郭を検出してくれる機能だ。
この機能が実装される以前は、手作業で領域を細かく指定する必要があり、とにかく時間がかかる作業だった。以前にも「被写体を選択」機能はあったのだが、人間の髪の毛など繊細な選択まではできていなかった。しかし、AIによって、より正確にできるようになったのだ。AIがユーザーの生産性を上げる一例だと言える。
なお、Adobe製品では、Photoshop Elementsでも、写真のカラー化や、肌を滑らかにする機能でエッジAIを活用している。
今回取材したAdobe Machine Learning & Platform Engineering部門ディレクターのディヴィヤ・ジェイン氏は、「OpenVINOを利用することで、Adobe SenseiベースのAI実装がより進んだ。OpenVINOの利用にあたっては、Intelのエンジニアチームと密接な協業を行ない、きちんとした最適化がなされていることを確認でき、製品開発を効率化できた」と説明する。
OpenVINOはクロスプラットフォーム開発にも役立つとAdobe
ジェイン氏は、「OpenVINOを利用したメリットは、そうしたCPUの処理能力の向上だけではない。OpenVINOは、WindowsとmacOSに対応しており、クロスプラットフォームでの加速という側面もあった」と語る。
参考までに、Adobeが各プラットフォームでのエッジAIの実装に利用している開発ツールキットやフレームワークは以下のとおり。
- Android: TensorFlow Lite(Google)
- Windows: OpenVINO(Intel)/WinML(Microsoft)
- macOS: Core ML(Apple)/OpenVINO(Intel)
- iOS: Core ML(Apple)
この連載では、今後、さまざまなアプリ/サービスにおけるエッジAIの活用事例を紹介していく。
[制作協力: インテル]