Hướng dẫn từng bước để đào tạo các mô hình YOLO11 với IBM Watsonx
Ngày nay, các giải pháp thị giác máy tính có thể mở rộng đang trở nên phổ biến hơn và thay đổi cách chúng ta xử lý dữ liệu trực quan. Một ví dụ tuyệt vời là IBM Watsonx, một nền tảng dữ liệu và AI tiên tiến giúp đơn giản hóa việc phát triển, triển khai và quản lý các mô hình AI. Nó cung cấp một bộ hoàn chỉnh cho toàn bộ vòng đời AI và tích hợp liền mạch với các dịch vụ Đám mây của IBM.
Bạn có thể đào tạo các mô hình Ultralytics YOLO11 bằng IBM Watsonx. Đây là một lựa chọn tốt cho các doanh nghiệp quan tâm đến việc đào tạo mô hình hiệu quả, tinh chỉnh cho các tác vụ cụ thể và cải thiện hiệu suất mô hình bằng các công cụ mạnh mẽ và thiết lập thân thiện với người dùng. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn quy trình đào tạo YOLO11 bằng IBM Watsonx, bao gồm mọi thứ từ thiết lập môi trường đến đánh giá các mô hình đã đào tạo của bạn. Hãy bắt đầu nào!
IBM Watsonx là gì?
Watsonx là nền tảng đám mây của IBM được thiết kế cho AI tạo ra thương mại và dữ liệu khoa học. Ba thành phần của IBM Watsonx - watsonx.ai, watsonx.data và watsonx.governance - kết hợp với nhau để tạo ra một nền tảng AI đáng tin cậy, toàn diện có thể đẩy nhanh các dự án AI nhằm giải quyết các vấn đề kinh doanh. Nó cung cấp các công cụ mạnh mẽ để xây dựng, đào tạo và triển khai các mô hình học máy và giúp dễ dàng kết nối với nhiều nguồn dữ liệu khác nhau.
Giao diện thân thiện với người dùng và khả năng cộng tác hợp lý hóa quy trình phát triển và hỗ trợ quản lý và triển khai mô hình hiệu quả. Cho dù là thị giác máy tính, phân tích dự đoán, xử lý ngôn ngữ tự nhiên hay các ứng dụng AI khác, IBM Watsonx cung cấp các công cụ và hỗ trợ cần thiết để thúc đẩy đổi mới.
Các tính năng chính của IBM Watsonx
IBM Watsonx được tạo thành từ ba thành phần chính: watsonx.ai, watsonx.data và watsonx.governance. Mỗi thành phần cung cấp các tính năng phục vụ cho các khía cạnh khác nhau của AI và quản lý dữ liệu. Chúng ta hãy xem xét kỹ hơn về chúng.
Watsonx.ai
Watsonx.ai cung cấp các công cụ mạnh mẽ để phát triển AI và cung cấp quyền truy cập vào các mô hình tùy chỉnh do IBM hỗ trợ, các mô hình của bên thứ ba như Llama 3 và các mô hình Granite của IBM. Nó bao gồm Prompt Lab để thử nghiệm với lời nhắc AI, Tuning Studio để cải thiện hiệu suất mô hình với dữ liệu được gắn nhãn và Flows Engine để đơn giản hóa việc phát triển ứng dụng AI tạo ra. Ngoài ra, nó cung cấp các công cụ toàn diện để tự động hóa vòng đời mô hình AI và kết nối với các API và thư viện khác nhau.
Watsonx.data
Watsonx.data hỗ trợ cả triển khai đám mây và tại chỗ thông qua tích hợp IBM Storage Fusion HCI. Bảng điều khiển thân thiện với người dùng của nó cung cấp quyền truy cập tập trung vào dữ liệu trên các môi trường và giúp khám phá dữ liệu dễ dàng với SQL thông thường. Nó tối ưu hóa khối lượng công việc với các công cụ truy vấn hiệu quả như Presto và Spark, tăng tốc độ hiểu biết dữ liệu với lớp ngữ nghĩa được hỗ trợ bởi AI, bao gồm cơ sở dữ liệu vectơ cho mức độ liên quan của AI và hỗ trợ các định dạng dữ liệu mở để dễ dàng chia sẻ phân tích và dữ liệu AI.
Watsonx.governance
Watsonx.governance giúp việc tuân thủ trở nên dễ dàng hơn bằng cách tự động xác định các thay đổi về quy định và thực thi các chính sách. Nó liên kết các yêu cầu với dữ liệu rủi ro nội bộ và cung cấp các bảng thông tin AI cập nhật. Nền tảng này giúp quản lý rủi ro với các cảnh báo và công cụ để phát hiện các vấn đề như thiên vị và trôi dạt. Nó cũng tự động hóa việc giám sát và tài liệu về vòng đời AI, tổ chức phát triển AI với kho mô hình và tăng cường cộng tác với các bảng điều khiển và công cụ báo cáo thân thiện với người dùng.
Cách đào tạo YOLO11 bằng IBM Watsonx
Bạn có thể sử dụng IBM Watsonx để tăng tốc quy trình đào tạo mô hình YOLO11 của mình.
Điều kiện tiên quyết
Bạn cần một tài khoản IBM Cloud để tạo một dự án watsonx.ai và bạn cũng sẽ cần một tài khoản Kaggle để tải tập dữ liệu.
Bước 1: Thiết lập môi trường của bạn
Trước tiên, bạn sẽ cần thiết lập tài khoản IBM để sử dụng Jupyter Notebook. Đăng nhập vào watsonx.ai bằng tài khoản IBM Cloud của bạn.
Sau đó, tạo một dự án watsonx.ai và Jupyter Notebook.
Sau khi bạn làm như vậy, một môi trường sổ ghi chép sẽ mở ra để bạn tải tập dữ liệu của mình. Bạn có thể sử dụng mã từ hướng dẫn này để giải quyết một nhiệm vụ đào tạo mô hình phát hiện đối tượng đơn giản.
Bước 2: Cài đặt và nhập các thư viện có liên quan
Tiếp theo, bạn có thể cài đặt và nhập những thứ cần thiết Python Thư viện.
Cài đặt
Để biết hướng dẫn chi tiết và các biện pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn Các vấn đề thường gặp của chúng tôi để biết các giải pháp và mẹo.
Sau đó, bạn có thể nhập các gói cần thiết.
Nhập các thư viện có liên quan
Bước 3: Tải dữ liệu
Đối với hướng dẫn này, chúng tôi sẽ sử dụng một tập dữ liệu rác thải biển có sẵn trên Kaggle. Với tập dữ liệu này, chúng tôi sẽ tùy chỉnh đào tạo một mô hình YOLO11 để phát hiện và phân loại rác thải và các vật thể sinh học trong hình ảnh dưới nước.
Chúng ta có thể tải tập dữ liệu trực tiếp vào sổ ghi chép bằng API Kaggle. Đầu tiên, tạo một tài khoản Kaggle miễn phí. Khi bạn đã tạo tài khoản, bạn sẽ cần tạo khóa API. Bạn có thể tìm thấy hướng dẫn tạo khóa của mình trong tài liệu API Kaggle trong phần "Thông tin xác thực API".
Sao chép và dán tên người dùng Kaggle và khóa API của bạn vào mã sau. Sau đó chạy code để cài đặt API và load tập dữ liệu vào Watsonx.
Sau khi cài đặt Kaggle, chúng ta có thể tải tập dữ liệu vào Watsonx.
Tải dữ liệu
# Replace "username" string with your username
os.environ["KAGGLE_USERNAME"] = "username"
# Replace "apiKey" string with your key
os.environ["KAGGLE_KEY"] = "apiKey"
# Load dataset
os.system("kaggle datasets download atiqishrak/trash-dataset-icra19 --unzip")
# Store working directory path as work_dir
work_dir = os.getcwd()
# Print work_dir path
print(os.getcwd())
# Print work_dir contents
print(os.listdir(f"{work_dir}"))
# Print trash_ICRA19 subdirectory contents
print(os.listdir(f"{work_dir}/trash_ICRA19"))
Sau khi tải tập dữ liệu, chúng tôi đã in và lưu thư mục làm việc của chúng tôi. Chúng tôi cũng đã in nội dung của thư mục làm việc của chúng tôi để xác nhận tập dữ liệu "trash_ICRA19" đã được tải đúng cách.
Nếu bạn thấy "trash_ICRA19" trong số nội dung của thư mục, thì nó đã tải thành công. Bạn sẽ thấy ba tệp / thư mục: a config.yaml
tập tin, a videos_for_testing
thư mục và a dataset
thư mục. Chúng tôi sẽ bỏ qua videos_for_testing
thư mục, vì vậy hãy xóa nó.
Chúng tôi sẽ sử dụng tệp config.yaml và nội dung của thư mục tập dữ liệu để đào tạo mô hình phát hiện đối tượng của chúng tôi. Sau đây là hình ảnh mẫu từ tập dữ liệu rác thải biển của chúng tôi.
Bước 4: Xử lý trước dữ liệu
May mắn thay, tất cả các nhãn trong bộ dữ liệu rác thải biển đã được định dạng là YOLO .txt tập tin. Tuy nhiên, chúng ta cần sắp xếp lại cấu trúc của các thư mục hình ảnh và nhãn để giúp mô hình của chúng ta xử lý hình ảnh và nhãn. Ngay bây giờ, thư mục tập dữ liệu đã tải của chúng ta tuân theo cấu trúc sau:
Nhưng YOLO Các mô hình theo mặc định yêu cầu các hình ảnh và nhãn riêng biệt trong các thư mục con trong phân tách train / val / test. Chúng ta cần tổ chức lại thư mục thành cấu trúc sau:
Để tổ chức lại thư mục tập dữ liệu, chúng ta có thể chạy tập lệnh sau:
Xử lý trước dữ liệu
# Function to reorganize dir
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
# Create image and label subdirs if non-existent
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
# Move images and labels to respective subdirs
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
# Delete .xml files
elif filename.endswith(".xml"):
os.remove(os.path.join(subdir_path, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)
Tiếp theo, chúng ta cần sửa đổi tệp .yaml cho tập dữ liệu. Đây là thiết lập chúng tôi sẽ sử dụng trong tệp .yaml của chúng tôi. Số ID lớp học bắt đầu từ 0:
path: /path/to/dataset/directory # root directory for dataset
train: train/images # train images subdirectory
val: train/images # validation images subdirectory
test: test/images # test images subdirectory
# Classes
names:
0: plastic
1: bio
2: rov
Chạy tập lệnh sau để xóa nội dung hiện tại của config.yaml và thay thế nó bằng các nội dung trên phản ánh cấu trúc thư mục tập dữ liệu mới của chúng tôi. Hãy chắc chắn thay thế phần work_dir của đường dẫn thư mục gốc trong dòng 4 bằng đường dẫn thư mục làm việc của riêng bạn mà chúng tôi đã truy xuất trước đó. Rời khỏi các định nghĩa thư mục con train, val và test. Ngoài ra, không thay đổi {work_dir} trong dòng 23 của mã.
Chỉnh sửa tệp .yaml
# Contents of new confg.yaml file
def update_yaml_file(file_path):
data = {
"path": "work_dir/trash_ICRA19/dataset",
"train": "train/images",
"val": "train/images",
"test": "test/images",
"names": {0: "plastic", 1: "bio", 2: "rov"},
}
# Ensures the "names" list appears after the sub/directories
names_data = data.pop("names")
with open(file_path, "w") as yaml_file:
yaml.dump(data, yaml_file)
yaml_file.write("\n")
yaml.dump({"names": names_data}, yaml_file)
if __name__ == "__main__":
file_path = f"{work_dir}/trash_ICRA19/config.yaml" # .yaml file path
update_yaml_file(file_path)
print(f"{file_path} updated successfully.")
Bước 5: Đào tạo mô hình YOLO11
Chạy mã dòng lệnh sau để tinh chỉnh mô hình YOLO11 mặc định đã được đào tạo trước.
Đào tạo mô hình YOLO11
Dưới đây là một cái nhìn sâu hơn về các tham số trong lệnh huấn luyện mô hình:
- nhiệm vụ : Nó chỉ định nhiệm vụ thị giác máy tính mà bạn đang sử dụng YOLO mô hình và tập dữ liệu.
- chế độ: Biểu thị mục đích mà bạn đang tải mô hình và dữ liệu được chỉ định. Vì chúng tôi đang đào tạo một mô hình, nó được thiết lập để "đào tạo". Sau đó, khi chúng tôi kiểm tra hiệu suất của mô hình, chúng tôi sẽ đặt nó thành "dự đoán".
- epochs : Điều này giới hạn số lần YOLO11 sẽ duyệt qua toàn bộ tập dữ liệu của chúng tôi.
- batch : Giá trị số quy định kích thước batch đào tạo. Các batch là số lượng hình ảnh mà mô hình xử lý trước khi cập nhật các tham số của nó.
- lr0 : Chỉ định tốc độ học ban đầu của mô hình.
- cốt truyện: Đạo diễn YOLO để tạo và lưu các lô số liệu đào tạo và đánh giá mô hình của chúng tôi.
Để hiểu rõ hơn về quy trình đào tạo mô hình và các phương pháp hay nhất, hãy tham khảo hướng dẫn Đào tạo mô hình YOLO11 . Hướng dẫn này sẽ giúp bạn tận dụng tối đa các thử nghiệm của mình và đảm bảo bạn đang sử dụng YOLO11 hiệu quả.
Bước 6: Kiểm tra mô hình
Bây giờ chúng ta có thể chạy suy luận để kiểm tra hiệu suất của mô hình được tinh chỉnh của chúng ta:
Kiểm tra mô hình YOLO11
Tập lệnh ngắn này tạo ra các nhãn dự đoán cho từng hình ảnh trong bộ thử nghiệm của chúng tôi, cũng như các tệp hình ảnh đầu ra mới chồng hộp giới hạn dự đoán lên trên hình ảnh gốc.
Các nhãn .txt dự đoán cho mỗi hình ảnh được lưu qua save_txt=True
đối số và hình ảnh đầu ra với lớp phủ hộp giới hạn được tạo thông qua save=True
lý lẽ.
Tham số conf=0.5
Thông báo cho mô hình bỏ qua tất cả các dự đoán với mức độ tin cậy dưới 50%.
Cuối cùng iou=.5
chỉ đạo mô hình bỏ qua các hộp trong cùng một lớp có độ chồng chéo từ 50% trở lên. Nó giúp giảm các hộp trùng lặp tiềm năng được tạo cho cùng một đối tượng.
Chúng tôi có thể tải hình ảnh với các lớp phủ hộp giới hạn dự đoán để xem mô hình của chúng tôi hoạt động như thế nào trên một số ít hình ảnh.
Hiển thị dự đoán
Mã ở trên hiển thị mười hình ảnh từ bộ thử nghiệm với các hộp giới hạn dự đoán của chúng, kèm theo nhãn tên lớp và mức độ tin cậy.
Bước 7: Đánh giá mô hình
Chúng ta có thể tạo ra hình ảnh trực quan về độ chính xác và khả năng thu hồi của mô hình cho mỗi lớp. Các hình ảnh trực quan này được lưu trong thư mục gốc, trong thư mục train. Điểm chính xác được hiển thị trong P_curve.png:
Biểu đồ cho thấy độ chính xác tăng theo cấp số nhân khi mức độ tin cậy của mô hình đối với dự đoán tăng lên. Tuy nhiên, độ chính xác của mô hình vẫn chưa đạt đến mức độ tin cậy nhất định sau hai kỷ nguyên .
Biểu đồ thu hồi (R_curve.png) hiển thị xu hướng ngược:
Không giống như độ chính xác, thu hồi di chuyển theo hướng ngược lại, cho thấy khả năng thu hồi lớn hơn với các trường hợp có độ tin cậy thấp hơn và thu hồi thấp hơn với các trường hợp có độ tin cậy cao hơn. Đây là một ví dụ thích hợp về sự đánh đổi về độ chính xác và thu hồi cho các mô hình phân loại.
Bước 8: Tính toán giao điểm trên hợp
Bạn có thể đo độ chính xác của dự đoán bằng cách tính IoU giữa hộp giới hạn dự đoán và hộp giới hạn thực tế cho cùng một đối tượng. Hãy xem hướng dẫn của IBM về đào tạo YOLO11 để biết thêm chi tiết.
Tóm tắt
Chúng tôi đã khám phá các tính năng chính của IBM Watsonx và cách đào tạo mô hình YOLO11 bằng IBM Watsonx. Chúng tôi cũng thấy cách IBM Watsonx có thể nâng cao quy trình làm việc AI của bạn bằng các công cụ tiên tiến để xây dựng mô hình, quản lý dữ liệu và tuân thủ.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức của IBM Watsonx.
Ngoài ra, hãy chắc chắn kiểm tra Ultralytics Trang hướng dẫn tích hợp, để tìm hiểu thêm về các tích hợp thú vị khác nhau.
FAQ
Làm thế nào để đào tạo mô hình YOLO11 bằng IBM Watsonx?
Để đào tạo mô hình YOLO11 bằng IBM Watsonx, hãy làm theo các bước sau:
- Thiết lập môi trường của bạn: Tạo tài khoản IBM Cloud và thiết lập một dự án Watsonx.ai. Sử dụng Jupyter Notebook cho môi trường mã hóa của bạn.
- Cài đặt Thư viện: Cài đặt các thư viện cần thiết như
torch
,opencv
vàultralytics
. - Tải dữ liệu: Sử dụng API Kaggle để tải tập dữ liệu của bạn vào Watsonx.
- Tiền xử lý dữ liệu: Tổ chức tập dữ liệu của bạn thành cấu trúc thư mục cần thiết và cập nhật
.yaml
tệp cấu hình. - Đào tạo mô hình: Sử dụng YOLO Giao diện dòng lệnh để đào tạo mô hình của bạn với các tham số cụ thể như
epochs
,batch size
vàlearning rate
. - Kiểm tra và đánh giá: Chạy suy luận để kiểm tra mô hình và đánh giá hiệu suất của mô hình bằng cách sử dụng các số liệu như độ chính xác và khả năng thu hồi.
Để biết hướng dẫn chi tiết, hãy tham khảo hướng dẫn Đào tạo người mẫu YOLO11 của chúng tôi.
Các tính năng chính của IBM Watsonx để đào tạo mô hình AI là gì?
IBM Watsonx cung cấp một số tính năng chính để đào tạo mô hình AI:
- Watsonx.ai: Cung cấp các công cụ để phát triển AI, bao gồm quyền truy cập vào các mô hình tùy chỉnh do IBM hỗ trợ và các mô hình của bên thứ ba như Llama 3. Nó bao gồm Prompt Lab, Tuning Studio và Flows Engine để quản lý vòng đời AI toàn diện.
- Watsonx.data: Hỗ trợ triển khai đám mây và tại chỗ, cung cấp quyền truy cập dữ liệu tập trung, các công cụ truy vấn hiệu quả như Presto và Spark và lớp ngữ nghĩa được hỗ trợ bởi AI.
- Watsonx.governance: Tự động hóa việc tuân thủ, quản lý rủi ro bằng các cảnh báo và cung cấp các công cụ để phát hiện các vấn đề như thiên vị và trôi dạt. Nó cũng bao gồm bảng điều khiển và công cụ báo cáo để cộng tác.
Để biết thêm thông tin, hãy truy cập tài liệu chính thức của IBM Watsonx.
Tại sao tôi nên sử dụng IBM Watsonx để đào tạo Ultralytics Người mẫu YOLO11?
IBM Watsonx là sự lựa chọn tuyệt vời cho đào tạo Ultralytics Các mô hình YOLO11 do bộ công cụ toàn diện của nó giúp hợp lý hóa vòng đời AI. Các lợi ích chính bao gồm:
- Khả năng mở rộng: Dễ dàng mở rộng quy mô đào tạo mô hình của bạn với các dịch vụ Đám mây của IBM.
- Tích hợp: Tích hợp liền mạch với các nguồn dữ liệu và API khác nhau.
- Giao diện thân thiện với người dùng: Đơn giản hóa quá trình phát triển với giao diện cộng tác và trực quan.
- Công cụ nâng cao: Truy cập vào các công cụ mạnh mẽ như Prompt Lab, Tuning Studio và Flows Engine để nâng cao hiệu suất mô hình.
Tìm hiểu thêm về Ultralytics YOLO11 và cách đào tạo mô hình bằng IBM Watsonx trong hướng dẫn tích hợp của chúng tôi.
Tôi có thể xử lý trước tập dữ liệu của mình để đào tạo YOLO11 trên IBM Watsonx như thế nào?
Để xử lý trước tập dữ liệu của bạn cho mục đích đào tạo YOLO11 trên IBM Watsonx:
- Tổ chức các thư mục: Đảm bảo tập dữ liệu của bạn tuân theo YOLO Cấu trúc thư mục với các thư mục con riêng biệt cho hình ảnh và nhãn trong phân tách train / val / test.
- Cập nhật tệp .yaml: Sửa đổi
.yaml
cấu hình để phản ánh cấu trúc thư mục mới và tên lớp. - Chạy Preprocessing Script: Sử dụng một Python tập lệnh để tổ chức lại tập dữ liệu của bạn và cập nhật
.yaml
tập tin cho phù hợp.
Dưới đây là tập lệnh mẫu để sắp xếp tập dữ liệu của bạn:
import os
import shutil
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)
Để biết thêm chi tiết, hãy tham khảo hướng dẫn xử lý sơ bộ dữ liệu của chúng tôi.
Điều kiện tiên quyết để đào tạo mô hình YOLO11 trên IBM Watsonx là gì?
Trước khi bạn bắt đầu đào tạo mô hình YOLO11 trên IBM Watsonx, hãy đảm bảo bạn có đủ các điều kiện tiên quyết sau:
- Tài khoản đám mây IBM: Tạo tài khoản trên Đám mây IBM để truy cập Watsonx.ai.
- Tài khoản Kaggle: Để tải tập dữ liệu, bạn sẽ cần tài khoản Kaggle và khóa API.
- Jupyter Notebook: Thiết lập môi trường Jupyter Notebook trong Watsonx.ai để viết mã và đào tạo mô hình.
Để biết thêm thông tin về cách thiết lập môi trường của bạn, hãy truy cập Ultralytics Hướng dẫn cài đặt.