From c49b06ffa2419306e5e793062c0ba2f4f0852cef Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Fri, 6 May 2022 21:02:26 -0700 Subject: [PATCH 1/4] Add Dockerfile-M1 --- .../docker/{Dockerfile-cpu => Dockerfile-CPU} | 0 utils/docker/Dockerfile-M1 | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+) rename utils/docker/{Dockerfile-cpu => Dockerfile-CPU} (100%) create mode 100644 utils/docker/Dockerfile-M1 diff --git a/utils/docker/Dockerfile-cpu b/utils/docker/Dockerfile-CPU similarity index 100% rename from utils/docker/Dockerfile-cpu rename to utils/docker/Dockerfile-CPU diff --git a/utils/docker/Dockerfile-M1 b/utils/docker/Dockerfile-M1 new file mode 100644 index 000000000000..516a7a70ddd5 --- /dev/null +++ b/utils/docker/Dockerfile-M1 @@ -0,0 +1,37 @@ +# YOLOv5 🚀 by Ultralytics, GPL-3.0 license + +# Start FROM Ubuntu image https://hub.docker.com/_/ubuntu +FROM arm64v8/ubuntu:20.04 + +# Downloads to user config dir +ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/ + +# Install linux packages +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt install -y tzdata +RUN apt install -y python3-pip git zip curl htop screen libgl1-mesa-glx libglib2.0-0 +# RUN alias python=python3 + +# Install pip packages +COPY requirements.txt . +RUN python3 -m pip install --upgrade pip +RUN pip install --no-cache -r requirements.txt albumentations gsutil notebook \ + coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-cpu tensorflowjs \ + torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu + +# Create working directory +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Copy contents +COPY . /usr/src/app +RUN git clone https://github.com/ultralytics/yolov5 /usr/src/yolov5 + + +# Usage Examples ------------------------------------------------------------------------------------------------------- + +# Build and Push +# t=ultralytics/yolov5:latest-cpu && sudo docker build -f utils/docker/Dockerfile-cpu -t $t . && sudo docker push $t + +# Pull and Run +# t=ultralytics/yolov5:latest-cpu && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t From 24aaf53df842212e194791dd8041487593a39b6b Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Fri, 6 May 2022 21:24:46 -0700 Subject: [PATCH 2/4] Update --- utils/docker/Dockerfile-M1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/docker/Dockerfile-M1 b/utils/docker/Dockerfile-M1 index 516a7a70ddd5..9afafcc1062c 100644 --- a/utils/docker/Dockerfile-M1 +++ b/utils/docker/Dockerfile-M1 @@ -16,7 +16,7 @@ RUN apt install -y python3-pip git zip curl htop screen libgl1-mesa-glx libglib2 COPY requirements.txt . RUN python3 -m pip install --upgrade pip RUN pip install --no-cache -r requirements.txt albumentations gsutil notebook \ - coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-cpu tensorflowjs \ + coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-aarch64 tensorflowjs \ torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu # Create working directory @@ -31,7 +31,7 @@ RUN git clone https://github.com/ultralytics/yolov5 /usr/src/yolov5 # Usage Examples ------------------------------------------------------------------------------------------------------- # Build and Push -# t=ultralytics/yolov5:latest-cpu && sudo docker build -f utils/docker/Dockerfile-cpu -t $t . && sudo docker push $t +# t=ultralytics/yolov5:latest-M1 && sudo docker build --platform linux/arm64 -f utils/docker/Dockerfile-M1 -t $t . && sudo docker push $t # Pull and Run # t=ultralytics/yolov5:latest-cpu && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t From 74d40bfc9ab7544e97c7a9f763bef452dfac2218 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Fri, 6 May 2022 21:37:45 -0700 Subject: [PATCH 3/4] Update --- utils/docker/Dockerfile-M1 | 10 ++++++---- utils/docker/{Dockerfile-CPU => Dockerfile-cpu} | 0 2 files changed, 6 insertions(+), 4 deletions(-) rename utils/docker/{Dockerfile-CPU => Dockerfile-cpu} (100%) diff --git a/utils/docker/Dockerfile-M1 b/utils/docker/Dockerfile-M1 index 9afafcc1062c..ef0b2f2c2fd0 100644 --- a/utils/docker/Dockerfile-M1 +++ b/utils/docker/Dockerfile-M1 @@ -15,9 +15,11 @@ RUN apt install -y python3-pip git zip curl htop screen libgl1-mesa-glx libglib2 # Install pip packages COPY requirements.txt . RUN python3 -m pip install --upgrade pip -RUN pip install --no-cache -r requirements.txt albumentations gsutil notebook \ - coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-aarch64 tensorflowjs \ - torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu +RUN pip install --no-cache -r requirements.txt gsutil notebook \ + tensorflow-aarch64 + # tensorflowjs \ + # onnx onnx-simplifier onnxruntime \ + # coremltools openvino-dev \ # Create working directory RUN mkdir -p /usr/src/app @@ -34,4 +36,4 @@ RUN git clone https://github.com/ultralytics/yolov5 /usr/src/yolov5 # t=ultralytics/yolov5:latest-M1 && sudo docker build --platform linux/arm64 -f utils/docker/Dockerfile-M1 -t $t . && sudo docker push $t # Pull and Run -# t=ultralytics/yolov5:latest-cpu && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t +# t=ultralytics/yolov5:latest-M1 && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t diff --git a/utils/docker/Dockerfile-CPU b/utils/docker/Dockerfile-cpu similarity index 100% rename from utils/docker/Dockerfile-CPU rename to utils/docker/Dockerfile-cpu From 02fe01fcd17ba2f76ae507ade4502d81103f2597 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Fri, 13 May 2022 14:14:27 +0200 Subject: [PATCH 4/4] Update Dockerfile-M1 --- utils/docker/Dockerfile-M1 | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/docker/Dockerfile-M1 b/utils/docker/Dockerfile-M1 index ef0b2f2c2fd0..a524944b1868 100644 --- a/utils/docker/Dockerfile-M1 +++ b/utils/docker/Dockerfile-M1 @@ -1,4 +1,5 @@ # YOLOv5 🚀 by Ultralytics, GPL-3.0 license +# aarch64-compatible YOLOv5 Docker image for use with Apple M1 and other ARM architectures like Jetson Nano and Raspberry Pi # Start FROM Ubuntu image https://hub.docker.com/_/ubuntu FROM arm64v8/ubuntu:20.04