Cách huấn luyện model Ultralytics YOLO để phát hiện động vật hoang dã
Tìm hiểu cách huấn luyện model YOLO để phát hiện động vật hoang dã bằng bộ dữ liệu African Wildlife và sử dụng model để chạy suy luận trên các hình ảnh chưa từng thấy.
Abirami Vina17 phút đọc
Động vật hoang dã trên hành tinh của chúng ta vô cùng đa dạng, từ những chú ong vo ve đến những con voi khổng lồ, và bảo tồn sự đa dạng sinh học này là yếu tố then chốt để duy trì hệ sinh thái cân bằng. Tuy nhiên, các nỗ lực bảo tồn ngày càng gặp nhiều thách thức do mất môi trường sống, săn trộm và biến đổi khí hậu. Tất cả những yếu tố này đều tác động tiêu cực đến quần thể động vật hoang dã.
Các phương pháp giám sát động vật truyền thống, như phân tích thủ công ảnh từ bẫy ảnh và khảo sát thực địa, có thể chậm và tốn nhiều nguồn lực. Những nỗ lực này thường không thể bao quát hiệu quả các khu vực rộng lớn và quần thể đông.
Để khắc phục những hạn chế này, trí tuệ nhân tạo (AI) có thể được sử dụng như một công cụ hiệu quả trong công tác bảo tồn động vật hoang dã. Cụ thể, các model thị giác máy tính như Ultralytics YOLO11 có thể phân tích dữ liệu hình ảnh như ảnh và video để tự động nhận diện và theo dõi động vật theo thời gian thực.
Các tác vụ thị giác máy tính như phát hiện đối tượng và phân đoạn thực thể, được Ultralytics YOLO11 hỗ trợ, rất hữu ích trong trường hợp này. Bằng cách phân tích dữ liệu hình ảnh, các tác vụ này giúp chúng ta thu thập dữ liệu quan trọng, nhận diện các quy luật sinh thái và ứng phó hiệu quả hơn với những mối đe dọa môi trường.
Trong bài viết này, chúng ta sẽ hướng dẫn quy trình huấn luyện Ultralytics YOLO11 để phát hiện động vật.
Bắt đầu với Ultralytics YOLO11#
Trước khi đi sâu vào hướng dẫn, hãy cùng xem các tùy chọn thiết lập và công cụ cần thiết để huấn luyện và sử dụng Ultralytics YOLO11.
Công cụ chính bạn cần là gói Python Ultralytics, giúp bạn dễ dàng làm việc với các model YOLO cho những tác vụ như huấn luyện, phát hiện đối tượng và chạy suy luận. Để sử dụng gói Ultralytics, bạn cần thiết lập môi trường chạy mã và có thể chọn trong số nhiều tùy chọn khác nhau.
Dưới đây là một số tùy chọn phổ biến nhất để thiết lập môi trường phát triển:
- Giao diện dòng lệnh (CLI): CLI, còn gọi là terminal, là công cụ dựa trên văn bản cho phép bạn tương tác với máy tính bằng cách nhập lệnh. Không giống giao diện đồ họa (GUI), nơi bạn nhấp vào nút và dùng chuột, CLI yêu cầu bạn nhập chỉ dẫn bằng văn bản để chạy chương trình hoặc thực hiện tác vụ.
- Jupyter Notebooks: Các notebook này cho phép bạn viết và chạy mã theo từng phần nhỏ gọi là cell. Môi trường này có tính tương tác, nghĩa là bạn có thể xem ngay kết quả của mã, giúp việc kiểm thử và gỡ lỗi dễ dàng hơn.
- Google Colab: Google Colab là nền tảng đám mây hoạt động tương tự Jupyter Notebooks nhưng cung cấp quyền truy cập miễn phí vào các GPU mạnh mẽ. Nền tảng này dễ thiết lập và bạn không cần cài đặt gì trên máy tính.
Mặc dù còn có các tùy chọn thiết lập môi trường khác mà bạn có thể tìm hiểu trong tài liệu Ultralytics chính thức, ba tùy chọn nêu trên yêu cầu rất ít thao tác thiết lập và dễ sử dụng, rất phù hợp để bắt đầu nhanh chóng.
Trong hướng dẫn này, chúng tôi sẽ trình bày cách thiết lập và huấn luyện Ultralytics YOLO11 bằng Google Colab, Jupyter Notebooks hoặc một tệp Python đơn giản, vì các bước thực hiện trong những môi trường này rất tương đồng.
Tìm hiểu về tập dữ liệu Động vật hoang dã châu Phi#
Sau khi chọn môi trường phát triển, để huấn luyện Ultralytics YOLO11 chuyên phát hiện động vật hoang dã, chúng ta cần một tập dữ liệu ảnh có gán nhãn chất lượng cao. Mỗi ảnh cần thể hiện rõ vị trí và loại động vật để model có thể học cách nhận diện chúng thông qua học có giám sát.
Trong hướng dẫn này, chúng ta sẽ sử dụng Tập dữ liệu Động vật hoang dã châu Phi. Tập dữ liệu này được gói Python Ultralytics hỗ trợ và được thiết kế riêng để phát hiện các loài động vật thường gặp trong hệ sinh thái châu Phi. Tập dữ liệu bao gồm ảnh đã gán nhãn của bốn loài chủ chốt: trâu, voi, tê giác và ngựa vằn.

