forked from meituan/YOLOv6
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
38 changed files
with
4,169 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6t model | ||
model = dict( | ||
type='YOLOv6t', | ||
pretrained=None, | ||
depth_multiple=0.25, | ||
width_multiple=0.50, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='YOLOv6tHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='ciou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.01, | ||
lrf=0.01, | ||
momentum=0.937, | ||
weight_decay=0.0005, | ||
warmup_epochs=3.0, | ||
warmup_momentum=0.8, | ||
warmup_bias_lr=0.1 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.015, | ||
hsv_s=0.7, | ||
hsv_v=0.4, | ||
degrees=0.0, | ||
translate=0.1, | ||
scale=0.5, | ||
shear=0.0, | ||
flipud=0.0, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.0, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6t model | ||
model = dict( | ||
type='YOLOv6t', | ||
pretrained='./weights/yolov6t.pt', | ||
depth_multiple=0.25, | ||
width_multiple=0.50, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='EffiDeHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='ciou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.0032, | ||
lrf=0.12, | ||
momentum=0.843, | ||
weight_decay=0.00036, | ||
warmup_epochs=2.0, | ||
warmup_momentum=0.5, | ||
warmup_bias_lr=0.05 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.0138, | ||
hsv_s=0.664, | ||
hsv_v=0.464, | ||
degrees=0.373, | ||
translate=0.245, | ||
scale=0.898, | ||
shear=0.602, | ||
flipud=0.00856, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.243, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6n model | ||
model = dict( | ||
type='YOLOv6n', | ||
pretrained=None, | ||
depth_multiple=0.33, | ||
width_multiple=0.25, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='EffiDeHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='ciou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.01, | ||
lrf=0.01, | ||
momentum=0.937, | ||
weight_decay=0.0005, | ||
warmup_epochs=3.0, | ||
warmup_momentum=0.8, | ||
warmup_bias_lr=0.1 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.015, | ||
hsv_s=0.7, | ||
hsv_v=0.4, | ||
degrees=0.0, | ||
translate=0.1, | ||
scale=0.5, | ||
shear=0.0, | ||
flipud=0.0, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.0, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6n model | ||
model = dict( | ||
type='YOLOv6n', | ||
pretrained='./weights/yolov6n.pt', | ||
depth_multiple=0.33, | ||
width_multiple=0.25, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='EffiDeHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='ciou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.0032, | ||
lrf=0.12, | ||
momentum=0.843, | ||
weight_decay=0.00036, | ||
warmup_epochs=2.0, | ||
warmup_momentum=0.5, | ||
warmup_bias_lr=0.05 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.0138, | ||
hsv_s=0.664, | ||
hsv_v=0.464, | ||
degrees=0.373, | ||
translate=0.245, | ||
scale=0.898, | ||
shear=0.602, | ||
flipud=0.00856, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.243 | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6s model | ||
model = dict( | ||
type='YOLOv6s', | ||
pretrained=None, | ||
depth_multiple=0.33, | ||
width_multiple=0.50, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='EffiDeHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='siou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.01, | ||
lrf=0.01, | ||
momentum=0.937, | ||
weight_decay=0.0005, | ||
warmup_epochs=3.0, | ||
warmup_momentum=0.8, | ||
warmup_bias_lr=0.1 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.015, | ||
hsv_s=0.7, | ||
hsv_v=0.4, | ||
degrees=0.0, | ||
translate=0.1, | ||
scale=0.5, | ||
shear=0.0, | ||
flipud=0.0, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.0, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# YOLOv6s model | ||
model = dict( | ||
type='YOLOv6s', | ||
pretrained='./weights/yolov6s.pt', | ||
depth_multiple=0.33, | ||
width_multiple=0.50, | ||
backbone=dict( | ||
type='EfficientRep', | ||
num_repeats=[1, 6, 12, 18, 6], | ||
out_channels=[64, 128, 256, 512, 1024], | ||
), | ||
neck=dict( | ||
type='RepPAN', | ||
num_repeats=[12, 12, 12, 12], | ||
out_channels=[256, 128, 128, 256, 256, 512], | ||
), | ||
head=dict( | ||
type='YOLOv6sHead', | ||
in_channels=[128, 256, 512], | ||
num_layers=3, | ||
begin_indices=24, | ||
anchors=1, | ||
out_indices=[17, 20, 23], | ||
strides=[8, 16, 32], | ||
iou_type='siou' | ||
) | ||
) | ||
|
||
solver = dict( | ||
optim='SGD', | ||
lr_scheduler='Cosine', | ||
lr0=0.0032, | ||
lrf=0.12, | ||
momentum=0.843, | ||
weight_decay=0.00036, | ||
warmup_epochs=2.0, | ||
warmup_momentum=0.5, | ||
warmup_bias_lr=0.05 | ||
) | ||
|
||
data_aug = dict( | ||
hsv_h=0.0138, | ||
hsv_s=0.664, | ||
hsv_v=0.464, | ||
degrees=0.373, | ||
translate=0.245, | ||
scale=0.898, | ||
shear=0.602, | ||
flipud=0.00856, | ||
fliplr=0.5, | ||
mosaic=1.0, | ||
mixup=0.243, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# COCO 2017 dataset http://cocodataset.org | ||
train: ../coco/images/train2017 # 118287 images | ||
val: ../coco/images/val2017 # 5000 images | ||
test: ../coco/images/test2017 | ||
anno_path: ../coco/annotations/instances_val2017.json | ||
# number of classes | ||
nc: 80 | ||
|
||
# class names | ||
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', | ||
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', | ||
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', | ||
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', | ||
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', | ||
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', | ||
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', | ||
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', | ||
'hair drier', 'toothbrush' ] | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Test speed | ||
|
||
This guidence explains how to reproduce speed results of YOLOv6. For fair comparision, the speed results do not contain the time cost of data pre-processing and NMS post-processing. | ||
|
||
## 0. Prepare model and | ||
|
||
Download the models you want to test in model zoo. | ||
|
||
## 1. Prepare testing environment | ||
|
||
Refer to README, install packages corresponding to CUDA, CUDNN and TensorRT version. | ||
|
||
Here, we use Torch1.8.0 inference on V100 and TensorRT 7.2 on T4. | ||
|
||
## 2. Reproduce speed | ||
|
||
#### 2.1 Torch Inference on V100 | ||
|
||
To get inference speed without TensorRT on V100, you can run the following command: | ||
|
||
```shell | ||
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6n.pt --task speed [--half] | ||
``` | ||
|
||
- Speed results with batchsize = 1 are unstable in multiple runs, thus we do not provide the bs1 speed results. | ||
|
||
#### 2.2 TensorRT Inference on T4 | ||
|
||
To get inference speed with TensorRT in FP16 mode on T4, you can follow the steps below: | ||
|
||
First, export pytorch model as onnx format using the following command: | ||
|
||
```shell | ||
python tools/export_onnx.py --weights yolov6n.pt --device 0 --batch [1 or 32] | ||
``` | ||
|
||
Second, generate an inference trt engine and test speed using `trtexec`: | ||
|
||
``` | ||
trtexec --onnx=yolov6n.onnx --workspace=1024 --avgRuns=1000 --inputIOFormats=fp16:chw --outputIOFormats=fp16:chw | ||
``` | ||
|
Oops, something went wrong.