1

我正在做一个捕获照片以验证用户的 android 应用程序。我正在尝试使用少量图像创建 personGroup。但我得到了这个错误。

com.microsoft.projectoxford.face.rest.ClientException:人员组 ID 无效。

我的代码是,

public fun createPersonGroup(personGroupId: String, personGroupName: String) {
    faceServiceClient.createPersonGroup(personGroupId, personGroupName, null)
}

public fun addPersonToGroup(personGroupId: String, name: String, pathToImages: File) {
    val person = faceServiceClient.createPerson(personGroupId, name, null)
    detectAndRegister(personGroupId, person, pathToImages)
}

private fun detectAndRegister(personGroupId: String, person: CreatePersonResult?, pathToImages: File) {

    for (file in pathToImages.listFiles()) {
        val stream = file.inputStream()
        faceServiceClient.addPersonFace(personGroupId, person!!.personId, stream, null, null)
    }

    trainingAI(personGroupId)
}

private fun trainingAI(personGroupId: String) {
    faceServiceClient.trainPersonGroup(personGroupId)
    var trainingStatus: TrainingStatus? = null

    while (true) {
        trainingStatus = faceServiceClient.getPersonGroupTrainingStatus(personGroupId)
        if (trainingStatus!!.status != TrainingStatus.Status.Running) {
            runOnUiThread { progressDialog.dismiss() }
            break
        }
    }
}
4

2 回答 2

2

检查您是否以正确的顺序做事。

创建一个人组。将用户添加到带有图片的人员组。训练人员组。尝试识别人物组内的图片。

就像路易斯说的,检查你没有使用任何无效字符。

于 2018-05-03T21:51:31.970 回答
0

根据Face API 参考 v1.0,group id 的有效字符包括数字、小写英文字母 '-' 和 '_'。personGroupId 的最大长度为 64。

于 2018-04-25T20:22:32.600 回答