Hình 1. Khám phá sơ lược Tập dữ liệu Động vật hoang dã châu Phi.
Dưới đây là một số đặc điểm chính của Tập dữ liệu Động vật hoang dã châu Phi:
- Quy mô: Tập dữ liệu gồm 1504 ảnh, được chia thành ba tập con: 1052 ảnh huấn luyện, 225 ảnh xác thực và 227 ảnh kiểm thử. Cách chia này đảm bảo model học hiệu quả và được đánh giá kỹ lưỡng.
- Tích hợp dễ dàng: Ultralytics cung cấp tệp cấu hình YAML xác định đường dẫn bộ dữ liệu, các lớp và thông tin khác, giúp việc sử dụng khi huấn luyện model YOLO trở nên dễ dàng.
- Cấp phép: Bộ dữ liệu nguồn do Bianca Ferreira đăng trên Kaggle không nêu rõ giấy phép, vì vậy hãy kiểm tra điều khoản trước khi sử dụng cho mục đích thương mại.
Huấn luyện Ultralytics YOLO11 để phát hiện động vật#
Giờ đây, sau khi tìm hiểu African Wildlife Dataset, chúng ta có thể bắt đầu huấn luyện model Ultralytics YOLO11 để phát hiện động vật trong ảnh. Quy trình bao gồm thiết lập môi trường phát triển, huấn luyện model YOLO11 và đánh giá hiệu suất của model.
Bước 1: Thiết lập môi trường#
Để bắt đầu, chúng ta sẽ chuẩn bị môi trường huấn luyện và kiểm thử model. Bạn có thể sử dụng Google Colab, Jupyter Notebooks hoặc một tệp Python đơn giản tùy theo sở thích. Tạo một notebook Google Colab, Jupyter Notebook hoặc tệp Python mới tương ứng.
Nếu sử dụng Google Colab, môi trường mặc định chạy trên CPU (bộ xử lý trung tâm), có thể làm chậm quá trình huấn luyện. Để tăng tốc, đặc biệt với các model lớn hơn, bạn có thể chuyển runtime sang sử dụng GPU. Trong Google Colab, hãy chuyển đến thẻ "Runtime" trên menu, chọn "Change runtime type" và đặt bộ tăng tốc phần cứng thành GPU (ưu tiên GPU T4). Điều này rất quan trọng để rút ngắn thời gian huấn luyện.
Tiếp theo, bất kể bạn đang sử dụng môi trường nào, bạn cần cài đặt gói Python Ultralytics. Nếu sử dụng môi trường dựa trên notebook (Google Colab hoặc Jupyter), hãy chạy lệnh sau với dấu chấm than (!) ở đầu.
pip install ultralyticsBước 2: Tải Ultralytics YOLO11 và chuẩn bị tập dữ liệu#
Sau khi cài đặt package Ultralytics, bước tiếp theo là tải model YOLO11 và chuẩn bị dataset để huấn luyện. Trước tiên, chúng ta tải model YOLO11n, vốn đã được huấn luyện trước cho các tác vụ phát hiện đối tượng nói chung. Model được huấn luyện trước này là điểm khởi đầu tốt vì đã học cách phát hiện nhiều đối tượng khác nhau.
Sau đó, chúng ta chỉ định tập dữ liệu bằng tệp YAML chứa thông tin về ảnh và nhãn. Tệp này cho model biết nơi tìm tập dữ liệu và các đối tượng cần học cách nhận diện.
Package Ultralytics hỗ trợ African Wildlife Dataset, vì vậy dataset sẽ tự động được tải xuống khi bạn bắt đầu huấn luyện, giúp bạn không phải tự thiết lập. Bạn cũng có thể duyệt xem ảnh và nhãn của dataset trên Ultralytics Platform.
Khi tập dữ liệu đã sẵn sàng, model bắt đầu huấn luyện. Model sẽ lặp qua tập dữ liệu nhiều lần, một quy trình gọi là huấn luyện qua nhiều epoch, để cải thiện khả năng nhận diện động vật trong ảnh. Trong quá trình này, ảnh sẽ được đổi kích thước về cùng một kích thước để xử lý và model sẽ làm việc với một số lượng ảnh nhất định mỗi lần, gọi là batch. Điều này giúp model học hiệu quả hơn.
Tóm lại, khi chạy đoạn mã dưới đây, model sẽ được tải, tập dữ liệu được tải xuống tự động và quá trình huấn luyện bắt đầu để phát hiện động vật dựa trên Tập dữ liệu Động vật hoang dã châu Phi.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)Đoạn code tương tự cũng hoạt động với các model Ultralytics YOLO26 mới hơn: chỉ cần thay yolo11n.pt bằng yolo26n.pt.
Bước 3: Hướng dẫn quy trình huấn luyện Ultralytics YOLO11#
Sau khi chạy đoạn mã trên, model bắt đầu huấn luyện theo các thiết lập mà chúng ta đã chỉ định. Thông qua mã, chúng ta đã yêu cầu model lặp qua các ảnh huấn luyện 30 lần. Điều đó có nghĩa là model sẽ xem toàn bộ ảnh trong tập dữ liệu 30 lần và mỗi lần đều học thêm một chút.
Hãy tưởng tượng bạn đang học cách vẽ một con vật. Bức vẽ đầu tiên có thể chưa đẹp, nhưng sau khi luyện tập nhiều lần, bạn sẽ tiến bộ hơn. Mỗi lần thử lại, bạn rút kinh nghiệm từ những lỗi đã mắc phải và sửa chúng. Mỗi epoch cũng hoạt động như vậy đối với model - model xem ảnh, mắc lỗi, rút kinh nghiệm và nhận diện động vật tốt hơn sau mỗi lần.
Nếu mã huấn luyện chạy thành công, bạn sẽ thấy đầu ra sau đây khi quá trình huấn luyện diễn ra:
- Thiết lập huấn luyện: Phần đầu tiên hiển thị phiên bản Ultralytics, PyTorch và phần cứng đang sử dụng (trong trường hợp này là CPU), cùng với cấu hình huấn luyện, bao gồm model (yolo11n.pt), batch size, số epoch và kích thước ảnh.
- Tóm tắt model: Phần này cung cấp thông tin về độ phức tạp của model, chẳng hạn như số lớp và số tham số, cho thấy quy mô của model.
- Optimizer và learning rate: Phần này đề cập đến optimizer (ví dụ: AdamW) và learning rate, các yếu tố kiểm soát cách model điều chỉnh tham số trong quá trình huấn luyện.
- Quét dataset: Model quét dataset và hiển thị số lượng ảnh hợp lệ, sẵn sàng cho quá trình huấn luyện. Bước này xác nhận rằng dataset không có vấn đề.
- Tiến trình huấn luyện: Đầu ra được cập nhật sau mỗi epoch (chu kỳ huấn luyện), hiển thị tiến trình huấn luyện cùng các giá trị loss quan trọng (box_loss, cls_loss, dfl_loss), cho biết model đang học tốt đến mức nào.
- Các chỉ số hiệu suất: Sau mỗi epoch, bạn sẽ thấy các chỉ số hiệu suất như precision, recall và mAP (độ chính xác trung bình trung bình). Các giá trị này cho biết model phát hiện và phân loại đối tượng chính xác đến mức nào.
- Mức sử dụng bộ nhớ GPU: Nếu đang sử dụng GPU, đầu ra sẽ hiển thị mức sử dụng bộ nhớ để theo dõi mức độ khai thác phần cứng.

