是否可以从内存或字符串而不是从保存的文件中加载 FaceRecognizer 的模型。API 文档没有显示“FromString 或 Buffer”版本。
当前代码从文件加载:
model = cv2.createLBPHFaceRecognizer()
model.load('model.xml')
一些更多的背景。预设模型存储在 S3 中。我不想从 S3 检索然后保存到磁盘以便使用。我宁愿直接从 s3 加载到模型中,或者将 xml 字符串/文档加载到模型中。
是否可以从内存或字符串而不是从保存的文件中加载 FaceRecognizer 的模型。API 文档没有显示“FromString 或 Buffer”版本。
当前代码从文件加载:
model = cv2.createLBPHFaceRecognizer()
model.load('model.xml')
一些更多的背景。预设模型存储在 S3 中。我不想从 S3 检索然后保存到磁盘以便使用。我宁愿直接从 s3 加载到模型中,或者将 xml 字符串/文档加载到模型中。
不幸的是,从 python ( cv2 ) atm 是不可能的。
虽然你可以从 c++ 做到这一点,
string yml; // the whole schlepp in a string
FileStorage fs;
fs.open(yml,FileStorage::READ|FileStorage::MEMORY);
facereco->load(fs);
fs.release();
可悲的是,您既不能访问 FileStorage api,也不能从 python 访问 FaceReco::load(FileStorage&) 方法
(旁注:至少您可以将它们从 facereco 重新保存为 yml.gz,以将流量降低到未压缩 xml 的 1/5)