Cách huấn luyện các mô hình Ultralytics YOLO để phát hiện động vật trong tự nhiên
Tìm hiểu cách huấn luyện các mô hình YOLO để phát hiện động vật trong tự nhiên bằng bộ dữ liệu African Wildlife và sử dụng mô hình để chạy suy luận trên các hình ảnh chưa từng thấy.
Độ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 bận rộn đến những chú voi khổng lồ, và việc bảo tồn đa dạng sinh học này là chìa khóa để duy trì một hệ sinh thái cân bằng. Tuy nhiên, các nỗ lực bảo tồn đang trở nên khó khăn hơn do mất môi trường sống, nạn săn trộm và biến đổi khí hậu. Tất cả những yếu tố này đều ảnh hưởng tiêu cực đến các 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 hình ảnh từ bẫy ảnh và thực hiện khảo sát thực địa, có thể chậm và đòi hỏi nhiều tài nguyên. Những nỗ lực này thường không bao phủ được các khu vực rộng lớn và các quần thể đông đúc một cách hiệu quả.
Để vượt qua 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 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 hóa việc 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 cá thể, được hỗ trợ bởi YOLO11, 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, xác định các mô hình sinh thái và phản ứng hiệu quả hơn với các mối đe dọa về môi trường.
Trong bài viết này, chúng ta sẽ đi qua quy trình huấn luyện YOLO11 để phát hiện động vật. Hãy cùng bắt đầu nào!
Link to this sectionBắt đầu với Ultralytics YOLO11#
Trước khi đi sâu vào hướng dẫn, hãy cùng xem qua các tùy chọn thiết lập và công cụ khác nhau mà bạn sẽ cần để huấn luyện và sử dụng YOLO11.
Công cụ chính bạn sẽ cần là gói Python của Ultralytics, giúp việc làm việc với các model YOLO cho các tác vụ như huấn luyện, phát hiện đối tượng và thực hiện inference trở nên dễ dàng. Để sử dụng gói Ultralytics, bạn cần thiết lập một môi trường để chạy code, và có nhiều tùy chọn khác nhau mà bạn có thể chọn.
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 của bạn:
- Giao diện dòng lệnh (CLI): CLI, còn được gọi là terminal, là một 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 các lệnh. Không giống như giao diện đồ họa (GUI), nơi bạn nhấp vào các nút và sử dụng chuột, CLI yêu cầu bạn nhập các hướng dẫn bằng văn bản để chạy chương trình hoặc thực thi các tác vụ.
- Jupyter Notebooks: Những notebook này cho phép bạn viết và chạy code trong các phần nhỏ gọi là cell. Nó có tính tương tác, nghĩa là bạn có thể thấy kết quả của code ngay lập tức, giúp việc kiểm thử và gỡ lỗi dễ dàng hơn.
- Google Colab: Google Colab là một nền tảng dựa trên đám mây hoạt động giống như Jupyter Notebooks nhưng cung cấp quyền truy cập miễn phí vào các GPU mạnh mẽ. Nó rất dễ thiết lập và bạn không cần phải cài đặt bất cứ thứ gì trên máy tính của mình.
Mặc dù có các tùy chọn khác để thiết lập môi trường mà bạn có thể khám phá trong tài liệu chính thức của Ultralytics, ba tùy chọn nêu trên yêu cầu thiết lập rất ít và dễ sử dụng, khiến chúng trở nên lý tưởng để bắt đầu nhanh chóng.
Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách thiết lập và huấn luyện YOLO11 bằng Google Colab, Jupyter Notebooks hoặc một file Python đơn giản, vì các bước thực hiện rất giống nhau trên tất cả các môi trường này.
Link to this sectionTìm hiểu về Bộ dữ liệu Động vật hoang dã Châu Phi (African Wildlife Dataset)#
Sau khi chọn môi trường phát triển, để huấn luyện YOLO11 phát hiện cụ thể động vật hoang dã, chúng ta cần một bộ dữ liệu chất lượng cao gồm các hình ảnh đã được gán nhãn. Mỗi hình ảnh cần hiển thị rõ ràng vị trí động vật và loại của chúng, để model có thể học cách nhận diện chúng thông qua học máy có giám sát.
Trong hướng dẫn này, chúng ta sẽ sử dụng African Wildlife Dataset. Nó được hỗ trợ bởi gói Python của Ultralytics và được thiết kế đặc biệt để phát hiện các loài động vật thường thấy trong các hệ sinh thái Châu Phi. Nó chứa các hình ảnh đã được chú thích của bốn loài chính: trâu, voi, tê giác và ngựa vằn.

