人は画像のどこをみているか。
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)人が見る確率が高いところ
🐣
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。