ultralytics / yolov5

YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
https://docs.ultralytics.com
GNU Affero General Public License v3.0
49.81k stars 16.12k forks source link

How can I apply CBAM (C3TR Layer) at YOLOv5x6.yaml ? #10415

Closed star4s closed 1 year ago

star4s commented 1 year ago

Search before asking

Question

How can I apply CBAM (C3TR Layer) at YOLOv5x6.yaml ?

Can you make YOLOv5x6_CBAM.yaml ?

YOLOv5x6.yaml

parameters

nc: 80 # number of classes depth_multiple: 1.33 # model depth multiple width_multiple: 1.25 # layer channel multiple

anchors

anchors:

YOLOv5 backbone

backbone:

[from, number, module, args]

[ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2 [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4 [ -1, 3, C3, [ 128 ] ], [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8 [ -1, 9, C3, [ 256 ] ], [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16 [ -1, 9, C3, [ 512 ] ], [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32 [ -1, 3, C3, [ 768 ] ], [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64 [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ], [ -1, 3, C3, [ 1024, False ] ], # 11 ]

YOLOv5 head

head: [ [ -1, 1, Conv, [ 768, 1, 1 ] ], [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ], [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5 [ -1, 3, C3, [ 768, False ] ], # 15

[ -1, 1, Conv, [ 512, 1, 1 ] ],
[ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
[ [ -1, 6 ], 1, Concat, [ 1 ] ],  # cat backbone P4
[ -1, 3, C3, [ 512, False ] ],  # 19

[ -1, 1, Conv, [ 256, 1, 1 ] ],
[ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
[ [ -1, 4 ], 1, Concat, [ 1 ] ],  # cat backbone P3
[ -1, 3, C3, [ 256, False ] ],  # 23 (P3/8-small)

[ -1, 1, Conv, [ 256, 3, 2 ] ],
[ [ -1, 20 ], 1, Concat, [ 1 ] ],  # cat head P4
[ -1, 3, C3, [ 512, False ] ],  # 26 (P4/16-medium)

[ -1, 1, Conv, [ 512, 3, 2 ] ],
[ [ -1, 16 ], 1, Concat, [ 1 ] ],  # cat head P5
[ -1, 3, C3, [ 768, False ] ],  # 29 (P5/32-large)

[ -1, 1, Conv, [ 768, 3, 2 ] ],
[ [ -1, 12 ], 1, Concat, [ 1 ] ],  # cat head P6
[ -1, 3, C3, [ 1024, False ] ],  # 32 (P6/64-xlarge)

[ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ],  # Detect(P3, P4, P5, P6)

]

Additional

No response

github-actions[bot] commented 1 year ago

👋 Hello, this issue has been automatically marked as stale because it has not had recent activity. Please note it will be closed if no further activity occurs.

Access additional YOLOv5 🚀 resources:

Access additional Ultralytics ⚡ resources:

Feel free to inform us of any other issues you discover or feature requests that come to mind in the future. Pull Requests (PRs) are also always welcomed!

Thank you for your contributions to YOLOv5 🚀 and Vision AI ⭐!

glenn-jocher commented 10 months ago

@star4s you can apply the CBAM layer to the YOLOv5x6.yaml file by updating the backbone and head sections with the CBAM layer. You may need to modify the network architecture and parameters to incorporate the CBAM layer effectively. Creating a YOLOv5x6_CBAM.yaml file requires custom implementation and is not currently available out-of-the-box. For detailed guidance on integrating the CBAM layer, please refer to the YOLOv5 docs at https://docs.ultralytics.com/yolov5/ and consider reaching out to the YOLO community for additional support. Best of luck with your implementation!