рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╡реИрд▓рд┐рдбреЗрд╢рди рдХреЗ рд╕рд╛рде Ultralytics

рдкрд░рд┐рдЪрдп

рдпрд╣ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╡реИрд▓рд┐рдбреЗрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ Ultralytics рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ред рд╣рдо рд▓рд╛рдн рдЙрдард╛рдПрдВрдЧреЗ YOLO рдбрд┐рдЯреЗрдХреНрд╢рди рдлреЙрд░реНрдореЗрдЯ рдФрд░ рдХреБрдВрдЬреА Python рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрдЕрдк, рдлреАрдЪрд░ рд╡реИрдХреНрдЯрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХреЗ-рдлреЛрд▓реНрдб рдбреЗрдЯрд╛рд╕реЗрдЯ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкрдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рд░реНрди, рдкрд╛рдВрдбрд╛ рдФрд░ PyYaml рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпред

рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдЕрд╡рд▓реЛрдХрди

рдЪрд╛рд╣реЗ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлреНрд░реВрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдпрд╛ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рд╢рд╛рдорд┐рд▓ рд╣реЛ, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреЗ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдордЬрдмреВрддреА рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдирд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдо рдЖрд╡реЗрджрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ k=5 рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдлреЛрд▓реНрдб, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдлреЛрд▓реНрдб рдХреА рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдФрд░ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдЖрдЗрдП рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ!

рд╕реЗрдЯрдЕрдк

  • рдЖрдкрдХреЗ рдПрдиреЛрдЯреЗрд╢рди YOLO рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдкред

  • рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдорд╛рдирддреА рд╣реИ рдХрд┐ рдПрдиреЛрдЯреЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

  • рд╣рдорд╛рд░реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреНрд░реВрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

    • рдЗрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдХреБрд▓ 8479 рдЪрд┐рддреНрд░ рд╣реИрдВред
    • рдЗрд╕рдореЗрдВ 6 рд╡рд░реНрдЧ рд▓реЗрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдХреБрд▓ рдЙрджрд╛рд╣рд░рдг рдЧрдгрдирд╛ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред
