开发者社区 问答 正文

Python 人脸识别 CV2 detectMultiScale 函数,本机不报错,云服务器报错。

本机环境Windows 10, Python 3.5.1
ECS环境Windows Server 2012 R2, Python 3.5.1

laptop_success
aliyun_fail

跟踪发现是这句话在云服务器上导致运行错误:

    rects = detector.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=5, 
        minSize=(30, 30), flags=cv2.CASCADE_SCALE_IMAGE)

错误如下:

·During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "test_api.py", line 11, in
r = requests.post(url, data=payload).json()
File "C:UsersAdministratorDownloadsPython35libsite-packagesrequestsapi.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "C:UsersAdministratorDownloadsPython35libsite-packagesrequestsapi.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:UsersAdministratorDownloadsPython35libsite-packagesrequestssessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "C:UsersAdministratorDownloadsPython35libsite-packagesrequestssessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "C:UsersAdministratorDownloadsPython35libsite-packagesrequestsadapters.py", line 490, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))·

展开
收起
stevenlu 2018-05-07 14:46:19 6454 分享 版权
阿里云 AI 助理回答

从您提供的错误信息来看,这个错误实际上与OpenCV的图像处理操作无关,而是发生在尝试通过requests库发送HTTP POST请求时。错误提示为requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)),这意味着您的应用程序尝试与某个服务器建立连接并发送数据时,服务器端主动关闭了连接。

这可能是由以下几个原因造成的:

  1. 服务器端问题:服务器可能遇到了错误、超时、资源不足或配置不当等问题,导致它在处理请求过程中突然关闭了连接。
  2. 网络问题:网络不稳定或防火墙设置可能导致连接被中断。
  3. 客户端请求问题:请求的数据格式、大小、头部信息等可能不符合服务器的预期,导致服务器拒绝服务并关闭连接。
  4. API限制:如果您是在调用某个外部API,可能触及了该API的调用频率限制、访问权限问题或其他使用限制。

针对这个问题,您可以尝试以下解决步骤:

  • 检查网络:确保ECS实例的网络连接正常,没有被防火墙或安全组规则限制。
  • 查看服务器日志:检查服务器端的日志,了解是否有更多关于为何连接被关闭的详细信息。
  • 调整请求参数:确认POST请求的URL、数据格式、头部信息等是否正确,特别是如果您在调用第三方API,要确保遵循其文档要求。
  • 增加重试机制:在requests请求中加入重试逻辑,当遇到连接错误时自动重试几次,有时瞬时的网络波动或服务器繁忙可能会导致这种问题。
  • 检查API限制:确认是否有调用频率或访问权限的限制,并相应调整或申请权限。
  • 联系服务提供商:如果问题仍然无法解决,且确定不是客户端代码的问题,可能需要联系您尝试连接的服务提供商获取帮助。

希望这些建议能帮助您解决问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答