CHƯƠNG 3 : PHƯƠNG PHÁP ĐÁNH GIÁ VÀ KẾT QUẢ
4.4. Thiết kế chức năng hệ thố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: - Đố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
Hồ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 ni, 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 ni, 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 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
Hồ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
Hồ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 gồi nhóm tài khoản quản trị (Admin) có tồ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 ngồ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 ni 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 bò 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
ình 4-14: Chức năng liệt kê danh sách cá thể bị sữa
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 q 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ụ chạy nền của Celery (hình 4-13):
ì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ả 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
ì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 đó q 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
ình 4-20: Tải lên dữ liệu mới phục vụ phân
loại hành vi ình 4-21: Kết quả suy luận từ dữ liệu tải lên
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.
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ăn nà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. Ngồ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 động và sức khỏe của mỗi cá thể bò sữa.
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
Chemometrics Society, 18(6), 275-285.
[21] Safavian, S. R., & Landgrebe, D. (1991). A survey of decision tree classifier methodology. IEEE transactions on systems, man, and cybernetics, 21(3), 660-674. [22] James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to
statistical learning (Vol. 112, p. 18). New York: springer.
[23] Twomey, N., Diethe, T., Fafoutis, X., Elsts, A., McConville, R., Flach, P., & Craddock, I. (2018, June). A comprehensive study of activity recognition using accelerometers. In Informatics (Vol. 5, No. 2, p. 27). Multidisciplinary Digital Publishing Institute.
[24] Martiskainen, P., Järvinen, M., Skön, J. P., Tiirikainen, J., Kolehmainen, M., & Mononen, J. (2009). Cow behaviour pattern recognition using a three-dimensional accelerometer and support vector machines. Applied animal behaviour science, 119(1- 2), 32-38.
[25] Rossant, C. (2015). An illustrated introduction to the t-SNE algorithm. Oreilly [en
línia], 3.
[26] Zhao, M., Fu, C., Ji, L., Tang, K., & Zhou, M. (2011). Feature selection and parameter optimization for support vector machines: A new approach based on genetic algorithm with feature chromosomes. Expert Systems with Applications, 38(5), 5197- 5204.
[27] Hoang, Q. T., Phung, C. P. K., Bui, T. N., Chu, T. P. D., & Tran, D. T. (2018). Cow behavior monitoring using a multidimensional acceleration sensor and multiclass SVM. International Journal of Machine Learning and Networked Collaborative
Engineering, 2(3), 110-118.
[28] Guo, Y., Corke, P., Poulton, G., Wark, T., Bishop-Hurley, G., & Swain, D. (2006, November). Animal behaviour understanding using wireless sensor networks. In
Proceedings. 2006 31st IEEE Conference on Local Computer Networks (pp. 607-614).
[29] Yoshioka, H., Ito, M., & Tanimoto, Y. (2010). Effectiveness of a real-time radiotelemetric pedometer for estrus detection and insemination in Japanese Black cows. Journal of Reproduction and Development, 1003190258-1003190258.
[30] Tran, T. D., Dao, D. V., Bui, T. T., Nguyen, L. T., Nguyen, T. P., & Susumu, S. (2008, January). Optimum design considerations for a 3-DOF micro accelerometer using nanoscale piezoresistors. In 2008 3rd IEEE International Conference on
Nano/Micro Engineered and Molecular Systems (pp. 770-773). IEEE.