не может написать dockerfile с установками ubuntu, numpy, opencv - PullRequest
0 голосов
/ 14 февраля 2020

план развертывания предварительно обученной модели распознавания лиц. Но прежде чем мне нужно установить некоторые библиотеки.

Идея, лежащая в основе docker, заключается в том, что он приносит все необходимые библиотеки и создает весь env без особых накладных расходов. Можно просто запустить dockerfile и запустить все остальные сценарии по очереди.

libs для установки:

Я пытаюсь использовать curl для загрузки pkgs с URL-адресов, но это не работает.

my 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 python файла, которые выполняют фактическое обнаружение, 128d кодирование и распознавание. использование выглядит следующим образом:

#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?

1 Ответ

1 голос
/ 14 февраля 2020

Я бы предложил вам использовать Dockerfile, как показано ниже, при условии, что у вас есть все ваши требования (numpy, imutils и т. Д. c ...) внутри вашего файла needs.txt, а также encode.py и face_recognizer.py файлов в папке Service:

FROM python:3.6.10

RUN mkdir /tmp/setup

ADD requirements.txt /tmp/setup/requirements.txt

RUN pip install --no-cache-dir --upgrade setuptools && \
    pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r /tmp/setup/requirements.txt

WORKDIR /Service

ADD Service /Service/

CMD ["./run.sh"]

EXPOSE 8000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...