web-dev-qa-db-ja.com

タグなしの顔の提案をすべてiPhotoで見つけることは可能ですか?

iPhoto2009では顔認識が導入されました。インポートした写真の顔を検出して認識しようとします。

スマートアルバムを作成して、次の条件を使用して、ライブラリ内のタグなしの顔をすべて見つけることができます。

Face is unnamed 

しかし、スマートアルバムを作成して、iPhotoが認識できると考えるタグなしの顔をすべて見つけることは可能ですか?

2
will

タグなしの写真にタグを付ける最も簡単な方法は、段階的に行うことです。これが私のやり方です。

あなたにとって重要なすべての人々のために手動で「顔」を作成します。各人のサンプルを少なくとも10個作成します。通常のタグ付けプロセスを実行しますが、実行すると、顔は間違いなく誤った一致を推奨します。これは予想されることです。ダブルクリックして誤った一致を拒否するのではなく、controlキーを押しながらクリックして[名前]を選択します。この人が誰であるかを知っている場合は、この時点で既存の「顔」の名前を適用できます。この人物がデータベースに存在しない場合、Facesは新しいfacesエントリを自動的に作成します。これは、誤った一致を拒否するよりも少し手間がかかりますが、名前を付けることで、不明な一致のリストから削除し、一致する未処理の顔の数を減らし、新しく追加された人の確認済み認識リストに顔のサンプルを追加します。データベースをオンザフライでカリングします。私の本では、これはタグ付けされていない写真にタグを付けることと同じです。

これは、最終的にiPhotoのすべての写真のすべての人に名前を付けることを保証するものではありませんが、特定の写真がまだ一致する可能性がないことがわかっているため、非常にうまく機能します...そしてショットや人を見た場合あなたは認識します-たとえそれらが他の誰かのために提案された一致であるとしても、それらにすぐにそして正しく名前を付ける機会を利用してください-それは全体の認識プロセスがよりスムーズに働くようにします-一度に一つの顔。

2
dfw

ここでは、AppleScriptが1つのアプローチになります。今は実際に実装する時間がないので、あなたやここにいる誰かがそれを試してみたいと思った場合に備えて、私が想像していることの概要を説明します。または、もっと簡単な解決策があるかもしれません:

タグなしで検出された顔を探し、それらすべての写真を含むアルバム(残念ながら、スマートアルバムではありません)を作成するスクリプトを作成します。開始する前に古いバージョンのアルバムを削除して、更新するためにスクリプトを実行する必要があることを除いて、ほとんどスマートアルバムのように動作するようにすることができます。何らかのトリガーで自動的に実行されるように設定できる場合があります。

物事を複雑にするために、iPhoto'09はAppleScriptライブラリを介してFaces機能を公開していません。したがって、ライブラリバンドル内のsqliteデータベースを開き、手動で読み取る必要があります。誰かがすでにそこで関連する作業の一部を実行し、作成しました Facesと対話するためのスクリプト

しかし、これらのスクリプトは、すでに写真に添付されている顔を解析しています。潜在的な一致に関心があります。 _faces.db_ sqliteデータベースには_similar_faces_テーブルがあり、検出されたすべての未確認の面が一覧表示されているように見えます。 _image_key_を使用して、そのテーブルのすべての行に対して_ignored = 0_を選択する必要があります。

写真の1つの顔に複数の顔が表示されることがあります。それらの可能な一致は、顔のページに表示されます(「JohnDoeも下の写真に含まれている可能性があります」)。 iPhotoが写真から直接名前を提案するのに十分な自信を持っている顔だけに興味がある場合は、_similar_faces_から、あるしきい値、_0.80_などよりも大きいscoreの行のみを選択してください。また、_seed_face_key_の_face_name_を調べて、すでに知っている誰かとの強い一致があることを確認する必要があるかもしれません。現在、タグの付いていない顔が2つしかないので、承知しました。

0
jtb