Hình 1. Một cái nhìn thoáng qua về African Wildlife Dataset.
Dưới đây là một số tính năng chính của African Wildlife Dataset:
- Quy mô: Bộ dữ liệu bao gồm 1504 hình ảnh được chia thành ba tập con: 1052 để huấn luyện, 225 để validation và 227 để testing. Việc phân chia này đảm bảo rằng model học tập hiệu quả và được đánh giá kỹ lưỡng.
- Tích hợp liền mạch: Ultralytics cung cấp một file cấu hình YAML xác định các đường dẫn bộ dữ liệu, các lớp (classes) và các chi tiết khác, giúp dễ dàng sử dụng khi huấn luyện các model YOLO.
- Giấy phép mở: Bộ dữ liệu này được phân phối theo giấy phép AGPL-3.0, khuyến khích sự minh bạch và cộng tác.
Link to this sectionHuấn luyện Ultralytics YOLO11 để phát hiện động vật#
Giờ đây, khi đã khám phá African Wildlife Dataset, chúng ta có thể bắt đầu huấn luyện một model YOLO11 để phát hiện động vật trong hình ảnh. Quy trình bao gồm việc 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.
Link to this sectionBước 1: Thiết lập môi trường#
Để bắt đầu, chúng ta sẽ chuẩn bị một môi trường để huấn luyện và kiểm thử model. Google Colab, Jupyter Notebooks hoặc một file Python đơn giản đều có thể được sử dụng, tùy thuộc vào sở thích của bạn. Hãy tạo một Google Colab notebook, Jupyter Notebook hoặc file Python mới cho phù hợp.
Nếu bạn đang sử dụng Google Colab, môi trường mặc định chạy trên CPU (Bộ xử lý trung tâm), điều này có thể làm chậm quá trình huấn luyện. Để tăng tốc quá trình này, đặc biệt đối với các model lớn hơn, bạn có thể chuyển runtime sang sử dụng GPU. Trong Google Colab, bạn có thể điều hướng đến tab "Runtime" trong menu, chọn "Change runtime type" và đặt trình tăng tốc phần cứng thành GPU (tốt nhất là T4 GPU). Điều này rất quan trọng để giảm 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 của Ultralytics. Nếu bạn đang 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 ultralyticsLink to this sectionBước 2: Tải YOLO11 và chuẩn bị bộ dữ liệu#
Sau khi đã cài đặt gói Ultralytics, bước tiếp theo là tải model YOLO11 và chuẩn bị bộ dữ liệu để huấn luyện. Đầu tiên, chúng ta tải model YOLO11, vốn đã được huấn luyện sẵn trên các tác vụ phát hiện đối tượng tổng quát. Model được huấn luyện sẵn này mang lại cho chúng ta một điểm khởi đầu tốt, vì nó đã học cách phát hiện nhiều đối tượng khác nhau.
Sau đó, chúng ta chỉ định bộ dữ liệu bằng cách sử dụng file YAML, chứa thông tin về hình ảnh và nhãn. File này cho model biết nơi tìm bộ dữ liệu và những đối tượng nào nó cần học cách nhận diện.
African Wildlife Dataset được hỗ trợ bởi gói Ultralytics, vì vậy nó sẽ tự động tải xuống khi bạn bắt đầu quá trình huấn luyện, giúp bạn không cần phải thiết lập thủ công.
Sau khi bộ dữ liệu đã sẵn sàng, model bắt đầu huấn luyện. Model sẽ đi qua bộ dữ liệu nhiều lần, một quá 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 hình ảnh. Trong quá trình này, các hình ảnh sẽ được thay đổi kích thước về một kích thước nhất quán để xử lý, và model sẽ làm việc với một số lượng ảnh nhất định tại một thời điểm, được gọi là batch. Điều này giúp model học hiệu quả hơn.
Tóm lại, model được tải, bộ dữ liệu được tự động tải xuống và quá trình huấn luyện bắt đầu chạy để phát hiện động vật dựa trên African Wildlife Dataset khi đoạn code bên dưới được chạy.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)Link to this sectionBước 3: Hướng dẫn huấn luyện YOLO11#
Khi đoạn code trên đã được chạy, model bắt đầu huấn luyện dựa trên các cài đặt mà chúng ta đã cung cấp. Chúng ta đã yêu cầu model thông qua code thực hiện duyệt qua các hình ảnh huấn luyện 30 lần. Điều đó có nghĩa là model sẽ nhìn vào tất cả các hình ảnh trong bộ dữ liệu 30 lần, mỗi lần học thêm một chút.
Hãy tưởng tượng bạn đang cố gắng học cách vẽ một con vật. Lần đầu tiên bạn vẽ, trông có vẻ không đẹp, nhưng sau khi thực hành nhiều lần, bạn bắt đầu tiến bộ hơn. Mỗi khi thử lại, bạn học hỏi từ những gì sai sót và sửa chữa nó. Đó là những gì mỗi epoch thực hiện cho model - nó nhìn vào các hình ảnh, mắc lỗi, học hỏi từ chúng và trở nên giỏi hơn trong việc nhận diện động vật sau mỗi lần.
Nếu code huấn luyện đang chạy thành công, bạn sẽ thấy kết quả đầu ra sau đây khi quá trình huấn luyện tiến triển:
- 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 được 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), kích thước batch, epoch và kích thước hình ảnh.
- Tóm tắt model: Cung cấp thông tin về độ phức tạp của model, chẳng hạn như số lượng layer và tham số, cho thấy model lớn như thế nào.
- Bộ tối ưu hóa (Optimizer) và tốc độ học (learning rate): Đề cập đến bộ tối ưu hóa (ví dụ: AdamW) và tốc độ học, kiểm soát cách model điều chỉnh các tham số của nó trong quá trình huấn luyện.
- Quét bộ dữ liệu: Model quét bộ dữ liệu, hiển thị bao nhiêu hình ảnh hợp lệ và sẵn sàng để huấn luyện. Nó xác nhận không có vấn đề gì với bộ dữ liệu.
- Tiến độ huấn luyện: Kết quả đầu ra cập nhật sau mỗi epoch (chu kỳ huấn luyện), hiển thị tiến độ huấn luyện cùng với các giá trị loss chính (box_loss, cls_loss, dfl_loss), cho biết model đang học tốt như thế nào.
- Số liệu hiệu suất: Sau mỗi epoch, bạn sẽ thấy các số liệu hiệu suất như precision, recall và mAP (mean average precision). Các giá trị này cho thấy model chính xác như thế nào trong việc phát hiện và phân loại đối tượng.
- Mức sử dụng bộ nhớ GPU: Nếu bạn đang sử dụng GPU, kết quả đầu ra sẽ hiển thị mức sử dụng bộ nhớ để theo dõi khả năng sử dụng phần cứng.

