在接口和数据都有了之后,下一步自然是开发,为了让项目能够尽快上线,我们决定采用H5方式,这样既能兼容各个平台,开发周期和人力也比较少,也算是前期的试错。
下面就简单说说开发过程中遇到的问题
问题一:用户上传图片过大
由于我们的用户大都是移动端用户,用户的图片都是手机端拍摄上传,这样就是不同手机的图片就参差不齐,小的识别结果会有偏差,大的上传速度比较慢,影响用户体验。
对于小的图片,我们识别过后给提示。这块接口提供了图片质量参数,可以根据该参数来处理。
对于大的图片,我们采用了前端js压缩过后再上传,先是判断图片大小,对于大于2M的图片在前端进行不失真压缩再上传。
问题二:手机上传图片被旋转的问题
当用户通过H5上传图片时,可能存在图片被旋转的问题,该问题通过EXIF来解决。
有些手机拍照时,照片会有Orientation属性,我们可以根据Orientation属性来判断图片的旋转角度。
1 表示旋转0度,也就是没有旋转。
6 表示顺时针旋转90度
8 表示逆时针旋转90度
3 旋转180度
我们要做的就是在拍照后,从input中获取到图片,然后得到它的Orientation值,在裁剪后给它逆着旋转90度,然后上传就好了,代码在这就不写了。
问题三:倾斜角度问题
一张人脸的照片,分为水平倾角,左右倾角,和上下倾角,当图片倾角过大时,就会造成识别结果的不准确。所以我们在识别的过程中对于倾角做了一定的要求,要求3种倾角不得有大于20度的,否