Visionで顕著性分析。人の視線を集めるのはどこか。


人は画像のどこをみているか。

Visionで、画像の中で人の視線を集めやすい部分を分析できます。
いろんな画像で分析してみました。

 (1)人 / (2)目立つ物体  / (3)人が見る確率が高いところ

白い部分が顕著性マスクで、四角がその境界ボックス表現です。
画像はアップルの公式サンプルです。簡単に試せます。

1,人の視線を集める可能性の高い部分を分析する。

let attentionRequest = VNGenerateAttentionBasedSaliencyImageRequest()

2,目立つ物体を分析する。

let objectRequest = VNGenerateObjectnessBasedSaliencyImageRequest()

実行

let requestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: [:])
try? requestHandler.perform([attentionRequest])

結果処理

let observation = request.results?.first as? VNSaliencyImageObservation
let pixelBuffer = observation.pixelBuffer // 結果マスク画像のピクセルバッファー (68*68)
let salientObjects = observation.salientObjects // 目立つオブジェクトのRectangleObservation
for object in salientObjects {
    let boundingBox = object.boundingBox // 個々のオブジェクトの境界ボックス 
}

試してみた

 (1)かぼちゃ / (2)目立つ物体  / (3)人が見る確率が高いところ

 (1)ろうそく / (2)目立つ物体  / (3)人が見る確率が高いところ

 (1)わんちゃん / (2)目立つ物体  / (3)人が見る確率が高いところ

🐣


お仕事のご相談こちらまで
[email protected]

Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。

Twitter
Medium