Giao diện và hoạt động của hệ thống

Một phần của tài liệu NGHIÊN CỨU, PHÁT TRIỂN HỆ THỐNG NHẬN DIỆN KHUÔN MẶT PHỤC VỤ KIỂM SOÁT AN NINH TRONG TÒA NHÀ (Trang 63 - 75)

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

3.2.2 Giao diện và hoạt động của hệ thống

a) Khởi tạo hệ thống

Hình 3. 7 Hệ thống dạy thuật toán KNN

Khi kích hoạt hệ thống nhận dạng, nó sẽ tiến hành chạy dạy thuật toán KNN với lần lượt các bước như lấy dữ liệu, khởi tạo thuật toán KNN và dạy mô hình KNN, sau đó hiển thị ra giao diện của hệ thống.

b) Giao diện hệ thống

Giao diện của hệ thống nhận diện khuôn mặt được chia làm 3 vùng:

 Vùng bên trái là nơi sử dụng các nút như mở ảnh, video (Open Image, Open video), mở camera (Camera), huấn luyện SVM (Train SVM), lựa chọn mô hình KNN hoặc SVM, mục cài đặt hệ thống Setting

 Vùng trung tâm là nơi hiển thị ảnh khi được mở ảnh hoặc hiển thị video khi mở camera.

 Vùng bên phải là nơi điền và trích xuất thông tin xác định được từ ảnh hoặc video của hệ thống huấn luyện, nhận diện.

Giao diện được thiết kế đơn giản, thân thiện và dễ sử dụng cho người dùng.

Ở mục hình 3.9 người dùng hoàn toàn có thể lựa chọn cho mình mô hình để thực hiện huấn luyện là KNN hay SVM.

Hình 3. 9 Chọn mô hình huấn luyện

Trong mục Setting cho phép người dùng cài đặt ngưỡng phát hiện, ngưỡng của mô hình và email nhận thông tin hệ thống.

Hình 3. 10 Mục Setting của hệ thống

c) Hoạt động của hệ thống

- Huấn luyện mô hình và nhận diện khuôn mặt bằng ứng dụng Face Recognition được thực hiện qua các bước như hình dưới đây.

Hình 3. 11 Các bước huấn luyện mô hình

Bước 1: Mở ảnh hoặc video cần huấn luyện

Vào Open Image (hoặc Open video), sau đó chọn bức ảnh (video) muốn kiểm tra.

Lưu ý: Do giới hạn của hệ thống trong đề tài này nên yêu cầu các bức ảnh được nạp vào tối thiểu là HD và tỉ lệ khuôn mặt trong ảnh chiếm khoảng 1/10 khung hình.

Bước: Ảnh (video) cần huấn luyện hiển thị trên vùng trung tâm

Sau khi ảnh được mở, hiển thị trên vùng trung tâm, hệ thống sẽ phát hiện vị trí khuôn mặt bằng cách xuất hiện khung màu xanh lá vào vùng chứa khuôn mặt trong ảnh vào hiển thị báo đỏ “Unknown” cho biết không nhận diện được đối tượng trong ảnh. Chính vì vậy ta sẽ thực hiện dạy cho hệ thống.

Bước 3: Ghi thông tin cho ảnh vào vùng thông tin

Khi vùng phát hiện khuôn mặt đã chính xác, ta ghi lại thông tin của đối tượng vào vùng INFORMATION.

Bước 4: Vào mục Setting để cài đặt cho hệ thống.

Bước 5: Điều chỉnh ngưỡng phù hợp và cài đặt email nhận kết quả rồi Setting. Emaij được cài đặt chính là email của người muốn theo dõi, quản lý hệ thống. Hệ thống khi có cảnh báo sẽ lập tức chuyển thông tin đến email trên.

Bước 6: Lựa chọn mô hình huấn luyện KNN hoặc SVM Bước 7: Chọn Train để bắt đầu quá trình huấn luyện Bước 8: Quá trình huấn luyện hiển thị trên cmd

Dưới đây là một số kết quả nhận diện sau quá trình huấn luyện thực tế của bản thân. Kết quả nhận diện khuôn mặt được hiển thị bằng cách xuất hiện những ô hình chữ

nhật màu xanh lục tại vùng chưa khuôn mặt (khuôn mặt nằm trọn trong khung chữ nhật màu xanh) kèm theo thông tin của người được nhận diện.

Hình 3. 12 Một số kết quả thu được sau quá trình huấn luyện 3.3Một số kết quả thực nghiệm

