以下是我要做的事情: 我发送一个带有图像作为数据的Ajax请求到php脚本,上传它并执行python脚本,图像名称python脚本加载性别检测模型并预测图像上人物的性别。
问题是模型没有加载,我在同一目录中使用php和python脚本尝试了它并且它工作正常但是我试图在laravel中使用它所以我不能再这样做了。 / p>
当我尝试手动运行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
当我在命令提示符上使用它时它工作正常。
这是我在我的python脚本上得到错误的地方: -
fisher_face_gender = cv2.face.FisherFaceRecognizer_create()
fisher_face_gender.read('models/gender_classifier_model_kdef.xml')
有谁知道造成这种情况的原因,顺便说一句,我在Windows上。
答案 0 :(得分:0)
感谢bruno desthuilliers的评论我得到了它的工作。问题在于我使用的模型的路径,它相对于python脚本,因为我认为脚本在它自己的路径上执行而不是在命令promt的路径上。
我刚刚将模型的路径更改为绝对路径,并且工作正常