Hình 2. Kết quả bạn sẽ thấy khi model đang chạy huấn luyện.
Link to this sectionBước 4: Đánh giá hiệu suất của model đã 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à validate các số liệu hiệu suất của model. Trong Google Colab, bạn có thể điều hướng đến thư mục "runs", sau đó đến thư mục "detect", và cuối cùng đến thư mục "train", nơi bạn sẽ tìm thấy các log hiển thị các chỉ số hiệu suất chính.
Đối với người dùng trong môi trường Python, kết quả huấn luyện được lưu theo mặc định trong thư mục “runs/train/” nằm trong thư mục làm việc hiện tại của bạn. Mỗi lần chạy huấn luyện sẽ tạo ra một thư mục con mới (ví dụ: runs/train/exp, runs/train/exp2, v.v.), nơi bạn có thể tìm thấy các log và các kết quả đầu ra khác liên quan đến quá trình huấn luyện.
Nếu bạn đang 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 cách sử dụng lệnh “yolo settings”, cho phép bạn xem hoặc sửa đổi các đường dẫn và các cấu hình khác liên quan đến log huấn luyện và chi tiết thử nghiệm.
Trong số các log, bạn cũng sẽ tìm thấy một số biểu đồ mà bạn có thể xem để biết quá trình huấn luyện model diễn ra như thế nào. Các biểu đồ này, được tạo sau khi quá trình huấn luyện hoàn tất, cho thấy liệu model có cải thiện theo thời gian bằng cách mắc ít lỗi hơn và trở nên chính xác hơn hay không.
Chúng theo dõi tiến trình của model, hiển thị cách mà loss (sự khác biệt giữa các dự đoán của model và các giá trị thực tế) giảm xuống và cách độ 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 như thế nào và nó đã cải thiện bao nhiêu vào cuối quá trình huấn luyện.