рдХрдХреНрд╖рд╛ рд▓реЗрдмрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛рдЙрдВрдЯ
рд╕реЗрдм 7049
рдЕрдВрдЧреВрд░ 7202
рдЕрдирдиреНтАНрдирд╛рд╕ 1613
рдирд╛рд░рдВрдЧреА 15549
рдХреЗрд▓рд╛ 3536
рддрд░рдмреВреЫ 1976
  • реЫрд░реВрд░реА Python рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

    • ultralytics
    • sklearn
    • pandas
    • pyyaml
  • рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ k=5 рдкрд░рддреЛрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

  • рдПрдХ рдирдпрд╛ рдЖрд░рдВрдн рдХрд░реЗрдВ Python рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг (venv) рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред рдкреНрд░рдпреЛрдЧ pip (рдпрд╛ рдЖрдкрдХрд╛ рдкрд╕рдВрджреАрджрд╛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

    • рд╡рд╣реА Ultralytics рдкреБрд╕реНрддрдХрд╛рд▓рдп: pip install -U ultralytics. рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЕрдзрд┐рдХрд╛рд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд░реЗрдкреЛ.
    • рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди, рдкрд╛рдВрдбрд╛ рдФрд░ рдкрд╛рдпрдпрдореНрд▓: pip install -U scikit-learn pandas pyyaml.
  • рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдПрдиреЛрдЯреЗрд╢рди YOLO рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдкред

    • рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдПрдиреЛрдЯреЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ Fruit-Detection/labels рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред

рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдлрд╝реАрдЪрд░ рд╡реИрдХреНрдЯрд░ рдЬрдирд░реЗрдЯ рдХрд░рдирд╛

  1. рдПрдХ рдирдпрд╛ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ example.py Python рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ред

  2. рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓реЗрдмрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред

    from pathlib import Path
    
    dataset_path = Path("./Fruit-detection")  # replace with 'path/to/dataset' for your custom data
    labels = sorted(dataset_path.rglob("*labels/*.txt"))  # all data in 'labels'
    
  3. рдЕрдм, рдбреЗрдЯрд╛рд╕реЗрдЯ YAML рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реЗрдВ рдФрд░ рдХреНрд▓рд╛рд╕ рд▓реЗрдмрд▓ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдирд┐рдХрд╛рд▓реЗрдВред

    yaml_file = "path/to/data.yaml"  # your data YAML with data directories and names dictionary
    with open(yaml_file, "r", encoding="utf8") as y:
        classes = yaml.safe_load(y)["names"]
    cls_idx = sorted(classes.keys())
    
  4. рдХрд┐рд╕реА рд░рд┐рдХреНрдд рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ pandas рдбреЗрдЯрд╛рдлреНрд░реЗрдоред

    import pandas as pd
    
    indx = [l.stem for l in labels]  # uses base filename as ID (no extension)
    labels_df = pd.DataFrame([], columns=cls_idx, index=indx)
    
  5. рдПрдиреЛрдЯреЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ-рд▓реЗрдмрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред

    from collections import Counter
    
    for label in labels:
        lbl_counter = Counter()
    
        with open(label, "r") as lf:
            lines = lf.readlines()
    
        for l in lines:
            # classes for YOLO label uses integer at first position of each line
            lbl_counter[int(l.split(" ")[0])] += 1
    
        labels_df.loc[label.stem] = lbl_counter
    
    labels_df = labels_df.fillna(0.0)  # replace `nan` values with `0.0`
    
  6. рдкреЙрдкреБрд▓реЗрдЯреЗрдб рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдХрд╛ рдПрдХ рдирдореВрдирд╛ рджреГрд╢реНрдп рдирд┐рдореНрди рд╣реИ:

                                                           0    1    2    3    4    5
    '0000a16e4b057580_jpg.rf.00ab48988370f64f5ca8ea4...'  0.0  0.0  0.0  0.0  0.0  7.0
    '0000a16e4b057580_jpg.rf.7e6dce029fb67f01eb19aa7...'  0.0  0.0  0.0  0.0  0.0  7.0
    '0000a16e4b057580_jpg.rf.bc4d31cdcbe229dd022957a...'  0.0  0.0  0.0  0.0  0.0  7.0
    '00020ebf74c4881c_jpg.rf.508192a0a97aa6c4a3b6882...'  0.0  0.0  0.0  1.0  0.0  0.0
    '00020ebf74c4881c_jpg.rf.5af192a2254c8ecc4188a25...'  0.0  0.0  0.0  1.0  0.0  0.0
     ...                                                  ...  ...  ...  ...  ...  ...
    'ff4cd45896de38be_jpg.rf.c4b5e967ca10c7ced3b9e97...'  0.0  0.0  0.0  0.0  0.0  2.0
    'ff4cd45896de38be_jpg.rf.ea4c1d37d2884b3e3cbce08...'  0.0  0.0  0.0  0.0  0.0  2.0
    'ff5fd9c3c624b7dc_jpg.rf.bb519feaa36fc4bf630a033...'  1.0  0.0  0.0  0.0  0.0  0.0
    'ff5fd9c3c624b7dc_jpg.rf.f0751c9c3aa4519ea3c9d6a...'  1.0  0.0  0.0  0.0  0.0  0.0
    'fffe28b31f2a70d4_jpg.rf.7ea16bd637ba0711c53b540...'  0.0  6.0  0.0  0.0  0.0  0.0
    

рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реЗрдмрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рддреА рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреА рд╣реИ, рдФрд░ рдХреЙрд▓рдо рдЖрдкрдХреЗ рд╡рд░реНрдЧ-рд▓реЗрдмрд▓ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдЫрджреНрдо рд╕реБрд╡рд┐рдзрд╛-рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдореМрдЬреВрдж рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ-рд▓реЗрдмрд▓ рдХреА рдЧрд┐рдирддреА рд╣реЛрддреА рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╡реИрд▓рд┐рдбреЗрд╢рди рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред

рдХреЗ-рдлреЛрд▓реНрдб рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реНрдкреНрд▓рд┐рдЯ

  1. рдЕрдм рд╣рдо KFold рд╕реЗ рд╡рд░реНрдЧ sklearn.model_selection рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП k рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╡рд┐рднрд╛рдЬрдиред

    • рдорд╣рддреНрд╡рдкреВрд░реНрдг:
      • рд╕реЗрдЯрд┐рдВрдЧ shuffle=True рдЖрдкрдХреЗ рд╡рд┐рднрд╛рдЬрди рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
      • рд╕реЗрдЯ рдХрд░рдХреЗ random_state=M рдХрд╣рд╛рдВ M рдПрдХ рдЪреБрдирд╛ рд╣реБрдЖ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдЖрдк рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    from sklearn.model_selection import KFold
    
    ksplit = 5
    kf = KFold(n_splits=ksplit, shuffle=True, random_state=20)  # setting random_state for repeatable results
    
    kfolds = list(kf.split(labels_df))
    
  2. рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдЕрдм рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ k рд╕рд┐рд▓рд╡рдЯреЛрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ train рдФрд░ val рд╕реВрдЪрдХрд╛рдВрдХред рд╣рдо рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред

    folds = [f"split_{n}" for n in range(1, ksplit + 1)]
    folds_df = pd.DataFrame(index=indx, columns=folds)
    
    for idx, (train, val) in enumerate(kfolds, start=1):
        folds_df[f"split_{idx}"].loc[labels_df.iloc[train].index] = "train"
        folds_df[f"split_{idx}"].loc[labels_df.iloc[val].index] = "val"
    
  3. рдЕрдм рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддрд╣ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рд▓реЗрдмрд▓ рдХреЗ рд╡рд┐рддрд░рдг рдХреА рдЧрдгрдирд╛ 1999 рдореЗрдВ рдЙрдкрд╕реНрдерд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВрдЧреЗред val рдореЗрдВ рдЙрдкрд╕реНрдерд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП train.

    fold_lbl_distrb = pd.DataFrame(index=folds, columns=cls_idx)
    
    for n, (train_indices, val_indices) in enumerate(kfolds, start=1):
        train_totals = labels_df.iloc[train_indices].sum()
        val_totals = labels_df.iloc[val_indices].sum()
    
        # To avoid division by zero, we add a small value (1E-7) to the denominator
        ratio = val_totals / (train_totals + 1e-7)
        fold_lbl_distrb.loc[f"split_{n}"] = ratio
    

    рдЖрджрд░реНрд╢ рдкрд░рд┐рджреГрд╢реНрдп рд╕рднреА рд╡рд░реНрдЧ рдЕрдиреБрдкрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрдереЛрдЪрд┐рдд рд╕рдорд╛рди рд╣реЛрдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдЕрдзреАрди рд╣реЛрдЧрд╛ред

  4. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ YAML рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВред

    import datetime
    
    supported_extensions = [".jpg", ".jpeg", ".png"]
    
    # Initialize an empty list to store image file paths
    images = []
    
    # Loop through supported extensions and gather image files
    for ext in supported_extensions:
        images.extend(sorted((dataset_path / "images").rglob(f"*{ext}")))
    
    # Create the necessary directories and dataset YAML files (unchanged)
    save_path = Path(dataset_path / f"{datetime.date.today().isoformat()}_{ksplit}-Fold_Cross-val")
    save_path.mkdir(parents=True, exist_ok=True)
    ds_yamls = []
    
    for split in folds_df.columns:
        # Create directories
        split_dir = save_path / split
        split_dir.mkdir(parents=True, exist_ok=True)
        (split_dir / "train" / "images").mkdir(parents=True, exist_ok=True)
        (split_dir / "train" / "labels").mkdir(parents=True, exist_ok=True)
        (split_dir / "val" / "images").mkdir(parents=True, exist_ok=True)
        (split_dir / "val" / "labels").mkdir(parents=True, exist_ok=True)
    
        # Create dataset YAML files
        dataset_yaml = split_dir / f"{split}_dataset.yaml"
        ds_yamls.append(dataset_yaml)
    
        with open(dataset_yaml, "w") as ds_y:
            yaml.safe_dump(
                {
                    "path": split_dir.as_posix(),
                    "train": "train",
                    "val": "val",
                    "names": classes,
                },
                ds_y,
            )
    
  5. рдЕрдВрдд рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рд▓реЗрдмрд▓ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ('рдЯреНрд░реЗрди' рдпрд╛ 'рд╡реИрд▓') рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред

    • рдиреЛрдЯ: рдХреЛрдб рдХреЗ рдЗрд╕ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдЖрдкрдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдФрд░ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред
    import shutil
    
    for image, label in zip(images, labels):
        for split, k_split in folds_df.loc[image.stem].items():
            # Destination directory
            img_to_path = save_path / split / k_split / "images"
            lbl_to_path = save_path / split / k_split / "labels"
    
            # Copy image and label files to new directory (SamefileError if file already exists)
            shutil.copy(image, img_to_path / image.name)
            shutil.copy(label, lbl_to_path / label.name)
    

рд░рд┐рдХреЙрд░реНрдбреНрд╕ рд╕рд╣реЗрдЬреЗрдВ (рд╡реИрдХрд▓реНрдкрд┐рдХ)

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдХреЗ-рдлреЛрд▓реНрдб рд╕реНрдкреНрд▓рд┐рдЯ рдФрд░ рд▓реЗрдмрд▓ рд╡рд┐рддрд░рдг рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕реАрдПрд╕рд╡реА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

folds_df.to_csv(save_path / "kfold_datasplit.csv")
fold_lbl_distrb.to_csv(save_path / "kfold_label_distribution.csv")

рд░реЗрд▓рдЧрд╛рдбрд╝реА YOLO рдХреЗ-рдлреЛрд▓реНрдб рдбреЗрдЯрд╛ рд╕реНрдкреНрд▓рд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓реЛрдб рдХрд░реЗрдВ YOLO рдХреЛ рдЧрдврд╝рдирд╛ред

    from ultralytics import YOLO
    
    weights_path = "path/to/weights.pt"
    model = YOLO(weights_path, task="detect")
    
  2. рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реЗрдЯ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗ project рдФрд░ name рддрд░реНрдХред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ 'exp/runs#' рд╣реИ рдЬрд╣рд╛рдВ # рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред

    results = {}
    
    # Define your additional arguments here
    batch = 16
    project = "kfold_demo"
    epochs = 100
    
    for k in range(ksplit):
        dataset_yaml = ds_yamls[k]
        model.train(data=dataset_yaml, epochs=epochs, batch=batch, project=project)  # include any train arguments
        results[k] = model.metrics  # save output metrics for further analysis
    

рд╕рдорд╛рдкреНрддрд┐

рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдордиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ YOLO рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдореЙрдбрд▓ред рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ K рд╡рд┐рднрд╛рдЬрди рдореЗрдВ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд▓рд╡рдЯреЛрдВ рдореЗрдВ рд╕рдВрддреБрд▓рд┐рдд рд╡рд░реНрдЧ рд╡рд┐рддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛред

рд╣рдордиреЗ рдЗрди рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд▓реЗрдмрд▓ рд╡рд┐рддрд░рдг рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рд╕реЗрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реАред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдб рд╕рд╣реЗрдЬреЗ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдпрд╛ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рд▓реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдХреА рдпрд╣ рддрдХрдиреАрдХ рдЖрдкрдХреЗ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХрд╛ рдПрдХ рдордЬрдмреВрдд рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╣реИред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рдУрд╡рд░рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛрддреА рд╣реИред

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдордиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛ YOLO рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдпреЗ рдЪрд░рдг рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдиреНрдп рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдВрддрд░рдгреАрдп рд╣реИрдВред рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдЖрдк рдЕрдкрдиреА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣реИрдкреНрдкреА рдХреЛрдбрд┐рдВрдЧ!

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди

рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ?

рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╡реИрд▓рд┐рдбреЗрд╢рди рдПрдХ рдРрд╕реА рддрдХрдиреАрдХ рд╣реИ рдЬрд╣рд╛рдВ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрдзрд┐рдХ рдордЬрд╝рдмреВрддреА рд╕реЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ 'рдХреЗ' рд╕рдмрд╕реЗрдЯ (рдлреЛрд▓реНрдб) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЧреБрдирд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, K-Fold Cross Validation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ Ultralytics YOLO рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдореЗрдВ рдордЬрдмреВрдд рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдХреЗ рд╕рд╛рде K-Fold рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП Ultralytics YOLO, рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ K-Fold рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде Ultralytics.

рдореИрдВ рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВрдВ Ultralytics YOLO?

рдХреЗ рд╕рд╛рде K-Fold рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ultralytics YOLO, рдЖрдкрдХреЛ рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрдиреЛрдЯреЗрд╢рди YOLO рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдкред
  2. рдкреНрд░рдпреЛрдЧ Python рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддрд░рд╣ sklearn, pandasрдФрд░ pyyaml.
  3. рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рдлреАрдЪрд░ рд╡реИрдХреНрдЯрд░ рдмрдирд╛рдПрдВред
  4. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ KFold рд╕реЗ sklearn.model_selection.
  5. рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВ YOLO рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдкрд░ рдореЙрдбрд▓ред

рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЗ-рдлреЛрд▓реНрдб рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реНрдкреНрд▓рд┐рдЯ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред

рдореБрдЭреЗ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП Ultralytics YOLO рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП?

Ultralytics YOLO рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдФрд░ рджрдХреНрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡рд╕реНрддреБ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдореБрдЦреА рд╣реИ, рдХрдИ рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдкрд╣рдЪрд╛рди, рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ Ultralytics рдиреЛ-рдХреЛрдб рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╣рдмред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд▓рд╛рднреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ Ultralytics YOLO рдкреГрд╖реНрдаред

рдореИрдВ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИрдВ Ultralytics YOLO?

рдЖрдкрдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП YOLO рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдкред рдкреНрд░рддреНрдпреЗрдХ рдПрдиреЛрдЯреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЫрд╡рд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рдеред рд╡рд╣реА YOLO рдкреНрд░рд╛рд░реВрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рдорд╛рдирдХреАрдХреГрдд рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдЪрд┐рдд рдПрдиреЛрдЯреЗрд╢рди рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ YOLO рдбрд┐рдЯреЗрдХреНрд╢рди рдлреЙрд░реНрдореЗрдЯ рдЧрд╛рдЗрдбред

рдХреНрдпрд╛ рдореИрдВ рдлреНрд░реВрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╣рд╛рдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде K-Fold Cross Validation рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдПрдиреЛрдЯреЗрд╢рди YOLO рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдкред рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрде рдФрд░ рд╡рд░реНрдЧ рд▓реЗрдмрд▓ рдХреЛ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ-рдлреЛрд▓реНрдб рдХреНрд░реЙрд╕ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдордЬрдмреВрдд рдореЙрдбрд▓ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЬрдирд░реЗрдЯрд┐рдВрдЧ рдлрд╝реАрдЪрд░ рд╡реИрдХреНрдЯрд░ рдЕрдиреБрднрд╛рдЧ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВред



рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2023-11-12, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-07-05
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (10), рдЖрдЗрд╡рд░рдЭреВ 331 (1), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