是否可以从内存或字符串而不是从保存的文件加载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();

令人遗憾的是,您无法从python访问FileStorage api,也无法访问FaceReco::load(FileStorage&)方法

(旁注:至少您可以将它们从facereco重新保存为yml.gz,以使流量降低到未压缩xml的1/5)

10-04 10:59