Hình 3. Một ví dụ về các biểu đồ bạn có thể phân tích để đánh giá model của mình.
Link to this sectionCác số liệu đánh giá hiệu suất chính#
Ngoài ra, đây là cái nhìn sâu hơn về một số số liệu mà bạn có thể sử dụng để đánh giá hiệu suất của model:
- Mean average precision (mAP): Số liệu này đo lường độ chính xác tổng thể của model trong việc 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 ở các mức recall khác nhau.
- Precision: Đây là tỷ lệ phần trăm các kết quả phát hiện là chính xác, được tính bằng cách chia số lượng kết quả phát hiện đúng (true positive) cho tổng số lần phát hiện được thực hiện.
- Recall: Chỉ ra tỷ lệ phần trăm động vật thực tế trong hình ảnh đã được model nhận diện chính xác, phản ánh khả năng nắm bắt tất cả các trường hợp liên quan.
Các số liệu đánh giá này có thể giúp tinh chỉnh model để cải thiện độ chính xác trước khi sử dụng trong các ứng dụng thực tế.
Link to this sectionChạy inference bằng model YOLO11 đã huấn luyện tùy chỉnh của bạn#
Giờ đây, khi chúng ta đã huấn luyện và đánh giá YOLO11, đã đến lúc sử dụng nó để phân tích hình ảnh và chạy inference. Bạn có thể sử dụng các hình ảnh kiểm thử từ bộ dữ liệu hoặc hình ảnh mới từ các nguồn khác nhau.
Chúng ta sẽ sử dụng đoạn code sau để chạy model trên một hình ảnh trong bộ dữ liệu kiểm thử. Nó nhập các module cần thiết từ thư viện Ultralytics. Sau đó, nó xác định đường dẫn đến file trọng số model tốt nhất ("best.pt") được lưu trữ trong thư mục kết quả. Model YOLO11 đã huấn luyện tùy chỉnh được tải bằng cách sử dụng các trọng số này.
Sau đó, đường dẫn đến một hình ảnh từ bộ dữ liệu kiểm thử African Wildlife được thiết lập. Model được áp dụng cho hình ảnh này để phát hiện đối tượng, các kết quả được tạo ra và kết quả đầu ra (chẳng hạn như các đối tượng được phát hiện hoặc chú thích) được lưu lại.
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)Hình ảnh đầu ra hiển thị bên dưới sẽ được lưu trong thư mục "predict" nằm trong thư mục runs/detect. Đối 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 trữ hình ảnh.

Hình 4. Chạy inference bằng model YOLO11 đã fine-tune trên một hình ảnh kiểm thử.
Để kiểm thử hình ảnh từ các nguồn khác nhau, bạn có thể sử dụng code bên dưới. Chúng tôi đã sử dụng một hình ảnh từ Pexels. Bạn có thể sử dụng cùng hình ảnh đó hoặc bất kỳ hình ảnh liên quan 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)Hình ảnh đầu ra hiển thị bên dưới sẽ được lưu vào thư mục thích hợp.

Hình 5. Phát hiện động vật hoang dã bằng model YOLO11 đã fine-tune trên một hình ảnh chưa biết.
Link to this sectionAI cho bảo tồn động vật hoang dã: Các ứng dụng thực tế#
Các model như YOLO11 có thể tự động phát hiện và theo dõi động vật, điều này cho phép thực hiện nhiều ứng dụng thực tế. Đây là một cái nhìn thoáng qua về một số lĩnh vực chính nơi AI thị giác có thể được sử dụng để hỗ trợ các nỗ lực bảo tồn động vật hoang dã:
- Giám sát loài: AI thị giác có thể được sử dụng để xử lý dữ liệu hình ảnh như ảnh và video để xác định loài, đếm quần thể và theo dõi chuyển động của chúng theo thời gian một cách chính xác.
- Cảnh báo camera thông minh: Ở những vùng sâu vùng xa, thị giác máy tính có thể được sử dụng để liên tục phân loại động vật và gửi cảnh báo theo thời gian thực, cho phép các cơ quan chức năng bảo vệ động vật hoang dã phản ứng nhanh chóng 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 người và động vật.
- Phân tích hành vi: Bằng cách giám sát di cư, thói quen ăn uống 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 chi tiết toàn diện về động lực học giữa các loài.
- Ngăn chặn săn trộm: AI thị giác có thể được tận dụng để phát hiện sự hiện diện trái phép của con người và các dấu hiệu săn trộm trong khi tận dụng học máy và dữ liệu lịch sử để xác định các điểm nóng nguy cơ.
Link to this sectionCác điểm chính cần lưu ý#
Các model thị giác máy tính như YOLO11 có thể đóng một vai trò quan trọng trong việc 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 hình ảnh và video từ nhiều nguồn khác nhau, giúp thực hiện các đánh giá động vật hoang dã chính xác.
Đặc biệt, Ultralytics YOLO11 là một lựa chọn tuyệt vời cho việc phát hiện đối tượng thời gian thực, biến nó thành lựa chọn hoàn hảo 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à giám sát hệ sinh thái. Bằng cách kết hợp các model dựa trên AI vào các nỗ lực 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 các quyết định sáng suốt hơn để bảo vệ động vật hoang dã đang gặp nguy hiểm.
Hãy tham gia cộng đồng của chúng tôi và khám phá GitHub repository để 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 chăm sóc sức khỏe 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. Hãy kiểm tra các tùy chọn cấp phép của Ultralytics để bắt đầu với AI thị giác.






