是否有可能在 iPhoto 中找到所有未标记的脸部建议?

是否有可能在 iPhoto 中找到所有未标记的脸部建议?

iPhoto 2009 引入了人脸识别功能。它将尝试检测并识别您导入的照片中的脸部。

您可以创建智能相册,使用以下条件查找图库中所有未标记的面孔:

Face is unnamed 

但是,是否可以创建智能相册来查找 iPhoto 认为可以识别的所有未标记的面孔?

答案1

给未加标签的照片加标签的最简单方法是逐步进行。下面是我的做法。

手动为所有对你来说很重要的人创建“面孔”。为每个人创建至少 10 个样本。按照正常的标记过程进行,但在此过程中,面孔无疑会推荐不正确的匹配。这是可以预料到的。与双击并拒绝不正确的可能匹配相反,按住 Control 键单击它并选择“名称”。如果您知道此人是谁,此时您可以应用他们预先存在的“面孔”名称。如果数据库中不存在此人,Faces 甚至会自动创建一个新的面孔条目。这比拒绝不正确的匹配稍微多一点工作,但通过命名,您可以将其从未知匹配列表中删除,从而降低要匹配的未完成面孔数量,将更多面孔样本添加到新添加的人的已确认识别列表中,并即时剔除数据库。在我看来,这相当于随时标记未标记的照片。

这并不能保证您最终能说出 iPhoto 中每张照片中每个人的名字,但这种方法确实非常有效 - 因为您知道某些照片尚未出现可能的匹配项...如果您看到了您认识的照片或人 - 即使他们是其他人的拟议匹配项,也可以利用这个机会立即正确地说出他们的名字 - 这使整个识别过程更加顺畅 - 每次识别一张脸。

答案2

AppleScript 是一种方法。由于我现在没有时间真正实现它,所以我将概述一下我的想法,以防你或这里的其他人想尝试一下。或者也许有一个更简单的解决方案:

编写一个脚本,查找未标记的检测到的脸部,并创建一个相册(但不幸的是,不是智能相册),其中包含所有这些照片。它可以在开始之前删除相册的旧版本,以便它的行为与智能相册基本相同,但您需要运行脚本来更新它。可以将其设置为在某些触发器上自动运行。

事情变得更加复杂的是,iPhoto '09 不会通过 AppleScript 库公开 Faces 功能。因此,您必须打开库包中的 sqlite 数据库并手动读取它。有人已经完成了其中的一些工作,并创建了与 Faces 交互的脚本

但这些脚本正在解析已附加到照片的面孔。我们对潜在匹配感兴趣。sqlitefaces.db数据库有一个similar_faces表,其中似乎列出了它检测到的所有未经确认的面孔。您需要使用 选择image_key该表中的所有行ignored = 0

有时,一张照片中的一张脸会列出多张脸。这些可能的匹配项会显示在脸部页面上(“John Doe 也可能出现在下面的照片中”)。如果您只对 iPhoto 足够信任的脸部感兴趣,可以直接从照片中推荐姓名,那么只选择大于某个阈值的行similar_facesscore或者0.80其他。您可能还需要查找seed_face_keyface_name确保强匹配是它已经知道的人,我现在只有两个未标记的脸部需要检查,所以我不确定。

相关内容