2019-01-26 15:02:59 +01:00
|
|
|
FROM ubuntu:16.04
|
|
|
|
|
|
|
|
# Install system packages
|
|
|
|
RUN apt-get -qq update && apt-get -qq install --no-install-recommends -y python3 \
|
|
|
|
python3-dev \
|
|
|
|
python-pil \
|
|
|
|
python-lxml \
|
|
|
|
python-tk \
|
|
|
|
build-essential \
|
|
|
|
cmake \
|
|
|
|
git \
|
|
|
|
libgtk2.0-dev \
|
|
|
|
pkg-config \
|
|
|
|
libavcodec-dev \
|
|
|
|
libavformat-dev \
|
|
|
|
libswscale-dev \
|
|
|
|
libtbb2 \
|
|
|
|
libtbb-dev \
|
|
|
|
libjpeg-dev \
|
|
|
|
libpng-dev \
|
|
|
|
libtiff-dev \
|
|
|
|
libjasper-dev \
|
|
|
|
libdc1394-22-dev \
|
|
|
|
x11-apps \
|
|
|
|
wget \
|
|
|
|
vim \
|
|
|
|
ffmpeg \
|
|
|
|
unzip \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
# Install core packages
|
|
|
|
RUN wget -q -O /tmp/get-pip.py --no-check-certificate https://bootstrap.pypa.io/get-pip.py && python3 /tmp/get-pip.py
|
|
|
|
RUN pip install -U pip \
|
|
|
|
numpy \
|
|
|
|
matplotlib \
|
|
|
|
notebook \
|
|
|
|
jupyter \
|
|
|
|
pandas \
|
|
|
|
moviepy \
|
|
|
|
tensorflow \
|
|
|
|
keras \
|
|
|
|
autovizwidget \
|
2019-02-10 03:37:46 +01:00
|
|
|
Flask \
|
|
|
|
imutils
|
2019-01-26 15:02:59 +01:00
|
|
|
|
|
|
|
# Install tensorflow models object detection
|
|
|
|
RUN GIT_SSL_NO_VERIFY=true git clone -q https://github.com/tensorflow/models /usr/local/lib/python3.5/dist-packages/tensorflow/models
|
|
|
|
RUN wget -q -P /usr/local/src/ --no-check-certificate https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-python-3.5.1.tar.gz
|
|
|
|
|
|
|
|
# Download & build protobuf-python
|
|
|
|
RUN cd /usr/local/src/ \
|
|
|
|
&& tar xf protobuf-python-3.5.1.tar.gz \
|
|
|
|
&& rm protobuf-python-3.5.1.tar.gz \
|
|
|
|
&& cd /usr/local/src/protobuf-3.5.1/ \
|
|
|
|
&& ./configure \
|
|
|
|
&& make \
|
|
|
|
&& make install \
|
|
|
|
&& ldconfig \
|
|
|
|
&& rm -rf /usr/local/src/protobuf-3.5.1/
|
|
|
|
|
|
|
|
# Add dataframe display widget
|
|
|
|
RUN jupyter nbextension enable --py --sys-prefix widgetsnbextension
|
|
|
|
|
|
|
|
# Download & build OpenCV
|
2019-02-09 14:23:18 +01:00
|
|
|
RUN wget -q -P /usr/local/src/ --no-check-certificate https://github.com/opencv/opencv/archive/4.0.1.zip
|
2019-01-26 15:02:59 +01:00
|
|
|
RUN cd /usr/local/src/ \
|
2019-02-09 14:23:18 +01:00
|
|
|
&& unzip 4.0.1.zip \
|
|
|
|
&& rm 4.0.1.zip \
|
|
|
|
&& cd /usr/local/src/opencv-4.0.1/ \
|
2019-01-26 15:02:59 +01:00
|
|
|
&& mkdir build \
|
2019-02-09 14:23:18 +01:00
|
|
|
&& cd /usr/local/src/opencv-4.0.1/build \
|
2019-01-26 15:02:59 +01:00
|
|
|
&& cmake -D CMAKE_INSTALL_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/ .. \
|
|
|
|
&& make -j4 \
|
|
|
|
&& make install \
|
2019-02-09 14:23:18 +01:00
|
|
|
&& rm -rf /usr/local/src/opencv-4.0.1
|
2019-01-26 15:02:59 +01:00
|
|
|
|
|
|
|
# Minimize image size
|
|
|
|
RUN (apt-get autoremove -y; \
|
|
|
|
apt-get autoclean -y)
|
|
|
|
|
|
|
|
# Set TF object detection available
|
|
|
|
ENV PYTHONPATH "$PYTHONPATH:/usr/local/lib/python3.5/dist-packages/tensorflow/models/research:/usr/local/lib/python3.5/dist-packages/tensorflow/models/research/slim"
|
|
|
|
RUN cd /usr/local/lib/python3.5/dist-packages/tensorflow/models/research && protoc object_detection/protos/*.proto --python_out=.
|
|
|
|
|
|
|
|
COPY detect_objects.py .
|
|
|
|
|
|
|
|
CMD ["python3", "-u", "detect_objects.py"]
|