20220127のSwiftに関する記事は1件です。

iOSで画像の類似度を計算する

iOSで画像間の類似度を数値化する方法です どちらが上の画像に似ている? にている画像を探したい VisionFeaturePrintが使える VisionFeaturePrintは、たくさんの画像で学習した機械学習モデルによって画像の特徴を数値に抽象化したものです。 その数値を比べることで、画像が似た特徴を持っているかがわかります。 手順 画像からfeaturePrintを取得します。 do { let request = VNGenerateImageFeaturePrintRequest() let requestHandler = VNImageRequestHandler(ciImage: ciImage, options: [:]) try requestHandler.perform([self!.request]) guard let featurePrint = request.results?.first as? VNFeaturePrintObservation else { return } } catch let error { print(error) } 画像それぞれのfeaturePrintの間の差を計算します。 var distance = Float(0) try featurePrint.computeDistance(&distance, to: baseFeaturePrint) print(distance) この画像を基準に、featurePrintの差を出してみます。数値が小さい方が、特徴が似ていると判断されています。 ↑BaseImage 松ぼっくり distance: 28.104025 リス distance: 22.826147 全体の色調は松ぼっくりの画像の方が似ていますが、きちんとリスという特徴を把握していることがわかります。 ? フリーランスエンジニアです。 お仕事のご相談こちらまで rockyshikoku@gmail.com Core MLやARKitを使ったアプリを作っています。 機械学習/AR関連の情報を発信しています。 Twitter Medium
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む