Hình 2. Đầu ra bạn sẽ thấy khi model đang được huấn luyện.
Bước 4: Đánh giá hiệu suất của model được huấn luyện tùy chỉnh#
Sau khi quá trình huấn luyện hoàn tất, bạn có thể xem lại và xác thực các chỉ số hiệu suất của model. Trong Google Colab, bạn có thể mở thư mục "runs", sau đó vào thư mục "detect" và cuối cùng là thư mục "train", nơi có các log hiển thị những chỉ số hiệu suất chính.
Với người dùng làm việc trong môi trường Python, kết quả huấn luyện được lưu mặc định trong thư mục “runs/detect/train” thuộc thư mục làm việc hiện tại. Mỗi lần chạy huấn luyện mới sẽ tạo một thư mục con mới (ví dụ: runs/detect/train2, runs/detect/train3, v.v.), nơi bạn có thể tìm thấy log và các đầu ra khác liên quan đến quá trình huấn luyện.
Nếu sử dụng CLI, bạn có thể dễ dàng truy cập các kết quả và cài đặt này bằng lệnh “yolo settings”, cho phép xem hoặc chỉnh sửa các đường dẫn và cấu hình khác liên quan đến log huấn luyện và thông tin chi tiết về thử nghiệm.
Trong số các log, bạn cũng sẽ tìm thấy một số biểu đồ để xem quá trình huấn luyện model diễn ra hiệu quả đến đâu. Các biểu đồ này được tạo sau khi huấn luyện hoàn tất, cho thấy model có cải thiện theo thời gian bằng cách mắc ít lỗi hơn và đạt độ chính xác cao hơn hay không.
Các biểu đồ theo dõi tiến trình của model, cho thấy loss (độ chênh lệch giữa dự đoán của model và giá trị thực tế) giảm xuống và độ chính xác tăng lên trong quá trình huấn luyện. Điều này giúp bạn hiểu model đã học cách nhận diện động vật tốt đến đâu và cải thiện được bao nhiêu khi kết thúc huấn luyện.

