python项目路径 - 文件导入时拼接项目根路径
存在的问题:
由于python文件放置的位置不同(一个在主文件夹,一个在子文件夹),在调用模型时如果通过相对路径去访问权重文件,这就会导致不同python文件在访问这个权重文件时需要传入该权重文件相对于该python文件的路径,这就有点麻烦。如果想让模型对外透明,不需要用户输入权重文件的位置,想把权重文件路径写死,这里可以考虑将项目文件的根路径和权重文件实际在项目中的位置进行拼接即可。
存在问题的代码:
# 人脸检测器scrfd
scrfd_detetor = SCRFD("../../model/SCRFD/scrfd_500m_kps.onnx") # scrfd人脸定位
# 人脸身份识别器
sess = onnxruntime.InferenceSession('../../model/MobileNetV2_onnx/IDRecognition.onnx') # 通过onnx文件加载onnxruntime推理引擎
id_img_Dir = "../../data/id_dataset/"
修改后的代码:
import sys
import os
from pathlib import Path
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
from pathlib import Path
rootPath = str(Path(rootPath).parent) #'F:\\IdentityDetection\\ID_recognition'
# 人脸检测器scrfd
scrfd_detetor = SCRFD(rootPath + "/model/SCRFD/scrfd_500m_kps.onnx") # scrfd人脸定位
# 人脸身份识别器
sess = onnxruntime.InferenceSession(rootPath + '/model/MobileNetV2_onnx/IDRecognition.onnx') # 通过onnx文件加载onnxruntime推理引擎
id_img_Dir = rootPath + "/data/id_dataset/"