Yolov7 Segmentation Save

YOLOv7 Instance Segmentation using OpenCV and PyTorch

Project README

yolov7-instance-segmentation

Coming Soon

  • Development of streamlit dashboard for Instance-Segmentation with Object Tracking

Code Medium Blog

Steps to run Code

  • Clone the repository
git clone https://github.com/RizwanMunawar/yolov7-segmentation.git
  • 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"

RESULTS

Car Semantic Segmentation Car Semantic Segmentation Person Segmentation + Tracking

Custom Data Labelling

  • 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.

1

  • Once you will click on create workspace, You will see the popup as shown below to upload the dataset.

2

  • 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. dataset

-You can upload your dataset now.

Screenshot 2022-09-17 155330

  • 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.

6

  • Click on any Image in Unannotated tab, and then you can start labelling.

  • Note: Press p and then draw polygon points for <B>segmentation

10

  • Once you will complete labelling, you can then export the data and follow mentioned steps below to start training.

Custom Training

  • Move your (segmentation custom labelled data) inside "yolov7-segmentation\data" folder by following mentioned structure.

ss

  • 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

Custom Model Detection Command

python3 segment/predict.py --weights "runs/yolov7-seg/exp/weights/best.pt" --source "videopath.mp4"

RESULTS

Car Semantic Segmentation Car Semantic Segmentation Person Segmentation + Tracking

References

My Medium Articles

Open Source Agenda is not affiliated with "Yolov7 Segmentation" Project. README Source: RizwanMunawar/yolov7-segmentation
Stars
283
Open Issues
19
Last Commit
9 months ago
License

Open Source Agenda Badge

Open Source Agenda Rating