Установка OpenCV для docker на Raspberry Pi3 - PullRequest
1 голос
/ 06 марта 2020

Недавно я начал работать с Docker, мне удалось создать несколько образов с целью запуска моего python сценария, который использует OpenCV.

Теперь для следующего шага я хочу развернуть эти образы на моем Raspberry Pi3B +, но мне не удалось собрать их на Pi. Я также попытался вставить изображение, которое я успешно собрал на своем ноутбуке с Ubuntu, затем go на Pi и вытянуть изображение для запуска контейнера из него, но оно тоже не сработало.

Я нашел причина в том, что все, что я делал, пыталось использовать образ арки amd64 (мой ноутбук) на арке armv7 (мой Pi), что вызывает некоторый конфликт.

Затем я попробовал некоторые базовые образы на Docker Hub которые были созданы для armv7, например: arm32v7 / python: 3.6 , и вот мой Dockerfile:

FROM arm32v7/python:3.6

RUN apt-get -y update && apt-get -y upgrade \
        && apt-get install -y python3-pip \
        python3-numpy \
        libblas-dev \
        liblapack-dev \
        python3-dev \
        libatlas-base-dev \
        gfortran \
        python3-setuptools \
        python3-scipy \
        && apt-get -y update \
        && apt-get -y install python3-h5py \
        libsm6 \
        libxext6 \
        libxrender-dev 


RUN pip3 install scipy \
                cython \
                keras \
                opencv-python \
                scikit-image 

COPY cut.py detect.py c9_0_04_46_23_0.jpg /opt/
COPY MODEL /opt/MODEL
RUN mkdir -p /opt/anh_cut


WORKDIR /opt/

ENTRYPOINT ["python3", "cut.py"]

Произошла ошибка на этапе установки OpenCV:

Не удалось найти версию, которая удовлетворяет требованию opencv- python

Я также пытался заменить pip config на:

[global]
extra-index-url=https://www.piwheels.org/simple

, которая является хранилищем скомпилированных пакетов для архитектуры arm, но та же проблема все еще возникала.

Можно ли как-нибудь обойти эту проблему? Если нет, могу ли я просто скомпилировать OpenCV на моем ноутбуке, а затем скопировать в Dockerfile? Было бы неплохо, если бы у меня был какой-то документ для подписки, спасибо.

1 Ответ

0 голосов
/ 06 марта 2020

На основе https://www.piwheels.hostedpi.com/ они поддерживают python версии 3.4, 3.5 и 3.7. Вот цитата (выделение мое):

Поддержка

Предоставленные колеса поддерживают все модели Raspberry Pi (Pi 4, Pi 3, Pi 2, Pi 1 и пи ноль). Предусмотрены колеса для Raspbian Jess ie (Python 3.4) , Raspbian Stretch (Python 3.5) и Raspbian Buster (Python 3.7) . Информацию о доступных колесах смотрите на странице проекта каждого пакета.


Сохранение измененного пип-конфигурации и изменение предложения FROM в Dockerfile с помощью:

FROM arm32v7/python:3.7-buster

может решить проблему.

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