L ỜI CẢM ƠN
4.4. 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: - Đối với thêm tài khoản
ƣớc 1: Từdanh sánh ngƣời dùng, ngƣời quản trị nhấn tạo user
ƣớc 2: Các thông tin cơ bản ngƣời dùng bao gồm email và mật khẩu
ƣớc 3: Nhấn „Create‟
- Đối với sửa tài khoản
ƣớc 1: Từ danh sánh ngƣời dùng, ngƣời quản trị click vào user muốn cập nhật
ƣớc 2: Điền thay đổi các thông tin cơ bản ngƣời dùng bao gồm email và mật khẩu
ƣớc 3: Nhấn „OK
- Đố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ề
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: - Đối với thêm trang trại
ƣớc 1: Click vào menu Trang trại bên trái
ƣớc 2: Từ danh sánh trang trại, ngƣời sử dụng nhấn tạo thêm
ƣớc 2: Các thông tin cơ bản ngƣời dùng bao gồm tên trang trại và địa chỉ ƣớc 3: Nhấn „Create‟
- Đối với sửa trang trại
ƣớc 1: Từ danh sánh trang trại, ngƣời sử dụng click vào trang trại muốn cập nhật
ƣớc 2: Điền thay đổi các thông tin cơ bản của trang trại bao gồm tên và địa chỉ ƣớc 3: Nhấn „OK‟
- Đối với xóa trang trại
ƣớc 1: Từ danh sánh trang trại, ngƣời sử dụng click vào trang trại cần xóa
ƣớ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 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:
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: - Đối với thêm trang trại
ƣớc 1: Click vào menu Bò sữa bên trái
ƣớc 2: Từdanh sách gia súc, ngƣời sử dụng nhấn tạo thêm
ƣớc 2: 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 gia súc, giống (bao gồm giống của bố và mẹ)
ƣớc 3: Nhấn „Create‟
- Đối với sửa gia súc
ƣớc 1: Từdanh sách gia súc, ngƣời sử dụng click vào gia súc muốn cập nhật
ƣớc 2: Điền thay đổi 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 gia súc, giống (bao gồm giống của bố
và mẹ)
ƣớc 3: Nhấn „OK‟
- Đối với xóa gia súc
ƣớc 1: Từ danh sách gia súc, ngƣời sử dụng click vào các gia súc cần xóa
ƣớ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: 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
Trình tự các sự kiện trong quá trình hoạt động của Usecase:
ƣớc 1: Từ menu trái chọn “Dữ liệu huấn luyện”, ngƣời dùng đƣợc chuyển đến một danh sách
ƣớc 3: Chọn cá thể gia súc bò sữa mà dữ liệu này gắn với cùng với chọn file excel từ máy tính
ƣớc 4: Nhấn „OK‟ để tải lên
Hoàn cảnh sử dụng thành công cơ bản: Thao tác upload thành công và việc huấn luyện mô hình bắt đầu đƣợc thực thi trên tác vụ nền ở 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.
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
Trình tự các sự kiện trong quá trình hoạt động của Usecase:
ƣớc 1: Từ menu trái chọn “Dữ liệu suy luận” (Inferrence data), ngƣời dùng đƣợc chuyển đến một danh sách
ƣớc 2: Chọn „Add‟
ƣớc 3: Chọn cá thể gia súc bò sữa mà dữ liệu này gắn với cùng với chọn file excel từ máy tính
ƣớc 4: Nhấn „OK‟ để tải lên
Hoàn cảnh sử dụng thành công cơ bản: Thao tác upload thành công và việc suy luận ra kết quảđánh giá bắt đầu đƣợc thực thi trên tác vụ nền ở 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.5. Giao diện và chức năng sử dụng cơ bản
4.5.1. Quản lý người dùng
Trong phạm vi
chƣơng trình thử nghiệm,
ngƣời sử dụng chƣơng trình đƣợc coi là những ngƣời có thể truy cập vào dữ liệu trang trại, gia súc, dữ liệu phân loại. Do đó sốngƣời sử dụng
ít và đòi hỏi đăng nhập, đƣợc cấp quyền nhất định trên hệ thống. Hình 4-6 là ví dụ danh sách ngƣời dùng ở trang dashboard.
N goài nhóm tài khoản quản trị (Admin) có toàn bộ quyền hạn, nhóm tài khoản khác Staff không thể thêm mới hoặc thay đổi thông tin ngƣời dùng khác ngoài chính mình.
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 thành các trang trại, vì vậy chức
năng quản lý trang trại của ngƣời dùng bao gồm Liệt kê, Thêm, Sửa, Xóa trang trại. Hai thuộc tính của đối tƣợng “Trang trại” hiện gồm Tên và Địa chỉ.
ình 4-12: Chức năng liệt kê trang trại
4.5.3. Quản lý cá thể bò sữa và dữ liệu sữa và dữ liệu
Cũng giống nhƣ chức
năng quản lý Trang trại, chức năng quản lý cá thể gia
súc cũng bao gồm thêm, sửa, xóa đối tƣợng bò sữa.
Đối với chức năng
thêm mới bò sữa, các thuộc
tính chính bao gồm: Tên, Ngày sinh, Giới tính, Cân nặng, Giống bò (bao gồm cả giống của bố và mẹ), kèm theo là Trang trại nơi cá thể này đƣợc chăn nuôi chọn từ dropdown menu:
ình 4-15: Chức năng thêm, sửa, xóa cá thể bò sữa
4.5.4. Quản lý dữ liệu huấn luyện và mô hình huấn luyện
Ngƣời sử dụng có thể trực tiếp huấn luyện mô hình phân loại một cách tiện lợi cho từng cá thể bò ngay trên phần mềm thử nghiệm này. Thao tác này đƣợc thực hiện bằng việc tải lên file excel (theo format định sẵn) chứa dữ liệu cảm biến gia tốc của
một đối tƣợng bò sữa để huấn luyện mô hình. Sau đó việc quá trình huấn luyện mô
hình đƣợc tiến hành thông qua một tác vụ chạy nền (background task), tác vụnày đƣợc khởi tạo và quản lý bởi Celery và Redis nhƣ mô tảở mục 4.3.4.
ình 4-16: Huấn luyện mô hình cho cá thể bò sữa
Một cá thể bò sữa có thể có nhiều mô hình phân loại đƣợc huấn luyện bởi các tập dữ liệu khác nhau nhƣ hình 4-12. Ngƣời sử dụng có thể tải lên tập dữ liệu khác để
huấn luyện mô hình mới cho một cá thể đã có sẵn mô hình phân loại từ trƣớc. Tuy nhiên, chỉ có duy nhất một mô hình duy nhất đƣợc sử dụng cho việc suy luận và phân loại (inference) sau đó. Ở đây, mô hình này đƣợc mặc định là mô hình mới nhất đƣợc tạo ra.
ình 4-17: Danh sách các tập dữ liệu huấn luyện
Kết quả của việc huấn luyện mô hình có thểđƣợc kiểm tra từ lịch sử các tác vụ
ình 4-18: Lịch sử kết quả 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
4.1, có hai cách để nạp dữ liệu này vào hệ thống. Cách thứ nhất thủ công là bằng việc
ình 4-19: Danh sách tập dữ liệu phân loại được tải lên thủ
tải lên file excel nhƣ đối với dữ liệu huấn luyện (hình 4-14), sau đó quá trình suy luận
cũng đƣợc thực thi bởi 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.
Cách thứhai để nạp dữ liệu suy luận vào hệ thống là tựđộng đẩy dữ liệu thô từ
cảm biến gia tốc đến máy chủ thông qua HTTP API. Ở phía thiết bị cảm biến gia tốc, việc này có thểđƣợc thực hiện bằng phƣơng thức POST với định dạng dữ liệu json.
ình 4-20: Tải lên dữ liệu mới phục vụ phân
POST /api/2.2/auth/inference HTTP/1.1 HOST: testserver.com Content-Type:application/json Accept:application/json { "data": { "type": "inference-data", "cattle-id": "123", "time": "2020-08-22T08:56:29.000Z", "x-axis": "-0.93", "y-axis": "0.08", "z-axis": "-0.01", } }
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.
4.5.6. Thống kê kết quả
Một chức năng quan trọng đó là thống kê hoạt động của mỗi cá thể bò sữa theo ngày hoặc theo một khoảng thời gian nhất định. Điều này cho phép ngƣời chăn nuôi
nhận diện một cách trực quan và định tính sự bất thƣờng trong hoạt động của mõi cá thể, giúp phát hiện sớm bệnh tật hoặc bất thƣờng. Hình 4-17 là đồ thị thông tin hành vi của một cá thể trong 7 ngày gần nhất.
CHƢƠNG 5: KẾT LUẬN
Cảm biến gia tốc có thểđƣợc sử dụng để nhận biết các kiểu hành vi khác nhau ở
gia súc. Luận văn này đã thiết kế một công cụƣớc tính hành vi của bò có thể phân loại dữ liệu gia tốc 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, đi nhanh. Các đặc trƣng cho dữ liệu gia tốc của từng hành vi đƣợc nghiên cứu và áp dụng trong một số mô hình phân loại. Việc sử dụng hợp lý các đặc trƣng
thống kê cho độ chính xác tổng thể tốt là 86%. Kết quảnày đã cho thấy rằng các hành vi quan trọng của bò sữa có thểđƣợc phân loại chính xác bằng cách sử dụng một thuật toán Gradient Boosted Decision Tree đơn giản đƣợc áp dụng cho dữ liệu đƣợc thu thập từ một máy đo gia tốc ba trục gắn trên chân.
Sử dụng các kết quả của phép phân loại này, luận vănnày đề xuất xây dựng một phần mềm thử nghiệm trên nền tảng web nhằm quản lý dữ liệu một cách tập trung,
đồng thời tiến hành huấn luyện mô hình phân loại và sử dụng các mô hình phân loại ấy
để tiến hành suy luận dựđoán các dữ liệu hành vi mới đƣợc nạp vào. Ngoài ra, chƣơng
trình còn có chức năng thống kê các kết quả phân loại theo ngày nhằm theo dõi hoạt
TÀI LIỆU THAM KHẢO
[1] European Commission. Directorate General for Health and Food Safety. (2017). Welfare of cattle on dairy farms: overview report. Publications Office. https://doi.org/10.2875/815860
[2] Porto, S. M. C., et al. "Localisation and identification performances of a real-time location system based on ultra wide band technology for monitoring and tracking dairy cow behaviour in a semi-open free-stall barn." Computers and Electronics in Agriculture 108 (2014): 221-229.
[3] Rahman, Ashfaqur, et al. "Cattle behaviour classification from collar, halter, and ear tag sensors." Information processing in agriculture 5.1 (2018): 124-133.
[4] Wang, Jun, et al. "Development and validation of an ensemble classifier for real- time recognition of cow behavior patterns from accelerometer data and location data."
PloS one 13.9 (2018): e0203546.
[5] Atallah, Louis, et al. "Sensor positioning for activity recognition using wearable accelerometers." IEEE transactions on biomedical circuits and systems 5.4 (2011): 320-329.
[6] Davila, Juan Carlos, Ana-Maria Cretu, and Marek Zaremba. "Wearable sensor data classification for human activity recognition based on an iterative learning framework."
Sensors 17.6 (2017): 1287.
[7] Zehner, Nils, et al. "System specification and validation of a noseband pressure sensor for measurement of ruminating and eating behavior in stable-fed cows."
Computers and Electronics in Agriculture 136 (2017): 31-41.
[8] Müller, Roger, and Lars Schrader. "A new method to measure behavioural activity levels in dairy cows." Applied Animal Behaviour Science 83.4 (2003): 247-258.
[9] O‟Driscoll, Keelin, Laura oyle, and Alison Hanlon. "A brief note on the
validation of a system for recording lying behaviour in dairy cows." Applied Animal Behaviour Science 111.1-2 (2008): 195-200.
[10] Sugiyama, Masashi, and Motoaki Kawanabe. Machine learning in non-stationary environments: Introduction to covariate shift adaptation. MIT press, 2012.
[11] Mohri, M., Rostamizadeh, A., & Talwalkar, A. (2018). Foundations of machine learning. MIT press.
[12] Borchers, M. R., Chang, Y. M., Tsai, I. C., Wadsworth, B. A., & Bewley, J. M. (2016). A validation of technologies monitoring dairy cow feeding, ruminating, and lying behaviors. Journal of dairy science, 99(9), 7458-7466.
[13] Shahriar, M. S., Smith, D., Rahman, A., Freeman, M., Hills, J., Rawnsley, R., ... & Bishop-Hurley, G. (2016). Detecting heat events in dairy cows using accelerometers and unsupervised learning. Computers and electronics in agriculture, 128, 20-26. [14] Arcidiacono, C., Porto, S. M. C., Mancino, M., & Cascone, G. (2017). Development of a threshold-based classifier for real-time recognition of cow feeding and standing behavioural activities from accelerometer data. Computers and electronics in agriculture, 134, 124-134.
[15] Diosdado, J. A. V., Barker, Z. E., Hodges, H. R., Amory, J. R., Croft, D. P., Bell, N. J., & Codling, E. A. (2015). Classification of behaviour in housed dairy cows using an accelerometer-based activity monitoring system. Animal Biotelemetry, 3(1), 1-14. [16] Ravi, N., Dandekar, N., Mysore, P., & Littman, M. L. (2005, July). Activity recognition from accelerometer data. In Aaai (Vol. 5, No. 2005, pp. 1541-1546).
[17] Lutz, M. (2001). Programming python. " O'Reilly Media, Inc.".
[18] Chun, W. (2001). Core python programming (Vol. 1). Prentice Hall Professional. [19] Hsu, C. W., Chang, C. C., & Lin, C. J. (2003). A practical guide to support vector classification.
[20] Myles, A. J., Feudale, R. N., Liu, Y., Woody, N. A., & Brown, S. D. (2004). An introduction to decision tree modeling. Journal of Chemometrics: A Journal of the