View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

WWDC19に戻る

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • フォトセグメンテーションマットの紹介

    iOS 12のポートレートモードで撮影された写真には、人物のセグメンテーションマットが埋め込まれており、背景の置換などのクリエイティブな視覚効果を簡単に作成することができます。iOS 13では、オンデバイスの機械学習を活用することにより、撮影されたあらゆる写真に新規のセグメンテーションマットを追加することができます。このセッションでは、人物の髪、肌、歯を分離できる、AVCaptureとCore Imageの両方で利用可能な新しいセマンティックセグメンテーションマットについて説明します。こうしたマットのいずれかを個別に使用するか、組み合わせることで、驚くほど多彩な写真編集機能をAppに搭載することができるようになります。

    リソース

      • HDビデオ
      • SDビデオ
    • プレゼンテーションスライド(PDF)

    関連ビデオ

    WWDC19

    • カメラキャプチャとフォトセグメンテーションの最新情報
  • このビデオを検索

    (音楽)

    セマンティック セグメンテーションマットという 新しいマットの話を今日はします 後半ではCore Imageへの 活用法を紹介します

    iOS 12の ポートレートエフェクトマットは ポートレートで エフェクトを適用するマットでした 美しいポートレートモード写真の 生成に使われています ポートレートのマットを見てみましょう 背景を除いた人物だけが 描写されています 黒色と白色に分かれたマットです 1の値が前景 0の値が背景を示します

    iOS 13ではマットを さらに進化させました 髪のマットと―

    肌のマット

    そして歯です

    髪のマットを見てみましょう 髪のある部分だけが― きれいに分かれています 髪の毛の細かい情報も描かれ 肌の部分とも ちゃんと分かれています

    また 肌のマットには アルファ値が含まれ ピクセルの肌の割合を示します 0.7のアルファ値が示すのは 70%が肌ということです この新しい3つのマットを使えば すてきな写真やエフェクトを 作る自由度が増すでしょう

    実は マットは元の画像の 半分のサイズなので 縦横は半分の長さで 解像度は4分の1になります また ポートレート エフェクトマットと 特に肌のマットは 部分的に一致しています

    生成にはNeural Engineによる 機械学習を最大限に生かしています 内部処理ではオリジナルサイズの画像を Neural Engineに渡します 高品質画像を一貫性のあるマットで レンダリングします そして マットは被写界深度と共に HEIFやJPEGファイルに格納できます

    マットの生成には2つの方法があります ポートレートモードの 写真から引き出す方法と 自分でキャプチャーアプリケーションを 作る方法です マットを格納したファイルがあれば Core ImageとImage I/Oが 使えます まずはAVFoundation APIを 使った方法です

    4つの段階があります 1つ目はAVCapturePhotoOutputの設定 次はアプリケーションで 取得リクエストが開始された時 そして キャプチャ用に 設定が解決され 最後は写真の処理が終わった時です それぞれの詳細は2017年のセッションを 参考にしてください

    まずはAVCapturePhotoOutputの 設定から見ていきます beginConfigurationを呼び プリセットを決め デバイスの入力と AVCapturePhotoOutputを追加しました ここで どのマットを生成するかを APIに伝えます

    そして リクエストを開始する時は AVCapturePhotoSettingsを指定して APIに伝えます 有効にしたすべての設定や 髪や肌を指定できます リクエストを開始すると AVCapturePhotoSettingsに渡り 通知先に渡ります それから時間がたつと― コールバックに willBeginCaptureForが戻ります 実際に取得したものを この時 APIが知らせてくれます これはマットにとって重要です 人物がいない場合 マットはできません ですから サイズが0でないか 確認する必要があります

    そして 処理が完了しました ここでセマンティック セグメンテーションマットが戻ります ポートレートエフェクトマットと 同じメソッドとプロパティです そのため Exif情報から 画像を回転させたり CVPixelBufferを参照できます

    詳しい情報はサンプルアプリケーション AVCamを参照してください セマンティックセグメンテーション マットが追加されています

    では 同僚と変わります (拍手)

    ありがとう セグメンテーションマットについて Core Imageでの 活用方法を紹介していきます 今からデモを見せますが クラウンの写真が出てきます もしクラウン恐怖症の人や 苦手な人がいれば 目を閉じてくださいね ポートレートモードで撮った写真です このアプリケーションでは 写真にある それぞれのマットを 簡単に表示させられます 従来のポートレートエフェクトマットや こちらは肌のマットです さらに髪や歯のマットもあります またCore Imageで 合成することもできます 例えば 論理演算を用いて合成した 目と口だけのマットです 元の写真で 私はApple Parkにいます ポートレート エフェクトマットを使えば 背景を簡単に追加できます 背景をサーカスのテント内に 変えました ですが 私の写真が背景から 浮いています では エフェクトを加えてみましょう 例えば クラウンの化粧や もっと本格的に 髪を緑色にしてもいいですね 別のマットで 化粧も追加しました 今からアプリケーションへの 実装方法を紹介します (拍手) もうクラウンは登場しませんので 安心してください

    では Core Imageを使って マット画像を生成する方法 フィルターの適用方法 保存方法を説明します まずはマット画像の生成方法です 2つの方法があり 1つ目はAVCapturePhoto APIの使用です それからCore Imageを使います semanticSegmentationMatte APIを使い 髪や肌 もしくは歯を指定します 結果 AVSemanticSegmentationMatteの オブジェクトが返り CIImageを簡単に生成できます インスタンスの生成もできます 2つ目はHEIFかJPEGファイルから 読み込む方法です ファイルはRGB画像を格納しています さらに補助画像である ポートレートエフェクトマットや 髪や歯のセグメンテーションマットを 含んでいます HEIFファイルからCIImageを 生成するにはCIImageと書いて URLを指定するだけですね 補助画像を生成するのも同じで オプションで どのマット画像を返すか 指定するだけです 髪なら auxiliarySemantic SegmentationHairMatteなど― 各マットをオプションで指定できます 数行のコードでシンプルです

    次は 画像への エフェクトの適用方法です 先ほどのエフェクトを 詳しく紹介します まず ベースのRGB画像から始めます さらに クラウンの色あせた白い化粧の エフェクトを出すために 写真を調整します 写真全体ではなく 調整を肌だけに適用したいので 肌のマットを使います 3枚を合成すれば 期待した結果が出ます

    コードはとてもシンプルです 実はその前に 報告があります 200以上あるフィルターが 使いやすくなりました それが新しいCIFilterBuiltinsです フィルターや入力の名前を覚えなくても フィルターが使えます (拍手) このヘッダーを使って コードを紹介します まずはベースとなる画像を生成します 従来のRGB画像ですね 次はエフェクトです まずはグレースケールにします フィルターはmaximumComponentです 画像をフィルターに渡し 出力するよう― コードを書きます 結果 グレースケールになりました まだ 白さが足りないので ガンマを調整する フィルターを追加します 入力は先ほど出力した画像です そして ガンマの値を指定して 出力を求めます ガンマの値はFloat型で 指定できるので NSNumberよりとても簡単です

    最初のエフェクトの完成です 次の工程に移ります

    肌のマットを取得します 先ほどと同様に 肌のマットを取得するよう指定します しかし マットの画像は オリジナルの半分のサイズです

    そこで サイズを合わせます CGAffineTransformMakeScaleを使って マット画像を変形させます サイズが正しい画像が生成されました

    次は2つの画像を合成します blendWithMaskフィルターを使います まずは このRGB画像を 背景として設定します 次に前景となる― 白い化粧のエフェクトを加えた画像を 指定します そして最後に マスクを指定します 先ほど お見せした画像ですね この3つをフィルターにかけると こうなります 他にもエフェクトを組み合わせて 面白いものが作れますよ

    エフェクトの適用後は 補助画像の保存に対応している― HEIFかJPEGで保存します メイン画像に加え マットを格納すれば 他のアプリケーションでも 使えますからね

    Core Imageの writeHEIFRepresentation APIで 保存したいメイン画像とURLを 指定します ピクセルフォーマットと カラースペースも指定します さらに 別のオプションを 追加することができます セグメンテーションマットを指定すれば 肌のマットや髪― 歯のマットを保存できます これらすべての画像が HEIFやJPEGで保存されます また 別の方法でも保存できます AVSemanticSegmentationMattesの オブジェクトです APIはシンプルで メイン画像から カラースペースまで指定します この場合 マット画像を保存するには AVSemanticSegmentationMattesで 指定するだけです

    マットの活用方法を紹介しました マット画像の生成方法 フィルターの適用と保存方法です デモは写真Appのプラグインとして 書かれたものです HEIFだけでなくPhoto Libraryに 保存する方法を知りたい方は 過去のセッションを参考にしてください 特に2014年の“Introducing the Photos Frameworks”です

    ありがとうございました 皆さん 頑張ってください 以上です (拍手)

Developer Footer

  • ビデオ
  • WWDC19
  • フォトセグメンテーションマットの紹介
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン