计划是部署预训练的人脸识别模型。但是在我需要安装一些库之前。
docker背后的想法是,它带来了所有需要的库并无需太多开销即可构建整个“ env”。一个人可以只启动dockerfile,然后依次运行所有其他脚本。
要安装的库:
我正在尝试使用curl从URL下载pkg,但无法正常工作。
我的dockerfile:
FROM ubuntu:16.04.6
RUN apt-get update && apt-get install -y curl bzip2
curl -o numpy
&& sudo apt-get install numpy
&& curl install imutils https://github.com/jrosebr1/imutils
&& curl install dlib https://dlib.net
&& sudo git clone https://github.com/ageitgey/face_recognition.git
&& curl python-opencv https://opencv.org/
&& echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc \
&& ~/anaconda3/bin/conda update -n base conda \
&& rm miniconda_install.sh \
&& rm -rf /var/lib/apt/lists/* \
&& /bin/bash -c "source ~/.bashrc"
ENV PATH="~/anaconda3/bin:${PATH}"
##################################################
# Setup env for current project:
##################################################
EXPOSE 8000
RUN /bin/bash -c "conda create -y -n PYMODEL3.6"
ADD requirements.txt /tmp/setup/requirements.txt
RUN /bin/bash -c "source activate PYMODEL3.6 && pip install -r /tmp/setup/requirements.txt"
WORKDIR /Service
ADD Service /Service
ENTRYPOINT ["/bin/bash", "-c", "source activate PYMODEL3.6 && ./run.sh"]
面部模型已预先训练。 有2个执行实际检测,128d编码和识别的python文件。 用法是这样的:
#detect face, if there is face - encode it, return pickle
python3 encode.py --dataset dataset_id --encodings encodings.pickle
--confidence 0.9
#recognize using pickle
python3 face_recognizer.py --encodings encodings.pickle --image
dataset_webcam/3_1.jpg --confidence 0.9 --tolerance 0.5
我应该将它们包含在dockerfile中吗?
答案 0 :(得分:1)
我建议您使用如下所示的Dockerfile,假设您将所有需求(numpy,imutils等)包含在requirements.txt文件中,并且您的encode.py
和{{1} } face_recognizer.py
文件夹中的文件:
Service