Tăng cường dữ liệu bằng cách sử dụng Ultralytics YOLO
Giới thiệu
Tăng cường dữ liệu là một kỹ thuật quan trọng trong thị giác máy tính, mở rộng bộ dữ liệu đào tạo của bạn một cách nhân tạo bằng cách áp dụng nhiều phép biến đổi khác nhau vào các hình ảnh hiện có. Khi đào tạo các mô hình học sâu như Ultralytics YOLO , việc tăng cường dữ liệu giúp cải thiện độ mạnh mẽ của mô hình, giảm tình trạng quá khớp và tăng cường khả năng khái quát hóa thành các tình huống thực tế.
Tại sao việc tăng cường dữ liệu lại quan trọng
Việc tăng cường dữ liệu phục vụ nhiều mục đích quan trọng trong việc đào tạo các mô hình thị giác máy tính:
Bộ dữ liệu mở rộng : Bằng cách tạo các biến thể của hình ảnh hiện có, bạn có thể tăng hiệu quả kích thước bộ dữ liệu đào tạo mà không cần thu thập dữ liệu mới.
Khả năng tổng quát hóa được cải thiện : Các mô hình học cách nhận dạng các đối tượng trong nhiều điều kiện khác nhau, giúp chúng trở nên mạnh mẽ hơn khi ứng dụng trong thế giới thực.
Giảm hiện tượng quá khớp : Bằng cách đưa tính biến thiên vào dữ liệu đào tạo, các mô hình ít có khả năng ghi nhớ các đặc điểm hình ảnh cụ thể.
Hiệu suất được nâng cao : Các mô hình được đào tạo với khả năng tăng cường thích hợp thường đạt được độ chính xác tốt hơn trên các tập xác thực và thử nghiệm.
Ultralytics YOLO Việc triển khai cung cấp một bộ kỹ thuật tăng cường toàn diện, mỗi kỹ thuật phục vụ cho các mục đích cụ thể và đóng góp vào hiệu suất mô hình theo những cách khác nhau. Hướng dẫn này sẽ khám phá từng tham số tăng cường một cách chi tiết, giúp bạn hiểu khi nào và cách sử dụng chúng hiệu quả trong các dự án của mình.
Cấu hình ví dụ
Bạn có thể tùy chỉnh từng tham số bằng cách sử dụng Python API, giao diện dòng lệnh ( CLI ), hoặc tệp cấu hình. Dưới đây là các ví dụ về cách thiết lập tăng cường dữ liệu trong từng phương pháp.
Ví dụ về cấu hình
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
Sử dụng tệp cấu hình
Bạn có thể xác định tất cả các tham số đào tạo, bao gồm cả phần tăng cường, trong tệp cấu hình YAML (ví dụ: train_custom.yaml). Các mode tham số chỉ được yêu cầu khi sử dụng CLI . Tệp YAML mới này sau đó sẽ ghi đè cái mặc định nằm ở ultralytics bưu kiện.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
Sau đó khởi chạy chương trình đào tạo với Python Giao diện lập trình ứng dụng (API):
Ví dụ về tàu hỏa
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
Tăng cường không gian màu
Điều chỉnh sắc độ (hsv_h)
Phạm vi: 0.0 - 1.0
Mặc định: 0.015
Cách sử dụng: Thay đổi màu sắc hình ảnh trong khi vẫn giữ nguyên mối quan hệ của chúng. hsv_h siêu tham số xác định độ lớn dịch chuyển, với sự điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -hsv_h Và hsv_h. Ví dụ, với hsv_h=0.3, sự thay đổi được chọn ngẫu nhiên trong-0.3 ĐẾN 0.3. Đối với các giá trị trên 0.5, sự thay đổi sắc thái bao quanh bánh xe màu, đó là lý do tại sao các phần tăng cường trông giống nhau giữa 0.5 Và -0.5.
Mục đích : Đặc biệt hữu ích cho các tình huống ngoài trời khi điều kiện ánh sáng có thể ảnh hưởng đáng kể đến ngoại hình của vật thể. Ví dụ, một quả chuối có thể trông vàng hơn dưới ánh sáng mặt trời nhưng xanh hơn khi ở trong nhà.
Cách sử dụng: Sửa đổi cường độ màu sắc trong hình ảnh. hsv_h siêu tham số xác định độ lớn dịch chuyển, với sự điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -hsv_s Và hsv_s. Ví dụ, với hsv_s=0.7, cường độ được chọn ngẫu nhiên trong-0.7 ĐẾN 0.7.
Mục đích : Giúp các mô hình xử lý các điều kiện thời tiết và cài đặt máy ảnh khác nhau. Ví dụ, biển báo giao thông màu đỏ có thể xuất hiện rất sống động vào ngày nắng nhưng trông xỉn màu và mờ dần trong điều kiện sương mù.
Cách sử dụng: Thay đổi độ sáng của hình ảnh. hsv_v siêu tham số xác định độ lớn dịch chuyển, với sự điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -hsv_v Và hsv_v. Ví dụ, với hsv_v=0.4, cường độ được chọn ngẫu nhiên trong-0.4 ĐẾN 0.4.
Mục đích : Cần thiết cho các mô hình đào tạo cần thực hiện trong các điều kiện ánh sáng khác nhau. Ví dụ, một quả táo đỏ có thể trông sáng dưới ánh sáng mặt trời nhưng tối hơn nhiều trong bóng râm.
Cách sử dụng: Xoay hình ảnh ngẫu nhiên trong phạm vi được chỉ định. degrees siêu tham số xác định góc quay, với điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -degrees Và degrees. Ví dụ, với degrees=10.0, vòng quay được chọn ngẫu nhiên trong-10.0 ĐẾN 10.0.
Mục đích : Quan trọng đối với các ứng dụng mà các vật thể có thể xuất hiện ở các hướng khác nhau. Ví dụ, trong hình ảnh máy bay không người lái trên không, các phương tiện có thể được định hướng theo bất kỳ hướng nào, yêu cầu các mô hình phải nhận dạng các vật thể bất kể chúng quay theo hướng nào.
Cách sử dụng: Dịch chuyển hình ảnh theo chiều ngang và chiều dọc theo một phần ngẫu nhiên của kích thước hình ảnh. translate siêu tham số xác định độ lớn dịch chuyển, với điều chỉnh cuối cùng được chọn ngẫu nhiên hai lần (một lần cho mỗi trục) trong phạm vi -translate Và translate. Ví dụ, với translate=0.5, bản dịch được chọn ngẫu nhiên trong-0.5 ĐẾN 0.5 trên trục x và một giá trị ngẫu nhiên độc lập khác được chọn trong cùng phạm vi trên trục y.
Mục đích : Giúp các mô hình học cách phát hiện các vật thể có thể nhìn thấy một phần và cải thiện độ bền vững của vị trí vật thể. Ví dụ, trong các ứng dụng đánh giá thiệt hại của xe, các bộ phận xe có thể xuất hiện toàn bộ hoặc một phần trong khung hình tùy thuộc vào vị trí và khoảng cách của nhiếp ảnh gia, phép tăng cường dịch chuyển sẽ dạy mô hình nhận ra các đặc điểm này bất kể chúng có hoàn chỉnh hay vị trí như thế nào.
Ghi chú: Để đơn giản, các bản dịch được áp dụng bên dưới đều giống nhau mỗi lần cho cả hai x Và y trục. Giá trị -1.0 Và 1.0không được hiển thị vì chúng sẽ làm dịch chuyển toàn bộ hình ảnh ra khỏi khung hình.
-0.5
-0.25
0.0
0.25
0.5
Tỉ lệ (scale)
Phạm vi: ≥0.0
Mặc định: 0.5
Cách sử dụng: Thay đổi kích thước hình ảnh theo một hệ số ngẫu nhiên trong phạm vi được chỉ định. scale siêu tham số xác định hệ số tỷ lệ, với điều chỉnh cuối cùng được chọn ngẫu nhiên giữa 1-scale Và 1+scale. Ví dụ, với scale=0.5, tỷ lệ được chọn ngẫu nhiên trong0.5 ĐẾN 1.5.
Mục đích : Cho phép các mô hình xử lý các vật thể ở các khoảng cách và kích thước khác nhau. Ví dụ, trong các ứng dụng lái xe tự động, xe cộ có thể xuất hiện ở nhiều khoảng cách khác nhau từ camera, yêu cầu mô hình phải nhận dạng chúng bất kể kích thước của chúng.
Giá trị -1.0 không được hiển thị vì nó sẽ làm hình ảnh biến mất, trong khi 1.0 chỉ đơn giản là phóng to 2x.
Các giá trị hiển thị trong bảng dưới đây là các giá trị được áp dụng thông qua siêu tham số scale, không phải là hệ số tỷ lệ cuối cùng.
Nếu như scale lớn hơn 1.0, hình ảnh có thể rất nhỏ hoặc bị lật ngược, vì hệ số tỷ lệ được chọn ngẫu nhiên giữa 1-scale Và 1+scale. Ví dụ, với scale=3.0, tỷ lệ được chọn ngẫu nhiên trong-2.0 ĐẾN 4.0. Nếu chọn giá trị âm, hình ảnh sẽ bị lật ngược.
-0.5
-0.25
0.0
0.25
0.5
Cắt (shear)
Phạm vi: -180 ĐẾN +180
Mặc định: 0.0
Cách sử dụng:Giới thiệu một phép biến đổi hình học làm lệch hình ảnh theo cả trục x và trục y, dịch chuyển hiệu quả các phần của hình ảnh theo một hướng trong khi vẫn duy trì các đường song song. shear siêu tham số xác định góc cắt, với điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -shear Và shear. Ví dụ, với shear=10.0, lực cắt được chọn ngẫu nhiên trong-10 ĐẾN 10 trên trục x và một giá trị ngẫu nhiên độc lập khác được chọn trong cùng phạm vi trên trục y.
Mục đích : Giúp các mô hình khái quát hóa các biến thể về góc nhìn do độ nghiêng nhẹ hoặc góc nhìn xiên. Ví dụ, trong giám sát giao thông, các vật thể như ô tô và biển báo đường bộ có thể bị nghiêng do vị trí đặt camera không vuông góc. Áp dụng tăng cường cắt đảm bảo mô hình học cách nhận dạng các vật thể bất chấp các biến dạng lệch như vậy.
shear các giá trị này có thể làm biến dạng hình ảnh nhanh chóng, vì vậy bạn nên bắt đầu với các giá trị nhỏ và tăng dần.
Không giống như phép biến đổi phối cảnh, phép cắt không tạo ra chiều sâu hay điểm biến mất mà thay vào đó làm biến dạng hình dạng của vật thể bằng cách thay đổi góc của chúng trong khi vẫn giữ các cạnh đối diện song song.
-10
-5
0.0
5
10
Luật xa gần (perspective)
Phạm vi: 0.0 - 0.001
Mặc định: 0.0
Cách sử dụng: Áp dụng phép biến đổi góc nhìn đầy đủ theo cả trục x và trục y, mô phỏng cách các vật thể xuất hiện khi nhìn từ các độ sâu hoặc góc độ khác nhau. perspective siêu tham số xác định độ lớn của góc nhìn, với sự điều chỉnh cuối cùng được chọn ngẫu nhiên giữa -perspective Và perspective. Ví dụ, với perspective=0.001, góc nhìn được chọn ngẫu nhiên trong-0.001 ĐẾN 0.001 trên trục x và một giá trị ngẫu nhiên độc lập khác được chọn trong cùng phạm vi trên trục y.
Mục đích : Tăng cường phối cảnh rất quan trọng để xử lý các thay đổi góc nhìn cực đoan, đặc biệt là trong các tình huống mà các vật thể xuất hiện bị thu hẹp hoặc biến dạng do thay đổi phối cảnh. Ví dụ, trong phát hiện vật thể dựa trên máy bay không người lái, các tòa nhà, đường sá và phương tiện có thể xuất hiện bị kéo dài hoặc nén tùy thuộc vào độ nghiêng và độ cao của máy bay không người lái. Bằng cách áp dụng các phép biến đổi phối cảnh, các mô hình học cách nhận dạng các vật thể bất chấp các biến dạng do phối cảnh gây ra này, cải thiện độ mạnh mẽ của chúng trong các triển khai trong thế giới thực.
Cách sử dụng: Thực hiện lật theo chiều dọc bằng cách đảo ngược hình ảnh dọc theo trục y. Phép biến đổi này phản chiếu toàn bộ hình ảnh theo chiều ngược lại nhưng vẫn giữ nguyên mọi mối quan hệ không gian giữa các đối tượng. Siêu tham số flipud xác định xác suất áp dụng phép biến đổi, với giá trị là flipud=1.0 đảm bảo rằng tất cả các hình ảnh được lật và giá trị của flipud=0.0 vô hiệu hóa hoàn toàn sự chuyển đổi. Ví dụ, với flipud=0.5, mỗi hình ảnh có 50% khả năng bị lật ngược.
Mục đích : Hữu ích cho các tình huống mà các vật thể có thể xuất hiện lộn ngược. Ví dụ, trong các hệ thống thị giác rô bốt, các vật thể trên băng chuyền hoặc cánh tay rô bốt có thể được nhặt lên và đặt theo nhiều hướng khác nhau. Lật theo chiều dọc giúp mô hình nhận dạng các vật thể bất kể vị trí từ trên xuống của chúng.
Cách sử dụng: Thực hiện lật ngang bằng cách phản chiếu hình ảnh dọc theo trục x. Phép biến đổi này hoán đổi bên trái và bên phải trong khi vẫn duy trì tính nhất quán về không gian, giúp mô hình tổng quát hóa các đối tượng xuất hiện theo hướng phản chiếu. fliplr siêu tham số xác định xác suất áp dụng phép biến đổi, với giá trị là fliplr=1.0 đảm bảo rằng tất cả các hình ảnh được lật và giá trị của fliplr=0.0 vô hiệu hóa hoàn toàn sự chuyển đổi. Ví dụ, với fliplr=0.5, mỗi hình ảnh có 50% khả năng bị lật từ trái sang phải.
Mục đích : Lật ngang được sử dụng rộng rãi trong phát hiện vật thể, ước tính tư thế và nhận dạng khuôn mặt để cải thiện độ mạnh mẽ chống lại các biến thể trái-phải. Ví dụ, trong lái xe tự động, xe cộ và người đi bộ có thể xuất hiện ở cả hai bên đường và lật ngang giúp mô hình nhận dạng chúng tốt như nhau ở cả hai hướng.
Cách sử dụng: Hoán đổi các kênh màu của hình ảnh từ RGB sang BGR, thay đổi thứ tự thể hiện màu sắc. bgr siêu tham số xác định xác suất áp dụng phép biến đổi, với bgr=1.0 đảm bảo tất cả hình ảnh đều trải qua quá trình hoán đổi kênh và bgr=0.0 vô hiệu hóa nó. Ví dụ, với bgr=0.5, mỗi hình ảnh có 50% khả năng được chuyển đổi từ RGB sang BGR.
Mục đích : Tăng cường độ mạnh mẽ cho các thứ tự kênh màu khác nhau. Ví dụ, khi đào tạo các mô hình phải hoạt động trên nhiều hệ thống camera và thư viện hình ảnh khác nhau, trong đó định dạng RGB và BGR có thể được sử dụng không nhất quán hoặc khi triển khai các mô hình vào các môi trường mà định dạng màu đầu vào có thể khác với dữ liệu đào tạo.
Cách sử dụng: Kết hợp bốn hình ảnh đào tạo thành một. mosaic siêu tham số xác định xác suất áp dụng phép biến đổi, với mosaic=1.0 đảm bảo rằng tất cả các hình ảnh được kết hợp và mosaic=0.0 vô hiệu hóa sự chuyển đổi. Ví dụ, với mosaic=0.5, mỗi hình ảnh có 50% khả năng được kết hợp với ba hình ảnh khác.
Mục đích : Rất hiệu quả để cải thiện khả năng phát hiện vật thể nhỏ và hiểu ngữ cảnh. Ví dụ, trong các dự án bảo tồn động vật hoang dã, nơi động vật có thể xuất hiện ở nhiều khoảng cách và tỷ lệ khác nhau, khảm tăng cường giúp mô hình học cách nhận dạng cùng một loài ở các kích thước, che khuất một phần và ngữ cảnh môi trường khác nhau bằng cách tạo ra các mẫu đào tạo đa dạng một cách nhân tạo từ dữ liệu hạn chế.
Ngay cả khi mosaic Việc tăng cường làm cho mô hình mạnh mẽ hơn, nó cũng có thể làm cho quá trình đào tạo trở nên khó khăn hơn.
Các mosaic sự tăng cường có thể bị vô hiệu hóa gần cuối quá trình đào tạo bằng cách thiết lập close_mosaic đến số kỷ nguyên trước khi hoàn thành khi nó nên được tắt. Ví dụ, nếu epochs được thiết lập để 200 Và close_mosaic được thiết lập để 20, các mosaic sự tăng cường sẽ bị vô hiệu hóa sau 180 kỷ nguyên. Nếu close_mosaic được thiết lập để 0, các mosaic việc tăng cường sẽ được thực hiện trong toàn bộ quá trình đào tạo.
Tâm của bức tranh ghép được tạo ra được xác định bằng các giá trị ngẫu nhiên và có thể nằm bên trong hoặc bên ngoài hình ảnh.
Việc thực hiện hiện tại của mosaic phép tăng cường kết hợp 4 hình ảnh được chọn ngẫu nhiên từ tập dữ liệu. Nếu tập dữ liệu nhỏ, cùng một hình ảnh có thể được sử dụng nhiều lần trong cùng một khảm.
mosaic tắt
mosaic TRÊN
Trộn lẫn (mixup)
Phạm vi: 0.0 - 1.0
Mặc định: 0.0
Cách sử dụng: Trộn hai hình ảnh và nhãn của chúng với xác suất nhất định. mixup siêu tham số xác định xác suất áp dụng phép biến đổi, với mixup=1.0 đảm bảo rằng tất cả các hình ảnh được trộn lẫn và mixup=0.0 vô hiệu hóa sự chuyển đổi. Ví dụ, với mixup=0.5, mỗi hình ảnh có 50% khả năng được trộn lẫn với một hình ảnh khác.
Mục đích : Cải thiện độ mạnh mẽ của mô hình và giảm tình trạng quá khớp. Ví dụ, trong các hệ thống nhận dạng sản phẩm bán lẻ, mixup giúp mô hình học các tính năng mạnh mẽ hơn bằng cách pha trộn hình ảnh của các sản phẩm khác nhau, dạy mô hình nhận dạng các mặt hàng ngay cả khi chúng chỉ hiển thị một phần hoặc bị che khuất bởi các sản phẩm khác trên các kệ hàng đông đúc trong cửa hàng.
Các mixup tỷ lệ là một giá trị ngẫu nhiên được chọn từ một np.random.beta(32.0, 32.0) phân phối beta, nghĩa là mỗi hình ảnh đóng góp khoảng 50%, với những thay đổi nhỏ.
Hình ảnh đầu tiên, mixup tắt
Hình ảnh thứ hai, mixup tắt
mixup TRÊN
Cắt Trộn (cutmix)
Phạm vi: 0.0 - 1.0
Mặc định: 0.0
Cách sử dụng: Cắt một vùng hình chữ nhật từ một hình ảnh và dán nó vào một hình ảnh khác với xác suất nhất định. cutmix siêu tham số xác định xác suất áp dụng phép biến đổi, với cutmix=1.0 đảm bảo rằng tất cả các hình ảnh đều trải qua quá trình chuyển đổi này và cutmix=0.0 vô hiệu hóa nó hoàn toàn. Ví dụ, với cutmix=0.5, mỗi hình ảnh có 50% khả năng có một vùng được thay thế bằng một bản vá từ hình ảnh khác.
Mục đích : Nâng cao hiệu suất mô hình bằng cách tạo ra các tình huống che khuất thực tế trong khi vẫn duy trì tính toàn vẹn của tính năng cục bộ. Ví dụ, trong các hệ thống lái xe tự động, cutmix giúp mô hình học cách nhận dạng phương tiện hoặc người đi bộ ngay cả khi chúng bị che khuất một phần bởi các vật thể khác, cải thiện độ chính xác phát hiện trong các môi trường thực tế phức tạp với các vật thể chồng chéo.
Kích thước và vị trí của vùng cắt được xác định ngẫu nhiên cho từng ứng dụng.
Không giống như mixup pha trộn các giá trị pixel trên toàn cầu, cutmix duy trì cường độ điểm ảnh ban đầu trong các vùng cắt, bảo toàn các đặc điểm cục bộ.
Một vùng được dán vào hình ảnh mục tiêu chỉ khi nó không chồng lên bất kỳ hộp giới hạn hiện có nào. Ngoài ra, chỉ các hộp giới hạn giữ lại ít nhất 0.1 (10%) diện tích ban đầu của chúng trong vùng dán được bảo toàn.
Ngưỡng diện tích hộp giới hạn tối thiểu này không thể thay đổi với triển khai hiện tại và được đặt thành 0.1 theo mặc định.
Hình ảnh đầu tiên, cutmix tắt
Hình ảnh thứ hai, cutmix tắt
cutmix TRÊN
Tăng cường phân đoạn cụ thể
Sao chép-Dán (copy_paste)
Phạm vi: 0.0 - 1.0
Mặc định: 0.0
Cách sử dụng: Chỉ hoạt động đối với các tác vụ phân đoạn, phần tăng cường này sao chép các đối tượng trong hoặc giữa các hình ảnh dựa trên xác suất được chỉ định, được kiểm soát bởi copy_paste_mode. Các copy_paste siêu tham số xác định xác suất áp dụng phép biến đổi, với copy_paste=1.0 đảm bảo rằng tất cả hình ảnh được sao chép và copy_paste=0.0 vô hiệu hóa sự chuyển đổi. Ví dụ, với copy_paste=0.5, mỗi hình ảnh có 50% khả năng có các đối tượng được sao chép từ hình ảnh khác.
Mục đích : Đặc biệt hữu ích cho các tác vụ phân đoạn và các lớp đối tượng hiếm. Ví dụ, trong phát hiện lỗi công nghiệp, khi một số loại lỗi xuất hiện không thường xuyên, việc tăng cường sao chép-dán có thể làm tăng một cách giả tạo sự xuất hiện của các lỗi hiếm này bằng cách sao chép chúng từ hình ảnh này sang hình ảnh khác, giúp mô hình học tốt hơn các trường hợp ít được đại diện này mà không cần thêm các mẫu lỗi.
Như hình ảnh trong gif bên dưới, copy_paste có thể sử dụng phép tăng cường để sao chép các đối tượng từ hình ảnh này sang hình ảnh khác.
Một khi một đối tượng được sao chép, bất kể copy_paste_mode, Giao điểm của nó trên Diện tích (IoA) được tính toán với tất cả các đối tượng của hình ảnh nguồn. Nếu tất cả các IoA đều nằm dưới 0.3 (30%), đối tượng được dán vào hình ảnh mục tiêu. Nếu chỉ có một IoA ở trên 0.3, đối tượng không được dán vào hình ảnh mục tiêu.
Ngưỡng IoA không thể thay đổi với triển khai hiện tại và được đặt thành 0.3 theo mặc định.
copy_paste tắt
copy_paste trên với copy_paste_mode=flip
Hình dung ra copy_paste quá trình
Chế độ sao chép-dán (copy_paste_mode)
Tùy chọn: 'flip', 'mixup'
Mặc định: 'flip'
Cách sử dụng: Xác định phương pháp được sử dụng cho sao chép-dán tăng cường. Nếu được đặt thành 'flip', các đối tượng đến từ cùng một hình ảnh, trong khi 'mixup' cho phép sao chép các đối tượng từ các hình ảnh khác nhau.
Mục đích : Cho phép linh hoạt trong cách tích hợp các đối tượng được sao chép vào hình ảnh mục tiêu.
Cách sử dụng: Áp dụng các chính sách tăng cường tự động cho phân loại. 'randaugment' tùy chọn sử dụng RandAugment, 'autoaugment' sử dụng AutoAugment và 'augmix' sử dụng AugMix. Cài đặt thành None vô hiệu hóa tính năng tăng cường tự động.
Mục đích: Tự động tối ưu hóa các chiến lược tăng cường cho các nhiệm vụ phân loại. Sự khác biệt như sau:
AutoAugment : Chế độ này áp dụng các chính sách tăng cường được xác định trước học được từ các tập dữ liệu như ImageNet, CIFAR10 và SVHN. Người dùng có thể chọn các chính sách hiện có này nhưng không thể đào tạo các chính sách mới trong Torchvision. Để khám phá các chiến lược tăng cường tối ưu cho các tập dữ liệu cụ thể, cần có các thư viện bên ngoài hoặc các triển khai tùy chỉnh. Tham khảo bài báo AutoAugment .
RandAugment : Áp dụng lựa chọn ngẫu nhiên các phép biến đổi có độ lớn đồng đều. Cách tiếp cận này làm giảm nhu cầu về giai đoạn tìm kiếm mở rộng, giúp hiệu quả tính toán hơn trong khi vẫn tăng cường độ mạnh mẽ của mô hình. Tham khảo bài báo RandAugment .
AugMix : AugMix là một phương pháp tăng cường dữ liệu giúp tăng cường độ mạnh mẽ của mô hình bằng cách tạo ra nhiều biến thể hình ảnh khác nhau thông qua các kết hợp ngẫu nhiên của các phép biến đổi đơn giản. Tham khảo bài báo AugMix .
Về cơ bản, sự khác biệt chính giữa ba phương pháp này là cách xác định và áp dụng các chính sách tăng cường.
Bạn có thể tham khảo bài viết này để so sánh chi tiết ba phương pháp.
Xóa ngẫu nhiên (erasing)
Phạm vi: 0.0 - 0.9
Mặc định: 0.4
Cách sử dụng: Xóa ngẫu nhiên các phần của hình ảnh trong quá trình đào tạo phân loại. erasing siêu tham số xác định xác suất áp dụng phép biến đổi, với erasing=0.9 đảm bảo rằng hầu hết các hình ảnh đều bị xóa và erasing=0.0 vô hiệu hóa sự chuyển đổi. Ví dụ, với erasing=0.5, mỗi hình ảnh có 50% khả năng bị xóa một phần.
Mục đích : Giúp các mô hình học các đặc điểm mạnh mẽ và ngăn ngừa sự phụ thuộc quá mức vào các vùng ảnh cụ thể. Ví dụ, trong các hệ thống nhận dạng khuôn mặt, việc xóa ngẫu nhiên giúp các mô hình trở nên mạnh mẽ hơn đối với các che khuất một phần như kính râm, khẩu trang hoặc các vật thể khác có thể che khuất một phần các đặc điểm trên khuôn mặt. Điều này cải thiện hiệu suất trong thế giới thực bằng cách buộc mô hình phải xác định các cá nhân bằng nhiều đặc điểm trên khuôn mặt thay vì chỉ phụ thuộc vào các đặc điểm riêng biệt có thể bị che khuất.
Các erasing sự tăng cường đi kèm với một scale, ratio, Và value siêu tham số không thể thay đổi với thực hiện hiện tại. Giá trị mặc định của chúng là (0.02, 0.33), (0.3, 3.3), Và 0, tương ứng, như đã nêu trong PyTorch tài liệu.
Giới hạn trên của erasing siêu tham số được đặt thành 0.9 để tránh áp dụng phép biến đổi cho tất cả hình ảnh.
erasing tắt
erasing trên (ví dụ 1)
erasing trên (ví dụ 2)
erasing trên (ví dụ 3)
CÂU HỎI THƯỜNG GẶP
Có quá nhiều sự bổ sung để lựa chọn. Làm sao tôi biết nên sử dụng sự bổ sung nào?
Việc lựa chọn các phép tăng cường phù hợp phụ thuộc vào trường hợp sử dụng và tập dữ liệu cụ thể của bạn. Sau đây là một số hướng dẫn chung để giúp bạn quyết định:
Trong hầu hết các trường hợp, sự thay đổi nhỏ về màu sắc và độ sáng là có lợi. Các giá trị mặc định cho hsv_h, hsv_s, Và hsv_v là điểm khởi đầu vững chắc.
Nếu góc nhìn của máy ảnh nhất quán và không thay đổi sau khi mô hình được triển khai, bạn có thể bỏ qua các phép biến đổi hình học như rotation, translation, scale, shear, hoặc perspectiveTuy nhiên, nếu góc máy ảnh có thể thay đổi và bạn cần mô hình chắc chắn hơn thì tốt hơn là nên giữ nguyên những phần mở rộng này.
Sử dụng mosaic chỉ tăng cường nếu có các đối tượng bị che khuất một phần hoặc nhiều đối tượng trên mỗi hình ảnh là chấp nhận được và không làm thay đổi giá trị nhãn. Ngoài ra, bạn có thể giữ nguyên mosaic hoạt động nhưng tăng close_mosaic giá trị để vô hiệu hóa nó sớm hơn trong quá trình đào tạo.
Tóm lại: hãy giữ mọi thứ đơn giản. Bắt đầu với một tập hợp nhỏ các phép tăng cường và dần dần thêm nhiều phép tăng cường hơn nữa khi cần. Mục tiêu là cải thiện tính tổng quát và độ mạnh mẽ của mô hình, không phải làm phức tạp quá trình đào tạo. Ngoài ra, hãy đảm bảo rằng các phép tăng cường mà bạn áp dụng phản ánh cùng một phân phối dữ liệu mà mô hình của bạn sẽ gặp phải trong quá trình sản xuất.
Khi bắt đầu một khóa đào tạo, hãy xem albumentations: Blur[...] tham khảo. Điều đó có nghĩa là Ultralytics YOLO chạy thêm phần tăng cường như làm mờ?
Nếu albumentations gói đã được cài đặt, Ultralytics tự động áp dụng một bộ tăng cường hình ảnh bổ sung bằng cách sử dụng nó. Các tăng cường này được xử lý nội bộ và không yêu cầu cấu hình bổ sung.
Bạn có thể tìm thấy danh sách đầy đủ các phép biến đổi được áp dụng trong tài liệu kỹ thuật, cũng như trong chúng tôi Hướng dẫn tích hợp Albumentations. Lưu ý rằng chỉ có các phép tăng cường có xác suất p lớn hơn 0 đang hoạt động. Chúng được áp dụng có chủ đích ở tần số thấp để mô phỏng các hiện tượng thị giác trong thế giới thực, chẳng hạn như hiệu ứng mờ hoặc thang độ xám.
Khi bắt đầu đào tạo, tôi không thấy có tài liệu tham khảo nào về albumentation. Tại sao vậy?
Kiểm tra xem albumentations gói đã được cài đặt. Nếu chưa, bạn có thể cài đặt nó bằng cách chạy pip install albumentations. Sau khi cài đặt, gói sẽ được tự động phát hiện và sử dụng bởi Ultralytics .
📅 Được tạo cách đây 1 tháng✏️ Đã cập nhật cách đây 23 ngày