NGHIÊN cứu, PHÁT TRIỂN hệ THỐNG tự ĐỘNG NHẬN DIỆN và PHÂN LOẠI một số BỆNH THÔNG THƯỜNG TRÊN THỎ NUÔI BẰNG CÔNG NGHỆ xử lý ẢNH THÂN NHIỆT

76 255 1
NGHIÊN cứu, PHÁT TRIỂN hệ THỐNG tự ĐỘNG NHẬN DIỆN và PHÂN LOẠI một số BỆNH THÔNG THƯỜNG TRÊN THỎ NUÔI BẰNG CÔNG NGHỆ xử lý ẢNH THÂN NHIỆT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ - ĐIỆN  ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: NGHIÊN CỨU, PHÁT TRIỂN HỆ THỐNG TỰ ĐỘNG NHẬN DIỆN VÀ PHÂN LOẠI MỘT SỐ BỆNH THÔNG THƯỜNG TRÊN THỎ NUÔI BẰNG CÔNG NGHỆ XỬ LÝ ẢNH THÂN NHIỆT Lớp : K60­TĐHA Chuyên ngành : TỰ ĐỘNG HÓA Hà Nội – 2021 LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tôi, kết nghiên cứu trình bày đồ án trung thực, khách quan chưa dùng để bảo vệ cho đồ án môn học Tôi xin cam đoan giúp đỡ cho việc thực đồ án cám ơn, thơng tin trích dẫn đồ án rõ nguồn gốc Hà Nội, ngày 20 tháng 10 năm 2021 Tác giả đồ án LỜI CẢM ƠN Em xin cám ơn Ban giám đốc Học viện Nông nghiệp Việt Nam, Ban chủ nhiệm khoa Cơ-Điện tồn thể thầy, giáo tận tình dạy dỗ, giúp đỡ em thời suốt trình học tập trường Học viện Nông nghiệp Việt Nam Xin cảm ơn thầy cô trực tiếp giảng dạy em thầy cô gián tiếp giúp đỡ em trình tìm kiếm tài liệu cho việc thực đồ án tốt nghiệp Đặc biệt em xin trân trọng cảm ơn thầy TS Nguyễn Thái Học – Người tận tình hướng dẫn, cung cấp tài liệu truyền đạt nhiều ý kiến thiết thực suốt trình thực đồ án Những kinh nghiệm quý báu mà thầy truyền đạt hành trang vững giúp em tự tin nghề nghiệp sau Xin cảm ơn gia đình bạn bè ủng hộ, động viên, giúp đỡ em vượt qua khó khăn suốt thời gian vừa qua để em hồn thành nhiệm vụ học tập đồ án tốt nghiệp cách tốt Mặc dù có nhiều cố gắng với kiến thức hạn hẹp thời gian tiếp xúc với thực tế chưa nhiều, báo cáo đồ án em tránh khỏi nhiều thiếu sót Em mong có ý kiến đóng góp thầy bạn kiến thức báo cáo hoàn thiện Em xin trân thành cảm ơn! Hà nội, ngày 20 tháng 10 năm 2021 Sinh viên MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC…… .III DANH MỤC HÌNH ẢNH V DANH MỤC BẢNG VIII MỞ ĐẦU 1 Đặt vấn đề Mục đích nghiên cứu đề tài Đối tượng nghiên cứu Nội dung phương pháp nghiên cứu 4.1 Nội dung 4.2 Phương pháp nghiên cứu .2 Giới hạn đề tài .3 Thời gian địa điểm thực CHƯƠNG 1.TỔNG QUAN ĐỀ TÀI 1.1 Cấu trúc hệ thống ứng dụng công nghệ IOT 1.1.1 Vạn vật (Things) .4 1.1.2 Trạm kết nối (Gateways) 1.1.3 Hạ tầng mạng (Internet) 1.1.4 Lớp dịch vụ (Service) 1.2 Ứng dụng công nghệ IoT chăn nuôi .5 1.3 Tổng quan camera ảnh nhiệt 1.4 Một số ứng dụng camera nhiệt 1.4.1 Trong an ninh 1.4.2 Trong an ninh hàng hải 1.4.3 Trong tuần tra an ninh 1.4.4 Trong quân .10 1.4.5 Trong đo nhiệt độ 10 1.4.6 Trong kiểm tra phát .10 1.5 Áp dụng camera ảnh nhiệt việc nuôi thỏ 13 1.5.1 Đọc hình ảnh thân nhiệt vật nuôi 13 1.5.2 Lợi ích việc theo dõi sức khỏe gia súc từ xa 14 1.6 Một số bệnh thường gặp thỏ gây biến đổi nhiệt .15 1.6.1 Bệnh bại huyết 15 1.6.2 Bệnh nhiễm khuẩn Listeria 16 1.6.3 Bệnh sổ mũi 17 1.6.4 Bệnh cầu trùng .18 1.7 Phương pháp đo thân nhiệt thỏ 18 1.8 Kết luận chương 19 CHƯƠNG 2.NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 21 2.1 Yêu cầu thiết kế hệ thống 21 2.2 Sơ đồ công nghệ hệ thống 21 2.3 Lựa chọn cấu trúc phần cứng phần mềm điều khiển hệ thống 24 2.3.1 Camera Flir TG267 24 2.3.2 ESP8266 NodeMCU .25 2.4 Giới thiệu ứng dụng blynk 29 2.5 Lập trình upload cho Arduino 32 2.6 Tìm hiểu ngơn ngữ lập trình Python phần mềm OpenCV 33 2.6.1 Ngơn ngữ lập trình Python 33 2.6.2 Thư viện OpenCV 37 2.7 Cơ sở lưu đồ thuật toán 38 2.7.1 Cơ sở thuật toán 38 2.7.2 Lưu đồ thuật toán 43 CHƯƠNG 3.KẾT QUẢ VÀ THẢO LUẬN 47 3.1 Kết phần cứng hệ thống 47 3.2 Kết đo thân nhiệt gửi ứng dụng Blynk cho người dùng .47 3.3 Giao diện quan sát hệ thống 49 3.4 Một số kết thực nghiệm 50 3.5 Giá trị kinh tế 52 3.6 Kết đạt 52 3.7 Kết chưa đạt 53 3.8 Đánh giá 53 3.9 Kết luận chương 53 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 54 TÀI LIỆU THAM KHẢO .55 PHỤ LỤC 56 DANH MỤC HÌNH ẢN Hình 1 Bốn cấu phần hệ thống IoT [1] .4 Hình Lược đồ mơ tả giải pháp ứng dụng IOT chăn nuôi Hình Hình ảnh bước sóng [2] Hình Camera ảnh nhiệt giám sát khu vực dân cư [3] Hình Camera ảnh nhiệt phát kiểm soát hoả hoạn [3] Hình Camera an ninh chống trộm [3] .9 Hình Camera ảnh nhiệt lĩnh vực quân [3] 10 Hình Sử dụng camera ảnh nhiệt hệ thống sản xuất, phát nhiệt thiết bị vận hành [3] .11 Hình Camera ảnh nhiệt xây dựng [3] 12 Hình 10 Thang nhiệt độ thỏ [4] 14 Hình 11 Thỏ bị bệnh bại huyết [5] .16 Y Hình Sơ đồ công nghệ hệ thống 20 Hình 2 Camera ảnh nhiệt cầm tay FLIR TG267[6] 22 Hình ESP8266 Arduino[7] 24 Hình Các phiên Module ESP [7] 25 Hình Sơ đồ chân Kit NodeMCU ESP8266-12E [7] 27 Hình Cấu trúc tảng blynk 28 Hình Tạo tài khoản blynk .29 Hình Vào custom chọn server 30 Hình Giao diện blynk .30 Hình 10 Upload chương trình cho Arduino .31 Hình 11 Trackbars sau tạo 33 Hình 12 Kết sau điều chỉnh giá trị 33 Hình 13 Ảnh khơng gian màu HSV [8] .34 Hình 14 Ảnh sau lọc màu 34 Hình 15 Ảnh sau xám hóa nhị phân 35 Hình 16 Chuyển đổi hệ thống màu RGB sang Grayscale 35 Hình 17 Ví dụ minh họa với ngưỡng 127 37 Hình 18 Lưu đồ thuật toán hệ thống 39 Hình Mạch kết nối hệ thống phân tích 47 Hình Màn hình LCD hiển thị kết đo thân nhiệt thỏ 47 Hình 3 Thơng báo kết nối blynk thành công 48 Hình Giao diện hình kết 49 Hình Giao diện Calibration để điều chỉnh nhiệt độ 50 Hình Thân nhiệt thỏ bình thường 50 Hình Thân nhiệt thỏ có bất thường nhiệt .51 DANH MỤC BẢ Y Bảng Thông số kỹ thuật camera ảnh nhiệt cầm tay FLIR TG267 .23 Bảng 2 So sánh thông số loại module ESP8266 thông dụng thị trường 25 Bảng Thông số kỹ thuật ESP8266 Arduino 27 Hình Thân nhiệt thỏ có bất thường nhiệt Bảng Bảng kết phân tích thân nhiệt thỏ bị bại huyết vào thời điểm ngày ST Thời Nhiệt độ môi Thời gian T điểm đo trường (độ C) đáp ứng (s) Giá trị nhiệt độ (độ C) Đo Thực Sai số Gửi sms cảnh (%) báo tế 6:00 AM 18 0.78 (x) 40.0 (x0) 40.2 0.49% Có dấu hiệu bất 12:30 PM 28 0.81 40.5 40.8 0.73% thường nhiệt Có dấu hiệu bất 9:00 PM 20 0.80 40.3 40.5 0.49% thường nhiệt Có dấu hiệu bất thường nhiệt Bảng 3 Bảng kết phân tích thân nhiệt thỏ bị nhiễm khuẩn Listeria vào thời điểm ngày ST Thời Nhiệt độ môi Thời gian T điểm đo trường (độ C) đáp ứng (s) Giá trị nhiệt độ (độ C) Đo Thực Sai số Gửi sms cảnh (%) báo tế 6:00 AM 18 0.85 (x) 40.1 (x0) 40.4 0.74% Có dấu hiệu bất 12:30 PM 28 0.87 40.6 40.9 0.73% thường nhiệt Có dấu hiệu bất 9:00 PM 20 0.83 40.4 40.7 0.74% thường nhiệt Có dấu hiệu bất thường nhiệt Nhận xét: Chương trình hoạt động tương đối tốt, xác định vị trí cá thể có nhiệt độ bất thường, đưa nhiệt độ cao vùng đồng thời gửi cảnh báo ảnh có vùng nhiệt độ bất thường Qua q trình phân tích thực tế cho thấy hệ thống có độ tin cậy cao, khơng bị ảnh hưởng yếu tố thời tiết 52 Khi phân tích ảnh chương trình xác định giá trị nhiệt độ cao có sai lệch với nhiệt độ thực tế nhiên sai lệch không 0.4°C (0.8%) 3.5 Giá trị kinh tế Dưới bảng tổng chi phí để hồn thiện hệ thống phát bệnh thỏ công nghệ xử lý ảnh thân nhiệt Bảng Chi phí xây dựng hệ thống Với mức chi phí tương đối hợp lý cho hệ thống kiểm sốt bệnh thỏ sử dụng với nhiều lứa Ưu điểm: - Có tính xác cao Đo thân nhiệt phát bất thường từ xa không ảnh hưởng đến - vật nuôi Đo nhiều cá thể lúc Chi phí hợp lý - Do thời gian đồ án gấp rút nên cần theo dõi thêm tính ổn định Nhược điểm: hệ thống 3.6 Kết đạt - Thiết kế hoàn thiện hệ thống nhận diện phân loại số bệnh thông thường thỏ nuôi công nghệ xử lý ảnh thân nhiệt đảm bảo yêu cầu đề - Có thêm kiến thức kỹ thuật, thuật toán - Tạo ứng dụng có tính thiết thực nhu cầu sử dụng cao tương lai 3.7 Kết chưa đạt - Giao diện đơn giản, cần thể rõ sử dụng với ứng dụng 53 - Tính thẩm mĩ chưa cao 3.8 Đánh giá - Hệ thống hoạt động yêu cầu - Hệ thống nhận dạng nhanh, xác 3.9 Kết luận chương Kết thúc chương 3, ta hoàn thiện toàn hệ thống từ phần cứng, phần mềm điều khiển để thu hệ thống tự động nhận diện phân loại số loại bệnh thông thường lồi thỏ thơng qua xử lý ảnh thân nhiệt 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Thiết kế hệ nhận diện phân loại số bệnh thông thường thỏ nuôi công nghệ xử lý ảnh thân nhiệt đề tài thú vị có tính thực tiễn cao Hệ thống phát bệnh cho vật nuôi tự động, không cần tiếp xúc trực tiếp bước tiến lớn cho ngành chăn ni áp dụng rộng rãi, phổ biến Nó giúp người ni sớm phát bệnh có phương án chữa trị kịp thời, giảm việc lây lan bệnh cho đàn nhiều thiệt hại phát sinh khơng mong muốn Ngồi ngăn chặn nguy số loại bệnh vật ni lây lan sang người qua tiếp xúc Với ưu điểm lợi ích mà hệ thống mang lại cho ngành chăn nuôi, em mong có nhiều hệ thống tương tự sớm ứng dụng vào thực tế để hỗ trợ cho bà Trong tương lai, em mở rộng nghiên cứu hệ thống không giới hạn số loại bệnh thông thường qua thân nhiệt mà phát nhiều loại bệnh khác Trong trình thực đồ án em gặp khơng khó khăn việc cài đặt thiết bị, lên ý tưởng thực hiện…nhưng với nhiệt tình giúp đỡ sinh viên thầy Nguyễn Thái Học em hồn thành đồ án tốt nghiệp Em xin gửi lời cảm ơn chân thành đến thầy thầy cô ban hội đồng hướng dẫn tạo điều kiện cho em hoàn thiện đồ án cách tốt 55 TÀI LIỆU THAM KHẢO Phạm Cơng Ngơ, “Lập trình C# từ đến nâng cao”, Nhà xuất giáo dục Pgs Ts Nguyễn Linh Giang, "Giáo trình xử lý ảnh", Trường Đại học Bách khoa Hà Nội https://intech-group.vn/huong-dan-phan-loai-cac-he-thong-iot-bv181.htm https://phuongviethcm.com/vi/9-uu-diem-noi-bat-cua-camera-than-nhiet/ https://yeupet.vn/topic/benh-bai-huyet-va-xuat-huyet-truyen-nhiem-o-tho.874/ https://nongnghiep.vn/6-benh-o-tho-d42975.html https://thuoctrangtrai.com/benh-cau-trung-tren-tho-nd87118.html Nguồn ảnh: https://ohtech.vn/all-courses/tat-tan-tat-ve-iot/lessons/giai-phap-iot-hoan-chinh/ https://anhvientham.com/song-dien-tu-tim-hieu-ve-cac-loai-buc-xa-dien-tu/ https://canhbaothongminhtmh.com/camera-anh-nhiet-nd8 https://nuoitrong123.com/dac-diem-sinh-truong-phat-trien-cua-tho.html https://benh.edu.vn/benh-bai-huyet-o-tho/ https://etech5s.com/camera-anh-nhiet-flir-tg267 https://hocarm.org/giao-tiep-esp8266-nodemcu-voi-arduino-uno-mega/ https://thigiacmaytinh.com/khong-gian-mau-color-space/ 56 #Code giao dien xu ly anh PHỤ LỤC using OpenCvSharp.Extensions; namespace QuangHuanFinal { public partial class Home : MetroFramework.Forms.MetroForm { Mat m_mBgrImage,m_mBwMask; List m_lHSV; ImageProcessing m_ipMain; string m_sSettingFile = "settingFile.txt"; double m_dTemperature; public Home() { InitializeComponent(); this.ControlBox = false; m_mBgrImage = new Mat(); m_mBwMask = new Mat(); m_dTemperature = 0; m_lHSV = new List(); btnCheckTemperature.Enabled = false; m_ipMain = new ImageProcessing(); 57 readSettingValueFromTextFile(m_sSettingFile); } private void btnCheckTemperature_Click(object sender, EventArgs e) { try { for(int i=0; i< m_lHSV.Count(); i++) { // Processing here if (m_ipMain.CheckImage(m_mBgrImage, m_lHSV[i].Item1, m_lHSV[i].Item2, ref m_mBwMask)) { m_dTemperature = m_lHSV[i].Item3; tbxInfor.AppendText(DateTime.Now.ToString() + " Nhiet Do: " + m_dTemperature.ToString() + Environment.NewLine); ptbMask.Image = BitmapConverter.ToBitmap(m_mBwMask); updateTemperature((float)m_dTemperature); break; } } } catch (Exception ex) { 58 Console.WriteLine("Error inside btnCheckTemperature_Click( ) " + ex.Message); } } private void btnGetImage_Click(object sender, EventArgs e) { try { OpenFileDialog fl = new OpenFileDialog(); fl.Filter = "Image(bmp,png,jpg)| *.bmp;*.jpg;*png"; if(fl.ShowDialog() == DialogResult.OK) { m_mBgrImage = new Mat(fl.FileName,ImreadModes.Color); ptbMainImage.Image = BitmapConverter.ToBitmap(m_mBgrImage); updateMainImage(m_mBgrImage); btnCheckTemperature.Enabled = true; } } catch(Exception ex) { 59 Console.WriteLine("Error inside btnGetImage_Click( ) " + ex.Message); } } private void readSettingValueFromTextFile(string filePath) { try { if (File.Exists(filePath)) { List HSVValues = File.ReadAllLines(filePath).ToList(); // just take Scalar LowHSV, UpHSV; double temperature; LowHSV = UpHSV = new Scalar(); foreach (var Content in HSVValues) { List HSVValue = Content.Substring(Content.IndexOf('=')).Split(',').ToList(); double.TryParse(HSVValue[0], out LowHSV.Val0); // Hue value Low double.TryParse(HSVValue[1], out LowHSV.Val1); // S value Low 60 double.TryParse(HSVValue[2], out LowHSV.Val2); // V value Low double.TryParse(HSVValue[3], out UpHSV.Val0); // Hue value up double.TryParse(HSVValue[4], out UpHSV.Val1); // S value up double.TryParse(HSVValue[5], out UpHSV.Val2); // V value up double.TryParse(HSVValue[6], out temperature); m_lHSV.Add(new Tuple(LowHSV, UpHSV, temperature)); } sortHsvValueBasedOnTemperature(ref m_lHSV); } } catch (Exception ex) { Console.WriteLine("Error from readSettingValueFromTextFile( ) function.\nDetail: " + ex.Message); } } private void sortHsvValueBasedOnTemperature(ref List lHSV) 61 { Tuple temp = lHSV[0]; for (int i = 0; i < lHSV.Count() - 1; i++) { for (int j = i + 1; j < lHSV.Count(); j++) { if (lHSV[j].Item3 < lHSV[i].Item3) { temp = lHSV[i]; lHSV[i] = lHSV[j]; lHSV[j] = temp; } } } } public delegate void UpdateMainImageCallback(Mat image); public UpdateMainImageCallback updateMainImage; public delegate void UpdateTemperatureCallBack(float temperature); public UpdateTemperatureCallBack updateTemperature; public delegate void UpdateHSVCallBack(float temperature); public UpdateHSVCallBack updateHSVList; 62 } } Code Arduino // Fill-in information from your Blynk Template here #define BLYNK_TEMPLATE_ID "TMPL5y2i_k1H" #define BLYNK_DEVICE_NAME "Rabbit" #define BLYNK_FIRMWARE_VERSION "0.1.0" #define BLYNK_PRINT Serial //#define BLYNK_DEBUG #define USE_NODE_MCU_BOARD #define APP_DEBUG #include "BlynkEdgent.h" #include #include LiquidCrystal_I2C lcd(0x27,16,2); // LCD library // set the LCD address to 0x27 for a 16 chars and line display void printLCD(char* line1, char* line2); String m_sTemperatureInfo, m_fStatusInfo, m_sCommand; float m_fTemperature; int m_nMode, count; void setup() { Serial.begin(115200); delay(100); BlynkEdgent.begin(); 63 // put your setup code here, to run once: // KHOI TAO GIA TRI BAN DAU CHO CAC BIEN m_fTemperature = 0; m_nMode =0; } void loop() { // put your main code here, to run repeatedly: BlynkEdgent.run(); if(Serial.available()) { m_sCommand = Serial.readString(); m_nMode = getValue(m_sCommand,'-',0).toFloat(); } if(m_nMode==1) { printLCD("DO AN TOT NGHIEP","CONNECT SUCCESS"); m_nMode=0; } else if(m_nMode == 2) { m_fTemperature = getValue(m_sCommand,'-',1).toFloat(); // update data 64 m_sTemperatureInfo = "Nhiet Do: "+String(float(m_fTemperature))+ "C"; m_fStatusInfo = "DO NHIET DO THO"; // send to blynk printLCD(m_fStatusInfo.c_str(),m_sTemperatureInfo.c_str()); Blynk.virtualWrite(V0,m_fTemperature); // gui nhiet len Blynk // Blynk.virtualWrite(V1,totalLitres); // gui the tich m_nMode=0; } } void printLCD(const char line1[], const char line2[]) { lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print(line1); lcd.setCursor(0,1); lcd.print(line2); } String getValue(String data, char separator, int index) { int found = 0; int strIndex[] = {0, -1}; 65 int maxIndex = data.length()-1 for( count=0; count

