faceXId -> descriptorXId in DB

Signed-off-by: James Ketrenos <james_git@ketrenos.com>
This commit is contained in:
James Ketr 2023-01-12 16:24:02 -08:00
parent 87d0b95b39
commit 997df5d8b6

View File

@ -52,12 +52,12 @@ function getFacesForPhoto(id) {
}).then((faces) => { }).then((faces) => {
/* For each face in the photo, get the related faces */ /* For each face in the photo, get the related faces */
return photoDB.sequelize.query( return photoDB.sequelize.query(
"SELECT relatedFaces.photoId AS photoId,fd.face1Id,fd.face2Id,fd.distance,relatedFaces.faceConfidence " + "SELECT relatedFaces.photoId AS photoId,fd.descriptor1Id,fd.descriptor2Id,fd.distance,relatedFaces.faceConfidence " +
"FROM (SELECT id,photoId,faceConfidence FROM faces WHERE faces.faceConfidence>=0.9 AND faces.id IN (:ids)) AS faces " + "FROM (SELECT id,photoId,faceConfidence FROM faces WHERE faces.faceConfidence>=0.9 AND faces.id IN (:ids)) AS faces " +
"INNER JOIN faces AS relatedFaces ON relatedFaces.faceConfidence>=0.9 AND relatedFaces.id IN (fd.face1Id,fd.face2Id) " + "INNER JOIN faces AS relatedFaces ON relatedFaces.faceConfidence>=0.9 AND relatedFaces.id IN (fd.descriptor1Id,fd.descriptor2Id) " +
"INNER JOIN facedistances AS fd ON fd.distance<=0.5 " + "INNER JOIN facedistances AS fd ON fd.distance<=0.5 " +
" AND (fd.face1Id=faces.id OR fd.face2Id=faces.id) " + " AND (fd.descriptor1Id=faces.id OR fd.descriptor2Id=faces.id) " +
"WHERE (faces.id=fd.face1Id OR faces.id=fd.face2Id) " + "WHERE (faces.id=fd.descriptor1Id OR faces.id=fd.descriptor2Id) " +
"ORDER BY fd.distance ASC", { "ORDER BY fd.distance ASC", {
replacements: { replacements: {
ids: faces.map(face => face.id), ids: faces.map(face => face.id),
@ -67,13 +67,13 @@ function getFacesForPhoto(id) {
}).then((relatedFaces) => { }).then((relatedFaces) => {
faces.forEach((face) => { faces.forEach((face) => {
face.relatedFaces = relatedFaces.filter((related) => { face.relatedFaces = relatedFaces.filter((related) => {
return (related.photoId != id && (related.face1Id == face.id || related.face2Id == face.id)); return (related.photoId != id && (related.descriptor1Id == face.id || related.descriptor2Id == face.id));
}).map((related) => { }).map((related) => {
return { return {
distance: related.distance, distance: related.distance,
faceConfidence: related.faceConfidence, faceConfidence: related.faceConfidence,
photoId: related.photoId, photoId: related.photoId,
faceId: related.face1Id != face.id ? related.face1Id : related.face2Id faceId: related.descriptor1Id != face.id ? related.descriptor1Id : related.descriptor2Id
} }
}); });
}); });
@ -128,12 +128,12 @@ router.get("/:id?", (req, res) => {
} }
console.log("Looking up " + faces.map(face => face.id).join(",")); console.log("Looking up " + faces.map(face => face.id).join(","));
return photoDB.sequelize.query( return photoDB.sequelize.query(
"SELECT relatedFaces.photoId AS photoId,fd.face1Id,fd.face2Id,fd.distance,relatedFaces.faceConfidence " + "SELECT relatedFaces.photoId AS photoId,fd.descriptor1Id,fd.descriptor2Id,fd.distance,relatedFaces.faceConfidence " +
"FROM (SELECT id,photoId,faceConfidence FROM faces WHERE faces.id IN (:ids)) AS faces " + "FROM (SELECT id,photoId,faceConfidence FROM faces WHERE faces.id IN (:ids)) AS faces " +
"INNER JOIN faces AS relatedFaces ON relatedFaces.identityId IS NULL AND relatedFaces.faceConfidence>=0.9 AND relatedFaces.id IN (fd.face1Id,fd.face2Id) " + "INNER JOIN faces AS relatedFaces ON relatedFaces.identityId IS NULL AND relatedFaces.faceConfidence>=0.9 AND relatedFaces.id IN (fd.descriptor1Id,fd.descriptor2Id) " +
"INNER JOIN facedistances AS fd ON fd.distance<=0.5 " + "INNER JOIN facedistances AS fd ON fd.distance<=0.5 " +
" AND (fd.face1Id=faces.id OR fd.face2Id=faces.id) " + " AND (fd.descriptor1Id=faces.id OR fd.descriptor2Id=faces.id) " +
"WHERE (faces.id=fd.face1Id OR faces.id=fd.face2Id) " + "WHERE (faces.id=fd.descriptor1Id OR faces.id=fd.descriptor2Id) " +
"ORDER BY fd.distance ASC",{ "ORDER BY fd.distance ASC",{
replacements: { replacements: {
ids: faces.map(face => face.id) ids: faces.map(face => face.id)
@ -143,13 +143,13 @@ router.get("/:id?", (req, res) => {
}).then((relatedFaces) => { }).then((relatedFaces) => {
faces.forEach((face) => { faces.forEach((face) => {
face.relatedFaces = relatedFaces.filter((related) => { face.relatedFaces = relatedFaces.filter((related) => {
return (related.photoId != faces[0].photoId && (related.face1Id == face.id || related.face2Id == face.id)); return (related.photoId != faces[0].photoId && (related.descriptor1Id == face.id || related.descriptor2Id == face.id));
}).map((related) => { }).map((related) => {
return { return {
distance: related.distance, distance: related.distance,
faceConfidence: related.faceConfidence, faceConfidence: related.faceConfidence,
photoId: related.photoId, photoId: related.photoId,
faceId: related.face1Id != face.id ? related.face1Id : related.face2Id faceId: related.descriptor1Id != face.id ? related.descriptor1Id : related.descriptor2Id
} }
}); });
}); });