Ở điều kiệnbất thường có liên quan đến mức độ pHvànhiệt độ nước, bơm sẽbật hong khi LED sẽ sáng lên.Người dùng sẽnhận được thông báo thôngqua điệnthoạithôngminh của họSMS và Email khi cá
Trang 1Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
YSC5.F121
XÂY DựNG HẸ THỐNG NUÔI VÀ GIÁM SÁT CÁ CẢNH THÔNG MINH
NGÔ THÀNH ĐẠI1, ĐẶNG VĂN CHƯƠNG1,CAO VĂN KIÊN1’
} Khoa Công nghệ Điện tử, Trường Đại học Công nghiệp Thành phổ Hồ Chỉ Minh
* caovankien@iuh.edu.vn
Tóm tăt. Hồ cá cảnh giúp cho khônggian nhàvà nơilàm việc đẹp hơn, nâng cao hải nghiệmcuộc sống Nhung việc nuôi cá không phảilàđiều dễdàng, đòi hỏi ngườichămsóc phảicókiến thức vàkinhnghiệm Bàinày đề xuất hệ thống nuôivà giám sátcá cảnh thôngminh sử dụng máy tính nhúngJetson Nano là bộ
xửlý trungtâm và một board mạch được thiết kếđểđiềukhiển đèn RGB, điều khiển hệ thống cho ăn tự động vàlọcnước Một camera thu hình ảnh để xử lývà giámsát hồcá từxavới haichế độ hoạt độnglàtự động và bìnhthường, sửdụng chính boardJetsonlàm server cho giao diện người dùng Ý tưởng chính của
hệ thống làsử dụngmô hình hí tuệ nhân tạo (AI) kết hợpThị giácmáy tính để đếm số lượngcá tới vùng cho ăn theo thời gian thực và dữ liệu này sẽ được lưu trữ hên Cloud Sauđó AI sẽ phân tíchdữ liệu và hiển thị lên giaodiện người dùng dướidạng biểu đồ đểngười dùng quan sát xem cá có tớiăn hay không từ đó đưa ra sức khỏe của cá,ngoài ra dữ liệu này sẽ được sử dụng để xâydựng AI chocá ăn tự động
Từ khóa Thị giác máy tính, Nhận diện, AI,Cloud, JetsonNano
Abstract.Havinganaquariumcan make your home or workplace more beautifuland enhance youroverall living experience However, raising fish is not an easy task and requữes knowledge and experience This articleproposes an intelligent fish-raising and monitoring system thatutilizes JetsonNano embedded computer as the cenhal processing unit and a cữcuitboard designed to conhol RGB lights, automatic feeding, and water filtrationsystems Acamera is used to capture andmonitorthe aquarium remotely with two operatingmodes: automatic and normal, usingthe JetsonNano as aserver for theuserinterface The mainidea ofthesystem isto usean AI model combined with computer vision to countthe number of fish comingto the feeding area in real-time, andthis data willbe storedinthe cloud.TheAI model analyze die data and display it on dieuserinterface as a chart forthe user toobserve whetherdiefish have come to eat
ornot, and from there, die health ofdie fish can be determined Furthermore, this data will be used to develop AI forautomatic fishfeeding
Keywords.Computer vision, Recognition, AI, Cloud,Jetson Nano
Nuôi cá cảnh là một hào lưu lâu đờivà xuất hiện ởnhiều nơi Ở Việt Nam, nuôi cá cảnhđượccoi làmột phần không thểthiếu trongvăn hóa.Lịch sử thuần hóa và nuôicánhưmộtsở thíchđãcó từ hơn 2.000 năm hước [1] TạiThành phố Hồ Chí Minh, theo Võ Văn Sanh [2], nghề nuôi và sảnxuất cá cảnh đã có từ những năm 1930,hước năm 1975, Thành phốHồ ChíMinh đứng đầu Đông NamÁ về sảnlượng cá cảnh Nuôi cá giúp giảmstress,làm đẹp hơn nhà cửa và nơi làm việc, giúp cuộc sống hạnh phúc hơn,mang lại may mắn và thịnh vượngchogia đình
Nhưngviệc nuôi cá cảnh gặpnhững khó khăn nhất định vì cần phải có nhiều kinh nghiệm và thời gian chămsóc Chính vì những lý do đó chúng tôiđã quyết định xây dựng Hệthống nuôivà giám sát cá cảnh thông minh ứngdụng AI, Xửlýảnh vàohệ thống để xâydựngmộthệ thốngthông minh, tiệnlợigiảm thiểu phầnnàothời gian của người dùng và giúpnhững ngườichưa biết gì,chưa có kinh nghiệm cũng có thể xây dựng đượcmộtbể cá đẹp
© 2023 Trường Đại học Công nghiệp Thành phố Hồ Chí Minh 215
Trang 2Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-ỈUH
Một số các nghiên cứu liên quan đếnhồ cáthông minh như các nhà nghiên cứu Budi Prijo Sembodo và cộng sự[3] đã tạo ra mộthệ thốngbể cá thôngminh sử dụng Arduino điềukhiển độngcơ servo để đóng
mởmáy cho ăn Động cơ servocó thểtựđộng cung cấpthứcăn cho cá, với lượng thứcăn 12,5 gam được điều chỉnh theo trạng thái của 7loài cá cảnhvà nhu cầu thức ănhàngngày của cá trong hồ Với độ hễ là 3 giây, động cơ servo có thể tự động cho cá ăn theo theothời gian cài đặt Từ dữ liệucảmbiến ánh sángđể điềukhiển relay để bật tắt đèn cho hồ cá Arduino điều khiển máy bơmnước tự động thay nước và cấp nước dựahên độ đục của nước Tiếp theonhà nghiên cứu Daniel Patricko Hutabarat và cộng sự [4] tạo ra mộthệ thống thông minh ứng dụng Internet vạnvậtcho hồ cá, các thông số được kiểm soát bởi hệ thống là cường độ ánh sáng vànhiệtđộ SửdụngESP32 làmvi điều khiển để pháthiển hệ thống,cảm biến ánh sáng, đènđiốt phát quang côngsuất caolàm nguồn sáng, cảm biếnnhiệtđộ DS18B20, lò sưởi,vàmộtquạt 220V
AC được sử dụng để tăng và giảm nhiệtđộ Nghiêncứunàycũng phát hiển một ứngdụngđược người dùng
sử dụng để cung cấp đầuvào chohệ thống, ứng dụngđược phát hiểnsau đó được cài đặttrênđiện thoại thôngminh của người dùngvàđượcsử dụng đểkết nốingười dùng vớihệthốngthông qua internet Việc
dễ dàng thêm vàbớt các thiết bị được sử dụng hên hệ thống là mộttính năngcũngđangđược pháttriển hong
hệ thốngthông minh này Tiếptheocácnhà nghiên cứu Khairunisa và cộngsự [5] đã thiếtkế mộtthiếtbị
hồ cá thông minh tựđộngchocá ăn, cụ thểlàsửdụng Raspberry Pi dựa hên ứngdụngAndroid Be cáthực hiện nhiều nhiệm vụ khác nhau, baogồmcho cáăn tựđộngvàquảnlýđèn trang trícủabể cá Sửdụng một động cơ servo để vận hànhvan chocávàmột relay làm đèn hang hí hồ cá bật / tắt và di chuyển van cho cá
ăn.Neu người dùngquên cho cáăn, các thiết bị cung cấpthứcăn cho cá ăn tựđộng Van cho cá được quay bởi động cơ servo và hoạt động cho ăn tự động Dữ liệu được ứng dụng Android gửi đến cơsởdữ liệu sau
đóvàdữ liệu đượcđọc bởi Rasberry Pi Tiếp theo các tácgiảMohammadFahmi Suhaimi vàcộng sự [6] đã tạo ra một dự ándựa trên mộthệ thống điều khiểnbằng máy tính để phát hiệnnhững thay đổi vật lýtrong nước và giữcho ở điều kiện tối ưu Be cá sẽtựđộng thực hiệntatcả các hoạt độngbaogồm kiểm soátnhiệt
độ, kiểm soátđộ pH, kiểm soát độ đục, cho ăn và kiểm soát mực nước Trạng thái của bể cáliên tục được lưu vào cơ sởdữ liệu thông quahệ thống giámsát loT,người dùng có thể kiểm tra qua mạng Cảm biến pH
vànhiệt độ được sửdụng để thu thập dữ liệu cho hệ thống giámsát cá nước ngọt Đe xử lý dữ liệu thu thập được từcảm biến,Arduino ESP8266 được sử dụng nhưmột bộ điều khiển Tiếp theoR Hafìd Hardỵanto
vàcáccộngsự[7] đã nhận thấy các hồ cá hên thị trường hiện nay làcác hồ cábình thường, vì vậy họ quyết định nâng cấp mộthệ thống nuôi cá cảnhthôngminhhơn bằng công nghệ IOT Họ nhận thấy rằng đa số
hồcá được đặt trong nhà mà cá cũngrấtcần ánh sáng mặt trời vì vậy họ quyếtđịnhxâydựngmộthệ thống
có đèn để khắcphục về vấn đề ánhsáng Một vấnđề kháclà việc cung cấp thứcăn chocávẫn cònthủ công Đôi khichủ sở hữu hồ cá phải cung cấp thứcăn cá bằngtay ít nhất một lần mộtngày Đối với mộtngười bậnrộn thì nguycơ quên cho cá ănlà rất cao Đe khắc phục các vấnđề được đề cập ởtrên, họ đã xây dựng mộthệ thống hồcá hoàn toàn tựđộng,cảvềánh sáng và việccho cácho ăn Tiếp theo Hanis SỵamimiBinti Harunvàcông sự[8] đã xây dụnghệ thốngchămsóccá gồm máy cho cá ăn, quạt, bóngđèn cảm biếnánh sáng và cảmbiến pH Hệ thốnglàm sạch bao gồm cảmbiếnmực nước,bộ trao đổinước và cảm biến độ đục Dự án nàyđược pháttriển hên cơ sởthuận tiệnchongười sửdụng bể cávà người nuôicáquỵ mô nhỏ
Nó còn giúp ổn định chất lượng nước trong bểnuôi bêncạnh việc tiết kiệm chi phí, thời gian và nhân lực
Hệthống sửdụng vi điều khiển PIC 16F877A để điều khiển các cảm biếnvà mô phỏng bằng phần mềm Proteous Nút và LCD đượcsử dụng làm đầuvào và hiểnthịtất cả cácthôngtinliên quan đến hệ thống Với ưu điểm giá thànhrẻ và cơ động, hệ thống này phù hợpvới các hồ nuôi cávừavà nhỏ Tiếp theo MuhammadNur Ikhsỵan và cộngsự [9] đãnghiêncứu xây dựngmộtbể cá thông minh IOTcó thể theo dõi
độpH,nhiệtđộvàđộ đụccủanước hồ cávàhệthốngcho ăn tựđộng Thiếtkế sử dụng ESP8266,cảm biến
pH SENO161, cảmbiến nhiệt độ DSB18B20,cảmbiến độ đục SEN0189 Việc giám sátvà điều khiển hệ thống được thực hiện bằng điện thoại thông minh, cókết nốivớibộđiều khiển thông quaứng dụng Blỵnk MuhammadFikry Danial Bin Mohamad Fadzwi và cộngsự[10] đãtạo ra mộtdựán dựa hên một hệ thống điềukhiển giám sát theo dõitình trạng củabểcá đối với cá Arowana.Có một vài yếutố cầnđượcthực hiện trongviệc giữcá Arowana như mức pH vànhiệt độ nước.Trong dự án, cảm biến pHvà cảm biến nhiệt độ
đã được sử dụng để phát hiện tình hạnghiện tại Ở điều kiệnbất thường có liên quan đến mức độ pHvà nhiệt độ nước, bơm sẽbật hong khi LED sẽ sáng lên.Người dùng sẽnhận được thông báo thôngqua điện thoạithôngminh của họ(SMS và Email) khi các điềukiện này xảy rađiềubất thườngvề nhiệt độ nước, mức độ pH và máy bơm bật tạimột số thời điểm nhất định.TinkerCadđã được sửdụng để xâydựng mạch
216 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh
Trang 3Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈUH
trong khi Thingspeak được sử dụng đềlưu trữ dữ liệu.IFTT được sửdụng đề kết nối thiết bị với điện thoại thôngminh để nhận thông báo
Ở trên là mộtsố đề tài đãlàm liên quanđếnhệ thống hồ cá thông minh, các nghiên cứu trên chủ yếutập trung vào giám sát được các chỉsố,những thayđổivề vậtlý củamôi trường nuôi, tự động cho cá ăn, điều khiển các thiết bị từ xa qua giao diện người dùng Chỉ mới dừng lại ở mức tự động, chưa thực sự thông minh, chưacó camera để giám sát từ xa, chưa thôngbáo các vấn đề bất thường củacá, chỉ mới dừng lại ở việc quantâmđến môi trườngnuôi vàthức ăncho cá
Từ những điểm mạnh và điểm yếu củacác hồ cá thôngminhhiện có, chúng tôi sẽxây dựng một hệ thống nuôivà giám sát cá cảnh thôngminh thừa hưởngđược những điểmmạnh đã có, pháttriểnthêm, khắcphục những điểm yếu.Ngoài ứng dụng IOT vào giám sát, tươngtác, điềukhiển như các hệ thống hiện có, chúng tôi sẽứngdụng AI tự học vàcho lượngthứcăn vừa đủ cho cá, sử dụng thị giác máy tính vào nhậndạng cá cảnh, cảnh báocá chết,giúp người dùng nhậnbiết hường hợp bất thườngcủacá từ hoạt độngcho ăn.Giao diện Webserver để người dùngtươngtác, giám sát
Hình 1 Sơ đồtổng quan hệthống
Bộ xử lý trung tâm(PROCESSOR CENTER) được sửdụnglà máy tínhnhúng Jetson Nano là server vàlà
bộ xử lýchính củatoàn bộhệthốngThông báovềcá chết, hoàn thành huấn luyện mô hình sẽ đượcgửi tới gmailngười dùng đăng kí và lưutrữlại,hiện thị lêngiao diện ngườidùng Hệ thống sẽ có Camerađe giám sát từ xavà cho cáctác vụcần Camera như nhận dạngcá, đếm cá Camera là một phần không thể thiếu trong
hệ thống Ngoài ra đễ người dùngcó thể tươngtác sẽ có giao diện người dùng trên nềntảng web và có thế thích ứngtrên nhiều thiết bị Từ giao diện thì người dùng có thể điêu khiển và trải nghiệm toàn bộ chức năng củahệ thống Giữa bộxửlý hungtâm và giao diệnngười dùng sẽ tương tácvới nhau bằng HTTP và Message Broker là MQTT
Đểkhông ảnh hưởng tới trải nghiệmngười dùng tập trung cho bộxửlý đểxử lý cáctác vụ quantrọng.Vì thếsử dụng mộtvi điều khiển để điều khiển riêng biệt thiếtbịđèn, máy lọc và động cơDC cho cá ăn.Vi điềukhiển sử dụng chính là ESP12E, khi sử dụng viđiều khiển nàyta có thể huyền không dây hoặc có dây
để điều khiểnthiết bị Ở đâyhệthống sẽ truyền có dâysử dụngUART
Cloud sẽ sửdụngMongoDB để lưu trữ các thông tin trong hệthống MongoDBlà NoSQLnên truyvấn rất nhanh
3 PHÂN TÍCH THIẾT KẾT PHẦN MỀM
© 2023 Trường Đại học Côngnghiệp ThànhphốHồChíMinh 217
Trang 4Hội nghị Khoa học trẻ ỉần 5 năm 2023(YSC2023)-IUH
Hình 2 Giao diện người dùng Với một hệ thống để ngườidùng cóthể dùngđược, cần phải có giao diện người dùngthân thiện, bắt mắt
để họtương tác Sẽ sử dụng Flask là mộtframework của Python, kết hợp với Javascript, HTML, css, Bootstrapđể xâydựnggiaodiệnngươi dùng tương thích cho nhiềuthiết bị Hình 2 là mộtsố hình giaodiện người dùng đãđược xâydựng cho hệ thống
Đặt tên cho cá từ giao diện người dùng:
Sau khi đãtìm hiểu từtài liệu chínhthức của YOLOv5[ 11]vềcách để có thể tạo ra một môhình nhận dạng đối tượng, tiếp theo tiến hành thực hiện
Bước 1: Tạo ra một giaodiện để người dùng có theupload hình ảnh vàđánh nhãn vàcàiđặtYOLOv5 trên server
Bước 2: Khi người dùng upload hình, hệ thong sẽ tựđộng tính toán tọa độvới mỗi hình mà người dùng upload Phương phápthực hiệnđược trìnhbày dưới đây:
Phân tíchhình ảnh với cá màu camlà đốitượng cần nhậndạng:
(0,0)
wjmage
Hình 3 Phân tích vừng đối tượng nhận dạng
Từ hình đưa racông thức tính toán tọa độ:
wbox
w image hì
h-box box f
"image
Các thôngsố trên có được khi sửdụng ngôn ngữ lậptrình Javascript đểlấy ra trong đó :
• w_image: là kích thước chiều rộng của hình
• h image: là kích thước chiều cao củahình
218 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh
Trang 5Hội nghị Khoa học trẻ lần 5 nám 2023(YSC2023)-ỈƯH
• (x, ỵ): là tọa độ X, ỵ góc trênbên tráicủa khung khoanh vùng cá
• w_box:làkích thước chiềurộng của khung khoanh vùng cá
• h_box: làkích thước chiềucao của khungkhoanh vừng cá
Bước 3: Tiếp theo hình và tọa độsẽ đượcđưa tới server ràtự động vào đúng thưmục dữ liệu đã tạo sẵn Bước 4: Tự động thêm tên đốitượng nhân dạng và đường dẫn tớitập dữ liệu gồm hình vànhãn vào file C0C0128.yaml củaYOLOv5
Bước 5: Chọn mô hình là YOLOv5s
Bưức 6: Sau khi ngườidùng đãđủdữ liệu yêu cầu, sẽcó nút trên giao diện để ngươi dùngbấm đào tạo rà trongthòigian đào tạo người dùng sẽ được khuyên làtạm thờirời khỏi hệthống
Bước 7: Sau khi huấn luyện thành công sẽ có gửi mail thông báo đến cho ngườidùng
Cảnh báo tình trạng sức khỏe của cá từ hoạt động cho ăn:
Một trong nhũng dâu hiểu để biêttìnhtrạngsứckhỏe củacá là cácó ăn tôt haykhông, một con cá khỏe mạnh sẽ tới ăn ngay khi thả thức ăn xuống, nếu cá bị căng thẳng hoặcsức khỏe không tốt sẽ không tói ăn, mãi saukhi thả mồi, mói tóiănđó là dấu hiệucủa cá có vấnđề về sức khỏe Chính vì thế chúngtôi nảy sinh ra ý tưởngsẽ đếm sốlượng cá tớivùng cho ăn và hiện thịlên cho người dùng dưới dạng biểu đồ để quan sát,tấtcảdữ liệu sẽ được lưu lại rà ngườidùng có thểtruy cứu đểxembấtcứlúcnào
Khi tới thòi gian cho ăn, sẽ thả mồi xuống hồ ràtiến hành mỏ' camera, sau đó sẽ sử dụng OpenCVxử lý tùng frameảnh và đếm sốlượng cá xuấthiện trong vừng cho ăn, sau đó các dữ liệu đếm được sẽ lưu lên Cloud Khingười dùng truyvấn, hệ thống sẽ tiếnhành phân tích vàhiệnthị các dữ liệu cá đếmđược đưói dạng biểu đồ đề ngườidùng quan sát
Khi đếm cá sẽ không đếm toànbộ hồ cá, mà chỉ đếm cá vàovùng cho ăn, chi tiết cách thựchiện khi mở cameranhưhình dướiđây:
(3) (2)
Hình 4 Quytrìnhmởcamera đếmcá Khi cameramở sẽ bắt đàu đếm cá,sẽcó môtkhung hìnhchữ nhật được vẽ lên camerađểkhoanh vùng mồi thả xuốngnhư hình (1) trongHình 4 Sau đósẽcắt frame hình ràchỉlấy phần ô hình chữ nhật đónhưhình (2), sau đó sẽ dùng các lã thuật xửlý ảnh để tách racá và đếm cá trong vùng cho ăn
Chỉ đếm cá trong khung, không đếm cáđangở trên viền khungvà ngoài khung, sau các bước xử lý sẽđược nhưhình(3) và hệ thống sẽ đếm được là 1 con vàlưu vào Cloud
Xây dựng AI tự học và cho lượng thức ăn vừa đủ cho cá:
Ở mụctrên Cảnhbáo tinh trạng sức khỏecủa cátừ hoạt độngcho ănta đã thu được dữ liệu sốlượng cá tới vùng cho ănkhi thả mồi xuống vàlượng thức ăn cài đặttươngứngvàdữliệu này đã được lưu trên Cloud Chính vi thế ta sẽ truy vấn dữbệutừCloudxuốngvà sử dụng dữ liệu này để huấn luyệnlà AI cho lượng thức ăn vừa đủ cho cá,với các thời gian đã càiđật trước đó
Sẽ sử dụng TensorflowKeras để tạomôhình huấnluyên AI, để có thể huấn luyện phải cần dữ liệu huấn luyện đầu vào (X) vàđầu ra (Y) Với nhucầu, ta sẽ cho dữ liệu số lượng cá tới ăn sẽ là dữ liệuđầu vào rà thòi gian cài đặtsẽ làdữliệu đầu ra Tiến hành xử lí phân chiadữliệu, chọn mô hình và tiếnhành huấn luyện
về lựa chọn mô hình cho AI, do dữ liệulà một chuỗi dữbệusốlượngcáchính vi thế sẽ chọn môhình LSTM
LSTM có thểhiểuvàmô hình hóa các mối quanhệphức tạpgiữacácphần tử trongchuỗi LSTMthường được sử dụng để dự đoán vàdự báo nhờkhả năng xử lý chuối thông tinvàbộ nhớ dàihạn, LSTM có thể học và nhận biết các mô hình, xu hưóng,và sựbiến đổi trongdữ liệu thời gian
© 2023 TrườngĐạihọcCôngnghiệp Thành phốHồ Chí Minh 219
Trang 6Hội nghị Khoa học trẻ lẩn 5 năm 2023(YSC2023)-ỈUH
Đểtự tay xây dựng ra một môhình LSTMrất phức tạp đối với người pháttriển mới tiếpxúc với Deep Learning, AInhung nhờ có Tensorflow thì sẽ giúp cho ngưòimới có thể dễ dàng xây dựng ramô hình LSTM Nhiệm vụ chính của người phát triển là cằnxử lý dữliệu đằu vào để mô hình có thể biên dịch và huấn luyện mô hình
AI khihuấn luyệnthànhcông sẽ dự đoán cho nguời dùng càiđặt luọngthức ănvừa đủ cho cá, gợi ý thay đồi thông sốđang cài đặt Đuong nhiênvới thòi gian mớichuatùng cài đặtlằn nào sẽ không có dũ liệu cho
AI vì thế AI sẽtự động bỏqua và khôngdụ đoán, chỉ dựđoán thời gian có dữ liệu
AI sẽtự động truy vấndữ liệu đểtựđộng học lại sau mỗi 7 ngày, đểđảm bảo AIsẽ luôn đuợc cập nhậtđể thông minh hon Chitiếtthểhiện sơ đồ Hình 5 duói đây:
Hình 5.Sơđôquytrình tựđộng choAI học lại
Sẽlấythời gian hiện tại vàso sánhvới thòi gian đãđượcluu lại nếu bằngnhau sẽ tiến hành đào tạo lại AI
và lấythời gian hiện tại cộngthêm 7 và luu lại sẽ ra ngày tiếp theo cần đào tạo lại AI Nếu không bằng sẽ khônghọc Vì thế sẽ cứcách7 ngày AI sẽ truy vấndữ liệu mới nhấtđề học lại mô hình Khi đã cómô hình
AI tốt sẽ tiến hành loadmô hình và sử dụng Quá trìnhload môhình vàdự đoánluọngthứcăn vừađủ cho
cásau đó trảvề cho nguòi dùng trên giao diện chi tiết thể hiện sơđồ duới đây:
Hình ố Sơ đô quy trình load mô hình AI dựđoán lượng thức ăn Vớimỗi lần dự đoán đềucằn phải có dữliệu gần nhất củakhung giờ cài đặt, vì thế cần kết nốitói Cloud lấy ra dữ liệu gần nhất của khung giờđósauđó xửlý vàdự đoán Vì dữ liệu dự đoán không thay đổi liên tục nên mỗi lằn dụ đoán sẽ luulại kết quả và dự liệu dự đoán Cho nên tói lằn dự đoán tiếp theo tasẽso sánh dũ liệu dự đoánhiện tại và dữ liệu đã luu ờ lằn truớcđó xem có khác nhauhaykhông nếu khác sẽtiến hành load mô hình và dựđoán lại, còn nếu vẫnlàdữ liệu cũ sẽ tiếnhành lấy ra kết quảđã luuvàtrảvề cho nguôi dùng không cần dự đoán lại Cách nàysẽtăng trải nghiệmcho nguòi dùng
Phát hiện cá chết:
Đểphát hiện cá chết sẽ sửdụng Y0L0v5 để nhận dạng cá chết Quy trình thực hiệnnhu sơ đồ Hình 7 duới đây:
220 ©2023 Trường Đại học Công nghiệpthành phố Hồ Chí Minh
Trang 7Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈUH
Hình 7 Sơ đô quytrìnhhuân luyện môhìnhphát hiệncá chêt
Do sử dụngYOLOv5 đểpháthiện cá chết nênnhiệm vụ chính là cần thuthập dữliệu tắt và đủ Để cóthể dùng môhình cho các loại cá khác nhau,sẽ tiến hành đánh nhãn vào phần mắt của cá, do khi cá chết sẽ nổi lên và mắt sẽ huong lênphíacamera vìthế camerasẽ pháthiện đuợc Sau đó dữ liệu sẽ đua vào một thu mục gồm hình và nhãn và gán đuòng dẫn vào file cocol28.yaml của YOLO và tiến hành huấn luyện Để
cóthể huấn luyện đuợc nhanh tasẽ sử dụng GPU củaGoogleColab để huấn luyện mô hình Sau khihuấn luyệnxong tiến hành kiếm tra mô hình và lưu lạimô hình.Đưa môhình lên bộ xử lý để sửdụng
Kết quả saukhi huấn luyện 100 epochs:
Từ biểuđồ trên tathấy được các chỉ số chính để đánh giá môhình đã huấn luyện được:
+ precision là độ chính xác, độ tin cậy của mô hình thì ta thấy ở epochs cuối cùng thì giá trịnằm trong khoảng > 0.8, giátrị này càng cao thì môhình nhậndạngsẽcàng chuẳn
+ recalllà độnhạy cửa môhình nằmtrong khoang > 0.8 cho thấymô hình huấn luyện được có tỉ lệ bỏsót
là thấp
+ mAP (Mean Average Precision ) độ chính xác trung bình giá trị này môhìnhthuđược >0.8, giá trị càng lớn càng chính xác
Với các chỉsốtrênta thấy được mô hình có thể dùng được
© 2023 Trường Đại họcCôngnghiệp Thành phốHồ ChíMinh 221
Trang 8Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-ỈUH
Saukhi một thời gian quan sátthi quan sát đượclà khi cá chết sẽ trôi dạt về mép hồ vì thếđể tăng thêm độ chínhxác hơnnhómsẽ chỉ phát hiện ở mép hồ Chi tiết thực hiện được trình bàydưới đây:
Hình 9 Phântíchhình ảnhchỉ lấy cá chếtngoàimép hồ Tiến hành vẽmột hình chữ nhật lên camera sử dung hàm rectangle của OpenCV, đểvẽđược hình chữ nhật
ta phải có tạo độởphía trên bêntrái (x, y) và phía dưới bênphải (x2,y2) vàsẽ chừa lại phần méphồ cần nhậndạng cá nhưví dụ hình màu đỗ Hình9 trên
YOLOv5 khinhận dạngđược đốitượngcũngvẽramột hình chữ nhật baoquanhđối tượng nhậndiện Vì thế cũngcóthể lấy ra được vị trí của đốitượng nhận diệntừkhung hình chữ nhậtđó,vídụnhư trên Hình
9 là khungmàuvàng với tọa độ hìnhchữ nhật sẽ là (xd, yd) và (xd_2, yd_2)
Từđó chỉđể chỉ nhận dạng cá ngoài mép hồhay nóicách khác ngoài khung màu đỏ thì ta sẽcócông thức kiểm tra nhưsau:
xd < X and yd<y and xd2 > x2 and yd2 > y2
Từ đó sẽáp dụng công thức (2)đóvà chỉ nhậndạng cá ởmép hồ là cá chết
(2)
Hình 10 Sơđồquỵtrìnhthông báo cáchnhau Ó0phút
Từ sơ đồ Hình 10 ta thấy khi phát hiện cá chết sẽ so sánh thời gian hiện tại với thòi gian đã lưu lại nếulớn hơnhoặc bằngsẽ tiến hành gửigmailvà thời gian được lưu sẽcậpnhập lại bằng thòi gianhiện tạicộng cho
60 thi sẽ ra lầngủi gmail tiếp theo Khi gửi gmail sẽtruy vấn tớiCloudlấygmail người dùng đãđăng kí và gửithông báo cá chết tới cho người dùng, và hiện thị thông báo lên giao diện ngườidùng
Cho cá ăn tự động và điều khiễn thiết bị:
Trang 9Hội nghị Khoa học trẻ lần 5 nam 2023(YSC2023)-ỈUH
Hình11 Sơ đồ quy trìnhcho cáăn tựđộng Trên giao diện người dùng sẽ cócácmụcđể ngườidùng dễ dàng cài đật và điều khiển Cho cá ăntự động bằng cách cài đậtthòi gian thả mồi cho cá ăn Nhấn nút làcó thể điều khiển thiết bị từ xa
Sơ đồ Hình 11 trên là quy trìnhthả mồicho cá ăn tự động Hệthốngsẽ luônkiểm tra và khi tớithời gian,
bộ xửlýsẽtruyềntínhiệu điều khiển tới vi điều khiển bằng uART và điều khiển máy cho ăn thảthức ăn xuống Lượng thức ănngười dùng có thể điềuchỉnh, cài đật càng lớn thì máy quay thức ăn quaycàng lâu chothức ăn càng nhiều Saukhi thả mồixuống, bộ xửlý sẽ mở Camera và đếmsố lượngcá vào khuvục cho ăn mà khôngđếm hết toàn bộhồ cá chỉ tiết thực hiện trìnhbày ở mụctrên Tiếp theo các dữ liệu đó được lưu lại trên Cloud và sẽ sử dụng M QTT publishdữ liệutớigiao diện ngươi dùng, giao diện sẽsubscribe với topic bộ xử lýgửivà lấydữ liệu hiệnthịthời gian thựclêngiao diện ngườidùng
Vóiđiều khiển thiếtbị khingười dùng điều khiển từ giao diện người dùng sẽ sử dụng MQTT publish dữ liệutới bộ xửlý, bộ xửlý subscribe với topic đó và sẽ lấy đượcdữ liệu điềukhiển sẽ truyền dữliệu đỉều khiển tớivi xử lýbằngUART
Đemột người lạ có thể dễ dàng biết đượctrong hồ là loạicá gì, ăn như thế nào, cácthông tinvề cá, Chính vi thế cần một hệ thốnglưu trữ giúp người dùng lưulại các thông tin của cá: ngày vàohồ, ảnh của
cá, loại cá gì, cácghichú cá vàcácthông tín có thểchỉnh sủa bất cứ lúc nào Để bất cứ aicó thể mỏ' thiết
bị củamình vàtruy vấn thông tin của loại cá đó có trong hồ
Chi tiết quy trình nhưsơđồ Hình 12dưới đây:
Hình12 Sơđồ quy trình luu trữ thông tin cá Trên giaodiệnngười dùng sẽ cóform đểnhậpthông tin cá của mình Người dùng chỉcần nhậpthông tín
và nhấnlưu lại, thông tín đó sẽ đượcgửitớibộxử lý và lưu lạivàoCloud, sau đósẽhiện thị về cho người dùng dữ liệu màngườidùng vừa nhập
Ngoàirahệthốngsẽđượcbảomật, khôngphải ai cũng có thể truy cập vào hệ thống, cần phảicómật khẩu mới có thể vàođược hệ thống Chi tiết quy trình nhưsơ đồ dướiđây:
© 2023 Trường ĐạihọcCôngnghiệpThànhphố Hồ Chí Minh 223
Trang 10Hội nghị Khoa học trẻ lần 5 năm 2023(YSC2023)-IUH
Hình 13 Sơ đồ quy trình thực hiện xác thực người dùng Khi người dùng vào địa chỉ IP hệthống,sẽ bắt người dùngphải đăngnhập vớitên ngườidùng vàmật khẩu Sau đó thôngtinnàysẽ đượcđưa tới bộ xử lý,bộxứ lýsẽ truy vấn thông tin từ Cloud xuốngvàtiến hành xác thực thông tin người dùng nhậpnếu đúng sẽ cho người dùngvào hệ thống còn sai sẽ khôngcho phép truy cập
4 PHÂN TÍCH THIẾT KÉ PHẦN CỨNG
4.1 Thiết kế 3D khung vỏ hệ thống
Đểtoàn bộthiết bịvà bộ xử lý được đóng gói gọn gàng, đẹp vàantoàn cho người sử dụng cần phải có vỏ hộpđể đóng gói tất cả vào Các chitiếtsẽ được thiếtkế vẽ riêng biệttrên phần mềm Freecadsau đó sẽ liên kết với nhau thành một bộ hoàn chỉnh chi tiết như Hình 14 và Hình 14 là bản thiết kế hoàn chỉnhrender ra
mô hình 3D
Hình 14 Thiết kế 3D vỏ hộp hệ thống
4.2 Thiết kế mạch điều khiển
Hình 15 Sơ đồ khối mạch điều khiển
224 © 2023 Trường Đại học Công nghiệp thành phố Hồ Chí Minh