Bằng cách nhấp vào “Chấp nhận tất cả Cookie”, bạn đồng ý với việc lưu trữ cookie trên thiết bị của mình để tăng cường khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thêm thông tin
Cài đặt Cookie
Bằng cách nhấp vào “Chấp nhận tất cả Cookie”, bạn đồng ý với việc lưu trữ cookie trên thiết bị của mình để tăng cường khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thêm thông tin
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 cách sử dụng Bộ dữ liệu Động vật hoang dã Châu Phi và sử dụng mô hình để chạy suy luận trên các hình ảnh chưa 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 vo ve đến những chú voi cao chót vót, và việc bảo tồn sự đ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, săn bắ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 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 bẫy camera và thực hiện khảo sát thực địa, có thể chậm và đòi hỏi nhiều nguồn lực. Những nỗ lực này thường không bao phủ hiệu quả các khu vực rộng lớn và quần thể lớn.
Để 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 biệt, các mô hình computer vision như Ultralytics YOLO11 có thể phân tích dữ liệu trực quan như hình ảnh và video để tự động hóa việc xác định 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 (object detection) và phân vùng thực thể (instance segmentation), được hỗ trợ bởi YOLO11, đặc biệt hữu ích trong trường hợp này. Bằng cách phân tích dữ liệu trực quan, 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 kiểu sinh thái và ứng phó hiệu quả hơn với các mối đe dọa môi trường.
Trong bài viết này, chúng ta sẽ xem xét quy trình huấn luyện YOLO11 để phát hiện động vật. Hãy bắt đầu!
Bắt đầu với Ultralytics YOLO11
Trước khi đi vào hướng dẫn, hãy cùng xem xét 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 cần là gói Ultralytics Python, giúp bạn dễ dàng làm việc với các mô hình YOLO cho các 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ột môi trường để chạy mã của mình và có nhiều tùy chọn 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 của mình bằng cách nhập 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 hướng 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ã trong các đoạn nhỏ gọi là ô. Nó có tính tương tác, có nghĩa là bạn có thể thấy đầu ra của mã ngay lập tức, giúp bạn dễ dàng kiểm tra và gỡ lỗi 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 GPU mạnh mẽ. Nó rất dễ thiết lập và bạn không cần cài đặt bất cứ thứ gì trên máy tính của mình.
Mặc dù có những tùy chọn khác để thiết lập môi trường của bạn 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 được đề cập ở 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 ta sẽ trình bày cách thiết lập và huấn luyện YOLO11 bằng Google Colab, Jupyter Notebook hoặc một tệp Python đơn giản, vì các bước này rất giống nhau trên tất cả các môi trường này.
Tìm hiểu về Bộ dữ liệu Động vật hoang dã Châu Phi
Sau khi chọn một môi trường phát triển, để huấn luyện YOLO11 phát hiện động vật hoang dã một cách cụ thể, chúng ta cần một tập 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 phải hiển thị rõ vị trí của động vật và chúng thuộc loại nào, để mô hình có thể học cách nhận dạng 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 Bộ dữ liệu Động vật hoang dã Châu Phi. Nó được hỗ trợ bởi gói Ultralytics Python và được thiết kế đặc biệt để phát hiện các loài động vật thường thấy trong 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. Cái nhìn thoáng qua về Bộ dữ liệu Động vật hoang dã Châu Phi.
Dưới đây là một số tính năng chính của Bộ dữ liệu Động vật hoang dã Châu Phi:
Quy mô: Tập dữ liệu bao gồm 1504 hình ảnh được chia thành ba tập hợp con: 1052 cho huấn luyện, 225 cho xác thực và 227 cho thử nghiệm. Sự phân chia này đảm bảo rằng mô hình học hỏi hiệu quả và được đánh giá kỹ lưỡng.
Tích hợp liền mạch: Ultralytics cung cấp tệp cấu hình YAML xác định đường dẫn tập dữ liệu, các lớp và các chi tiết khác, giúp bạn dễ dàng sử dụng khi huấn luyện các mô hình 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 tính minh bạch và hợp tác.
Huấn luyện Ultralytics YOLO11 để phát hiện động vật
Sau khi khám phá Bộ dữ liệu Động vật hoang dã Châu Phi, chúng ta có thể bắt đầu huấn luyện mô hình YOLO11 để phát hiện động vật trong ảnh. Quá trình này bao gồm thiết lập môi trường phát triển, huấn luyện mô hình YOLO11 và đánh giá hiệu suất của mô hình.
Bướ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ử mô hình. Google Colab, Jupyter Notebooks hoặc một tệp Python đơn giản có thể được sử dụng, tùy thuộc vào sở thích của bạn. Tạo một sổ tay Google Colab, Jupyter Notebook hoặc tệp Python mới cho phù hợp.
Nếu bạn đang sử dụng Google Colab, môi trường này theo mặc định chạy trên CPU (Central Processing Unit), điều này có thể làm chậm quá trình huấn luyện. Để tăng tốc quá trình, đặc biệt là đối với các mô hình lớn hơn, bạn có thể chuyển đổi runtime để 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 bộ tăng tốc phần cứng thành GPU (tốt nhất là GPU T4). Đ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 Ultralytics Python. Nếu bạn đang sử dụng môi trường dựa trên sổ tay (Google Colab hoặc Jupyter), hãy chạy lệnh sau với dấu chấm than (!) ở đầu
pip install ultralytics
Bước 2: Tải YOLO11 và chuẩn bị bộ dữ liệu
Sau khi gói Ultralytics được cài đặt, bước tiếp theo là tải mô hình YOLO11 và chuẩn bị tập dữ liệu để huấn luyện. Đầu tiên, chúng ta tải mô hình YOLO11, mô hình này đã được huấn luyện trước trên các tác vụ phát hiện đối tượng chung. Mô hình được huấn luyện trước này cung cấp cho chúng ta một điểm khởi đầu tốt, vì nó đã học cách phát hiện các đối tượng khác nhau.
Sau đó, chúng tôi chỉ định tập dữ liệu bằng cách sử dụng tệp YAML, chứa thông tin về hình ảnh và nhãn. Tệp này cho mô hình biết nơi tìm tập dữ liệu và những đối tượng nào nó nên học để nhận dạng.
Bộ dữ liệu Động vật hoang dã Châu Phi đượ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 huấn luyện, giúp bạn không gặp rắc rối khi thiết lập thủ công.
Sau khi tập dữ liệu đã sẵn sàng, mô hình bắt đầu huấn luyện. Mô hình sẽ trải qua tập dữ liệu nhiều lần, một quy trình được gọi là huấn luyện qua nhiều epochs, để cải thiện khả năng nhận dạng động vật trong hình ảnh. Trong quá trình này, hình ảnh sẽ được thay đổi kích thước thành một kích thước nhất quán để xử lý và mô hình sẽ làm việc với một số lượng hình ảnh nhất định tại một thời điểm, được gọi là một batch. Điều này giúp mô hình học hiệu quả hơn.
Tóm lại, mô hình đượ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 Bộ dữ liệu Động vật hoang dã Châu Phi khi đoạn mã 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)
Bước 3: Hướng dẫn huấn luyện YOLO11
Sau khi đoạn mã trên được chạy, mô hình 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 mô hình thông qua mã để xem qua các hình ảnh huấn luyện 30 lần. Vì vậy, điều đó có nghĩa là mô hình sẽ xem tất cả các hình ảnh trong tập 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ẽ, nó có thể không đẹp, nhưng sau khi luyện tập đi luyện tập lại, bạn bắt đầu vẽ tốt hơn. Mỗi lần bạn thử lại, bạn học được từ những gì sai và sửa nó. Đó là những gì mỗi epoch làm cho mô hình - nó nhìn vào hình ảnh, mắc lỗi, học hỏi từ chúng và ngày càng giỏi hơn trong việc nhận ra động vật mỗi lần.
Nếu mã huấn luyện đang chạy thành công, bạn sẽ thấy đầu ra sau 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 của 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 mô hình (yolo11n.pt), kích thước batch, số lượng epochs và kích thước ảnh.
Tóm tắt mô hình: Cung cấp thông tin về độ phức tạp của mô hình, chẳng hạn như số lượng lớp và tham số, cho biết kích thước của mô hình.
Bộ tối ưu hóa và tốc độ học: Nó đề cập đến bộ tối ưu hóa (ví dụ: AdamW) và tốc độ học, kiểm soát cách mô hình điều chỉnh các tham số của nó trong quá trình huấn luyện.
Quét tập dữ liệu: Mô hình quét tập dữ liệu, hiển thị số lượng hình ảnh hợp lệ và sẵn sàng để huấn luyện. Nó xác nhận rằng không có vấn đề gì với tập dữ liệu.
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 với các giá trị loss chính (box_loss, cls_loss, dfl_loss), cho biết mức độ học tập của mô hình.
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ư độ chính xác (precision), độ phủ (recall) và mAP (mean average precision). Các giá trị này cho biết mức độ chính xác của mô hình trong việc phát hiện và phân loại các đối tượng.
Mức sử dụng bộ nhớ GPU (GPU memory usage): Nếu bạn đang sử dụng GPU, đầu ra sẽ hiển thị mức sử dụng bộ nhớ để theo dõi việc sử dụng phần cứng.
Hình 2. Kết quả bạn sẽ thấy khi mô hình đang huấn luyện.
Bước 4: Đánh giá hiệu suất của mô hình đã đượ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 xét và xác thực các chỉ số hiệu suất của mô hình. 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 là thư mục "train", nơi bạn sẽ tìm thấy nhật ký 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 mặc định trong thư mục “runs/train/” trong thư mục làm việc hiện tại của bạn. Mỗi lần huấn luyện sẽ tạo 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 nhật ký và các đầ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 nhật ký huấn luyện và chi tiết thử nghiệm.
Trong số các nhật ký, 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 mô hình diễn ra tốt 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 biết liệu mô hình có được cải thiện theo thời gian hay không bằng cách mắc ít lỗi hơn và trở nên chính xác hơn.
Chúng theo dõi tiến trình của mô hình, hiển thị mức độ giảm của loss (sự khác biệt giữa dự đoán của mô hình và giá trị thực tế) và mức độ tăng của độ chính xác trong quá trình huấn luyện. Điều này giúp bạn hiểu mô hình đã học cách nhận dạng động vật tốt như thế nào và nó đã được 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 đồ thị bạn có thể phân tích để đánh giá mô hình của mình.
Các chỉ số đánh giá hiệu suất chính
Ngoài ra, đây là cái nhìn cận cảnh hơn về một số chỉ số mà bạn có thể sử dụng để đánh giá hiệu suất của mô hình:
Độ chính xác trung bình (mAP): Số liệu này đo lường độ chính xác tổng thể của mô hình trong việc phát hiện động vật trên tất cả các lớp bằng cách tính trung bình các điểm chính xác ở các mức thu hồi khác nhau.
Độ chính xác: Điều này thể hiện tỷ lệ phần trăm các phát hiện là chính xác, được tính bằng cách chia số lượng phát hiện dương tính thực tế cho tổng số phát hiện được thực hiện.
Recall (Độ phủ): Nó chỉ ra tỷ lệ phần trăm số động vật thực tế trong hình ảnh được mô hình xác định 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 mô hình để cải thiện độ chính xác trước khi sử dụng nó trong các ứng dụng thực tế.
Chạy suy luận bằng mô hình YOLO11 do bạn tùy chỉnh huấn luyện
Bây giờ 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 suy luận. Bạn có thể sử dụng hình ảnh thử nghiệm từ bộ dữ liệu hoặc hình ảnh mới từ các nguồn khác nhau.
Chúng tôi sẽ sử dụng đoạn mã sau để chạy mô hình trên một hình ảnh trong bộ dữ liệu thử nghiệm. Đoạn mã này nhập các mô-đun cần thiết từ thư viện Ultralytics. Sau đó, nó xác định đường dẫn đến tệp weights mô hình tốt nhất ("best.pt") được lưu trữ trong thư mục kết quả. Mô hình YOLO11 được huấn luyện tùy chỉnh được tải bằng cách sử dụng các weights này.
Sau đó, đường dẫn đến một hình ảnh từ tập dữ liệu thử nghiệm Động vật hoang dã Châu Phi được thiết lập. Mô hình được áp dụng cho hình ảnh này để object detection, kết quả được tạo và đầu ra (chẳng hạn như các đối tượng hoặc chú thích được phát hiện) được lưu.
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_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 thử nghiệm 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 suy luận bằng mô hình YOLO11 đã tinh chỉnh trên ảnh thử nghiệm.
Để kiểm tra hình ảnh từ các nguồn khác nhau, bạn có thể sử dụng mã 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 một hình ảnh hoặc bất kỳ hình ảnh liên quan nào khác.
Hình ảnh đầu ra hiển thị bên dưới sẽ được lưu trong thư mục thích hợp.
Hình 5. Phát hiện động vật hoang dã bằng mô hình YOLO11 đã được tinh chỉnh trên một hình ảnh chưa từng thấy.
AI cho bảo tồn động vật hoang dã: Ứng dụng thực tế
Các mô hình như YOLO11 có thể tự động phát hiện và theo dõi động vật, điều này cho phép nhiều ứng dụng thực tế. Dưới đây là một cái nhìn sơ lược 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: Vision AI có thể được sử dụng để xử lý dữ liệu trực quan như hình ảnh và video để xác định chính xác các loài, đếm số lượng quần thể và theo dõi sự di chuyển của chúng theo thời gian.
Cảnh báo từ camera thông minh: Ở các khu vực отдаленные, 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 quản lý độ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 người và động vật hoang dã.
Phân tích hành vi: Bằng cách theo dõi sự di cư, thói quen ăn uống và tương tác xã hội, các hệ thống vision AI có thể cung cấp những hiểu biế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: Vision AI 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, đồng thời tận dụng máy học và dữ liệu lịch sử để xác định các điểm nóng rủi ro.
Những điều cần nhớ
Các mô hình 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 Vision AI, chúng ta có thể xử lý một lượng lớn hình ảnh và video từ nhiều nguồn khác nhau, giúp có thể 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 để phát hiện đối tượng theo thời gian thực, khiến nó trở nên hoàn hảo cho các nhiệm 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 mô hình 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ã có nguy cơ tuyệt chủng.