- Clone the repository
git clone https://github.com/akashAD98/YOLOV7_Segmentation
- Goto the cloned folder.
cd yolov7-segmentation
- Create a virtual envirnoment (Recommended, If you dont want to disturb python packages)
### For Linux Users
python3 -m venv yolov7seg
source yolov7seg/bin/activate
### For Window Users
python3 -m venv yolov7seg
cd yolov7seg
cd Scripts
activate
cd ..
cd ..
- Upgrade pip with mentioned command below.
pip install --upgrade pip
- Install requirements with mentioned command below.
pip install -r requirements.txt
-
Download weights from link and store in "yolov7-segmentation" directory.
-
Run the code with mentioned command below.
#for segmentation with detection
python3 segment/predict.py --weights yolov7-seg.pt --source "videopath.mp4"
#for segmentation with detection + Tracking
python3 segment/predict.py --weights yolov7-seg.pt --source "videopath.mp4" --trk
#save the labels files of segmentation
python3 segment/predict.py --weights yolov7-seg.pt --source "videopath.mp4" --save-txt
- Output file will be created in the working directory with name yolov7-segmentation/runs/predict-seg/exp/"original-video-name.mp4"
Car Semantic Segmentation | Car Semantic Segmentation | Person Segmentation + Tracking |
-
I have used roboflow for data labelling. The data labelling for Segmentation will be a Polygon box,While data labelling for object detection will be a bounding box
-
Go to the link and create a new workspace. Make sure to login with roboflow account.
- Once you will click on create workspace, You will see the popup as shown below to upload the dataset.
- Click on upload dataset and roboflow will ask for workspace name as shown below. Fill that form and then click on Create Private Project
- Note: Make sure to select Instance Segmentation Option in below image.
-You can upload your dataset now.
-
Once files will upload, you can click on Finish Uploading.
-
Roboflow will ask you to assign Images to someone, click on Assign Images.
-
After that, you will see the tab shown below.
-
Click on any Image in Unannotated tab, and then you can start labelling.
-
Note: Press p and then draw polygon points for segmentation
- Once you will complete labelling, you can then export the data and follow mentioned steps below to start training.
- Move your (segmentation custom labelled data) inside "yolov7-segmentation\data" folder by following mentioned structure.
- Go to the data folder, create a file with name custom.yaml and paste the mentioned code below inside that.
train: "path to train folder"
val: "path to validation folder"
# number of classes
nc: 1
# class names
names: [ 'car']
- Download weights from the link and move to yolov7-segmentation folder.
- Go to the terminal, and run mentioned command below to start training.
python3 segment/train.py --data data/custom.yaml \
--batch 4 \
--weights "yolov7-seg.pt"
--cfg yolov7-seg.yaml \
--epochs 10 \
--name yolov7-seg \
--img 640 \
--hyp hyp.scratch-high.yaml
python3 segment/predict.py --weights "runs/yolov7-seg/exp/weights/best.pt" --source "videopath.mp4"
Car Semantic Segmentation | Car Semantic Segmentation | Person Segmentation + Tracking |