123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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 \
- libusb-1.0-0-dev \
- python3-setuptools \
- python3-numpy \
- zlib1g-dev \
- libgoogle-glog-dev \
- swig \
- libunwind-dev \
- libc++-dev \
- libc++abi-dev \
- build-essential \
- && 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 \
- pillow \
- matplotlib \
- notebook \
- Flask \
- imutils \
- paho-mqtt
- # 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/
- # Download & build OpenCV
- RUN wget -q -P /usr/local/src/ --no-check-certificate https://github.com/opencv/opencv/archive/4.0.1.zip
- RUN cd /usr/local/src/ \
- && unzip 4.0.1.zip \
- && rm 4.0.1.zip \
- && cd /usr/local/src/opencv-4.0.1/ \
- && mkdir build \
- && cd /usr/local/src/opencv-4.0.1/build \
- && cmake -D CMAKE_INSTALL_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/ .. \
- && make -j4 \
- && make install \
- && rm -rf /usr/local/src/opencv-4.0.1
- # Download and install EdgeTPU libraries
- RUN wget -q -O edgetpu_api.tar.gz --no-check-certificate http://storage.googleapis.com/cloud-iot-edge-pretrained-models/edgetpu_api.tar.gz
- RUN tar xzf edgetpu_api.tar.gz \
- && cd python-tflite-source \
- && cp -p libedgetpu/libedgetpu_arm32_throttled.so /lib/arm-linux-gnueabihf/libedgetpu.so \
- && cp edgetpu/swig/compiled_so/_edgetpu_cpp_wrapper_arm32.so edgetpu/swig/_edgetpu_cpp_wrapper.so \
- && cp edgetpu/swig/compiled_so/edgetpu_cpp_wrapper.py edgetpu/swig/ \
- && python3 setup.py develop --user
- # 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=.
- WORKDIR /opt/frigate/
- ADD frigate frigate/
- COPY detect_objects.py .
- CMD ["python3", "-u", "detect_objects.py"]
- # WORKDIR /python-tflite-source/edgetpu/
- # CMD ["python3", "-u", "demo/classify_image.py", "--model", "test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite", "--label", "test_data/inat_bird_labels.txt", "--image", "test_data/parrot.jpg"]
|