Bảng 3. 1 Bảng đánh giá độ chính xác của hệ thống dựa trên góc chụp khuôn mặt STT Góc chiếu của camera với khôn mặt (độ) Nhận dạng đúng (%) Nhận dạng sai (%) Không nhận dạng được (%) 1 10 12.30 28.90 58.80 2 30 41.01 39.8 19.19 3 60 82.25 5.25 12.5 4 90 94.48 0 5.52 5 120 96.04 1.24 2.72 6 180 98.20 1.80 0 Tỷ lệ trung bình 70.71 12.83 16.46

Qua kết quả trên, ta thấy hệ thống đạt kết quả tốt nhất khi góc chiếu giữa camera với khuôn mặt nằm trong khoảng từ 90 đến 180 độ, nhằm đảm bảo thu được nhiều đặt trưng nhất của các khuôn mặt.

Bảng 3. 2 Bảng đánh giá độ chính xác của hệ thống dựa trên độ sáng khuôn mặt STT Nhiệt độ màu ánh sáng (K) Tỷ lệ nhận diện đúng (%) 1 20000 42.13 2 10000 73.24 3 8000 98.06 4 6000 98.86 5 4000 82.24 6 3000 62.22 7 2500 32.14 8 1800 12.02 Tỷ lệ trung bình 62.61

Như vậy hệ thống thích hợp nhất với ánh sáng trời mây hoặc đèn huỳnh quang ánh sáng ban ngày.

Bảng 3. 3 Bảng đánh giá độ chính xác của hệ thống dựa trên khoảng cách giữa camera và khuôn mặt STT Khoảng cách tới khuôn mặt (m) Tỷ lệ nhận diện đúng (%) 1 0.2 52.30 2 0.5 98.02 3 1 98.48 4 2 98.46 5 3 98.68 6 5 95.24 7 6 82.56 8 7 68.46 9 8 43.21 10 10 22.01 Tỷ lệ trung bình 75.74

Như vậy khoảng cách phù hợp nhất giữa camera và đối tượng nhận diện nằm trong khoảng từ 0,5 đến 5 mét.

Bảng 3. 4 Bảng đánh giá độ chính xác của hệ thống dựa trên tỷ lệ che khuất khuôn mặt

mặt (%) đúng (%) 1 0 98.48 2 5 98.42 3 10 90.02 4 15 88.14 5 20 70.64 6 25 68.82 7 50 46.32 8 75 12.16 9 90 2.68 10 100 0 Tỷ lệ trung bình 57.56

Qua bảng trên thấy tỉ lệ che khuất khuôn mặt trong khung hình phải đảm bảo che khuất không quá 15 % khuôn mặt thì mới có thể thu được kết quả chính xác nhất.

Bảng 3. 5 Bảng đánh giá độ chính xác của hệ thống dựa trên tốc độ di chuyển của đối tượng

STT Tốc độ di chuyển (m/s) Tỷ lệ nhận diện đúng (%) 1 5.0 1.62 2 4.5 1.84 3 4.0 8.02 4 3.5 12.08 5 3.0 42.44 6 2.5 74.64 7 2.0 96.48 8 1.5 98.02 9 1.0 98.24 10 0.5 98.68 Tỷ lệ trung bình 53.2

Qua bảng trên ta thấy hệ thống hoạt động chính xác nhất khi đối tượng di chuyển với tốc độ đi bộ trung bình dưới 2 m/s sẽ cho kết quả tốt nhất.

3.4Kết quả đạt được

- Thiết kế hoàn thiện được hệ thống nhận diện khuôn mặt đảm bảo các yêu cầu đề ra - Có thêm kiến thức về các kỹ thuật, thuật toán SSD, KNN, SVM

3.5Kết quả chưa đạt được

- Giao diện còn đơn giản, cần thể hiện rõ khi sử dụng với từng ứng dụng - Tính thẩm mĩ chưa cao

3.6Đánh giá

- Hệ thống hoạt động đúng yêu cầu - Hệ thống nhận dạng nhanh, chính xác

3.7Kết luận chương 3

