【发布时间】:2017-07-13 15:29:43
【问题描述】:
我在 facedetails 中有 14 个属性我想查询并为每个属性找到最接近的匹配项,并且只有当 14 个属性与人脸匹配时,我的代码才会返回人对象。 这是数据库上的一个示例:
"faceDetails":{
"mCalculateFaceSizeHeight" : 121,
"mCalculateFaceSizeWidth" : 107,
"mCalculateLeftEyeBrowSizeHeight" : 31,
"mCalculateLeftEyeBrowSizeWidth" : 43,
"mCalculateLeftEyeSizeHeight" : 64,
"mCalculateLeftEyeSizeWidth" : 10,
"mCalculateMouthSizeHeight" : 24,
"mCalculateMouthSizeWidth" : 30,
"mCalculateNoseSizeHeight" : 43,
"mCalculateNoseSizeWidth" : 71,
"mCalculateRightEyeBrowSizeHeight" : 43,
"mCalculateRightEyeBrowSizeWidth" : 52,
"mCalculateRightEyeSizeWidth" : 14,
"mCalculatedRightEyeSizeHeight" : 36
}
目前在 Android 设备中我有这样的东西。
Query personLeftEyeSizeWidthQueryendAt = myRef.orderByChild("mCalculateLeftEyeSizeWidth")
.endAt(mCalculateLeftEyeSizeWidth())
.limitToLast(1);
personLeftEyeSizeWidthQuery.addChildEventListener(new ChildEventListener() {....
Query personLeftEyeSizeWidthQueryStartAt = myRef.orderByChild("mCalculateLeftEyeSizeWidth")
.startAt(mCalculateLeftEyeSizeWidth())
.limitToFirst(1);
personLeftEyeSizeWidthQuery.addChildEventListener(new ChildEventListener() {....
My index is like this:
".indexOn": [
"mCalculateLeftEyeSizeWidth",
"mCalculateLeftEyeSizeHeight",
"mCalculateRightEyeSizeWidth",
"mCalculatedRightEyeSizeHeight",
"mCalculateNoseSizeWidth",
"mCalculateNoseSizeHeight",
"mCalculateMouthSizeWidth",
"mCalculateMouthSizeHeight",
"mCalculateLeftEyeBrowSizeWidth",
"mCalculateLeftEyeBrowSizeHeight",
"mCalculateRightEyeBrowSizeWidth",
"mCalculateRightEyeBrowSizeHeight",
"mCalculateFaceSizeWidth",
"mCalculateFaceSizeHeight"
]
我的问题是我是否会向前推进 28 个单个查询,每个单个查询或有更好的方法来组合所有 28 个。 我不想放弃其中的一些,因为人脸识别的准确性对于找到匹配项非常重要。 让我知道我是否应该继续执行 28 个单个查询,然后检查每个查询的键以查看它们都匹配同一个人或其他方法。
谢谢 埃兰·格罗斯
【问题讨论】:
-
查看我对这个问题的回答stackoverflow.com/questions/46156902/…
标签: android firebase firebase-realtime-database