图片验证指南
为了确保用户上传的图片符合发型编辑 API 的要求,建议将工作流程分为两个阶段:人脸分析和发型处理。这种方法通过在前端验证图片来确认其符合 API 标准,然后再进行发型处理,从而最小化错误等待时间,提升整体用户体验。前端验证要求
在调用发型编辑 API 之前,前端应进行以下验证:- 图片分辨率和大小:确保图片符合 API 的分辨率和文件大小要求,以获得最佳处理质量。
- 人脸检测:人脸检测验证人脸的存在、人脸数量、人脸与图片的比例,以及人脸角度是否符合要求标准。
具体验证详情
1. 人脸和人脸与图片比例验证
- 无人脸或多个人脸:如果图片中未检测到人脸或检测到多个人脸,前端应返回错误消息,提示用户重新拍摄或上传合适的照片。
- 不符合人脸与图片比例:如果人脸占图片的比例小于指定百分比(通常为 15%),则在前端裁剪图片以满足要求的人脸与图片比例。
2. 验证方法
为了完成上述验证,前端可以使用人脸检测获取关键人脸数据,用于评估人脸数量、人脸与图片比例和人脸角度。3. 验证标准
-
人脸数量:
face_num == 0:未检测到人脸,返回错误。face_num != 1:检测到多个人脸,返回错误。
-
人脸与图片比例:
- 计算公式:(
location.width*location.height) / (image.width*image.height) >0.15 - 如果比例小于
0.15,则不符合要求。使用location的left、top、width和height值以及整体图片尺寸,确定适当的裁剪区域以调整人脸与图片比例。
- 计算公式:(
-
人脸角度:
- 验证标准:如果任何标准不符合,返回错误消息,提示用户重新拍摄或上传照片。
angle.yaw的绝对值应小于30angle.pitch的绝对值应小于30angle.roll的绝对值应小于30
- 验证标准:如果任何标准不符合,返回错误消息,提示用户重新拍摄或上传照片。
推荐工作流程
- JavaScript
- Python
最佳实践
1. 用户体验优化
- 实时验证:在用户选择图片后立即进行验证
- 清晰提示:提供具体的错误信息和改进建议
- 预览功能:显示裁剪后的图片预览
- 进度指示:显示验证和处理进度
2. 性能优化
- 图片压缩:在上传前压缩图片以减少传输时间
- 缓存结果:缓存验证结果避免重复验证
3. 错误处理
- 网络错误:处理网络连接问题
- API 限制:处理 API 调用频率限制
- 文件格式:验证文件格式和大小