Ngày đăng: 18/03/2022, 15:37

Mục lục

  • DANH MỤC HÌNH ẢN

  • 2. Mục đích nghiên cứu của đề tài

  • 3. Đối tượng nghiên cứu

  • 4. Nội dung và phương pháp nghiên cứu

  • 4.1. Nội dung

    • 4.2. Phương pháp nghiên cứu

    • 5. Giới hạn đề tài

    • 6. Thời gian và địa điểm thực hiện

    • 1.1.2 Trạm kết nối (Gateways)

    • 1.1.3 Hạ tầng mạng (Internet)

    • 1.1.4 Lớp dịch vụ (Service)

    • 1.2 Ứng dụng công nghệ IoT trong chăn nuôi

    • 1.3 Tổng quan về camera ảnh nhiệt

    • 1.4.2 Trong an ninh hàng hải

    • 1.4.3 Trong tuần tra an ninh

    • 1.4.5 Trong đo nhiệt độ

    • 1.4.6 Trong kiểm tra phát hiện

    • 1.5 Áp dụng camera ảnh nhiệt trong việc nuôi thỏ

      • 1.5.1 Đọc hình ảnh thân nhiệt vật nuôi

      • 1.5.2 Lợi ích trong việc theo dõi sức khỏe gia súc từ xa

      • 1.6.2 Bệnh nhiễm khuẩn Listeria

      • 1.7 Phương pháp đo thân nhiệt ở thỏ

Tài liệu cùng người dùng

Tài liệu liên quan