Kết thúc chương 3, ta đã hoàn thiện hệ thống nhận diện khuôn mặt phục vụ giám sát an ninh. Tiến hành kiểm tra, chạy hệ thống đạt độ chính xác cũng như đảm bảo yêu cầu bài toán. Từ đây ta đã có những đánh giá nhất định, trực quan nhất về hệ thống để xác định hướng phát triển cho đề tài sau này.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Thiết kế hệ thống nhận diện khuôn mặt là một đề tài khá thú vị. Hiện tại và trong tương lai không chỉ ở Việt Nam mà trên toàn Thế Giới nhu cầu về việc xử lý, nhận dạng khuôn mặt tự động đã, đang và sẽ càng ngày càng phổ biến hơn trong tất cả các ngành nghề. Về ưu điểm thì hệ thống có thể vừa kiểm tra nhận dạng trên hình ảnh, video, webcam trực tiếp và huấn luyện SVM trên hệ thống. Tuy nhiên do thời gian gấp rút trong việc hoàn thiện sản phẩm nên sản phẩm vẫn còn một số hạn chế như thiết kế còn đơn, chưa có tính thẩm mĩ cao. Và vì đây là lần đầu tiên thực hiện đề tài này nên có rất nhiều thiếu sót, nhiều bước thiết kế còn chưa hoàn chỉnh. Về hướng phát triển của sản phẩm thì hệ thống nhận diện khuôn mặt trong đồ án này sẽ cần hoàn thiện hơn về giao diện để dễ thích ứng với từng mục đích sử dụng như chấm công tại công ty, điểm danh tại trường học, xác nhận danh tính tại các cơ quan,.…Ngoài ra với tình hình dịch bệnh hiện tại, khi mà con người ta luôn phải sử dụng khẩu trang ở khắp mọi nơi để đảm bảo an toàn, chính vì vậy hi vọng rằng ta có thể phát triển được một hệ thống nhận diện khuôn mặt ngay cả khi sử dụng khẩu trang nhằm xử lý được việc nhận dạng tự động mà vẫn đảm bảo được sức khỏe cho cộng đồng.

Trong quá trình thực hiện đồ án em đã gặp không ít khó khăn trong việc cài đặt thiết bị, lên ý tưởng thực hiện…nhưng với sự nhiệt tình giúp đỡ sinh viên của thầy … em đã có thể hoàn thành đồ án tốt nghiệp này. Em xin gửi lời cảm ơn chân thành nhất đến thầy và các thầy cô trong ban hội đồng đã hướng dẫn và tạo điều kiện cho em hoàn thiện đồ án này một cách tốt nhất.

TÀI LIỆU THAM KHẢO

1. Phạm Công Ngô, “Lập trình C# từ cơ bản đến nâng cao”, Nhà xuất bản giáo dục 2. Pgs. Ts Nguyễn Linh Giang, "Giáo trình xử lý ảnh", Trường Đại học Bách khoa

Hà Nội

3. Nguyễn Thanh Tuấn, "Deep Learning cơ bản"

4. https://iq.opengenus.org/understand-support-vector-machine-in-depth/ 5. https://towardsdatascience.com/machine-learning-basics-with-the-k-nearest- neighbors-algorithm-6a6e71d01761 Nguồn ảnh: 1. https://thietbikiemsoat.vn/giai-phap-kiem-soat-ra-vao-hieu-qua-cho-khu-vuc-san- bay/ 2. https://asahijapan.com/quy-trinh-quan-li-an-ninh-toa-nha/ 3. http://baovelegia.com/dich-vu-het-han.tb 4. https://camerabaongan.com/ 5. https://www.thegioididong.com/hoi-dap/cong-nghe-quet-mong-mat-771818 6. https://anninhviet.vn/giai-phap-an-ninh/giai-phap-nhan-dien-khuon-mat/ 7. https://www.thegioididong.com/hoi-dap/cong-nghe-quet-mong-mat-771818 8. https://ecocloud.vn/ai-smart-warning/ 9. https://smartvision.vnpt.vn/vi/success-story 10. https://luci.vn/tim-hieu-ve-he-thong-nhan-dang-khuon-mat/ 11. https://www.logitech.com/vi-vn/products/webcams/c270-hd-webcam.960- 000584.html 12. https://www.24h.com.vn/cong-nghe-thong-tin/intel-trinh-lang-may-tinh-mini- nuc-moi-c55a983348.html 13. https://blog.itnavi.com.vn/c-la-gi/ 14. https://viblo.asia/p/tim-hieu-ve-ssd-multibox-real-time-object-detection- 3P0lPEPG5ox 15. https://viblo.asia/p/hoc-may-trong-mo-hinh-hoi-quy-tuyen-tinh-phan-loai-tuyen- tinh-ByEZkxAqlQ0 16. https://machinelearningcoban.com/2017/04/09/smv/ 17. https://machinelearningcoban.com/2017/01/08/knn/

