我正在使用Flask构建一个Web应用程序。
在客户端(JavaScript(上,我有一个脚本,它使用客户端的网络摄像头"抓取"一个帧并将其发送到服务器。在服务器端(Flask(,我有一个使用DLib来检测该帧中的人脸的Python脚本。
该应用程序运行,但由于我在每一帧中使用dlib.get_frontal_face_detector(((来检测面部(,这增加了服务器的响应时间(响应总共需要 125 毫秒,其中 83% 由 dlib.get_frontal_face_detector(( 使用(。
我正在尝试实现 Davis King(DLib 的作者(在 GitHub 问题 #1556 中提出的解决方案:"每隔几帧才运行一次检测器"。 但是,我无法将 dlib.get_frontal_face_detector(( 的输出保存到会话对象中。
这是我得到的错误:
TypeError: Object of type 'rectangle' is not JSON serializable
我认为这个问题与 dlib.get_frontal_face_detector(( 的输出具有类型:类 'dlib.rectangles' 有关。但是,我无法找出解决方案。
有什么帮助吗?
这是解决方案*:dlib.get_frontal_face_detector(( 的输出必须转换为 JSON 兼容对象,才能存储在会话中。稍后(即在以下请求中使用(,必须再次将其转换为其原始类型。
(*归功于米格尔·格林伯格(