繁体   English   中英

从php执行的python脚本不会读取已保存的模型

[英]python script executed from php won't read saved model

这是我要执行的操作:我正在将带有图像的Ajax请求作为数据发送到php脚本,该脚本将其上传并执行带有图像名称的python脚本,该python脚本加载性别检测模型并预测性别在图像上的人身上。

问题是模型无法加载,我在同一目录中使用php和python脚本进行了尝试,并且工作正常,但是我试图在laravel中使用它,所以我不能再这样做了。

当我尝试像这样手动运行python脚本时:

python path/to/script.py 

它引发此错误: OpenCV(3.4.1) Error: Unspecified error (File can't be opened for reading!)

但是当我这样做时,它会起作用:

cd path/to/script.py ; python script.py

这是我的PHP:-

    $file = $this->upload_Image($request->get('image'));
    $path =public_path().'/app/Http/Controllers';
    $command='cd '.$path.';';
    $path= 'python '.$path.'/facifier.py '.storage_path('app').$file;

    $command .= $path;
    return exec($command);

    Storage::disk('local')->delete($file);
    return json_encode($orderedData);

该命令最终如下所示: cd absolute/path/to/script.py ; python script.py absolute/path/to/image.jpg 当我在命令提示符下使用它时, cd absolute/path/to/script.py ; python script.py absolute/path/to/image.jpg可以正常工作。 这是我的python脚本出现错误的地方:-

fisher_face_gender = cv2.face.FisherFaceRecognizer_create()
fisher_face_gender.read('models/gender_classifier_model_kdef.xml')

有谁知道是什么原因造成的,顺便说一句,我在窗户上。

感谢bruno desthuilliers评论,我成功了。 问题出在我使用的模型的路径中,它相对于python脚本是因为我认为脚本是在自己的路径上执行,而不是在命令promt的路径上执行。

我只是将模型的路径更改为绝对路径,所以效果很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM