![見出し画像](https://assets.st-note.com/production/uploads/images/144085408/rectangle_large_type_2_8445b9d70ed547617900972744848bcb.png?width=1200)
iOS 18, visionOS 2のVisionフレームワークの新機能
WWDC24のセッション "Discover Swift enhancements in the Vision framework" を見たメモ。
⚠️ 本記事の画像、引用部分は基本的に同セッションからの引用です。
(なお当初本記事のタイトルを「VisionのiOS 18での新機能」と書いていて自分でも空目しそうになったので変更したのだが、"visionOS" ではなく "Vision" フレームワークの話です)
セッションのアジェンダ
New Vision API
Swift用に設計された合理化された構文で、以前と同様に強力な新しいAPIを発表できることを嬉しく思います。
Optimize with Swift Concurrency
我々はまた、Swift ConcurrencyとSwift 6の完全なサポートを導入し、まだ最もパフォーマンスの高いアプリを書くことを可能にします。
Update an existing Vision app
このビデオの残りの部分では、新しい Swift API を使い始める方法を紹介します。
What’s new in Vision?
今年のVisionの新機能を紹介します。
これまでの機能をSwift 6 / Swift Concurrencyサポートした新しいAPIで書けますよーってところは本記事では割愛し(書くときに当然参照はするが)、本記事では新機能について紹介されている "What’s new in Vision?" のパートにフォーカスして見ていく。
ちなみに本記事では触れないのだが、このVision API一覧のスライドが気に入ったので貼っておく:
![](https://assets.st-note.com/img/1718409121638-dQ6jmDTd7B.png?width=1200)
画像品質の評価 - Image aesthetic
![](https://assets.st-note.com/img/1718409278255-70Ik3NTRtK.png?width=1200)
`CalculateImageAestheticScoresRequest` という新しいリクエストAPIが追加された。"aesthetics"は「美学」「審美学」みたいな意味らしい。
概要
画像の品質を評価し、思い出に残る写真を見つけるために使用できる
ブレや露出など、画質を決定するために分析される複数の要素があり、総合スコアでその画像の画質が表される
ユーティリティ画像の識別
こういうことが書かれていた:
スクリーンショットや領収書の写真のように、役に立つかもしれないが、特に記憶に残らない画像であるユーティリティ画像も識別する
個人的には「写真として美しいものがわかる」というのはあまり興味ないなと思ったのだが、「ユーティリティ(実用的な)画像を識別する」というユースケースにはかなりグッときた。
自分のPhotosライブラリは500GB以上あるのだが、そういう画像が多く混じっていて、Photos管理外に追い出したいと思っていたので。
具体例
![](https://assets.st-note.com/img/1718410370299-0otwrhuKRs.png?width=1200)
この美しい風景の画像は高得点です。露出もよく、印象に残る風景です。
![](https://assets.st-note.com/img/1718410395826-MpWIT60KB4.png?width=1200)
この画像はピントがはっきりしていない。偶然撮られたようで、点数は低い。
![](https://assets.st-note.com/img/1718410418433-rPvwfpIFYU.png?width=1200)
この木箱の画像は技術的にはよく撮れているが、友人と共有したくなるような印象的な写真ではないかもしれない。これはユーティリティ画像だ。
新しいAPIを使うには、を使えばいい。このリクエストは画像美的スコア観測を生成し、画像がどの程度よく撮れているかを示すマイナス1から1までの総合スコアを持ちます。
API
`CalculateImageAestheticScoresRequest` を使う。
![](https://assets.st-note.com/img/1718409880382-5r5bb0r7LN.png?width=1200)
結果は `ImageAestheticsScoresObservation` 型で得られる。この型は総合スコアを示す `overallScore` 以外に、`isUtility` というプロパティも持っており、「よく撮れているが、記憶に残らないコンテンツを持っている」写真に対して true になる。
新しい姿勢検出API - Holistic body pose
概要
![](https://assets.st-note.com/img/1718410649929-mLi8apNIDW.png?width=1200)
これまでのVisionでは、身体と手のポーズ検出は別々にリクエストされていた
ホリスティック・ボディ・ポーズは、手と体を一緒に検出することができる
"Holistic" は「全体的な」という意味らしい。
実装
![](https://assets.st-note.com/img/1718411095959-Q6a3JCCcXQ.png?width=1200)
リクエストには `DetectHumanBodyPoseRequest` を使用する
手の検出も行うには、リクエストの `detectsHands` を `true` に設定する
結果は `HumanBodyPoseObservation` 型で得られる
leftHand, rightHand プロパティ経由で右手と左手のポーズを得られる
ここから先は
![](https://assets.st-note.com/production/uploads/images/30546/profile_06a075ed16533f7e4dbf64e4f60f99be.jpg?fit=bounds&format=jpeg&quality=85&width=330)
#WWDC24 の勉強メモ
WWDC 2024やiOS 18, visionOS 2についてセッションやサンプルを見つつ勉強したことを記事にしていくマガジンです。 …
Amazonギフトカード5,000円分が当たる
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/