TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU
Yêu cầu thực tiễn
Trong chăn nuôi hiện đại, sức khỏe gia súc ảnh hưởng trực tiếp đến sản lượng, đặc biệt là đối với bò sữa Để duy trì sức khỏe, sản lượng sữa chất lượng cao và chức năng sinh sản, người chăn nuôi cần đảm bảo điều kiện sống tốt nhất cho đàn bò Biểu hiện và hành vi của gia súc là những dấu hiệu rõ ràng nhất để đánh giá sức khỏe của chúng.
Hành vi của bò sữa là yếu tố quan trọng trong việc đánh giá sức khỏe và tình trạng của chúng Gia súc thường thay đổi hành vi để ứng phó với các yếu tố như chấn thương, dịch bệnh hoặc biến đổi môi trường và xã hội Việc đánh giá hành vi chủ yếu dựa vào kinh nghiệm của người chăn nuôi, nhưng việc này trở nên khó khăn và kém hiệu quả, đặc biệt ở những đàn gia súc lớn do thiếu thời gian và nguồn lực Do đó, cần có một phương pháp chính xác, nhanh chóng và chi phí thấp để theo dõi các mô hình hành vi, nhằm hỗ trợ đánh giá sức khỏe và phúc lợi của bò sữa.
Sử dụng cảm biến đeo trên cơ thể là giải pháp hiệu quả cho việc theo dõi hành vi đàn gia súc ở quy mô lớn Tuy nhiên, để đạt được thành công, đầu ra từ cảm biến cần được diễn giải chính xác và theo thời gian thực Giải pháp này ngày càng trở nên phổ biến trong các chương trình quản lý trang trại và chọn lọc di truyền.
Cách tiếp cận này chú trọng vào sức khoẻ và hiệu suất cá nhân hơn là phương pháp dựa trên bầy đàn truyền thống Tuy nhiên, việc thu thập và phân tích dữ liệu từ cảm biến để mô tả hành vi cá nhân vẫn là một thách thức lớn đối với các nhà phát triển Thách thức này bao gồm độ phức tạp của hành vi, việc trích xuất các đặc điểm để phân biệt hành vi, sự mất mát dữ liệu từ cảm biến không dây, và xử lý dữ liệu để giảm thiểu nhiễu trong các phép đo đã thu thập.
Mục tiêu của luận văn
Nghiên cứu này nhằm nâng cao độ chính xác trong việc nhận diện hành vi bằng cách sử dụng dữ liệu cảm biến gia tốc Luận văn tiến hành phân tích các thuộc tính dữ liệu từ cảm biến gia tốc ba trục trong các điều kiện hành vi khác nhau, xác định các tính năng phù hợp để phân loại trạng thái của bò Trong quá trình phân loại, nhiều thuật toán cổ điển như Cây quyết định, k-Nearest Neighbors, và Máy véc tơ hỗ trợ được thử nghiệm và đánh giá hiệu quả Kết quả cho thấy tín hiệu gia tốc được phân loại thành bảy trạng thái chuyển động: ăn, nằm, đứng, nằm, đứng lên, đi bình thường, và đi lại tích cực.
Dựa trên đánh giá hiệu quả của các thuật toán, luận văn này đề xuất xây dựng một chương trình thử nghiệm để quản lý tập trung dữ liệu từ cảm biến gia tốc gắn trên mỗi đối tượng gia súc Chương trình sẽ tự động phân loại dữ liệu mới và lưu trữ kết quả vào cơ sở dữ liệu, giúp người quản lý theo dõi thống kê một cách trực quan về hoạt động của các cá thể gia súc.
Cấu trúc của luận văn
Luận văn được cấu trúc thành năm phần: Phần 1 giới thiệu tổng quan về đề tài và các nghiên cứu liên quan trong và ngoài nước Phần 2 tập trung vào lý thuyết học máy và các thuật toán học máy kinh điển Phần 3 mô tả quá trình thu thập dữ liệu, phương pháp đánh giá các thuật toán học máy và kết quả đánh giá Phần 4 trình bày việc xây dựng chương trình thử nghiệm cho quản lý dữ liệu cùng với kết quả của các thuật toán học máy Cuối cùng, phần 5 đưa ra kết luận của nghiên cứu.
CƠ SỞ LÝ THUYẾT
Các nghiên cứu liên quan
Vấn đề phức tạp trong việc nhận diện hành vi của động vật đã kích thích nhiều nhóm nghiên cứu tìm kiếm giải pháp thực tiễn thông qua việc sử dụng cảm biến đeo trên cơ thể.
Trong ứng dụng cảm biến đeo trên cơ thể, đã có nhiều hệ thống phát triển để phân tích hành vi bò sữa tự động Cảm biến gia tốc, với kích thước nhỏ và trọng lượng nhẹ, được sử dụng phổ biến để theo dõi hành vi của bò Các phương pháp này thuộc hai loại chính: học có giám sát và không giám sát Tuy nhiên, các hệ thống này chỉ xác định được một số mẫu hành vi nhất định và gặp phải một số nhược điểm như tiêu thụ nhiều bộ nhớ, không khả thi trong việc học liên tục, nhạy cảm với dữ liệu ngoại lai, và hiệu suất tối ưu hóa còn hạn chế.
Trong nghiên cứu [15], tác giả sử dụng dữ liệu từ cảm biến gia tốc để phân biệt các hành vi như ăn, nằm, đứng, nhưng chưa phân tách rõ ràng hành vi chuyển trạng thái giữa đứng và nằm Nghiên cứu cho thấy rằng thuật toán Support Vector Machine đạt độ chính xác cao hơn, trong khi Decision Tree có độ nhạy tốt hơn Nghiên cứu [28] áp dụng nhiều loại cảm biến khác nhau, như GPS, cảm biến tốc độ, nhiệt kế, gia tốc kế 3 trục và cảm biến từ trường ba trục, để thu thập thông tin cho hệ thống giám sát Hệ thống này còn cho phép truyền dữ liệu qua mạng không dây nhằm giám sát hoạt động của gia súc từ xa Tương tự, nghiên cứu [29] sử dụng cảm biến đeo để khảo sát hiệu quả phát hiện động dục và thời gian rụng trứng của giống bò đen Nhật Bản, với hệ thống có khả năng phát hiện các trạng thái đứng và so sánh với khả năng phát hiện sự kiện động dục.
Giới thiệu về học máy
Học máy là một lĩnh vực phát triển nhanh chóng trong khoa học máy tính, tập trung vào việc xây dựng và nghiên cứu các lý thuyết và kỹ thuật cho phép máy tính tự động "học" từ dữ liệu đầu vào để giải quyết các bài toán cụ thể.
Học máy và thống kê đều liên quan đến việc phân tích và khai thác dữ liệu, nhưng học máy tập trung vào nghiên cứu các thuật toán thay vì chỉ áp dụng tính toán trực tiếp lên dữ liệu Các lĩnh vực liên quan như học sâu và trí tuệ nhân tạo đang ngày càng được áp dụng rộng rãi trong nhiều lĩnh vực của đời sống.
Học máy là phương pháp hiệu quả để nâng cao độ chính xác của mô hình thông qua cấu trúc dữ liệu linh hoạt, đồng thời xử lý các tập dữ liệu lớn và phức tạp từ môi trường cụ thể Ba kỹ thuật chính trong học máy bao gồm học có giám sát, học không giám sát và học bán giám sát.
Học tập có giám sát yêu cầu dữ liệu được gán nhãn thủ công để tạo ra tập huấn luyện, từ đó đưa ra dự đoán cho dữ liệu mới Ngược lại, học tập không có giám sát sử dụng các ví dụ không gán nhãn để thực hiện phân cụm và giảm kích thước Học bán giám sát kết hợp cả hai phương pháp, cho phép sử dụng một lượng hạn chế các mẫu được gán nhãn để dự đoán dữ liệu mới Phương pháp này được áp dụng rộng rãi trong các bài toán phân loại, hồi quy và xếp hạng.
Các thuật toán phân loại phổ biến
This article evaluates five classic classification algorithms: Decision Tree, K-Nearest Neighbors (k-NN), Support Vector Machine (SVM), Random Forest (RF), and Gradient Boosted Decision Tree (GBDT).
2.3.1 K-Nearest Neighbors (k-NN) k-NN là thuật toán đơn giản, dễ triển khai cho các bài toán học máy có giám sát có thể sử dụng cho việc phân loại lẫn hồi quy Lý thuyết cơ bản của k-NN dựa trên việc các hiện tượng hoặc đối tượng tương tự nhau thì thường xuất hiện gần nhau Để phục vụ cho việc phân loại dữ liệu, k-NN hoạt động bằng cách ghi nhờ toàn bộ tập dữ liệu huấn luyện đã đƣợc gắn nhãn và sau đó nó phân loại một thể hiện mới bằng cách thực hiện 3 bước Đầu tiên, đo khoảng cách từ dữ liệu cần phân loại đến tất cả các dữ liệu đƣợc gắn nhãn của tập huấn luyện, cách đo dữ liệu có thể là Euclidian, Manhattan, Minkowski Sau đó, chọn k là một số nguyên bất kỳ, k có vai trò là số điểm dữ liệu đã đƣợc phân loại có khoảng cách nhỏ nhất (láng giềng gần nhất) với dữ liệu cần phân loại Cuối cùng, kiểm tra các lớp gắn nhãn có khoảng cách ngắn nhất và tìm số lƣợng của mỗi lớp xuất hiện, lớp xuất hiện nhiều nhất đƣợc chọn làm nhãn phân loại Ở ví dụ trong hình dưới đây, ta cần phân loại điểm tròn màu xanh lục thuộc lớp nào: màu xanh lam hay màu đỏ Từ hình này, ta có thể dễ dàng điểm gần chấm màu xanh lục nhất là màu đỏ, do đó nó sẽ đƣợc phân loại vào lớp màu đỏ Tuy nhiên, có thể điểm màu đỏ gần điểm ta đang xét nhất nhƣng xung quanh nó có rất nhiều điểm màu xanh lam Vì vậy, việc xét điểm gần nhất là chƣa đủ, thay vào đó ta xét k điểm gần nhất Giả sử ta lấy k=3 thì sẽ có 2 điểm đỏ và 1 điểm xanh lam gần điểm ta xét, do đó điểm xanh lục vẫn đƣợc phân loại vào lớp đỏ Nếu ta lấy k=7 thì xung quanh có 5 điểm xanh lam và 2 điểm đỏ, lúc này điểm xanh lục đƣợc phân loại vào lớp xanh lam Có một điều là nếu ta lấy k=4 thì sẽ có 2 điểm xanh lam và 2 điểm đỏ, lúc này sẽ so sánh khoảng cách các điểm với điểm ta đang xét Vì vậy việc chọn giá trị k thực sự quan trọng và thường là số lẻ ình 2-1: Mô hình thuật toán k-NN
Máy vector hỗ trợ (Support Vector Machines - SVM) là mô hình học máy có giám sát, phổ biến trong phân loại gắn nhãn và phân tích hồi quy SVM hoạt động như một bộ phân loại, xác định một siêu phẳng tách biệt để phân chia dữ liệu Thuật toán SVM ánh xạ dữ liệu vào không gian đặc trưng có chiều cao hơn, nhằm tìm siêu phẳng tách tối ưu trong không gian mới Với tập dữ liệu huấn luyện đã được gắn nhãn, SVM xác định siêu phẳng tối ưu để phân loại hiệu quả.
Mô hình Máy Vector Hỗ trợ (SVM) là một phương pháp phân loại dữ liệu, trong đó các điểm dữ liệu được biểu diễn trong không gian n chiều, nhằm tách biệt các nhãn khác nhau bằng khoảng cách tối ưu SVM không chỉ thực hiện phân loại tuyến tính mà còn có khả năng phân loại phi tuyến tính hiệu quả, thông qua việc ánh xạ các đầu vào vào các không gian đặc trưng nhiều chiều hơn.
Cây quyết định là một mô hình học có giám sát, phù hợp cho cả bài toán phân loại và hồi quy Mô hình này được cấu trúc như một cây rẽ nhánh, trong đó mỗi nút bên trong đại diện cho một thuộc tính, mỗi nhánh thể hiện một quy luật, và mỗi lá (nút cuối) biểu thị kết quả của quy luật trước đó.
Cây quyết định là một công cụ dễ sử dụng và hiểu, giúp mô phỏng quá trình suy nghĩ của con người thông qua việc phân tích dữ liệu và các thuộc tính ảnh hưởng Ví dụ, trong không gian hai chiều với hai lớp màu xanh và đỏ, nhiệm vụ là xác định ranh giới phân chia chúng, tương tự như một bài toán phân loại Ranh giới này thường đơn giản, là các đường song song với các trục tọa độ Nếu thành phần thứ nhất nhỏ hơn ngưỡng, điểm dữ liệu sẽ được phân loại vào lớp xanh; nếu thành phần thứ hai lớn hơn ngưỡng, nó cũng thuộc lớp xanh Ngược lại, nếu thành phần thứ nhất lớn hơn ngưỡng, điểm dữ liệu vẫn thuộc lớp xanh, và nếu không thỏa mãn các điều kiện này, nó sẽ được xếp vào lớp đỏ.
Cây quyết định hoạt động bằng cách xây dựng các quy tắc Nếu-Thì rõ ràng dựa trên giá trị của thuộc tính để dự đoán giá trị đích Quá trình này bao gồm việc đặt ra các câu hỏi theo thứ tự cho từng thuộc tính hoặc sự kết hợp của chúng Phương pháp thường được áp dụng là kiểm tra từng thuộc tính một, nhờ vào tính đơn giản của nó Để tìm ra thứ tự các thuộc tính, trong các bài toán với nhiều thuộc tính và giá trị khác nhau, việc tìm kiếm giải pháp tối ưu có thể khó khăn Thay vào đó, một phương pháp đơn giản hơn được sử dụng, trong đó thuộc tính tốt nhất được chọn dựa trên tiêu chí cụ thể Dữ liệu sau đó được chia thành các nút con tương ứng với giá trị của thuộc tính đã chọn, và quy trình này tiếp tục cho từng nút con Mặc dù lựa chọn này có thể không phải là tối ưu nhất, nhưng nó thường gần với giải pháp tối ưu.
Cách tiếp cận này giúp đơn giản hóa vấn đề bằng cách chia dữ liệu thành các nút con tương ứng với từng câu hỏi và câu trả lời, trong đó câu hỏi thể hiện thuộc tính và câu trả lời là giá trị của thuộc tính đó Một phân chia nhánh được coi là tối ưu khi dữ liệu trong mỗi nút con hoàn toàn thuộc về một lớp, dẫn đến việc nút con trở thành nút lá mà không cần phân chia thêm Ngược lại, nếu dữ liệu trong nút con vẫn bị trộn lẫn, phân chia đó chưa đạt yêu cầu tối ưu.
Để tối ưu hóa phép chia nhánh trong cây quyết định, cần một phương pháp định lượng giúp xác định giá trị thấp nhất khi dữ liệu trong mỗi nút con thuộc cùng một lớp, và giá trị cao nhất khi dữ liệu thuộc nhiều lớp khác nhau Việc xây dựng cây quyết định không yêu cầu tham số cài đặt và có khả năng xử lý dữ liệu chiều sâu lớn Một trong những phương pháp hiệu quả trong học máy là tạo ra các mô hình tập hợp, trong đó nhiều mô hình học tập riêng lẻ được kết hợp để tạo ra một mô hình tổng hợp mạnh mẽ hơn Ý tưởng này dựa trên việc các mô hình khác nhau có thể mắc các lỗi khác nhau, do đó việc kết hợp chúng giúp giảm nguy cơ overfit và duy trì hiệu suất dự đoán cao.
Rừng ngẫu nhiên và Gradient Boosted Decision tree là những ví dụ về ý tưởng tập hợp đƣợc áp dụng cho cây quyết định
2.3.4 Random Forest Ở góc nhìn tổng quan, thuật toán Rừng ngẫu nhiên (Random forest) có thể đƣợc hiểu là một tập hợp các cây quyết định [23] Một mô hình rừng ngẫu nhiên tạp ra rất nhiều cây quyết định đơn lẻ áp dụng lên một tập dữ liệu huấn luyện, thường là hàng chục đến hàng trăm cây quyết định khác nhau Ý tưởng xuất phát từ việc mỗi cây quyết định đơn lẻ sẽ hoạt động tốt trên một phần dữ liệu Sự khác biệt này đạt đƣợc bằng cách thêm vào các biến đổi ngẫu nhiên trong quá trình xây dững mỗi cây quyết định riêng Việc biến đổi ngẫu nhiên này diễn ra theo hai cách Đầu tiên, dữ liệu đƣợc sử dụng để xây dựng mỗi cây sẽ đƣợc lựa chọn ngẫu nhiên Thứ hai, các thuộc tính đƣợc chọn trong mỗi phép thử chia nhánh đƣợc chọn ngẫu nhiên [22] ình 2-4: Mô hình thuật toán Random Forest Để tạo mô hình rừng ngẫu nhiên, trước hết cần xác định sẽ có bao nhiêu cây sẽ đƣợc xây dựng Mỗi cây đƣợc xây dựng từ các mẫu dữ liệu ngẫu nhiên khác nhau đƣợc gọi là bootstrap Mẫu bootstrap đƣợc sử dụng phổ biến trong thống kê và học máy Việc này xuất pháp từ ý tưởng rằng: nếu dữ liệu huấn luyện có tổng cộng N đơn vị hoặc mẫu dữ liệu, một mẫu bootstrap với kích thước N được tạo ra bằng cách liên tục chọn một trong số N hàng dữ liệu ngẫu nhiên mà ở đó cho phép việc chọn lại đúng hàng dữ liệu ấy trong mỗi lần lựa chọn Thực hiện việc lựa chọn ngẫu nhiên này N lần sẽ có kết quả mẫu bootstrap đƣợc tạo ra có N hàng giống nhƣ tập dữ liệu huấn luyện ban đầu nhƣng với khả năng một số hàng dữ liệu sẽ đƣợc lập lại [22]
Khi xây dựng cây quyết định cho thuật toán rừng ngẫu nhiên, các lá được xem gần nhau như một cây dữ liệu chuẩn, nhưng với một sự khác biệt quan trọng Thay vì lựa chọn chia nhánh tốt nhất từ tất cả các thuộc tính, một tập con ngẫu nhiên được chọn, và cách chia nhánh tối ưu được xác định trong một tập con nhỏ hơn của các thuộc tính.
Giống như Rừng ngẫu nhiên, Cây quyết định tăng cường (Gradient Boosted Decision Tree - GBDT) sử dụng nhiều cây quyết định để tạo ra mô hình dự báo mạnh mẽ cho việc phân loại dữ liệu Khác với Rừng ngẫu nhiên, GBDT xây dựng từng cây quyết định một cách tuần tự, cho phép sửa chữa các sai sót từ cây trước đó, từ đó cải thiện độ chính xác của mô hình.
Tập hợp cây quyết định tăng cường sử dụng nhiều cây nông trong học máy, giúp tạo ra mô hình với sai sót giảm dần khi thêm cây vào chuỗi Khi mô hình hoàn thành, việc dự đoán trở nên nhanh chóng và tiết kiệm bộ nhớ Các tham số chủ chốt ảnh hưởng đến độ phức tạp của mô hình là số lượng cây quyết định nhỏ.
Ngôn ngữ lập trình Python
2.4.1 Đặc điểm chung và thế mạnh
Python là ngôn ngữ lập trình thông dịch, bậc cao và đa nhiệm, nổi bật với triết lý thiết kế dễ đọc và dễ học Mặc dù có thể so sánh với Matlab trong một số lĩnh vực, Python mang lại nhiều lợi thế quan trọng, lý do khiến luận văn này chọn sử dụng ngôn ngữ này.
Mã nguồn Python ngắn gọn, xúc tích và dễ hiểu hơn so với Matlab [18]
Python là một ngôn ngữ lập trình mã nguồn mở và miễn phí, nổi bật với bộ thư viện chuẩn phong phú cùng nhiều thư viện mạnh mẽ từ bên thứ ba.
Python cho nhiều lựa chọn hơn ở các gói thƣ viện đồ họa cùng công cụ
Python mang lại khả năng kiểm soát cao hơn cho việc tổ chức mã nguồn và quản lý namespace Ngoài ra, Python cũng hỗ trợ việc duy trì nhiều phiên bản thư viện được chia sẻ một cách dễ dàng.
Python, giống như C/C++ và Java, tuân theo các tiêu chuẩn lập trình nhất định, bao gồm việc lập chỉ mục bắt đầu từ 0 và sử dụng dấu ngoặc vuông thay vì dấu ngoặc để lập chỉ mục Điều này mang lại lợi thế cho lập trình viên trong việc thực hiện các thuật toán xử lý tín hiệu đã được công bố, chuyển đổi mã giữa các ngôn ngữ hoặc làm việc với nhiều ngôn ngữ khác nhau.
2.4.2 Thư viện scikit-learn cho học máy
Scikit-learn là thư viện Python phổ biến nhất trong lĩnh vực học máy, với mã nguồn mở và sự phát triển liên tục Thư viện này hỗ trợ nhiều thuật toán học máy quan trọng và đi kèm với tài liệu trực tuyến phong phú Ngoài ra, Scikit-learn còn có một cộng đồng người dùng năng động, giúp người mới dễ dàng tiếp cận và học hỏi.
This paper evaluates five classifiers integrated within the scikit-learn library: Decision Tree, k-Nearest Neighbors, Support Vector Machines, Random Forest, and Gradient Boosted Decision Tree The goal is to identify the optimal solution, which will subsequently be applied in an experimental program.
PHƯƠNG PHÁP ĐÁNH GIÁ VÀ KẾT QUẢ
Quy trình đề xuất
Một trong những vấn đề quan trọng trong hệ thống giám sát và nhận dạng hành vi động vật là khả năng phân loại và độ tin cậy của việc nhận diện hành vi Bài viết này đánh giá các phương pháp học máy dựa trên các đặc trưng trích xuất từ dữ liệu thô, với bảy hành vi được phân loại: ăn, nằm, đứng, nằm xuống, đứng lên, đi lại bình thường và đi bộ nhanh Dữ liệu thu thập từ cảm biến gia tốc sẽ được tiền xử lý, quản lý theo ID của từng con bò và lưu trữ trong cơ sở dữ liệu để phục vụ cho việc huấn luyện mô hình.
Trong luận văn này, quá trình xây dựng bộ phân loại được mô tả với 60% dữ liệu được chọn ngẫu nhiên làm tập huấn luyện và 40% còn lại làm tập kiểm tra Mô hình phân loại được huấn luyện dựa trên các đặc trưng dữ liệu từ phép đo gia tốc (đầu vào) và hành vi phù hợp (đầu ra) Kết quả của mô hình phân loại được sử dụng để kiểm nghiệm, với các chỉ số hiệu suất được tính toán từ tập dữ liệu thử nghiệm độc lập Để áp dụng các thuật toán học tập có giám sát, một chương trình được phát triển bằng ngôn ngữ Python và công cụ Jupyter Notebook nhằm kiểm tra tính hiệu quả của từng thuật toán đề xuất.
Dữ liệu đã qua tiền xử lý (giảm nhiễu, phân đoạn, trích đặc trưng…)
Gia tốc kế 3 trục và phần cứng cảm biến
Cảm biến gia tốc, hay gia tốc kế, được sử dụng để đo sự thay đổi về giá trị và hướng của chuyển động, đặc biệt là trong các cảm biến ba chiều Nhờ vào sự tiến bộ trong công nghệ cảm biến và thiết bị điện tử, việc thu thập dữ liệu từ các đối tượng trở nên dễ dàng hơn Cảm biến gia tốc hiện nay được ứng dụng rộng rãi trong các sản phẩm công nghiệp và điện tử, với các loại cảm biến phổ biến được chế tạo bằng công nghệ vi cơ.
Cảm biến gia tốc là công nghệ quan trọng trong nhiều lĩnh vực, từ kỹ thuật đến sinh học và y tế Trong kỹ thuật, chúng giúp đánh giá hoạt động của phương tiện và giám sát rung chấn trong máy móc cũng như các công trình xây dựng Ở lĩnh vực sinh học, cảm biến được gắn vào sinh vật hoang dã để theo dõi hành vi của chúng Trong y tế, thiết bị gắn cảm biến gia tốc theo dõi sức khỏe, phát hiện các vấn đề như ngã ở người cao tuổi Trong chăn nuôi, cảm biến giúp theo dõi và chẩn đoán bệnh tật ở gia súc thông qua việc thu thập và phân tích dữ liệu hành vi Do đó, nhu cầu phát triển các thuật toán hiệu quả để phân tích dữ liệu từ cảm biến gia tốc ngày càng gia tăng.
Để huấn luyện các mô hình học máy có giám sát cho việc phân loại hành vi gia súc, cần thiết phải xây dựng một hệ thống thu thập dữ liệu thực nghiệm Một mạng truyền thông không dây đã được đề xuất, bao gồm hai thiết bị chính.
Collar gắn ở cổ mỗi cá thể bò sữa (hình 3-3), có vai trò nhƣ là một nút
Gateway sử dụng để thu nhận thông tin từ các cá thể rồi truyền về máy chủ
Collar và Gateway kết nối qua giao thức LoRaWAN, được xây dựng trên lớp mạng không dây LoRa LoRa nổi bật với khoảng cách kết nối rộng hơn so với mạng wifi 2.4GHz, điều này rất phù hợp cho việc truyền dữ liệu trong chăn thả, nơi các cá thể bò sữa di chuyển trên diện tích lớn Tín hiệu LoRaWAN có thể liên lạc giữa hai gateway ở khoảng cách lên đến 30km trong điều kiện lý tưởng Khoảng cách giao tiếp lớn này giúp giảm tải cho các nút trong mạng, tối ưu hóa việc truyền dữ liệu và kéo dài tuổi thọ thiết bị.
LoRa nổi bật với việc tiêu thụ năng lượng rất thấp, cho phép thiết bị hoạt động lên đến 10 năm khi sử dụng pin trong điều kiện thử nghiệm Mỗi gateway của LoRa có khả năng kết nối và giao tiếp với khoảng 1000 thiết bị đầu cuối, mang lại hiệu quả cao trong việc truyền tín hiệu.
Thiết bị cảm biến Collar gắn ở cổ được cấu tạo từ ba thành phần chính: gia tốc kế 3 trục MPU6050, module Ra-02 cho truyền thông không dây LoRa, và vi xử lý Arduino Mega, có nhiệm vụ thu thập và truyền dữ liệu Collar gửi dữ liệu tới LoRa gateway, bao gồm vi xử lý Arduino Pro Mini và module Ra-02, nhằm cung cấp thời gian và nhận dữ liệu từ các nút Collar.
LoRa Gateway là thiết bị quan trọng trong hệ thống truyền dữ liệu, có chức năng trung chuyển thông tin từ các cảm biến đến máy chủ Thiết bị này chịu tải lớn và hoạt động bằng nguồn điện trực tiếp, không sử dụng pin.
Lấy mẫu dữ liệu và tiền xử lý
Trước hết ta cần định nghĩa jành vi của bò, 7 hành vi trong nghiên cứu này được miêu tả nhƣ sau:
• Trạng thái ăn: Con bò phải nằm ở khu ăn và con bò đang ăn thực phẩm
• Trạng thái nằm: Con bò đang nằm, chân và bụng tiếp xúc đất
• Trạng thái đứng: Con bò đứng trên 4 chân của nó
• Trạng thái đứng lên: Bốn chân đẩy cơ thể rời khỏi tiếp xúc mặt đất
• Trạng thái nằm xuống: Hạ cơ thể xuống mặt đất
• Trạng thái đi thường: Gia súc di chuyển với tốc độ chậm
• Trạng thái đi nhanh: Gia súc di chuyển với tốc độ nhanh (đang chạy)
Trong gia tốc kế bao gồm bộ chuyển đổi ADC 12bit để thay đổi điện áp thành dữ liệu số, theo đó gia tốc có thể tính nhƣ sau:
A k là giá trị gia tốc theo hướng k (k = X, Y, Z)
Sample i là giá trị lấy mẫu ở trục k
R là tham chiếm điện áp
S i là độ nhạy trên trục k
Trong thiết lập này, cảm biến thu thập dữ liệu thô với tần số 1Hz Dữ liệu sau đó được phân đoạn để tạo ra các bản ghi, mỗi bản ghi được định nghĩa là một đoạn mẫu dữ liệu có gán nhãn hành vi, phục vụ cho việc huấn luyện mô hình Mỗi bản ghi có chiều rộng cố định là 16 mẫu (tương đương 16 giây), trong đó 10 mẫu là chồng lặp và 6 mẫu là duy nhất Sau khi hoàn tất quá trình tiền xử lý và gán nhãn thủ công, mỗi bản ghi dữ liệu huấn luyện sẽ có cấu trúc như trong bảng 3-1: Ví dụ một bản ghi sau khi chia đoạn.
Theo cách chia đoạn, tổng cộng có 3036 bản ghi thu thập từ cảm biến gia tốc Trong đó, 3685 đoạn dữ liệu được sử dụng để huấn luyện và kiểm thử các thuật toán học máy Số lượng cụ thể các bản ghi của bộ dữ liệu này cho từng hành vi được trình bày trong bảng 3-2.
Hành vi Số lượng Ăn 614
Nằm xuống 327 Đi bộ 739 Đi nhanh 517
Việc trích chọn đặc trưng là một quá trình quan trọng trong phân tích dữ liệu, với sáu đặc trưng phổ biến bao gồm: trung bình, phương sai, độ lệch chuẩn, giá trị hiệu dụng, trung vị và khoảng biến thiên Những đặc trưng này được xác định thông qua các phương pháp tính toán cụ thể, như được trình bày trong bảng 3-3.
(3) Độ lệch chuẩn (standard deviation) √ ∑
Gía trị hiệu dụng (RMS)
là bản ghi dữ liệu thứ j của trục X
N là số lần lấy mẫu trong mỗi bản ghi
Để đánh giá hiệu quả sử dụng các đặc trưng trong huấn luyện mô hình, t-SNE được áp dụng để hình dung các điểm dữ liệu trong không gian 2 chiều Những đặc trưng tốt cho huấn luyện là những đặc trưng thể hiện rõ ràng sự phân bố của các điểm dữ liệu thuộc về các hành vi khác nhau.
Kết quả đánh giá
Kết quả sử dụng t-SNE để biểu diễn dữ liệu trên không gian 2D cho thấy mỗi đặc trưng có hiệu quả khác nhau trong việc phân lập các hành vi Khoảng biến thiên cho thấy sự tách biệt rõ ràng giữa hai nhóm hành vi động (đi bộ, đi nhanh) và tĩnh (nằm, ngồi, đứng), nhưng không phân biệt được các hành vi cụ thể trong mỗi nhóm Đặc trưng giá trị trung bình có khả năng tách biệt hai hành vi nằm và ngồi, nhưng không rõ ràng với ba hành vi còn lại Hai đặc trưng độ lệch chuẩn và phương sai phân tách tốt giữa đi bộ và đi nhanh, nhưng lại cho thấy sự chồng lấn giữa ba hành vi còn lại Khi kết hợp cả sáu đặc trưng, sự phân tách giữa các hành vi đạt hiệu quả tốt nhất, như thể hiện trong hình 3-5.
Dữ liệu cảm biến gia tốc, sau khi được xử lý và trích xuất đặc trưng, sẽ được sử dụng để huấn luyện mô hình nhằm đánh giá hiệu quả của các thuật toán phân loại trong giai đoạn tiếp theo.
Khi đánh giá hiệu quả của một thuật toán, ba thông số quan trọng thường được xem xét là độ chính xác (Accuracy), độ nhạy (Recall), độ chỉ rõ (Precision) và chỉ số F1 (F1-score).
True Positives: Tổng các hành vi đƣợc phân loại đúng với nhãn
False Negatives: Tổng các hành vi bị phân loại sai thành các hành vi khác
False Positives: Tổng các hành vi khác bị phân loại thành hành vi đang xem xét
True Negatives: Tổng các hành vi khác đƣợc phân loại đúng
Phương pháp đánh giá được thực hiện trên hai bộ dữ liệu: một là bộ dữ liệu có sẵn từ J Wang và hai là bộ dữ liệu thu thập từ thực nghiệm với cảm biến được thiết kế trước đó.
Kết quả đối chiếu mô hình phân loại với bộ dữ liệu J Wang cho thấy độ chỉ rõ của từng thuật toán Bảng 3-4 trình bày sự so sánh độ chỉ rõ chung của bốn mô hình phân loại khác nhau.
Thuật toán Độ chỉ rõ
Mô hình phân loại sử dụng thuật toán GBDT đạt kết quả khả quan nhất, như thể hiện trong bảng 3-4 Đánh giá chi tiết hiệu quả của GBDT đối với từng hành vi được thể hiện qua ma trận nhầm lẫn trong bảng 3-5 và 3-6 Các hành vi phân loại chính xác ở mức độ cao, tuy nhiên, vẫn có một số phân loại sai xảy ra đối với hành vi ăn, đứng và đi bộ bình thường.
Dự đoán Ăn Nằm Đứng Đi bình thường Ăn 238 0 97 0
Nằm 4 271 0 0 Đứng 42 0 488 0 Đi bình thường 0 0 0 294 ảng 3-6: Ma trận nhầm lẫn của thuật toán G DT đối với từng hành vi cụ thể trên bộ dữ liệu tự thu thập
Dự đoán Ăn Nằm Đứng Đi bình thường Ăn 221 0 114 0
Nằm 5 270 0 0 Đứng 33 0 498 1 Đi bình thường 3 0 3 290
Hiệu suất của mô hình GBDT trên cả hai bộ dữ liệu được đánh giá qua ba chỉ số: độ nhạy, độ chỉ rõ và f1-score Mô hình cho thấy hiệu suất tổng thể hợp lý với độ chính xác vượt quá 86% cho tất cả các loại hành vi phân loại Độ chỉ rõ và độ nhạy đều tốt, đặc biệt đối với hành vi nằm và đi bộ bình thường Độ chính xác cao nhất được ghi nhận cho các hành vi nằm, đi bộ bình thường và đi bộ tích cực, trong khi độ chính xác cho hành vi cho ăn và đứng thấp hơn một chút nhưng vẫn tốt hơn so với hành vi nằm xuống và đứng lên.
Precision Recall F1-score Support Ăn 0.82 0.89 0.85 244
Nằm 1.00 1.00 1.00 291 Đứng 0.82 0.73 0.78 179 Đi bình thường 1.00 1.00 1.00 294
Weighted average 0.92 0.92 0.92 1008 ảng 3-8: Hiệu suất tổng thể của mô hình G DT đối với các hành vi đối với bộ dữ liệu của tự thu thập
Precision Recall F1-score Support Ăn 0.83 0.68 0.74 335
Nằm 1.00 0.98 1.99 275 Đứng 0.82 0.93 0.87 532 Đi bình thường 0.99 0.98 0.99 296
Nhận xét
Mô hình dự đoán sử dụng dữ liệu gia tốc kế đã cho kết quả khả quan trong việc nhận dạng các thay đổi hành vi, với độ chính xác và hiệu suất phân loại cao cho các hành vi như nằm, đứng, ăn, đi bộ bình thường và đi bộ tích cực Tuy nhiên, mô hình gặp khó khăn trong việc phân biệt giữa hai hành vi đứng lên và nằm xuống, dẫn đến kết quả phân loại không khả quan Mặc dù vậy, các giá trị độ nhạy cao cho thấy ít trường hợp âm tính bị phân loại sai thành dương tính Hiệu suất của thuật toán GDT vượt trội so với nghiên cứu trước đây, ngoại trừ hai hành vi nằm xuống và đứng lên Kết quả không tốt trong việc phân biệt trạng thái nằm và đứng cho thấy cần điều chỉnh các thông số trong quá trình tiền xử lý dữ liệu Tuy nhiên, do tần suất xuất hiện thấp của hai trạng thái này và ảnh hưởng nhỏ đến dự đoán sức khỏe của bò, mô hình phân loại vẫn có thể áp dụng hiệu quả cho năm trạng thái còn lại trong hệ thống thực tế.
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM QUẢN LÝ VÀ PHÂN LOẠI DỮ LIỆU HÀNH VI
Nhu cầu và mục tiêu
Giải pháp phân loại hành vi bò sữa sử dụng học máy, đặc biệt là thuật toán Gradient Boosted Decision Tree, đã cho thấy kết quả khả quan Tuy nhiên, khi áp dụng vào thực tế trên đàn bò lớn, một số vấn đề đã nảy sinh.
Nhu cầu thu thập dữ liệu liên tục trong nhiều ngày đối với đàn bò lớn tạo ra khối lượng dữ liệu đáng kể, do đó cần quản lý dữ liệu cảm biến gia tốc một cách tập trung.
Việc thu thập dữ liệu và chuyển đổi thành file Excel để nạp vào thuật toán phân loại với mô hình đã được huấn luyện sẵn là một quy trình tốn thời gian và công sức, đặc biệt là khi phải xử lý một số lượng lớn gia súc cần theo dõi và phân loại hành vi.
Cách làm thủ công hiện tại không thể phân loại hành vi theo thời gian thực và quản lý kết quả phân tích một cách hiệu quả Để khắc phục những vấn đề này, cần thiết phải xây dựng một hệ thống thông tin nhằm phân loại và quản lý dữ liệu cảm biến cũng như dữ liệu kết quả Hệ thống này cần đạt được các mục tiêu cụ thể để nâng cao hiệu quả quản lý.
Nhận dữ liệu cảm biến gia tốc có thể thực hiện một cách thủ công bằng cách tải file Excel hoặc CSV, hoặc tự động thông qua API từ cảm biến.
Lưu trữ dữ liệu cảm biến theo từng đối tượng gia súc
Tiến hành phân loại hành vi
Lưu trữ dữ liệu phân loại hành vi theo từng đối tượng gia súc
Yêu cầu kỹ thuật
Chương trình thử nghiệm cần đáp ứng các yêu cầu kỹ thuật quan trọng, bao gồm: đảm bảo chức năng phù hợp, chính xác, khả năng hợp tác và an toàn; hỗ trợ chuẩn tiếng Việt Unicode (TCVN 6909) và nhiều bộ gõ khác; thiết kế giao diện ứng dụng thân thiện, dễ sử dụng với thông báo rõ ràng; cung cấp hệ thống báo lỗi chi tiết cho từng tình huống; khả năng thống kê hoạt động của từng cá thể gia súc để đánh giá sức khỏe; bảo mật hệ thống chống lại các cuộc tấn công như DOS, DDOS, SQL injection, và XSS; phát triển trên nền tảng công nghệ phổ biến, với hiệu suất cao và khả năng sẵn sàng tốt; thiết kế giao diện phù hợp với nhiều độ phân giải màn hình, trực quan và dễ hiểu; và cuối cùng, khả năng mở rộng và nâng cấp phần mềm để đáp ứng yêu cầu thay đổi trong quá trình vận hành.
Giải pháp và phân tích lựa chọn
Để đáp ứng các yêu cầu, luận văn này đề xuất xây dựng một chương trình thử nghiệm trên nền web, cho phép giao tiếp với người dùng và thu thập dữ liệu từ cảm biến qua giao thức HTTP Giải pháp này không chỉ giảm thiểu gánh nặng trong việc phát triển, bảo trì và nâng cấp chương trình mà còn phù hợp với xu hướng phát triển của nền tảng IoT (Internet of Things) và tương thích cao với các loại cảm biến.
4.3.1 Kiến trúc vật lý của hệ thống ình 4-1: Kiến trúc vật lý của hệ thống
- Cảm biến gắn ở gia súc truyền dữ liệu gia tốc về máy chủ thông qua HTTP API Tại Trung tâm dữ liệu:
- Máy chủ CSDL sử dụng điều hành Linux (có thể là Debian, Ubuntu, CentOS ) và hệ quản trị CSDL Posgresql với phần mở rộng TimescaleDB
- Máy chủ ứng dụng sử dụng hệ điều hành Linux và dịch vụ nginx
Kiến trúc ứng dụng này cho phép triển khai trên một hoặc nhiều máy chủ vật lý, mang lại sự linh hoạt cho hệ thống Người dùng có thể dễ dàng truy cập chương trình thông qua trình duyệt như Chrome, Firefox hoặc IE, sử dụng mạng LAN hoặc WAN để kết nối.
4.3.2 Ngôn ngữ Python và nền tảng phát triển Đối với frontend, giao diện người dùng thiết kế với HTML, CSS và Javascript Đối với backend, ngôn ngữ lập trình Python và nền tảng Django framework được chọn để xây dựng chương trình thử nghiệm.Python là một ngôn ngữ bậc cao, với ưu điểm vượt trội là dễ học, dễ đọc và dễ nhớ; phần lớn các dòng lệnh được viết tương tự như ngôn ngữ con người Cú pháp của Python nhìn chung ngắn gọn, rành mạch nhƣng hiệu quả, giúp phát triển nhanh
Python nổi bật với hệ sinh thái phong phú và số lượng lớn các thư viện, bao gồm cả thư viện chuẩn và thư viện của bên thứ ba Những thư viện này phục vụ cho nhiều ứng dụng khác nhau, từ khoa học dữ liệu đến phát triển nền tảng web Chính vì vậy, Python đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới hiện nay.
4.3.3 Giải pháp quản trị cơ sở dữ liệu Posgresql Đối với các nền tảng web hiện nay, việc chọn kiểu cơ sở dữ liệu quan hệ (Relational Database Management System – RDBMS) là rất phổ biến, và thực tế là trong chương trình thử nghiệm này, một số kiểu dữ liệu là kiểu dữ liệu quan hệ: Người dùng, Đối tƣợng gia súc, Dữ liệu Tuy nhiên đối với các dữ liệu cảm biến gia tốc đƣợc nạp vào hệ thống, kiểu dữ liệu là dạng time-series với các thông số bao gồm thời điểm, định danh (ID) của cá thể gia súc, chỉ số đo 3 trục của Vì vậy, luận văn này chọn PostgreSQL, cùng phần mở rộng TimescaleDB cho quản lý dữ liệu Đƣợc cho là phần mềm quản trị CDSL mã nguồn mở tiên tiến nhất hiện nay, Postgreql chỉ là một nền tảng CSDL quan hệ có hiệu năng hoạt động tốt, Postgreql nổi bật hơn so với các giải pháp nguồn mở khác nhƣ MySQL, MariaD … là ở chỗ nó còn là mô hình CSDL hướng đối tượng, hỗ trợ các đối tượng người dùng tự định nghĩa và các hành vi của chúng bao gồm các kiểu dữ liệu, các hàm, các thao tác, các tên miền và các chỉ mục Điều này làm cho Postgreql cực kỳ mạnh và linh hoạt Các cấu trúc dữ liệu phức tạp có thể được tạo ra, lưu trữ, và truy xuất
TimescaleDB là một phần mở rộng của PostgreSQL, giúp biến hệ quản trị cơ sở dữ liệu này không chỉ hỗ trợ kiểu dữ liệu quan hệ mà còn tối ưu cho dữ liệu time-series Bằng cách tối ưu hóa cấu trúc lưu trữ, TimescaleDB cải thiện hiệu suất và khả năng quản lý dữ liệu theo thời gian.
Hypertable là một cấu trúc lưu trữ dữ liệu, kết hợp nhiều bảng thành một bảng lớn hơn, được phân chia liên tục theo khoảng thời gian Người dùng có thể tương tác với dữ liệu thông qua hypertable này bằng cách sử dụng các câu lệnh truy vấn SQL cơ bản, tương tự như trong các hệ quản trị cơ sở dữ liệu quan hệ.
4.3.4 Mô hình MVC xây dựng phần mềm thử nghiệm
Django là một nền tảng phổ biến cho việc phát triển hệ thống backend, được xây dựng trên ngôn ngữ lập trình Python và hoạt động như một mô-đun của Python Giống như nhiều nền tảng phát triển web khác, Django sử dụng cấu trúc MVC (Model – View – Controller), giúp tổ chức mã nguồn một cách hiệu quả và dễ quản lý.
Mô hình MVC là kiến trúc hệ thống chia ứng dụng thành ba thành phần chính: model, view và controller, mỗi thành phần đảm nhiệm các khía cạnh khác nhau trong phát triển phần mềm Model xử lý các nghiệp vụ liên quan đến dữ liệu, nơi dữ liệu được truy xuất hoặc ghi vào hệ quản trị cơ sở dữ liệu và chuyển hóa thành định dạng có thể hiểu cho controller Controller nhận và điều hướng các yêu cầu từ người dùng, tìm hàm tương ứng để xử lý các thao tác từ URL và form View đảm nhận việc hiển thị thông tin và tương tác với người dùng, chứa tất cả các đối tượng GUI như văn bản, hình ảnh và ô nhập liệu mà người dùng tương tác.
Mô hình MVC hoạt động như sau: Khi người dùng gửi yêu cầu qua trình duyệt đến máy chủ, Controller sẽ nhận và xử lý yêu cầu đó, bao gồm cả URL và dữ liệu Nếu cần, Controller sẽ gọi Model để làm việc với cơ sở dữ liệu Kết quả sau khi xử lý sẽ được gửi về View để tương tác với người dùng Mô hình MVC được đánh giá cao vì tính chuyên nghiệp trong lập trình và thiết kế, cho phép phát triển ứng dụng nhanh chóng, dễ dàng nâng cấp và bảo trì Đối với các nhóm phát triển từ vài người trở lên, mô hình này giúp phân công công việc cho từng thành phần mà vẫn đảm bảo tính thống nhất của hệ thống phần mềm.
4.3.5 Xử lý các tác vụ chạy nền với Celery và Redis
Trong phần mềm thử nghiệm, một số tác vụ như huấn luyện mô hình cho từng cá thể gia súc và suy luận để phân loại kết quả đòi hỏi tính toán phức tạp và thời gian xử lý lâu Do không thể xử lý đồng bộ trong luồng HTTP request từ người dùng, việc sử dụng hàng đợi tác vụ (task queue) trở thành giải pháp hiệu quả để thực hiện các tác vụ một cách bất đồng bộ và linh hoạt Tiến trình phục vụ được thực thi độc lập với ứng dụng, có thể đặt trên hệ thống khác, và giao tiếp giữa ứng dụng và tiến trình phục vụ diễn ra qua message queue Chương trình gửi công việc đến hàng đợi và theo dõi tiến trình công việc thông qua việc tương tác với hàng đợi.
Giải pháp hàng đầu cho hàng đợi tác vụ trong ngôn ngữ lập trình Python là Celery, một ứng dụng phức tạp với nhiều tùy chọn và hỗ trợ nhiều loại hàng đợi khác nhau Celery rất hiệu quả trong việc xử lý các tác vụ nền trong ứng dụng Django Đối với giải pháp message broker, các phần mềm phổ biến như Redis, RabbitMQ và Kafka thường được sử dụng Redis, với chức năng bộ đệm và lưu trữ trong bộ nhớ (RAM), là lựa chọn đơn giản và hiệu quả để hỗ trợ Celery Sơ đồ nguyên lý hoạt động của Celery và Redis trong việc thực hiện các tác vụ nền được thể hiện rõ ràng trong hình 4-4.
Redis có thể được sử dụng để lưu trữ kết quả của các tác vụ nền do Celery thực hiện, nhưng trong chương trình thử nghiệm này, quyết định lưu trữ kết quả Celery trực tiếp trong cơ sở dữ liệu chính đã được chọn.
4.3.6 Kiến trúc logic tổng thể của phần mềm thử nghiệm ình 4-5: Kiến trúc logic tổng thể của phần mềm thử nghiệm
Các thành phần chính của hệ thống nhƣ sau: ảng 4-1: Mô tả các thành phần chính trong thiết kế chương trình thử nghiệm
Client Là các máy trạm chạy ứng dụng sử dụng trình duyệt web brower
Người dùng tương tác với ứng dụng thông qua tầng Presentation, từ đó gửi yêu cầu đến tầng Business để xử lý Trong quá trình này, tầng Business sẽ kết nối và tương tác với cơ sở dữ liệu thông qua tầng Data để hoàn thành các yêu cầu.
Tầng Presentation là lớp thể hiện dữ liệu, cho phép người dùng tương tác với hệ thống thông qua trình duyệt Tầng này được xây dựng dựa trên mô hình MVC, sử dụng framework Django và ngôn ngữ lập trình Python.
Tầng Là tầng xử lý nghiệp vụ của ứng dụng như quản lý người dùng, quản
Bussines lý cá thể gia súc, quản lý dữ liệu huấn luyện, quản lý dữ liệu phân loại
Thiết kế chức năng hệ thống
4.4.1 Quản trị người sử dụng ình 4-6: Sơ đồ usecase của nhóm chức năng quản trị người dùng
Tên Usecase: Quản trị người sử dụng Mức độ BMT:
Tác nhân chính: Quản trị hệ thống Tác nhân phụ: Người sử dụng
Mô tả Usecase: Chức năng thêm, sửa, xóa, người dùng của quản trị Điều kiện để bắt đầu Usecase:
Người dùng quản trị đã có tài khoản trên hệ thống và đăng nhập Điều kiện để kết thúc Usecase:
Tạo/sửa/xóa thành công người sử dụng
Hiển thị danh sách người dùng có trong hệ thống
Trình tự các sự kiện trong quá trình hoạt động của Usecase:
Để thêm tài khoản mới, người quản trị cần truy cập vào danh sách người dùng và nhấn vào tùy chọn tạo user Tiếp theo, điền các thông tin cơ bản của người dùng, bao gồm email và mật khẩu Cuối cùng, nhấn nút "Create" để hoàn tất quá trình.
Để sửa tài khoản, người quản trị cần thực hiện các bước sau: đầu tiên, từ danh sách người dùng, chọn tài khoản cần cập nhật Tiếp theo, điền các thông tin cơ bản như email và mật khẩu mới Cuối cùng, nhấn nút "OK" để hoàn tất quá trình sửa đổi.
- Đối với xóa tài khoản ước 1: Từ danh sánh người dùng, người quản trị tick chọn các user cần xóa
Bước 2: Từ menu xổ xuống bên trên, nhấn chọn Delete
Hoàn cảnh sử dụng thành công cơ bản:
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công:
Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc: Người dùng quản trị quay về danh sách người dùng
4.4.2 Quản lý thông tin trang trại ình 4-7: Sơ đồ usecase nhóm chức năng quản lý trang trại
Tên Usecase: Người sử dụng Mức độ BMT:
Tác nhân chính: Người sử dụng Tác nhân phụ:
Mô tả Usecase: Chức năng thêm, sửa, xóa, thông tin trang trại Điều kiện để bắt đầu Usecase:
Người dùng đã có tài khoản trên hệ thống và đăng nhập Điều kiện để kết thúc Usecase:
Tạo/sửa/xóa thành công thông tin trang trại
Trình tự các sự kiện trong quá trình hoạt động của Usecase:
Để thêm trang trại, người dùng cần thực hiện các bước sau: đầu tiên, nhấn vào menu Trang trại ở bên trái Tiếp theo, từ danh sách trang trại, chọn tùy chọn tạo thêm Sau đó, nhập các thông tin cơ bản như tên trang trại và địa chỉ Cuối cùng, nhấn nút "Create" để hoàn tất.
Để sửa thông tin trang trại, người dùng cần thực hiện các bước sau: đầu tiên, từ danh sách trang trại, hãy nhấp vào trang trại mà bạn muốn cập nhật Tiếp theo, điền vào các thông tin cơ bản cần thay đổi, bao gồm tên và địa chỉ của trang trại Cuối cùng, nhấn nút "OK" để lưu lại các thay đổi.
Để xóa trang trại, người dùng cần thực hiện các bước sau: đầu tiên, từ danh sách trang trại, hãy nhấp vào trang trại mà bạn muốn xóa Sau đó, từ menu xổ xuống ở phía trên, chọn tùy chọn "Xóa".
Hoàn cảnh sử dụng thành công cơ bản:
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công:
Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc: Người dùng quản trị quay về danh sách trang trại khả dụng
4.4.3 Quản lý thông tin bò sữa ình 4-8: Sơ đồ usecase quản lý thông tin bò sữa
Tên Usecase: Người sử dụng Mức độ BMT:
Tác nhân chính: Người sử dụng Tác nhân phụ:
Mô tả Usecase: Chức năng thêm, sửa, xóa, thông tin gia súc (ở đây là bò sữa) Điều kiện để bắt đầu Usecase:
Người dùng đã có tài khoản trên hệ thống và đăng nhập Điều kiện để kết thúc Usecase:
Tạo/sửa/xóa thành công thông tin bò sữa
Trình tự các sự kiện trong quá trình hoạt động của Usecase:
Để thêm trang trại, người dùng cần thực hiện các bước sau: đầu tiên, nhấn vào menu Bò sữa bên trái Tiếp theo, từ danh sách gia súc, chọn tạo thêm Sau đó, điền các thông tin cơ bản của cá thể gia súc, bao gồm chọn trang trại, tên vật nuôi, ngày sinh, cân nặng, giới tính và giống (bao gồm giống của bố và mẹ) Cuối cùng, nhấn "Create" để hoàn tất.
Để sửa thông tin gia súc, người dùng cần thực hiện các bước sau: Đầu tiên, từ danh sách gia súc, chọn cá thể cần cập nhật Tiếp theo, điền các thông tin cơ bản như trang trại, tên vật nuôi, ngày sinh, cân nặng, giới tính và giống (bao gồm giống của bố và mẹ) Cuối cùng, nhấn "OK" để hoàn tất quá trình cập nhật.
Để xóa gia súc, người dùng cần thực hiện theo các bước sau: đầu tiên, từ danh sách gia súc, hãy chọn những gia súc mà bạn muốn xóa Sau đó, từ menu xổ xuống ở phía trên, nhấn vào tùy chọn "Delete" để hoàn tất quá trình xóa.
Hoàn cảnh sử dụng thành công cơ bản: Thao tác hoàn thành
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công:
Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc: Người dùng quản trị quay về danh sách gia súc khả dụng
4.4.4 Quản lý thông tin dữ liệu huấn luyện và mô hình ình 4-9: Sơ đồ usecase nhóm chức năng quản lý dữ liệu huấn luyện
Tên Usecase: Người sử dụng Mức độ BMT:
Tác nhân chính: Người sử dụng Tác nhân phụ:
Mô tả Usecase: Tải lên dữ liệu huấn luyện cho mỗi cá thể gia súc dưới dạng file xls Điều kiện để bắt đầu Usecase:
Người dùng đã có tài khoản trên hệ thống và đăng nhập Điều kiện để kết thúc Usecase:
Upload thành công dữ liệu huấn luyện của gia súc
Trong quá trình hoạt động của Usecase, người dùng thực hiện các bước sau: đầu tiên, từ menu bên trái, chọn “Dữ liệu huấn luyện” để chuyển đến danh sách; tiếp theo, chọn “Add” để thêm dữ liệu; sau đó, chọn cá thể gia súc bò sữa liên quan và tải lên file excel từ máy tính; cuối cùng, nhấn “OK” để hoàn tất việc tải lên dữ liệu.
Trong bối cảnh sử dụng thành công, thao tác upload dữ liệu diễn ra suôn sẻ, đồng thời quá trình huấn luyện mô hình được khởi động và thực hiện trên tác vụ nền tại máy chủ.
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công:
Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc: Người dùng quản trị quay về danh sách dữ liệu đã upload
4.4.5 Quản lý dữ liệu suy luận và kế quả phân loại ình 4-10: Sơ đồ usecase nhóm chức năng quản lý dữ liệu suy luận
Tên Usecase: Người sử dụng Mức độ BMT:
Tác nhân chính: Người sử dụng Tác nhân phụ:
Mô tả Usecase: Tải lên dữ liệu suy luận cho mỗi cá thể gia súc dưới dạng file xls Điều kiện để bắt đầu Usecase:
Người dùng đã có tài khoản trên hệ thống và đăng nhập Điều kiện để kết thúc Usecase:
Upload thành công dữ liệu suy luận của gia súc
Trong quá trình hoạt động của Usecase, người dùng thực hiện các bước sau: Đầu tiên, từ menu bên trái, chọn “Dữ liệu suy luận” để truy cập vào danh sách Tiếp theo, nhấn “Add” để thêm dữ liệu Sau đó, chọn cá thể gia súc bò sữa liên quan và tải lên file Excel từ máy tính Cuối cùng, nhấn “OK” để hoàn tất việc tải lên dữ liệu.
Trong bối cảnh sử dụng thành công cơ bản, việc upload dữ liệu thành công và quy trình suy luận kết quả đánh giá sẽ được thực hiện trên tác vụ nền tại máy chủ.
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công:
Hành động liên quan sẽ xảy ra sau khi Usecase kết thúc: Người dùng quản trị quay về danh sách dữ liệu đã upload
Giao diện và chức năng sử dụng cơ bản
Trong chương trình thử nghiệm, người sử dụng được cấp quyền truy cập vào dữ liệu trang trại, gia súc và dữ liệu phân loại Số lượng người dùng hạn chế, yêu cầu đăng nhập và được cấp quyền nhất định trên hệ thống Ví dụ về danh sách người dùng có thể thấy trong hình 4-6 trên trang dashboard.
Nhóm tài khoản quản trị (Admin) có toàn quyền, trong khi nhóm tài khoản Staff chỉ có thể quản lý thông tin của chính mình và không có quyền thêm mới hay thay đổi thông tin người dùng khác.
4.5.2 Quản lý thông tin trang trại
Bò sữa thường được chăn nuôi theo đàn lớn tại các trang trại, do đó, người dùng cần quản lý trang trại thông qua các chức năng như liệt kê, thêm, sửa và xóa trang trại Đối tượng "Trang trại" hiện có hai thuộc tính quan trọng là Tên và Địa chỉ, giúp người dùng dễ dàng theo dõi và quản lý thông tin trang trại hiệu quả.
4.5.3 Quản lý cá thể bò sữa và dữ liệu
Chức năng quản lý cá thể gia súc cho phép thêm, sửa và xóa thông tin về bò sữa, bao gồm các thuộc tính chính như tên, ngày sinh, giới tính, cân nặng, giống bò (cả giống bố và mẹ), cùng với trang trại nơi cá thể được chăn nuôi, chọn từ menu dropdown Ngoài ra, hệ thống cũng hỗ trợ quản lý dữ liệu huấn luyện và mô hình huấn luyện cho bò sữa.
Người dùng có thể dễ dàng huấn luyện mô hình phân loại cho từng cá thể bò thông qua phần mềm thử nghiệm bằng cách tải lên file excel chứa dữ liệu cảm biến gia tốc Quá trình này bao gồm việc liệt kê danh sách cá thể bò sữa để huấn luyện mô hình, và được thực hiện qua một tác vụ chạy nền do Celery và Redis quản lý.
Một cá thể bò sữa có thể được huấn luyện với nhiều mô hình phân loại khác nhau từ các tập dữ liệu khác nhau Người dùng có khả năng tải lên tập dữ liệu mới để huấn luyện mô hình cho một cá thể đã có mô hình phân loại sẵn Tuy nhiên, chỉ có một mô hình duy nhất được sử dụng cho quá trình suy luận và phân loại, và mô hình này được mặc định là mô hình mới nhất được tạo ra.
Kết quả huấn luyện mô hình có thể được kiểm tra thông qua lịch sử các tác vụ chạy nền của Celery, như thể hiện trong hình 4-13 Hình 4-18 minh họa lịch sử kết quả của các tác vụ huấn luyện mô hình phân loại.
4.5.5 Quản lý dữ liệu suy luận và kết quả phân loại
Sau khi đã có đƣợc mô hình phân loại từ dữ liệu huấn luyện, việc tiến hành suy luận phân loại đối với dữ liệu đầu vào mới
Nhƣ đƣợc đề cập ở mục
Có hai phương pháp để nạp dữ liệu vào hệ thống Phương pháp đầu tiên là nạp dữ liệu thủ công thông qua việc tải lên file Excel cho dữ liệu huấn luyện, như thể hiện trong hình 4-14 Sau khi dữ liệu được tải lên, quá trình suy luận sẽ được thực hiện thông qua một tác vụ chạy nền bằng Celery.
Sau khi tác vụ chạy nền này kết thúc, kết quả phân loại sẽ đƣợc tự động cập nhật nhƣ ví dụ ở hình 4-16
Một phương pháp để nạp dữ liệu suy luận vào hệ thống là tự động gửi dữ liệu thô từ cảm biến gia tốc đến máy chủ qua HTTP API Trên thiết bị cảm biến gia tốc, quá trình này có thể được thực hiện bằng cách sử dụng phương thức POST với định dạng dữ liệu JSON Hình 4-20 minh họa việc tải lên dữ liệu mới phục vụ cho phân loại hành vi, trong khi hình 4-21 cho thấy kết quả suy luận từ dữ liệu đã được tải lên.
POST /api/2.2/auth/inference HTTP/1.1
Sau đó, việc xử lý chia đoạn dữ liệu, suy luận phân loại cũng sẽ tự động đƣợc thực thi bằng tiền trình chạy nền Celery
Một chức năng quan trọng trong quản lý đàn bò sữa là thống kê hoạt động của từng cá thể theo ngày hoặc theo khoảng thời gian nhất định Việc này giúp người chăn nuôi dễ dàng nhận diện sự bất thường trong hoạt động của bò, từ đó phát hiện sớm bệnh tật hoặc các vấn đề khác Hình 4-17 minh họa đồ thị thông tin hành vi của một cá thể trong 7 ngày gần nhất, cho thấy rõ nét các chỉ số hoạt động.