开发者社区 > 视觉智能 > 文字识别 > 正文

文字识别OCR以下身份证识别时报错:The value is not a object什么原因?

文字识别OCR以下身份证识别时报错: The value is not a object各位看看什么原因?InputStream bodyStream = com.aliyun.darabonba.stream.Client.readFromFilePath(filePath);
request.setBody(bodyStream);

展开
收起
三分钟热度的鱼 2023-08-08 10:17:02 155 0
9 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!

    楼主你好,这个错误可能是由于请求参数格式不正确导致的。请检查请求参数是否按照阿里云API文档中的要求传递。建议检查以下几点:

    1.请求参数是否缺失。请确保所有必填参数都已经传递且值不为空。

    2.请求参数格式是否正确。请检查参数是否按照API文档规定的格式传递,例如:JSON格式、XML格式等。

    3.请求参数是否包含非法字符。请检查参数中是否包含特殊字符或不支持的字符,例如:空格、中文字符等。

    2023-08-29 14:41:49
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    这里传给OCR识别的图片文件可能使用了非JPG/PNG等格式,导致OCR识别服务无法正常解析为图片对象。

    所以你需要检查一下身份证照片的编码方式,确保正确传给OCR识别服务:

    使用JPG/PNG格式的照片
    这是OCR识别服务推荐的图片格式,能保证解析成功。

    Base64编码的图片字符串也可以
    将图片使用Base64编码成字符串,然后传给请求体中。

    不要使用PDF/DOC等非图片格式
    虽然PDF中也可能包含图片,但OCR不推荐使用PDF作为输入。

    确保图片大小在1MB以下
    对于OCR来说,图片大小在1MB左右效果最佳。

    图片清晰度要求在300dpi以上
    低于300dpi的图片,OCR识别效果会下降。

    所以您需要检查一下传入OCR的身份证照片编码格式。确保为JPG/PNG格式,大小在1MB以内,清晰度上300dpi。

    然后使用正确的输入流传给OCR服务,应该就可以避免该报错了。

    2023-08-09 19:02:57
    赞同 展开评论 打赏
  • 报错信息"The value is not an object"是由于传递给请求的参数类型不正确导致的。根据你提供的代码片段,很可能是在设置请求体时出现了问题。

    首先,请确认所使用的OCR服务的API要求以及身份证识别接口的参数格式。确保正确设置请求的Content-Type和请求体的格式。

    其次,根据给定的代码片段,可以尝试将图片文件路径转换为字节流并传递给请求体。请注意,在使用流操作时,确保输入流指针在正确的位置,并且文件路径引用的文件确实存在。

    以下是一个示例代码片段,展示如何读取文件路径的内容并将其作为请求体:

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    // 读取文件路径的内容并将其作为请求体
    try {
        // 从文件路径创建输入流
        InputStream inputStream = new FileInputStream(filePath);
    
        // 设置请求体
        request.setBody(inputStream);
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    请确保对异常进行适当处理,例如捕获和记录错误,以便更好地理解问题。

    2023-08-08 18:55:37
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。
    2023-08-08 17:42:02
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,这个错误显示你是传入的参数不对,而且提示是读取图片路径这个方法,建议检查下图片的路径地址、图片格式是否符合要求。

    可以在线调试
    image.png

    2023-08-08 15:01:38
    赞同 展开评论 打赏
  • InputStream inputStream = new FileInputStream(path) 换成这个方法试一下。此回答整理自钉群“阿里云读光OCR客户交流反馈群 1”

    2023-08-08 14:08:22
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    您好,文字识别OCR身份证识别报错The value is not a object,建议您首先检查一下filePath指定的图片路径是否可以正常访问,可以将filePath图片路径贴在浏览器看是否可以正常访问;然后在排查一下bodyStream 是否未成功获取到图片文件流。

    2023-08-08 13:42:10
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据你提供的代码,报错信息"The value is not an object"可能是因为传递给setBody()方法的参数不是一个正确的对象。

    在使用阿里云文字识别OCR服务时,你需要确保将正确的请求体(Request Body)传递给API请求。根据你的代码片段,你使用了com.aliyun.darabonba.stream.Client来读取文件并获取输入流。然后,你将该输入流作为请求体传递给setBody()方法。

    请确保 bodyStream 是一个合法的请求体对象,并与指定的API请求相匹配。你可以参考阿里云文字识别OCR服务的文档或示例代码,以确保正确地构造请求体。

    此外,请确保引入了正确的库或依赖项,并且已经设置了其他必要的请求参数,如请求头、请求方法等。

    2023-08-08 13:13:14
    赞同 展开评论 打赏
  • 错误信息"The value is not an object"表示传递给API请求的参数值不是一个合法的对象。根据你提供的代码片段,问题可能出在以下几个方面:

    1. 文件路径错误:请确保filePath变量包含正确的文件路径,并且文件存在且可读取。你可以使用绝对路径或相对于当前工作目录的相对路径。

    2. 文件格式不支持:某些OCR API可能只支持特定的图像文件格式(例如JPEG、PNG等)。请确保你提供的文件路径指向支持的图像文件格式,并且文件内容是有效的图像数据。

    3. 请求参数设置错误:根据你提供的代码,无法确定request对象的具体类型和属性设置。请确保request对象与你所使用的OCR服务的API要求相匹配,并正确设置bodyStream作为请求的主体数据。

    2023-08-08 12:10:59
    赞同 展开评论 打赏
滑动查看更多

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

相关电子书

更多
阿里云智能-印刷文字识别OCR-产品介绍 立即下载
阿里巴巴读光OCR 立即下载
印刷文字识别算法设计与在线服务 立即下载