BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP MÔ HÌNH HỆ THỐNG CỔNG RÀ SOÁT NHÂN VIÊN NHIỄM COVID GIÚP TRÁNH LÂY NHIỄM CHÉO TẠI CÁC DOANH NGHIỆP NGÀNH KỸ THUẬT Y SINH GIẢNG VIÊN HƯỚNG DẪN ThS Nguyễn Thị Ngọc Anh Sinh viên thực hiện MSSV Lớp Lê Hồng Nhung 1711730017 17DYSA1 Trần La Duy 1711730005 17DYSA1 Tp Hồ Chí Minh, tháng 092021 ii LỜI CẢM ƠN Lời đầu tiên nhóm tác giả xin chân thành cảm ơn Quý ThầyCô của trường Đại học Công Nghệ TP Hồ Chí Minh, cũng như Quý.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP MƠ HÌNH HỆ THỐNG CỔNG RÀ SỐT NHÂN VIÊN NHIỄM COVID GIÚP TRÁNH LÂY NHIỄM CHÉO TẠI CÁC DOANH NGHIỆP NGÀNH: KỸ THUẬT Y SINH GIẢNG VIÊN HƯỚNG DẪN: ThS Nguyễn Thị Ngọc Anh Sinh viên thực hiện: MSSV: Lớp: Lê Hồng Nhung 1711730017 17DYSA1 Trần La Duy 1711730005 17DYSA1 Tp Hồ Chí Minh, tháng 09/2021 LỜI CẢM ƠN Lời nhóm tác giả xin chân thành cảm ơn Quý Thầy/Cơ trường Đại học Cơng Nghệ TP Hồ Chí Minh, Quý Thầy/Cô khoa Viện Kỹ thuật HUTECH giảng dạy, truyền đạt kiến thức hữu ích kinh nghiệm quý báu cho nhóm tác giả suốt năm qua Nhóm tác giả xin chân thành gửi lời cảm ơn sâu sắc tới Cô ThS Nguyễn Thị Ngọc Anh, người tận tình hướng dẫn nhóm tác giả hồn thành đồ án tốt nghiệp Chúc cô dồi sức khỏe Cảm ơn tất Thầy/Cô với bạn, Anh/Chị tận tình giúp đỡ nhưhỗ trợ quan tâm tới nhóm tác giả suốt q trình học tập hoàn thành đồán tốt nghiệp Tất người nhiệt tình giúp đỡ, số lượng cơng việc Thầy/Cô ngày tăng lên Thầy/Cô dành thời gian để hướng dẫn nhiệt tình Trong trình thực đồ án, giúp đỡ tận tình Cơ Ths Nguyễn Thị Ngọc Anh, nhóm tác giả thu nhiều tăng kiến thức quý báu, giúp nhóm tác giả nhiều q trình học làm việc tương lai Tuy nhiên kiến thức chun mơn cịn hạn chế thân thiếu nhiều kinh nghiệm thực tiễn nên nội dung báo cáo khơng tránh khỏi thiếu xót, nhómtác giả mong nhận góp ý, bảo thêm Quý Thầy/Cô trường Đại học Công Nghệ - HUTECH để báo cáo hoàn thiện Một lần nhóm tác giả xin chân thành cảm ơn giúp đỡ Q Thầy/Cơ q trình thực đồ án để em hoàn thành đồ án Nhóm tác giả xin chân thành cảm ơn! ii MỤC LỤC Phiếu đăng ký tên đề tài ĐATN Phiếu giao nhiệm vụ LỜI CAM ĐOAN .i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC BẢNG .vi DANH MỤC SƠ ĐỒ, HÌNH ẢNH .vii LỜI MỞ ĐẦU Chương GIỚI THIỆU 1.1 Tình hình nghiên cứu thuộc lĩnh vực đề tài 1.2 Đối tượng nghiên cứu 1.3 Mục đích nghiên cứu 1.4 Nhiệm vụ nghiên cứu 1.5 Phương pháp nghiên cứu 1.6 Các kết đạt đề tài 1.7 Kết cấu đồ án Chương TỔNG QUÁT GIẢI PHÁP 2.1 Phát vấn đề 2.2 Khảo sát trạng vấn đề Chương PHƯƠNG PHÁP GIẢI QUYẾT 12 3.1 Khảo sát ý kiến nhu cầu giải vấn đề 12 3.2 Các giải pháp có 13 3.2.1 Kiểm tra thân nhiệt, rửa tay sát khuẩn khai báo y tế thủ công 14 3.2.2 Kiểm tra thân nhiệt, rửa tay sát khuẩn tự động khai báo y tế điện tử 15 3.3 Xây dựng số mục tiêu thiết kế 16 iii 3.4 Khảo sát chuyên gia tính khả thi giải pháp 18 3.5 Đề xuất giải pháp 19 Chương QUY TRÌNH THIẾT KẾ 21 4.1 Giới thiệu mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid giúp tránh lây nhiễm chéo doanh nghiệp 21 4.2 Giới thiệu linh kiện 24 4.2.1 Kit thu phát wifi BLE ESP – 32 CAM OV2640 24 4.2.2 Cảm biến nhiệt không tiếp xúc MLX90614 25 4.2.3 Cảm biến siêu âm US – 015 26 4.2.4 Arduino Uno R3 27 4.2.5 Động Servo MG996R 29 4.2.6 LCD 1602 30 4.2.7 Giao tiếp I2C 31 4.2.8 Buzzer 32 4.2.9 Module đồng hồ thời gian thưc RTC DS3231 33 4.3 Giới thiệu cơng cụ lập trình 33 4.3.1 Arduino IDE 33 4.3.2 Microsoft Visual Studio C# 35 4.4 Tính tốn thiết kế mạch 38 4.4.1 Thiết kế phần cứng 38 a Sơ đồ khối 38 b Chức khối 39 c Sơ đồ nguyên lý – Nguyên lý hoạt động 48 4.4.2 Thiết kế phần mềm 50 a Lưu đồ giải thuật 50 b Thiết kế giao diện Visual Studio 51 Chương THI CÔNG SẢN PHẨM 56 iv 5.1 Mơ hình lắp ráp cổng rà soát 56 5.2 Hệ thống máy chủ sử dụng phần mềm Visual Studio 58 Chương ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN 63 6.1 Kết đạt 63 6.2 Ưu điểm nhược điểm mơ hình 63 6.3 Hướng phát triển đề tài 64 TÀI LIỆU THAM KHẢO 65 PHỤ LỤC PHẦN MỀM 66 v DANH MỤC BẢNG Bảng 3.1 Ưu nhược điểm giải pháp kiểm tra thân nhiệt, rửa tay sát khuẩn khai báo y tế thủ công 14 Bảng 3.2 Ưu nhược điểm giải pháp kiểm tra thân nhiệt, rửa tay sát khuẩn tự động khai báo y tế điện tử 15 Bảng 3.3 Bảng mục tiêu thiết kế 16 Bảng 3.4 Bảng xây dụng đặc tính kỹ thuật 17 Bảng 4.1 Thông số kỹ thuật module thu phát wifi BLE ESP32 – CAM OV264024 Bảng 4.2 Thông số kỹ thuật buzzer 33 Bảng 4.3 Các nút lệnh menu Arduino IDE 34 vi DANH MỤC SƠ ĐỒ, HÌNH ẢNH Hình 2.1.Hơn 70.200 doanh nghiệp phải rú khỏi thị trường ảnh hưởng dịch Covid 19 (Nguồn: Internet) Hình 2.2: 9800/10000 doanh nghiệp Cần Thơ ngưng hoạt động Covid-19 Hinh 2.3: 112 doanh nghiệp khu cơng nghiệp có ca bệnh Covid-19 10 Hình 3.1.Kiểm tra thân nhiệt, rửa tay sát khuẩn khai báo y tế thủ công (Nguồn: Internet) 14 Hình 3.2.Kiểm tra thân nhiệt, rửa tay sát khuẩn khai báo y tế điện tử (Nguồn: Internet) 15 Hình 4.1.Mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid giúp tránh lây nhiễm chéo doanh nghiệp 22 Hình 4.2.Giao diện máy chủ truy xuất thông tin nhân viên nghi nhiễm 23 Hình 4.3.Module thu phát wifi BLE ESP32 – CAM OV2640 24 Hình 4.4.Sơ đồ chân module ESP-32 CAM (Nguồn: Internet) 25 Hình 4.6.Cảm biến nhiệt khoảng cách siêu âm US – 015 (Nguồn: Internet) 26 Hình 4.7.Arduino Uno R3 (Nguồn: Internet) 28 Hình 4.8.Động Servo MG996R (Nguồn: Internet) 29 Hình 4.9.LCD 1602 (Nguồn: Internet) 30 Hình 4.10.Giao tiếp I2C (Nguồn: Internet) 31 Hình 4.11.Buzzer (Nguồn: Internet) 32 Hình 4.12.Cấu tạo buzzer (Nguồn: Internet) 32 Hình 4.13.Giao diện Arduino IDE 34 Hình 4.14.Vùng viết chương trình Arduino IDE 35 Hình 4.15.Vùng thơng báo Arduino IDE 35 Hình 4.16.Giao diện Microsoft Visual Studio C# 36 Hình 4.17.Vùng design Microsoft Visual Studio C# 37 vii Hình 4.18.Sơ đồ khối mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid giúp tránh lây nhiễm chéo doanh nghiệp 38 Hình 4.19.Sơ đồ nguyên lý khối camera OV2640 nhận dạng khuôn mặt kết nối thu phát wifi BLE ESP32 máy tính 39 Hình 4.20.Sơ đồ nguyên lý cảm biến thân nhiệt không tiếp xúc MLX90614 41 Hình 4.21.Sơ đồ nguyên lý cảm biến đo khoảng cách siêu âm US-015 42 Hình 4.22.Tín hiệu PWM động MG996R (Nguồn: Internet) 43 Hình 4.23.Sơ đồ nguyên lý động servo MG996R 44 Hình 4.24.Sơ đồ nguyên lý buzzer 45 Hình 4.25.LCD hiển thị thông số nhiệt độ đo 45 Hình 4.26.Sơ đồ nguyên lý LCD 1602 giao tiếp I2C (Nguồn: Internet) 46 Hình 4.27.Sơ đồ nguyên lý mạch chuyển đổi I2C cho LCD 1602 46 Hình 4.28.Phòng bảo vệ điều khiển máy chủ 47 Hình 4.29.Sơ đồ nguyên lý mơ hình hệ thống cổng rà sốt nhân viên nhiễm COVID, giúp tránh lây nhiễm chéo doanh nghiệp 48 Hình 4.30.Lưu đồ giải thuật 50 Hình 4.31.Tạo project Visual Studio 52 Hình 4.32.Giao diện thiết kế Visual Studio 53 Hình 4.33.Thư viện Emgu sau thêm 53 Hình 4.34.Các nút control Toolbox sau add thêm thư viện Emgu 54 Hình 4.35.Serial Port giao diện thiết kế Visual Studio 55 Hình 4.36.Giao diện viết code Visual Studio 55 Hình 5.1.Phần đo nhiệt độ gồm cảm biến siêu âm đo khoảng cách cảm biến nhiệt độ không tiếp xúc 56 Hình 5.2.Màn hình lắp cổng rà sốt để nhân viên biết nhiệt độ 57 Hình 5.3.Servo điều khiển cổng đóng/mở chng báo động 57 Hình 5.4.Phần cứng mơ hình hệ thống cổng rà sốt 58 viii Hình 5.5 Hệ thống thơng báo chưa có sở liệu 59 Hình 5.6 Giao diện hệ thống chưa có sở liệu 59 Hình 5.7 Hệ thống thơng báo có liệu thêm 60 Hình 5.8 Cơ sở liệu tạo 60 Hình 5.9 Hệ thống nhận dạng khn mặt hiển thị thông tin nhân viên thông báo nhiệt độ cho phép 61 Hình 5.10 Hệ thống nhận dạng khuôn mặt hiển thị thông tin nhân viên thông báo nhiệt độ vượt khoảng cho phép 61 Hình 5.11 Giao diện liệu thu thập ngày 62 ix LỜI MỞ ĐẦU Dịch Viêm đường hô hấp cấp chủng vi-rút Cô-rô-na (Covid-19) gây trở thành mối nguy hiểm hàng đầu toàn nhân loại Tổ chức Y tế giới WHO thức tuyên bố Covid-19 đại dịch toàn cầu Những số cập nhật liên tục, hàng ngày số người bị nhiễm, bị chết dịch bệnh dấy lên lo lắng, tâm trạng bất an không người dân Việt Nam mà cịn tồn nhân loại Covid-19 khơng mối quan tâm cá nhân, tổ chức, hay cộng đồng, quốc gia mà trở thành mối quan tâm chung toàn giới Ở Việt Nam, từ phát ca bệnh đầu tiên, với đạo tích cực Đảng Chính phủ, đạt kết quan trọng việc triển khai phòng, chống dịch Tuy nhiên, với với sóng lây nhiễm biến thể Delta diễn biến nhanh chóng phức tạp làm cho khả phòng chống dịch Việt Nam giới chao đảo Chính vậy, việc giải vấn đề phòng, chống, đẩy lùi dịch Covid-19 vấn đề mà giới quan tâm giải Hiện có chủ trương tuân thủ chủ trương quy tắc 5K Y tế phương pháp phòng, chống dịch Covid-19 kiểm tra thân nhiệt, rửa tay sát khuẩn khai báo y tế thủ công kiểm tra thân nhiệt, rửa tay sát khuẩn tự động khai báo y tế điện tử Hai phương pháp phổ biến Việt Nam mang lại lợi ích khả quan cho cộng đồng Tuy nhiên hai phương pháp cịn nhiều hạn chế cịn tình trạng lây nhiễm chéo người với người nơi công cộng, đặc biệt doanh nghiệp Từ nhóm tác giả đưa giải pháp “Xây dựng mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid, giúp tránh lây nhiễm chéo doanh nghiệp” để giải vấn đề lây nhiễm chéo nhân viên doanh nghiệp, đẩy lùi nguy ngưng hoạt động doanh nghiệp, đảm bảo hiệu cao cơng tác phịng, chống dịch chi phí phù hợp với đa số doanh nghiệp - Giao diện liệu thu thập ngày: Hình 5.11 Giao diện liệu thu thập ngày 62 Chương ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN 6.1 Kết đạt Sau thời gian làm đề tài “Xây dựng mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid, giúp tránh lây nhiễm chéo doanh nghiệp”, nhóm tác giả vận dụng kiến thức học trường vào đề tài cách cụ thể như: - Sử dụng cảm biến, động vào mơ hình để đạt kết nhóm mong muốn việc đo nhiệt độ, hiển thị hình, nhận diện khn mặt… - Sử dụng cơng cụ lập trình Arduino để điều khiển mơ hình Tuy nhiên, nhóm gặp số khó khăn khắc phục khó khăn như: - Việc sử dụng thêm cơng cụ lập trình Visual Studio khó khăn lớn cho nhóm Đây cơng cụ lập trình phổ biến việc tiếp cận với cơng cụ lập trình ngành Kỹ thuật y sinh cịn hạn chế ➔ Nhóm nhờ đến giảng viên hướng dẫn tự học diễn đàn Visual Studio bản, điều giúp cho việc thiết kế lập trình cho máy chủ đươc dễ dàng Điều hội cho nhóm hiểu biết thêm cơng cụ lập trình Kết đạt được: Đề tài “Xây dựng mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid, giúp tránh lây nhiễm chéo doanh nghiệp” gồm hệ thống hệ thống giám sát lắp đặt cổng hệ thống máy chủ Điểm khác biệt giả lập nhiệt độ sở liệu thông tin nhân viên hệ thống máy chủ Tuy nhiên, mơ hình đáp ứng đầy đủ chức khác nhận diện khuôn mặt, đo thân nhiệt, hiển thị hình nhiệt độ, thơng tin nhân viên (Tên – Phòng/Ban làm việc) cảnh báo nhiệt độ vượt mức cho phép 6.2 Ưu điểm nhược điểm mơ hình Sau hồn thành chạy thử “Mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid giúp tránh lây nhiễm chéo doanh nghiệp”, nhóm tác giả rút ưu điểm nhược điểm sau: 63 Ưu điểm: - Giảm ca nhiễm Covid vào gây lây nhiễm Covid cơng ty - Đảm bảo an tồn 5K cơng tác phịng chống dịch doanh nghiệp, hệ thống tự động nên ln có khoảng cách an tồn người giám sát nhân viên công ty - Hệ thống giúp giám sát nhân viên vào truy vết F1, F2 doanh nghiệp nhanh chóng, kịp thời, giúp cơng tác phịng chống dịch hiệu - Ứng dụng công nghệ giúp doanh nghiệp an tâm hoạt động sản xuất mùa dịch - Sản phẩm dễ sử dụng giá thành không cao Nhược điểm: - Hệ thống đo nhiệt thời điểm đo cho nhân viên, nên cần gắn nhiều cảm biến nhiều cổng rà sốt số lượng nhân viên cơng ty đông người - Khoảng cách cảm biến nhiệt độ gần, phải đưa gần tới đo nhiệt độ - Chưa thực việc truy xuất liệu di chuyển nhân viên - Chỉ đo thân nhiệt, chưa phát trường hợp không triệu chứng nhiễm Covid 6.3 Hướng phát triển đề tài Với đề tài nhóm “Xây dựng mơ hình hệ thống cổng rà soát nhân viên nhiễm Covid, giúp tránh lây nhiễm chéo doanh nghiệp” ứng dụng rộng rãi việc rà soát nhân viên doanh nghiệp hay khu cơng nghiệp việc thêm tính như: - Hệ thống Test nhanh tự động người nghi nhiễm Covid - Thay camera nhận diện khuôn mặt thành camera đo thân nhiệt hồng ngoại để theo dõi nhiều người lúc - Có thể kết nối với Sổ sức khỏe điện tử để giám sát chăm sóc sức khỏe người lao động hiệu 64 TÀI LIỆU THAM KHẢO Tài liệu dự án: • Nhóm (học kì 2B, năm học 2020 – 2021) Dự án Học phần Thiết kế dự án lớp B03 Tài liệu sách: • TS Hồng Văn Dũng Nhà xuất Khoa học Kỹ thuật, Giáo trình nhận dạng xử lý ảnh Tài liệu từ internet: • Công nghệ nhận dạng khuôn mặt, 25/07/2021 https://vinlifetech.vn/tin-tuc/congnghe-ai-nhan-dien-khuon-mat-p55.html • Lập trình hướng đối tượng C#, 01/08/2021 https://www.youtube.com/watch?v=WQ9j2sPRstk&t=140s • ESP32-CAMERA: Cài đặt mơi trường Arduino IDE nạp chương trình, 10/08/2021 https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-homeassistant/ • Hệ thống nhận dạng khn mặt với OpenCV Dlib Deep Learning, 14/08/2021 https://ilook.asia/thu-thuat/he-thong-nhan-dang-khuon-mat-voi-opencv-dlib-vadeep-learning-108.html • Hệ thống phát nhiệt độ tự động, 16/08/2021 https://create.arduino.cc/projecthub/372241/automatic-temperature-detectingsystem-ad4ff1 • Nhận diện khuôn mặt với phân loại xếp tầng, 20/08/2021 https://codelungtung.wordpress.com/2018/02/26/face-detection • Thư viện Emgu, 20/08/2021 https://stackoverflow.com/questions/35394522/emgucv-3-1-face-detection / 65 PHỤ LỤC PHẦN MỀM • Code Arduino IDE: #include #include #include Adafruit_MLX90614 mlx = Adafruit_MLX90614(); #include LiquidCrystal_I2C lcd(0X27,16,2); //SCL A5 SDA A4 Servo myServo; const int buzzer = 10, trigger = 8, echo = 9; int temp = 0; const float calib_factor = 1.70; const float alert_temp = 37.5; void setup() { Serial.begin(9600); pinMode(trigger, OUTPUT); pinMode(echo, INPUT); myServo.attach(12); mlx.begin(); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0,0); lcd.print("BODY TEMPERATURE"); pinMode(buzzer, OUTPUT); 66 } void loop() { if (mes_dist() > 12.5 && mes_dist() < 14) { lcd.setCursor(4, 1); lcd.print(mlx.readObjectTempC() + calib_factor, 1); lcd.print(" *C"); delay(500); temp = (mlx.readObjectTempC()+ calib_factor); if(temp >= alert_temp) /*buzzer_warn(); }*/ { buzzer_warn(); myServo.write(90); delay(100); } else { myServo.write(180); // Mở cửa delay(7000); myServo.write(90); // Đóng cửa delay(2000); } } float mes_dist() 67 { float distanceCM, resultCM; int measure_dist; digitalWrite(trigger, LOW); delay(1); digitalWrite(trigger, HIGH); delayMicroseconds(10); digitalWrite(trigger, LOW); measure_dist = pulseIn(echo, HIGH); distanceCM = measure_dist * 0.034; resultCM = distanceCM / 2; return resultCM; } void buzz() { digitalWrite(buzzer, HIGH); delay(50); digitalWrite(buzzer, LOW); delay(50); } void buzzer_warn() { for (int x = 0; x < 20; x++) { digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); 68 delay(100); } } • Code dùng Visual Studio: using Emgu.CV; using Emgu.CV.Structure; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Forms; namespace test3 { public partial class Form1 : Form { //Khai báo biến sử dụng MCvFont font = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_TRIPLEX, 0.6d, 0.6d); HaarCascade faceDetected; 69 Image Frame; Capture camera; Image result; Image TrainedFace = null; Image grayFace = null; List trainingImages = new List(); List labels = new List(); ListUsers = new List(); int Count, NumLabels, t; string name, names = null; private void lbtime_Click(object sender, EventArgs e) { this.lbtime.Text = DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"); } private void addface_Click(object sender, EventArgs e) { try { Count = Count + 1; //Lấy khung xám từ hình chụp grayFace = camera.QueryGrayFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); 70 //Dị khn mặt MCvAvgComp[][] facesDetectedNow = grayFace.DetectHaarCascade( faceDetected, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); foreach (MCvAvgComp f in facesDetectedNow[0]) { TrainedFace = Frame.Copy(f.rect).Convert(); break; } //kiểm tra hình ảnh với phương thức cubic interpolation TrainedFace = result.Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); trainingImages.Add(TrainedFace); labels.Add(textBox1.Text); //Hiển thị khuôn mặt thêm thang xám imageBox1.Image = TrainedFace; //Viết số lượng mặt đánh dấu vào khung tạo File.WriteAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt", trainingImages.ToArray().Length.ToString() + "%"); 71 //Viết nhãn thông tin hiển thị vào khung đánh dấu for (int i = 1; i < trainingImages.ToArray().Length + 1; i++) { trainingImages.ToArray()[i - 1].Save(Application.StartupPath + "/TrainedFaces/face" + i + ".bmp"); File.AppendAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt", labels.ToArray()[i - 1] + "%"); } MessageBox.Show(textBox1.Text + "´s face detected and added :)", "Training OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Enable the face detection first", "Training Fail", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } public Form1() { InitializeComponent(); //HaarCascade để phát khuôn mặt faceDetected = new HaarCascade("haarcascade_frontalface_default.xml"); try { 72 string Labelsinf = File.ReadAllText(Application.StartupPath + "/TrainedFaces/TrainedLabels.txt"); string[] Labels = Labelsinf.Split(','); NumLabels = Convert.ToInt16(Labels[0]); Count = NumLabels; string FacesLoad; for(int i=1;i