Ver Fonte

use yolo style aug

yjh0410 há 1 ano atrás
pai
commit
152e82ceb2
4 ficheiros alterados com 204 adições e 6 exclusões
  1. 65 1
      config/yolov3_config.py
  2. 65 1
      config/yolov5_af_config.py
  3. 66 2
      config/yolov5_config.py
  4. 8 2
      config/yolov8_config.py

+ 65 - 1
config/yolov3_config.py

@@ -2,8 +2,16 @@
 
 
 def build_yolov3_config(args):
-    if args.model == 'yolov3_s':
+    if   args.model == 'yolov3_n':
+        return Yolov3NConfig()
+    elif args.model == 'yolov3_s':
         return Yolov3SConfig()
+    elif args.model == 'yolov3_m':
+        return Yolov3MConfig()
+    elif args.model == 'yolov3_l':
+        return Yolov3LConfig()
+    elif args.model == 'yolov3_x':
+        return Yolov3XConfig()
     else:
         raise NotImplementedError("No config for model: {}".format(args.model))
     
@@ -114,6 +122,20 @@ class Yolov3BaseConfig(object):
         for k, v in config_dict.items():
             print("{} : {}".format(k, v))
 
+# YOLOv3-N
+class Yolov3NConfig(Yolov3BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.25
+        self.depth = 0.34
+        self.scale = "n"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.0
+        self.copy_paste  = 0.0
+
 # YOLOv3-S
 class Yolov3SConfig(Yolov3BaseConfig):
     def __init__(self) -> None:
@@ -127,3 +149,45 @@ class Yolov3SConfig(Yolov3BaseConfig):
         self.mosaic_prob = 1.0
         self.mixup_prob  = 0.0
         self.copy_paste  = 0.0
+
+# YOLOv3-M
+class Yolov3MConfig(Yolov3BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.75
+        self.depth = 0.67
+        self.scale = "m"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0
+
+# YOLOv3-L
+class Yolov3LConfig(Yolov3BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.0
+        self.depth = 1.0
+        self.scale = "l"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0
+
+# YOLOv3-X
+class Yolov3XConfig(Yolov3BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.25
+        self.depth = 1.34
+        self.scale = "x"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0

+ 65 - 1
config/yolov5_af_config.py

@@ -2,8 +2,16 @@
 
 
 def build_yolov5af_config(args):
-    if args.model == 'yolov5_af_s':
+    if   args.model == 'yolov5_af_n':
+        return Yolov5AFNConfig()
+    elif args.model == 'yolov5_af_s':
         return Yolov5AFSConfig()
+    elif args.model == 'yolov5_af_m':
+        return Yolov5AFMConfig()
+    elif args.model == 'yolov5_af_l':
+        return Yolov5AFLConfig()
+    elif args.model == 'yolov5_af_':
+        return Yolov5AFXConfig()
     else:
         raise NotImplementedError("No config for model: {}".format(args.model))
     
@@ -112,6 +120,20 @@ class Yolov5AFBaseConfig(object):
         for k, v in config_dict.items():
             print("{} : {}".format(k, v))
 
+# YOLOv5AF-N
+class Yolov5AFNConfig(Yolov5AFBaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.25
+        self.depth = 0.34
+        self.scale = "n"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.0
+        self.copy_paste  = 0.5
+
 # YOLOv5AF-S
 class Yolov5AFSConfig(Yolov5AFBaseConfig):
     def __init__(self) -> None:
@@ -125,3 +147,45 @@ class Yolov5AFSConfig(Yolov5AFBaseConfig):
         self.mosaic_prob = 1.0
         self.mixup_prob  = 0.0
         self.copy_paste  = 0.5
+
+# YOLOv5AF-M
+class Yolov5AFMConfig(Yolov5AFBaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.75
+        self.depth = 0.67
+        self.scale = "m"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.5
+
+# YOLOv5AF-L
+class Yolov5AFLConfig(Yolov5AFBaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.0
+        self.depth = 1.0
+        self.scale = "l"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.5
+
+# YOLOv5AF-X
+class Yolov5AFXConfig(Yolov5AFBaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.25
+        self.depth = 1.34
+        self.scale = "x"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.5

+ 66 - 2
config/yolov5_config.py

@@ -2,8 +2,16 @@
 
 
 def build_yolov5_config(args):
-    if args.model == 'yolov5_s':
-        return Yolov5SConfig()
+    if   args.model == 'yolov5_n':
+        return Yolov5NConfig()
+    elif args.model == 'yolov5_x':
+        return Yolov5XConfig()
+    elif args.model == 'yolov5_m':
+        return Yolov5MConfig()
+    elif args.model == 'yolov5_l':
+        return Yolov5LConfig()
+    elif args.model == 'yolov5_x':
+        return Yolov5XConfig()
     else:
         raise NotImplementedError("No config for model: {}".format(args.model))
     
@@ -114,6 +122,20 @@ class Yolov5BaseConfig(object):
         for k, v in config_dict.items():
             print("{} : {}".format(k, v))
 
+# YOLOv5-N
+class Yolov5NConfig(Yolov5BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.25
+        self.depth = 0.34
+        self.scale = "n"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.0
+        self.copy_paste  = 0.0
+
 # YOLOv5-S
 class Yolov5SConfig(Yolov5BaseConfig):
     def __init__(self) -> None:
@@ -127,3 +149,45 @@ class Yolov5SConfig(Yolov5BaseConfig):
         self.mosaic_prob = 1.0
         self.mixup_prob  = 0.0
         self.copy_paste  = 0.0
+
+# YOLOv5-M
+class Yolov5MConfig(Yolov5BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 0.75
+        self.depth = 0.67
+        self.scale = "m"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0
+
+# YOLOv5-L
+class Yolov5LConfig(Yolov5BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.0
+        self.depth = 1.0
+        self.scale = "l"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0
+
+# YOLOv5-X
+class Yolov5XConfig(Yolov5BaseConfig):
+    def __init__(self) -> None:
+        super().__init__()
+        # ---------------- Model config ----------------
+        self.width = 1.25
+        self.depth = 1.34
+        self.scale = "x"
+
+        # ---------------- Data process config ----------------
+        self.mosaic_prob = 1.0
+        self.mixup_prob  = 0.1
+        self.copy_paste  = 0.0

+ 8 - 2
config/yolov8_config.py

@@ -6,6 +6,12 @@ def build_yolov8_config(args):
         return Yolov8NConfig()
     elif args.model == 'yolov8_s':
         return Yolov8SConfig()
+    elif args.model == 'yolov8_m':
+        return Yolov8MConfig()
+    elif args.model == 'yolov8_l':
+        return Yolov8LConfig()
+    elif args.model == 'yolov8_x':
+        return Yolov8XConfig()
     else:
         raise NotImplementedError("No config for model: {}".format(args.model))
     
@@ -163,7 +169,7 @@ class Yolov8MConfig(Yolov8BaseConfig):
         self.copy_paste  = 0.5
 
 # YOLOv8-L
-class Yolov8MConfig(Yolov8BaseConfig):
+class Yolov8LConfig(Yolov8BaseConfig):
     def __init__(self) -> None:
         super().__init__()
         # ---------------- Model config ----------------
@@ -178,7 +184,7 @@ class Yolov8MConfig(Yolov8BaseConfig):
         self.copy_paste  = 0.5
 
 # YOLOv8-X
-class Yolov8MConfig(Yolov8BaseConfig):
+class Yolov8XConfig(Yolov8BaseConfig):
     def __init__(self) -> None:
         super().__init__()
         # ---------------- Model config ----------------