[英]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.