PHỤ LỤC

namespace FaceRecognition {

class FaceDetection

{

public struct ModelFaceDetetion

{

public string ConfigPath; public string ModelPath; }

public struct FaceLocation

{

public double score; public Rectangle bbox; }

Net m_net = new Net(); float m_fScore = 0.35f;

public FaceDetection(ModelFaceDetetion _model) { try { m_net = DnnInvoke.ReadNetFromCaffe(_model.ConfigPath, _model.ModelPath);

if (CudaInvoke.HasCuda) // check if cuda is available { m_net.SetPreferableBackend(Emgu.CV.Dnn.Ba ckend.Cuda); m_net.SetPreferableTarget(Target.Cuda); } }

catch(Exception ex) {

Console.WriteLine("Khong the khoi tao

FaceDetection\nLoi: " + ex.Message);

} }

_lLocal = new List<FaceLocation>();

FaceLocation _Local = new FaceLocation();

Mat blob = DnnInvoke.BlobFromImage(_mImg, 1, new

Size(300, 300), new MCvScalar(104.0, 177.0, 123.0), false,

false);

m_net.SetInput(blob);

Mat _detectionMat = new

Mat(_netOut.SizeOfDimension[2], _netOut.SizeOfDimension[3], Emgu.CV.CvEnum.DepthType.Cv32F, 1, _netOut.DataPointer, 0);

List<float[]> _detectionArray = ArrayTo2DList(_detectionMat.GetData());

if (_detectionArray[i][2] > m_fScore) {

_Local.score = _detectionArray[i][2]; _Local.bbox.X = (int)(_detectionArray[i] [3] * _mImg.Width);

_Local.bbox.Y= (int)(_detectionArray[i] [4] * _mImg.Height); _Local.bbox.Width = (int) ((_detectionArray[i][5]- _detectionArray[i][3]) * _mImg.Width); _Local.bbox.Height = (int) ( (_detectionArray[i][6]- _detectionArray[i][4]) * _mImg.Height); _lLocal.Add(_Local); CvInvoke.Rectangle(_mImg, _Local.bbox,

new MCvScalar(0, 255, 0), thickness: 1); } m_ModelDetection = new FaceDetection.ModelFaceDetetion(); m_ModelDetection.ConfigPath = @"C:\Users\Bao Bao\source\repos\FaceRecognition\Model\deploy.prototxt.txt"; m_ModelDetection.ModelPath = @"C:\Users\Bao Bao\source\repos\FaceRecognition\Model\res10_300x300_ssd_iter _140000.caffemodel";

m_FaceLoca = new FaceDetection(m_ModelDetection); m_FaceLocation = new List<FaceDetection.FaceLocation>(); btnTracking.Enabled = false; m_bDetectStatus = false;

private void btnOpenImg_Click(object sender, EventArgs e)

{

if (m_Camera != null) {

m_Camera.Dispose(); // Dong camera m_Camera = null;

} try

{

OpenFileDialog fp = new OpenFileDialog(); if(fp.ShowDialog()== DialogResult.OK) {

m_mMainImage = new Mat(fp.FileName); // chuyen ten file sang dinh dang anh

ptbMainShow.Image = m_mMainImage.ToBitmap(); // Hien thi anh ra khung hinh chinh

}

btnTracking.Enabled = true; }

catch(Exception ex) {

Console.WriteLine(" Khong the mo anh.\nLoi: "

+ ex.Message); } }

private void btnCamera_Click(object sender, EventArgs e)

{

if (m_Camera == null) {

m_Camera = new VideoCapture(0); }

m_Camera.ImageGrabbed += ProcessFrame; m_Camera.Start();

btnTracking.Enabled = true; }

private void ProcessFrame(object sender, EventArgs e) {

try

{

m_Camera.Retrieve(m_mFrame, 0); m_mMainImage = m_mFrame;

var Drawn = m_FaceLoca.Detect(m_mMainImage,

ref m_FaceLocation);

ptbMainShow.Image = Drawn.ToImage<Bgr,

byte>().AsBitmap(); }

catch (Exception ex) {

Console.WriteLine("Khong the mo camera, kiem

tra lai.\n Loi:" + ex.Message);

} }

Một phần của tài liệu NGHIÊN CỨU, PHÁT TRIỂN HỆ THỐNG NHẬN DIỆN KHUÔN MẶT PHỤC VỤ KIỂM SOÁT AN NINH TRONG TÒA NHÀ (Trang 63 - 75)

w