Hình 3. Ví dụ về các biểu đồ bạn có thể phân tích để đánh giá model.
Các chỉ số chính để đánh giá hiệu suất#
Ngoài ra, dưới đây là cái nhìn chi tiết hơn về một số chỉ số bạn có thể dùng để đánh giá hiệu suất của model:
- Độ chính xác trung bình trung bình (mAP): Chỉ số này đo lường độ chính xác tổng thể của model khi phát hiện động vật trên tất cả các lớp bằng cách lấy trung bình các điểm precision tại những mức recall khác nhau.
- Precision: Đây là tỷ lệ phần trăm các lần phát hiện chính xác, được tính bằng cách chia số lần phát hiện dương tính thật cho tổng số lần phát hiện.
- Recall: Chỉ số này cho biết tỷ lệ phần trăm động vật thực tế trong ảnh được model nhận diện chính xác, phản ánh khả năng phát hiện toàn bộ các đối tượng liên quan.
Các chỉ số đánh giá này có thể giúp tinh chỉnh model để cải thiện độ chính xác trước khi đưa model vào ứng dụng thực tế.
Chạy suy luận bằng model Ultralytics YOLO11 được huấn luyện tùy chỉnh#
Giờ đây, khi đã huấn luyện và đánh giá Ultralytics YOLO11, đã đến lúc sử dụng model để phân tích ảnh và chạy suy luận. Bạn có thể dùng ảnh kiểm thử từ dataset hoặc ảnh mới từ các nguồn khác.
Chúng ta sẽ dùng đoạn mã sau để chạy model trên một ảnh trong dataset kiểm thử. Đoạn mã nhập các module cần thiết từ thư viện Ultralytics. Sau đó, đoạn mã xác định đường dẫn đến tệp trọng số model tốt nhất ("best.pt") được lưu trong thư mục kết quả. Model YOLO11 được huấn luyện tùy chỉnh sẽ được tải bằng các trọng số này.
Tiếp theo, đường dẫn đến một ảnh trong dataset kiểm thử African Wildlife được thiết lập. Model được áp dụng cho ảnh này để phát hiện đối tượng, tạo kết quả và lưu đầu ra (chẳng hạn như các đối tượng được phát hiện hoặc chú thích).
from ultralytics import YOLO, settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"
img_results = model(image_path, save=True)Ảnh đầu ra hiển thị bên dưới sẽ được lưu trong thư mục "predict" nằm bên trong thư mục runs/detect. Với các lần kiểm thử tiếp theo, các thư mục mới như "predict2", "predict3", v.v. sẽ được tạo để lưu ảnh.

