44# using a model ensemble approach of bounding box detection, segmentation,
55# and classification. The classification model is a pre-trained VIT model.
66
7- # The script performs the following steps:
8- # It performs the following steps:
9- # 1. Installs system-level dependencies.
10- # 2. Creates a Python virtual environment.
11- # 3. Installs PyTorch, GroundingDINO, SAM2, and other Python packages.
12- # 4. Creates project directories and downloads required model checkpoints.
13- # 5. Fetches the custom trained VIT classifier model.
14- # 6. Fetches the scripts to run the pipeline.
15-
167# Exit immediately if a command exits with a non-zero status.
178set -o errexit
189# Treat unset variables as an error when substituting.
1910set -o nounset
2011# Pipes fail if any command in the pipe fails.
2112set -o pipefail
2213
23- # --- 1. Install System Dependencies ---
2414echo " 🔹 Starting: Install System Dependencies"
2515apt-get update
2616apt-get install -y python3-venv python3-pip lsof curl
2717echo " ✅ Finished: Install System Dependencies"
2818echo " -----"
2919
30- # --- 2. Creating Virtual Environment ---
3120echo " 🔹 Starting: Create Virtual Environment"
3221python3.10 -m venv myenv
3322source myenv/bin/activate
3423echo " ✅ Finished: Create Virtual Environment"
3524echo " -----"
3625
37- # --- 3. Install Compatible Torch version ---
3826echo " 🔹 Starting: Install Torch, Torchvision, Torchaudio"
3927pip uninstall -y torch torchvision torchaudio > /dev/null 2>&1 || true
4028pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
4129echo " ✅ Finished: Install Torch, Torchvision, Torchaudio"
4230echo " -----"
4331
44- # --- 4. Install Grounding DINO ---
4532echo " 🔹 Starting: Install Grounding DINO"
4633git clone https://github.com/IDEA-Research/GroundingDINO.git
4734cd GroundingDINO
5037echo " ✅ Finished: Install Grounding DINO"
5138echo " -----"
5239
53- # --- 5. Install SAM2 and Required Packages ---
5440echo " 🔹 Starting: Install SAM2 and Required Python Packages"
5541pip install --no-cache-dir \
5642 opencv-python \
@@ -63,15 +49,13 @@ pip install --no-cache-dir \
6349echo " ✅ Finished: Install SAM2 and Required Python Packages"
6450echo " -----"
6551
66- # --- 6. Set Up Project Directories ---
6752echo " 🔹 Starting: Create Project Directory Structure"
6853mkdir -p milk_pouch_project/models/sam2
6954mkdir -p milk_pouch_project/models/grounding_dino
7055mkdir -p milk_pouch_project/models/vit
7156echo " ✅ Finished: Create Project Directory Structure"
7257echo " -----"
7358
74- # --- 7. Download Model Checkpoints ---
7559echo " 🔹 Starting: Download SAM2 Checkpoint"
7660wget -P ./milk_pouch_project/models/sam2 https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt
7761echo " ✅ Finished: Download SAM2 Checkpoint"
@@ -88,28 +72,25 @@ wget -P ./milk_pouch_project/models/vit https://storage.googleapis.com/tf_model_
8872echo " ✅ Finished: Download Image Classifier Model"
8973echo " -----"
9074
91- echo " Download the required files locally and modify the imports."
92- curl -sS -o milk_pouch_project/models/detection_segmentation.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/models/detection_segmentation.py
93- sed -i ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src import models_utils|import ../models_utils|g' detection_segmentation.py
94-
95- curl -sS -o milk_pouch_project/classify_images.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/classify_images.py
96- sed -i ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src.models import classification|from models import classification|g' classify_images.py
75+ echo " 🔹 Starting: Clone Required Files from TensorFlow Models Repo"
76+ git clone --depth 1 --filter=blob:none --sparse https://github.com/tensorflow/models.git temp_tf_models
77+ cd temp_tf_models
78+ git sparse-checkout set official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src
79+ cd ..
80+ cp -r " temp_tf_models/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src" /* milk_pouch_project/
81+ rm -rf temp_tf_models
82+ echo " ✅ Finished: Clone Required Files from TensorFlow Models Repo"
83+ echo " -----"
9784
98- curl -sS -o milk_pouch_project/extract_objects.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/extract_objects.py
99- sed -i ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src.models import detection_segmentation|from models import detection_segmentation|g' extract_objects.py
100- sed -i ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src import batched_io|import batched_io|g' extract_objects.py
101- sed -i ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src import coco_annotation_writer|import coco_annotation_writer|g' extract_objects.py
85+ echo " 🔹 Starting: Modify Imports for Local Project Structure"
86+ find milk_pouch_project -type f -name " *.py" -exec sed -i \
87+ ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src.models import |from models import |g' {} +
88+ find milk_pouch_project -type f -name " *.py" -exec sed -i \
89+ ' s|from official.projects.waste_identification_ml.llm_applications.milk_pouch_detection.src import |import |g' {} +
10290
103- curl -sS -o milk_pouch_project/models/classification.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/models/classification.py
104- curl -sS -o milk_pouch_project/models/llm.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/models/llm.py
105- curl -sS -o milk_pouch_project/models_utils.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/models_utils.py
106- curl -sS -o milk_pouch_project/batched_io.py https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/batched_io.py
107- curl -sS -o milk_pouch_project/run_pipeline.sh https://raw.githubusercontent.com/tensorflow/models/master/official/projects/waste_identification_ml/llm_applications/milk_pouch_detection/src/run_pipeline.sh
91+ echo " ✅ Finished: Modify Imports for Loscal Project Structure"
10892echo " Files downloaded and modified successfully!"
93+ echo " -----"
10994
110- # --- Completion ---
11195echo " 🎉🎉🎉 Environment setup complete! 🎉🎉🎉"
11296echo " -----"
113-
114- # Deactivate the virtual environment
115- deactivate
0 commit comments