Hình 4. Chạy suy luận trên ảnh kiểm thử bằng model Ultralytics YOLO11 đã fine-tune.
Để kiểm thử ảnh từ các nguồn khác nhau, bạn có thể dùng đoạn mã bên dưới. Chúng tôi đã sử dụng một ảnh từ Pexels. Bạn có thể dùng cùng ảnh đó hoặc bất kỳ ảnh phù hợp nào khác.
from ultralytics import YOLO
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_path)
img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)Ảnh đầu ra hiển thị bên dưới sẽ được lưu vào thư mục tương ứng.

Hình 5. Phát hiện động vật hoang dã bằng model Ultralytics YOLO11 đã fine-tune trên ảnh chưa từng thấy.
AI trong công tác bảo tồn động vật hoang dã: Ứng dụng thực tế#
Các model như Ultralytics YOLO11 có thể tự động phát hiện và theo dõi động vật, mở ra nhiều ứng dụng thực tiễn. Dưới đây là một số lĩnh vực chính mà AI thị giác có thể hỗ trợ các nỗ lực bảo tồn động vật hoang dã:
- Theo dõi loài: AI thị giác có thể xử lý dữ liệu hình ảnh như ảnh và video để nhận diện chính xác các loài, đếm số lượng cá thể và theo dõi di chuyển của chúng theo thời gian.
- Cảnh báo từ camera thông minh: Ở những khu vực hẻo lánh, thị giác máy tính có thể liên tục phân loại động vật và gửi cảnh báo theo thời gian thực, giúp cơ quan chức năng về động vật hoang dã nhanh chóng ứng phó với các mối đe dọa như hành vi bất thường của động vật hoặc xung đột giữa con người và động vật hoang dã.
- Phân tích hành vi: Bằng cách theo dõi hoạt động di cư, tập tính kiếm ăn và tương tác xã hội, các hệ thống AI thị giác có thể cung cấp thông tin chuyên sâu toàn diện về động lực giữa các loài.
- Ngăn chặn săn trộm: Có thể tận dụng AI thị giác để phát hiện sự hiện diện trái phép của con người và dấu hiệu săn trộm, đồng thời khai thác machine learning và dữ liệu lịch sử để xác định các điểm nóng rủi ro.
Điểm chính cần ghi nhớ#
Các model thị giác máy tính như Ultralytics YOLO11 có thể đóng vai trò quan trọng trong bảo tồn động vật hoang dã bằng cách tự động hóa việc phát hiện và theo dõi động vật. Với AI thị giác, chúng ta có thể xử lý khối lượng lớn ảnh và video từ nhiều nguồn, qua đó thực hiện các đánh giá chính xác về động vật hoang dã.
Đặc biệt, Ultralytics YOLO11 là lựa chọn phù hợp cho phát hiện đối tượng theo thời gian thực, rất lý tưởng cho các tác vụ như giám sát chống săn trộm, phân tích hành vi và theo dõi hệ sinh thái. Bằng cách tích hợp các model ứng dụng AI vào hoạt động bảo tồn, chúng ta có thể bảo vệ các loài tốt hơn, cải thiện việc theo dõi đa dạng sinh học và đưa ra quyết định sáng suốt hơn để bảo vệ động vật hoang dã đang bị đe dọa.
Hãy tham gia cộng đồng và khám phá kho lưu trữ GitHub để tìm hiểu thêm về thị giác máy tính. Khám phá thêm các ứng dụng liên quan đến AI trong y tế và thị giác máy tính trong sản xuất trên các trang giải pháp của chúng tôi. Xem các tùy chọn cấp phép của Ultralytics để bắt đầu với AI thị giác.
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










