1. Trang chủ
  2. » Tất cả

Thiết kế hệ thống nhận diện khuôn mặt đóng mở cửa tự động

91 6 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết kế hệ thống nhận diện khuôn mặt đóng mở cửa tự động
Tác giả Tô Vỹ Quang, Trần Trung Dũng, Nguyễn Thành Trung
Người hướng dẫn T.S Nguyễn Trọng Hải
Trường học Trường Đại Học Công Nghệ TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Cơ Khí
Thể loại Đề án tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 91
Dung lượng 2,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI (7)
    • 1.1 ĐẶT VẤN ĐỀ (7)
    • 1.2 MỤC TIÊU (7)
    • 1.3 NỘI DUNG NGHIÊN CỨU (8)
    • 1.4 GIỚI HẠN ĐỀ TÀI (8)
    • 1.5 BỐ CỤC (8)
  • CHƯƠNG II: TỔNG QUAN GIẢI PHÁP CÔNG NGHỆ (10)
    • 2.1 LÝ THUYẾT XỬ LÝ ẢNH (10)
      • 2.1.1 Giới thiệu (10)
      • 2.1.2 Thu nhận ảnh (Image acquision) (10)
      • 2.1.3 Tiền xử lý ảnh (Image processing) (11)
      • 2.1.4 Phân vùng ảnh (Segmentation) (11)
      • 2.1.5 Biểu diễn ảnh (Image representation) (11)
      • 2.1.6 Nhận diện và nội suy ảnh (Image recognition and Interpretation) (11)
      • 2.1.7 Cơ sở tri thức (Knowledge base) (12)
      • 2.1.8 Mô tả (12)
    • 2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH (12)
      • 2.2.1 Điểm ảnh (Picture Element – Pixel) (12)
      • 2.2.2 Độ phân giải cùa ảnh (13)
      • 2.2.3 Mức xám cùa ảnh (13)
      • 2.2.4 Ảnh số (Digital image) (14)
      • 2.2.5 Quan hệ giữa các điểm ảnh (14)
    • 2.3 RASPBERRY PI 3 (16)
      • 2.3.1 Giới thiệu (16)
      • 2.3.2 Thông tin cấu hình của Raspberry Pi 3 (17)
      • 2.3.3 Ưu và nhược điểm của Raspberry Pi 3 (18)
      • 2.3.4 Các ngõ ra GPIO (18)
    • 2.4 MÀN HÌNH TFT 1.44 INCH SPI (22)
      • 2.4.1 Giới thiệu (22)
      • 2.4.2 Thông số kỹ thuật (22)
      • 2.4.3 Giao diện chân Màn TFT 1.44 inch SPI (23)
    • 2.5 ARDUINO UNO R3 (24)
      • 2.5.1 Giới thiệu (24)
      • 2.5.2 Thông số kỹ thuật (24)
    • 2.6 THUẬT TOÁN HISTOGRAM OF ORIENTED GRADIENT (HOG) (25)
      • 2.6.1 Giới thiệu (25)
      • 2.6.2 Ứng dụng của HOG (26)
      • 2.6.3 Cách hoạt động của thuật toán (27)
      • 2.6.4 Phép tính HOG (27)
    • 2.7 THUẬT TOÁN HAAR-LIKE (31)
      • 2.7.1 Giới thiệu thuật toán Haar-like (31)
      • 2.7.2 Đặc trưng của Haar-like (32)
      • 2.7.3 Khái niệm Intergal Image (33)
      • 2.7.4 AdaBoost (35)
    • 2.8 PHẦN MỀM PYTHON (37)
      • 2.8.1 Giới thiệu (37)
      • 2.8.2 Ứng dụng của Python (37)
      • 2.8.3 Đặc điểm nổi bật của Python (38)
    • 2.9 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT (38)
      • 2.9.1 Quá trình training (39)
      • 2.9.2 Quá trình nhận diện khuôn mặt (40)
  • CHƯƠNG III: PHƯƠNG PHÁP GIẢI QUYẾT (42)
    • 3.1 GIỚI THIỆU VỀ CÔNG NGHỆ NHẬN DIỆN KHUÔN MẶT (42)
    • 3.2 NHỮNG LỢI ÍCH CỦA HỆ THỐNG NHẬN DIỆN KHUÔN MẶT ĐÓNG MỞ CỬA TỰ ĐỘNG (42)
    • 3.3 NHƯỢC ĐIỂM CỦA HỆ THỐNG NHẬN DIỆN KHUÔN MẶT ĐÓNG MỞ CỬA TỰ ĐỘNG (42)
  • CHƯƠNG IV: QUY TRÌNH THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM (43)
    • 4.1 GIỚI THIỆU (43)
    • 4.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG (43)
      • 4.2.1 Thiết kế sơ đồ khối tự động (43)
      • 4.2.2 Tính toán và thiết kế (44)
      • 4.3.2 Sơ đồ nguyên lý toàn mạch (49)
      • 4.4.2 Tính toán và thiết kế phần mềm (49)
  • CHƯƠNG V: THI CÔNG MÔ HÌNH THỰC NGHIỆM (52)
    • 5.1 GIỚI THIỆU (52)
    • 5.2 THI CÔNG MÔ HÌNH HỆ THỐNG (52)
      • 5.2.1 Chuẩn bị phần cứng (52)
      • 5.2.2 Lắp ráp và kiểm tra (52)
    • 5.3 THI CÔNG MÔ HÌNH (54)
    • 5.4 LẬP TRÌNH HỆ THỐNG (57)
      • 5.4.1 Lưu đồ giải thuật (57)
  • CHƯƠNG VI: ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN (62)
    • 6.1 ĐÁNH GIÁ KẾT QUẢ (62)
      • 6.1.1 Kết quả mô hình (62)
      • 6.1.2 Nhận xét và đánh giá (63)
    • 6.2 KẾT LUẬN (63)
      • 6.2.1 Kết quả đạt được (63)
      • 6.2.2 Những hạn chế (64)
    • 6.3 HƯỚNG PHÁT TRIỂN (64)
  • TÀI LIỆU THAM KHẢO (65)
  • PHỤ LỤC (66)

Nội dung

Do đó ứng dụng đóng vai trò quan trọng trong đời sống ngày nay như an ninh, y tế,… Do đó, dựa trên nền tảng kiến thức đã học, vốn kiến thức về điện tử và sự đồng ý của giảng viên hướng d

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ

Giảng viên hướng dẫn: T.S Nguyễn Trọng Hải

Sinh viên thực hiện: MSSV: Lớp:

TP Hồ Chí Minh, ngày 09 tháng 07 năm 2022

Trang 2

MỤC LỤC

LỜI CAM ĐOAN I LỜI CẢM ƠN II TÓM TẮT III ABSTRACT IV MỤC LỤC V DANH MỤC HÌNH VIII

CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 MỤC TIÊU 1

1.3 NỘI DUNG NGHIÊN CỨU 2

1.4 GIỚI HẠN ĐỀ TÀI 2

1.5 BỐ CỤC 2

CHƯƠNG II: TỔNG QUAN GIẢI PHÁP CÔNG NGHỆ 4

2.1 LÝ THUYẾT XỬ LÝ ẢNH 4

2.1.1 Giới thiệu 4

2.1.2 Thu nhận ảnh (Image acquision) 4

2.1.3 Tiền xử lý ảnh (Image processing) 5

2.1.4 Phân vùng ảnh (Segmentation) 5

2.1.5 Biểu diễn ảnh (Image representation) 5

2.1.6 Nhận diện và nội suy ảnh (Image recognition and Interpretation) 5

2.1.7 Cơ sở tri thức (Knowledge base) 6

2.1.8 Mô tả 6

2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH 6

2.2.1 Điểm ảnh (Picture Element – Pixel) 6

2.2.2 Độ phân giải cùa ảnh 7

2.2.3 Mức xám cùa ảnh 7

2.2.4 Ảnh số (Digital image) 8

2.2.5 Quan hệ giữa các điểm ảnh 8

2.3 RASPBERRY PI 3 10

2.3.1 Giới thiệu 10

2.3.2 Thông tin cấu hình của Raspberry Pi 3 11

2.3.3 Ưu và nhược điểm của Raspberry Pi 3 12

2.3.4 Các ngõ ra GPIO 12

Trang 3

2.4 MÀN HÌNH TFT 1.44 INCH SPI 16

2.4.1 Giới thiệu 16

2.4.2 Thông số kỹ thuật 16

2.4.3 Giao diện chân Màn TFT 1.44 inch SPI 17

2.5 ARDUINO UNO R3 18

2.5.1 Giới thiệu 18

2.5.2 Thông số kỹ thuật 18

2.6 THUẬT TOÁN HISTOGRAM OF ORIENTED GRADIENT (HOG) 19

2.6.1 Giới thiệu 19

2.6.2 Ứng dụng của HOG 20

2.6.3 Cách hoạt động của thuật toán 21

2.6.4 Phép tính HOG 21

2.7 THUẬT TOÁN HAAR-LIKE 25

2.7.1 Giới thiệu thuật toán Haar-like 25

2.7.2 Đặc trưng của Haar-like 26

2.7.3 Khái niệm Intergal Image 27

2.7.4 AdaBoost 29

2.8 PHẦN MỀM PYTHON 31

2.8.1 Giới thiệu 31

2.8.2 Ứng dụng của Python 31

2.8.3 Đặc điểm nổi bật của Python 32

2.9 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT 32

2.9.1 Quá trình training 33

2.9.2 Quá trình nhận diện khuôn mặt 34

CHƯƠNG III: PHƯƠNG PHÁP GIẢI QUYẾT 36

3.1 GIỚI THIỆU VỀ CÔNG NGHỆ NHẬN DIỆN KHUÔN MẶT 36

3.2 NHỮNG LỢI ÍCH CỦA HỆ THỐNG NHẬN DIỆN KHUÔN MẶT ĐÓNG MỞ CỬA TỰ ĐỘNG 36

3.3 NHƯỢC ĐIỂM CỦA HỆ THỐNG NHẬN DIỆN KHUÔN MẶT ĐÓNG MỞ CỬA TỰ ĐỘNG 36

CHƯƠNG IV: QUY TRÌNH THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM 37

4.1 GIỚI THIỆU 37

4.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 37

4.2.1 Thiết kế sơ đồ khối tự động 37

Trang 4

4.2.2 Tính toán và thiết kế 38

4.3.2 Sơ đồ nguyên lý toàn mạch 43

4.4.2 Tính toán và thiết kế phần mềm 43

CHƯƠNG V: THI CÔNG MÔ HÌNH THỰC NGHIỆM 46

5.1 GIỚI THIỆU 46

5.2 THI CÔNG MÔ HÌNH HỆ THỐNG 46

5.2.1 Chuẩn bị phần cứng 46

5.2.2 Lắp ráp và kiểm tra 46

5.3 THI CÔNG MÔ HÌNH 48

5.4 LẬP TRÌNH HỆ THỐNG 51

5.4.1 Lưu đồ giải thuật 51

CHƯƠNG VI: ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN 56

6.1 ĐÁNH GIÁ KẾT QUẢ 56

6.1.1 Kết quả mô hình 56

6.1.2 Nhận xét và đánh giá 57

6.2 KẾT LUẬN 57

6.2.1 Kết quả đạt được 57

6.2.2 Những hạn chế 58

6.3 HƯỚNG PHÁT TRIỂN 58

TÀI LIỆU THAM KHẢO 59

SÁCH THAM KHẢO 59

PHỤ LỤC 60

Trang 5

DANH MỤC HÌNH

Hình 1.1: Các bước cơ bản trong xử lý ảnh 4

Hình 2.2: Lân cận các điểm ảnh của tọa độ 8

Hình 2.3: Raspberry Pi 3 10

Hình 2.4: Sơ đồ khối Raspberry Pi 3 11

Hình 2.5: Vị trí chân Raspberry Pi 3 12

Hình 2.6: Màn TFT 1.44 inch SPI 16

Hình 2.7: Sơ đồ khối TFT 1.44 inch SPI 17

Hình 2.8: Arduino Uno R3 18

Hình 2.9: Ảnh phân tích Histogram 23

Hình 2.10: Map giá trị độ lớn gradient vào các bin tương ứng với phương 23

Hình 2.11: Biểu đồ HOG tương ứng với 1 cell 24

Hình 2.12: Các đặc trưng của Haar-like 26

Hình 2.13: Các đặc trưng của haar-like sử dụng trong việc phát hiện khuôn mặt 26

Hình 2.14: Intergal Image 27

Hình 2.15: Mô tả Intergal Image 28

Hình 2.16: Mô tả bộ lọc Haar-Cascade 29

HÌNH 2.17: Kết hợp các bộ phận phân loại yếu thành bộ phận phân loại mạnh 30

Hình 2.18: Hai đặc trưng cơ bản nhất để xác định khuôn mặt 30

Hình 2.19: Phần mềm Python 31

Hình2.20: Quá trình Training 33

Hình 2.21:Quá trình nhận diện khuôn mặt 34

Hình 4.1: Sơ đồ khối hệ thống 37

Hình 4.2: Sơ đồ khối Raspberry với các khối khác 40

Hình 4.3:Camera Pi kết nối với kit Raspberry 41

Hình 4.4:Bàn phím mềm 4x4 41

Hình 4.5:Adapter chuyên dụng cho Raspberry 42

Trang 6

Hình 4.6: Sơ đồ nguyên lý toàn mạch 43

Hình 4.7: Không phát hiện được khuôn mặt 44

Hình 4.8: Phát hiện khuôn mặt 44

Hình 5.1: Raspberry kết nối với camera, bàn phím mềm, màn hình LCD 47

Hình 5.2: Arduino kết nối bới Servo và Raspberry 48

Hình 5.3:Servo kết nối với cửa 48

Hình 5.4: Tổng quan mô hình 49

Hình 5.5:Mô hình nhìn từ phía trước 49

Hình 5.6: Vị trí đặt Raspberry, camera Pi, bàn phím mềm 50

Hình 5.7:Vị trí đặt Arduino 50

Hình 5.8: Hoạt động của hệ thống sau khi được cấp nguôn 51

Hình 5.9: Hoạt động của dữ liệu xử lý hình ảnh 52

Hình 5.10: Hoạt động của keypad xử lý nút nhấn 53

Hình 5.11: Hoạt động của dữ liệu hiển thị hình ảnh 54

Hình 5.12: Hoạt động của relay và servo 55

Trang 7

CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 1.1 ĐẶT VẤN ĐỀ

Với sự phát triển không ngừng nghỉ của khoa học kỹ thuật, việc ứng dụng khoa học kỹ thuật vào đời sống, xã hội đã trở nên phổ biến và cần thiết hơn bao giờ hết

Nó góp phần thúc đẩy phát triển khi mọi thứ dần trở nên tự động và hiệu suất công việc cũng được nâng cao hơn với sự giúp đỡ của máy móc, thiết bị Trong đó, công nghệ tiên tiến đang được áp dụng rộng rãi trong đời sống chính là xử lí ảnh Không dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà công nghệ xử lí hình ảnh ngày nay còn giải quyết được các vấn đề như nhận diện chữ viết, khuôn mặt, dấu vân tay,…

Trong đó vấn đề được nhiều người quan tâm hiện nay là nhận diện khuôn mặt Như chúng ta biết, khuôn mặt đóng vai trò quan trọng trong việc giao tiếp giữa người với người, nó mang một lượng lớn thông tin giúp ta xác định được giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt là xác nhận quan hệ đối tượng Do đó ứng dụng đóng vai trò quan trọng trong đời sống ngày nay như an ninh, y tế,…

Do đó, dựa trên nền tảng kiến thức đã học, vốn kiến thức về điện tử và sự đồng

ý của giảng viên hướng dẫn - thầy Nguyễn Trọng Hải, nhóm đã quyết định chọn

đề tài “Thiết kế hệ thống nhận diện khuôn mặt đóng mở cửa tự động”

1.2 MỤC TIÊU

Đề tài “Thiết kế hệ thống nhận diện khuôn mặt đóng mở cửa tự động” với

mục tiêu là:

• Nhận diện chính xác được người có trong cơ sở dữ liệu

• Cho phép mô hình mở cửa khi nhận diện thành công

• Sử dụng phần mềm Python để viết chương trình nhận diện khuôn mặt

• Sử dụng Raspberry Pi 3 làm thiết bị nhúng

• Hệ thống hoạt động ổn định

Trang 8

1.3 NỘI DUNG NGHIÊN CỨU

Đề tài “Thiết kế hệ thống nhận diện khuôn mặt đóng mở cửa tự động” có nội

dung như sau:

• Nội dung 1: Tìm hiểu về Raspberry Pi 3 và phần mềm Python

• Nội dung 2: Tổng quan về xử lý ảnh và thuật toán nhận diện khuôn mặt

• Nội dung 3: Viết chương trình nhận diện khuôn mặt

• Nội dung 4: Thiết kế và thi công mô hình

• Nội dung 5: Chạy thử nghiệm và điều chỉnh mô hình

• Nội dung 6: Viết báo cáo đồ án

• Nội dung 7: Báo cáo về đồ án

1.4 GIỚI HẠN ĐỀ TÀI

Trong đề tài này, nhóm thực hiện xem xét chương trình nhận diện khuôn mặt và làm mô hình nhỏ nên còn giới hạn về:

• Nhận diện được trong môi trường đủ ánh sáng

• Khuôn mặt không bị che khuất, góc nhìn trực diện

• Mô hình thi công có kích thước:

• Mô hình nhr, sử dụng máy tính để xử lý hình ảnh thông qua phần mềm hỗ trợ Python, Raspberry Pi 3 làm hệ thống điều khiển

1.5 BỐ CỤC

Nội dung đề tài như sau:

• Chương 1 – Giới thiệu đề tài: Trình bày khái quát về xu hướng phát triển,

nguyên nhân chọn đề tài, xác định mục tiêu và giới hạn công việc đề tài

• Chương 2 – Tổng quan giải pháp công nghệ: Giới thiệu các kiến thức nền

tảng cũng như công nghệ và phần mềm được sử dụng trong khóa luận bao gồm kiến thức về xử lý hình ảnh, kết nối giữa Rastpberry Pi 3 với máy tính thông qua Python và cần thiết cho mô hình

Trang 9

• Chương 3 – Phương pháp giải quyết: Thực hiện kế hoạch tập mẫu, diễn giải

các thông số của mô hình, xây dựng bản vẽ chi tiết mô hình, thiết kế và kiểm tra hệ thống nhận diện khuôn mặt

• Chương 4 – Quy trình thiết kế phần cứng và phần mềm: Thực hiện lập

trình hệ thống, xây dựng lưu đồ giải thuật, nạp code và tiến hành chạy thử nghiệm

• Chương 5 – Thi công mô hình thực nghiệm: Trình bày kết quả đạt được qua

quá trình kiểm tra, thử nghiệm của hệ thống nhận diện khuôn mặt

• Chương 6 – Kết luận và hướng phát triển: Trình bày kết quả đạt được, nêu

lên hướng nghiên cứu và phát triển đề tài

Trang 10

CHƯƠNG II: TỔNG QUAN GIẢI PHÁP CÔNG NGHỆ

2.1 LÝ THUYẾT XỬ LÝ ẢNH

2.1.1 Giới thiệu

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng của nó

Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh) Trước đây, ảnh thu qua camera là các ảnh tương tự ( loại camera ống kiểu CCIR) Gần đây, với sự phát triển của công nghệ, ảnh màu được đen trắng được lấy

ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh, có thể quét từ ảnh chụp từ máy quét ảnh

Hình 1.1: Các bước cơ bản trong xử lý ảnh 2.1.2 Thu nhận ảnh (Image acquision)

Ảnh có thể được thu nhận qua camera màu hoặc trắng đen Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh

25 dòng), cũng có loại camera đã số hóa (như lại CCD – change coupled device) là loại photodiode tạo cường độ sáng tại mỗi điểm ảnh

Trang 11

Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng ảnh hai chiều Chất lượng ảnh thu được phụ thuộc vào thiết bị thu, môi trường thu nhận ảnh (ánh sáng, phong cảnh,…)

2.1.3 Tiền xử lý ảnh (Image processing)

Sau bộ thu nhận, ảnh có thể có độ nhiễu tương phản thấp nên ta cần đưa vào

bộ tiền xử lý ảnh để nâng cao chất lượng Chức năng chính của bộ tiền xử lý ảnh là lọc nhiễu, nâng cao sự tương phản để làm ảnh rõ nét hơn

2.1.4 Phân vùng ảnh (Segmentation)

Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận diện ảnh Kết quả của công đoạn nhận diện ảnh phụ thuộc vào việc phân chia các chi tiết về các địa chỉ riêng biệt để nhận diện Đây là công đoạn phức tạp trong xử lý ảnh

2.1.5 Biểu diễn ảnh (Image representation)

Đây là phần sau phân vùng ảnh cộng với mã liên kết các vùng lân cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho quá trình xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích xuất đặc trưng gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở

để phân biệt lớp đối tượng này với lớp đối tượng khác trong phạm vi ảnh nhận được

2.1.6 Nhận diện và nội suy ảnh (Image recognition and Interpretation)

Nhận diện ảnh là quá trình xác định Quá trình này thường thu được bằng cách

so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận diện Theo lý thuyết về nhận diện, các mô hình toán học về ảnh

có thể được nhận diện theo hai loại cơ bản là:

• Nhận diện tham số

• Nhận diện theo cấu trúc

Một số đối tượng nhận diện phổ biến hiện nay được áp dụng trong khoa học

và công nghệ là: nhận diện ký tự, nhận diện vân tay, mã vạch, khuôn mặt người,…

Trang 12

2.1.7 Cơ sở tri thức (Knowledge base)

Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng, dung lượng điểm ảnh, môi trường để thu ảnh phong phú Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh của con người Hiện nay, nhiều khâu trong quy trình đã được xử lý theo các phương pháp mô phỏng trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy

2.1.8 Mô tả

Ảnh sau khi số hóa sẽ được lưu vào bộ nhớ, hoặc truyền sang các khâu tiếp theo để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô thì sẽ đòi hỏi bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, các ảnh được gọi là các đặc trưng ảnh như: biên ảnh, vùng ảnh

2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH

2.2.1 Điểm ảnh (Picture Element – Pixel)

Gốc của ảnh(ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử lý bằng máy tính(số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí(không gian) và độ sáng (mức xám) Khoảng cách giữa điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi Pixel ứng với cặp tọa độ (x,y)

Như vậy, điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x,y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về kkhong gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần

tử ảnh

Trang 13

2.2.2 Độ phân giải cùa ảnh

Theo định nghĩa ở trên thi mỗi Pixel gồm một cặp toạ độ (x,y) và màu Độ phân giải của ảnh chính là tích số của giá trị lớn nhất của x với giá trị lớn nhất của y

VD: Màn hình máy tính có nhiều loại với độ phân giải khác nhau: màn hình CGA (Color Graphic Adaptor) có độ phân giảI 320 x 200; màn hình VGA (Video Graphic Array) độ phân giải 1280 x 800;

Rõ ràng màn hình có độ phân giải càng cao thì ta có cảm giác nó càng ‘mịn’ hơn so với loại có độ phân giải thấp hơn

2.2.3 Mức xám cùa ảnh

Mức xám là kết quả sự mã hoá tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị số – kết quả của quá trình lượng tử hoá

Các thang giá trị mức xám thông thường: 16,32,64,128,256 Trong đó mức

256 được dùng rất phổ biến do máy tính dùng 1 byte(8 bit) để biểu diễn mức xám,

mà mức xám lại dùng 1 byte để biểu diễn: 28 = 256 mức, tức là từ mức 0 đến mức

255

• Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác ) với mức

xám ở các điểm ảnh có thể khác nhau

• Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức ding 1 bit mô tả

21 mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trị hoặc là

1 hoặc là 2

• Ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mức màu (do

thế giới màu được tạo nên từ 3 màu cơ bản: đỏ(red), lục(blue) và lơ(green))

Do đó có 28*3 = 224 = 16,7 triệu màu

Trang 14

2.2.4 Ảnh số (Digital image)

Là tập hợp hữu hạn các điểm ảnh Ảnh có thể được biểu diễn dưới dạng một

ma trận 2 chiều, mỗi phần tử của ma trận tương ứng với một điểm ảnh Mỗi phần tử

này được gọi là một pixel Ảnh có thể được định nghĩa là một hàm 2 chiều f(x,y), trong đó x và y là các tọa độ trong không gian ( spatinal) hoặc mặt phẳng (plane), và

độ lớn (amplitude) của hàm f được gọi là độ sáng (intensity) hay độ xám (gray level) của ảnh tại điểm đó

2.2.5 Quan hệ giữa các điểm ảnh

Một ảnh số giả sử được biểu diễn bằng hàm f(x, y) Tập con các điểm ảnh là S; cặp điểm ảnh có quan hệ với nhau ký hiệu là p, q Chúng ta nêu một số các khái niệm

sau

a) Các lân cận của điểm ảnh (Image Neighbors)

Giả sử có điểm ảnh p tại toạ độ (x, y) p có 4 điểm lân cận gần nhất theo chiều

đứng và ngang (có thể coi như lân cận 4 hướng chính: Đông, Tây, Nam, Bắc)

{(x-1, y); (x, y-1); (x, y+1); (x+1, y)} = N 4 (p)

Trong đó: số 1 là giá trị logic; N 4 (p) tập 4 điểm lân cận của p

Hình 2.2: Lân cận các điểm ảnh của tọa độ

Trang 15

Các điểm lân cận chéo: Các điểm lân cận chéo NP(p) (Có thể coi lân cận chéo là 4 hướng: Đông-Nam, Đông-Bắc, Tây-Nam, Tây-Bắc)

N p (p) = { (x+1, y+1); (x+1, y-1); (x-1, y+1); (x-1, y-1)}

Tập kết hợp: N8(p) = N4(p) + NP(p) là tập hợp 8 lân cận của điểm ảnh p Chú ý: Nếu (x, y) nằm ở biên (mép) ảnh; một số điểm sẽ nằm ngoài ảnh b) Các mối liên kết điểm ảnh

Các mối liên kết được sử dụng để xác định giới hạn (Boundaries) của đối tượng vật thể hoặc xác định vùng trong một ảnh Một liên kết được đặc trưng bởi tính liền

kề giữa các điểm và mức xám của chúng

Giả sử V là tập các giá trị mức xám Một ảnh có các giá trị cường độ sáng từ

thang mức xám từ 32 đến 64 được mô tả như sau:

V = {32, 33, … , 63, 64}

Có 3 loại liên kết

• Liên kết 4: Hai điểm ảnh p và q được nói là liên kết 4 với các giá trị

cường độ sáng V nếu q nằm trong một các lân cận của p, tức q thuộc

N4(p)

• Liên kết 8: Hai điểm ảnh p và q nằm trong một các lân cận 8 của p, tức

q thuộc N8(p)

• Liên kết m (liên kết hỗn hợp): Hai điểm ảnh p và q với các giá trị

cường độ sáng V được nói là liên kết m nếu

1 q thuộc N4(p) hoặc

2 q thuộc NP(p)

Trang 16

Raspberry Pi 3 là thế hệ máy tính thứ 3 của Raspberry Pi, nó ra đời để thay thế Raspberry Pi 2 vào tháng 1/ 2016 Raspberry Pi 3 có đặc điểm nổi trội hơn các

phiên bản trước là có tích hợp thêm wifi để có thể kết nối mạng internet không dây

và bluetooth 4.1

Hình 2.3 Raspberry Pi 3

Trang 17

2.3.2 Thông tin cấu hình của Raspberry Pi 3

Thông tin cấu hình Raspberry Pi 3 model B:

• CPU Broadcom BCM2837 64 bit quad-core bộ vi xử lý ARM Cortex A53, tốc

độ 1.2GHz, gấp 10 lần so với thế hệ đầu tiên

• Tích hợp wireless chuẩn 802.11n

• Tích hợp Bluetooth 4.1 (sở hữu tính năng tiết kiệm năng lượng BLE)

• Bộ nhớ RAM 2G

• 4 cổng USB 2.0

• Cổng HDMI, hỗ trợ Full HDMI

• Cổng Ethernet (hay gọi là cổng mạng LAN)

Trang 18

2.3.3 Ưu và nhược điểm của Raspberry Pi 3

Trang 19

GPIO của Raspberry Pi 3 model B có tất cả 40 chân, được chia làm hai hàng, mỗi hàng 20 chân, một hàng gồm các chân đánh số lẽ từ 1–39, một hàng gồm các chân đánh số chẵn từ 2–40 (đánh số theo mạch – BOARD number)

GPIO của Raspberry Pi 3 model B gồm có:

▪ 2 chân có mức điện áp 3.3V (chân số 1 và chân số 17)

▪ 2 chân có mức điện áp 5V (chân số 2, chân số 4)

▪ 8 chân Ground (0V) (chân số 6, 9, 14, 20, 25, 30, 34 và 39)

▪ 28 chân GPIO ( chân số 3, 5, 7, 8, 10, 11, 12, 13, 15 , 16, 18, 19, 20, 21, 22,

nối: SDA (Serial Data) và SCL (Serial Clock) Chúng hoạt động bằng cách gửi dữ

liệu đến và sử dụng kết nối SDA, và tốc độ truyền dữ liệu được điều khiển thông qua chân SCL

Data: (GPIO 2), Clock (GPIO 3)

EEPROM Data: (GPIO 0), EEPROM Clock (GPIO 1)

b) Các chân UART

Trang 20

Các chân giao tiếp nối tiếp hoặc UART (Universal Asynchronous Receiver/Transmitter – Bộ thu / phát không đồng bộ đa năng) cung cấp cách thức giao tiếp giữa hai bộ vi điều khiển hoặc máy tính Chân TX được sử dụng để truyền

dữ liệu nối tiếp và chân RX được sử dụng để nhận dữ liệu nối tiếp đến từ một thiết bị

nối tiếp khác Có 2 chân liên quan đến giao tiếp UART

TX (GPIO14)

RX (GPIO15)

c) Các chân SPI

SPI (Serial Peripheral Interface) là một giao thức được sử dụng cho giao tiếp

chủ-tớ Raspberry Pi sử dụng giao thức này để giao tiếp nhanh chóng giữa một hoặc

nhiều thiết bị ngoại vi Dữ liệu được đồng bộ hóa bằng đồng hồ (SCLK tại chân

GPIO 11) từ thiết bị chính (Raspberry Pi) và dữ liệu được gửi từ Raspberry Pi tới

thiết bị SPI bằng chân MOSI (Master Out Slave In) Nếu thiết bị SPI cần giao tiếp lại với Raspberry Pi, thì nó sẽ gửi dữ liệu trở lại bằng chân MISO (Master In Slave

Out) Có 5 chân liên quan đến giao tiếp SPI:

GND: Kết nối tất cả các chân GND của tất cả các thành phần tớ (slave) và

bo mạch Raspberry Pi 3 với nhau

SCLK: Tín hiệu đồng hồ của SPI Kết nối tất cả các chân SCLK với nhau

MOSI (Master Out Slave In): Chân này được sử dụng để gửi dữ liệu từ chủ

(master) đến tớ (slave)

MISO (Master In Slave Out): Chân này được sử dụng để nhận dữ liệu từ

slave đến master

CE (Chip Enable): Chúng tôi cần kết nối một chân CE cho mỗi thiết bị

slave (hoặc các thiết bị ngoại vi) trong mạch của chúng ta Theo mặc định,

Trang 21

chúng ta có hai chân CE nhưng chúng ta có thể cấu hình nhiều chân CE hơn từ các chân GPIO có sẵn khác

Các chân SPI trên bo mạch Raspberry Pi 3:

SPI0: GPIO 9 (MISO), GPIO 10 (MOSI), GPIO 11 (SCLK), GPIO 8

(CE0), GPIO 7 (CE1)

SPI1: GPIO 19 (MISO), GPIO 20 (MOSI), GPIO 21 (SCLK), GPIO 18

(CE0), GPIO 17 (CE1), GPIO 16 (CE2)

Các chân GPIO chịu mức điện áp tối thiểu là 3V, tối đa là 5V Nếu mức điện

áp nằm ngoài giới hạn này sẽ làm hỏng mạch Thông thường, chúng ta nên sử dụng một mạch mở rộng để kết nối với các thiết bị ngoại vi, không nên kết nối trực tiếp các thiết bị, linh kiện điện tử vào GPIO trên Raspberry Pi 3

d) Các chân PWM

PWM (Pulse Width Modulation – Điều chế độ rộng xung) là một kỹ thuật phổ

biến được sử dụng để thay đổi độ rộng của các xung trong một chuỗi xung PWM có nhiều ứng dụng như điều khiển độ sáng của đèn LED, điều khiển tốc độ của động cơ

DC, điều khiển động cơ servo hoặc nơi bạn phải lấy ngõ ra analog bằng các thiết bị

Trang 22

2.4 MÀN HÌNH TFT 1.44 INCH SPI

2.4.1 Giới thiệu

Màn hình TFT 1.44 inch SPI à giải pháp tối ưu cho việc hiển thị trên màn

hình LCD, có khả năng giao tiếp với nhiều loại MCU thông qua giao thức SPI

Màn hình TFT 1.44 inch có độ phân giải 128x128, cùng kích thước nhỏ gọn dễ

dàng cho việc lắp đặt với các thiết bị khác Màn hình TFT 1.44 inch được sử dụng

IC ST7735 khá phổ biến để điều khiển màn hình

Hình 2.6 Màn TFT 1.44 inch SPI 2.4.2 Thông số kỹ thuật

Trang 23

Hình 2.7 Sơ đồ khối TFT 1.44 inch SPI 2.4.3 Giao diện chân Màn TFT 1.44 inch SPI

1 VCC Đầu vào nguồn 5V/3.3V

3 CS Tín hiệu chọn chip LCD, bật mức thấp

4 RESET Tín hiệu đặt lại LCD, đặt lại mức thấp

5 A0 Thanh ghi màn hình LCD/ tín hiệu chọn dữ liệu, mức cao:

đăng ký, mức thấp: dữ liệu

6 SDA Tín hiệu dữ liệu SPI

7 SCK Tín hiệu đồng hồ SPI

8 LED Điều khiển đèn nền, sáng ở mức cao, nếu không cần điều

khiển , kết nối với 3.3V để tiếp tục

Trang 24

2.5 ARDUINO UNO R3

2.5.1 Giới thiệu

Arduino Uno R3 là một board mạch vi điều khiển được phát triển bởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa trên vi điều khiển AVR Atmega328P

Phiên bản hiện tại của Arduino Uno R3 đi kèm với giao diện USB, 6 chân đầu vào analog, 14 cổng kỹ thuật số I / O được sử dụng để kết nối với các mạch điện tử, thiết bị bên ngoài Trong đó có 14 cổng I / O, 6 chân đầu ra xung PWM cho phép các nhà thiết kế kiểm soát và điều khiển các thiết bị mạch điện tử ngoại vi một cách trực quan

Arduino Uno R3 được kết nối trực tiếp với máy tính thông qua USB để giao tiếp với phần mềm lập trình IDE, tương thích với Windows, MAC hoặc Linux Systems, tuy nhiên, Windows thích hợp hơn để sử dụng Các ngôn ngữ lập trình như C và C ++ được sử dụng trong IDE

Hình 2.8 Arduino Uno R3 2.5.2 Thông số kỹ thuật

Trang 25

Điện áp hoạt động 5V

Phương pháp trích xuất đặc trưng hình ảnh HOG xuất bản ở hội nghị CVPR

2005 được đề xuất bởi tác giả Navneet Dalal và Bill Triggs Bài báo gốc HOG đề xuất phương pháp trích xuất đặc trưng sử dụng các thống kê histogram về hướng trên ảnh gradient cho bài toán phát hiện người (human detection)

HOG là viết tắt của Histogram of Oriented Gradient - một loại “bộ mô tả đặc trưng” (feature descriptor) Mục đích của bộ mô tả đặc trưng là trừu tượng hóa đối

Trang 26

tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thông tin không hữu ích Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một đối tượng trong ảnh

Thuật toán này sẽ tạo ra các bộ mô tả đặc trưng bằng cách lấy ra 2 ma trận quan trọng giúp lưu thông tin ảnh đó là độ lớn gradient (gradient magnitute) và phương của gradient (gradient orientation) Bằng cách kết hợp 2 thông tin này vào một biểu đồ phân phối histogram, trong đó độ lớn gradient được đếm theo các nhóm bin của phương gradient Cuối cùng ta sẽ thu được véctơ đặc trưng HOG đại diện cho histogram

Nhận diện các vật thể khác: Ngoài ra còn rất nhiều các trường hợp nhận diện vật thể trên ảnh tĩnh như phương tiện, tín hiệu giao thông, động vật…

Tạo đặc trưng cho các bài toán phân loại ảnh: Nhiều bài toán phân loại ảnh được xây dựng trên một bộ dữ liệu kích thước nhỏ thì sử dụng các mạng học sâu chưa chắc đã mang lại hiệu quả và dễ dẫn tới overfiting Nguyên nhân vì dữ liệu ít thường không đủ để huấn luyện cho máy tính nhận tốt các đặc trưng của vật thể Khi đó sử

dụng HOG để tạo đặc trưng sẽ mang lại kết quả tốt hơn

Trang 27

2.6.3 Cách hoạt động của thuật toán

Điểm mấu chốt trong nguyên lý hoạt động của HOG đó là hình dạng của một vật thể cục bộ có thể được mô tả thông qua hai ma trận đó là ma trận độ lớn gradient (gradient magnitude) và ma trận phương gradient (gradient direction)

Đầu tiên hình ảnh được chia thành 1 lưới ô vuông và trên đó chúng ta xác định rất nhiều các vùng cục bộ liền kề hoặc chồng lấn lên nhau Một vùng cục bộ bao gồm nhiều ô cục bộ (trong thuật toán HOG là 4) có kích thước là 8x8 pixels Sau đó, một biểu đồ histogram thống kê độ lớn gradient được tính toán trên mỗi ô cục bộ Bộ mô

tả HOG (HOG descriptor) được tạo thành bằng cách nối liền (concatenate) 4 véctơ histogram ứng với mỗi ô thành một véctơ tổng hợp Để cải thiện độ chính xác, mỗi giá trị của véctơ histogram trên vùng cục bộ sẽ được chuẩn hóa theo norm chuẩn bậc

2 hoặc bậc 1 Phép chuẩn hóa này nhằm tạo ra sự bất biến tốt hơn đối với những thay đổi trong chiếu sáng và đổ bóng

2.6.4 Phép tính HOG

• Gradient vector

Trong xử lý ảnh, ta muốn biết hướng của các màu thay đổi từ cực này sang cực khác (từ trắng sang đen trong ảnh xám) Do đó, ta cần đo độ dốc gradient trên các pixel Độ dốc trên hình ảnh là rời rạc vì mỗi pixel là độc lập và không thể phân chia thêm

Vectơ độ dốc hình ảnh được xác định là một số liệu cho mỗi pixel riêng lẻ,

chứa các thay đổi màu pixel ở cả trục x và trục y

Giả sử f(x,y) ghi lại màu của pixel tại vị trí (x,y), vectơ gradient của pixel (x,y)

được xác định như sau:

Trang 28

Trong đó 𝜕𝑓

𝜕𝑥 là đạo hàm riêng theo trục x, là chênh lệch màu giữa các pixel liền kề bên trái và bên phải của pixel đang tính, f(x+1, y) - f(x-1, y) Tương tự, 𝜕𝑓

𝜕𝑦 là

đạo hàm riêng trên trục y, được đo bằng f(x, y+1) - f(x, y-1), là độ lệch màu giữa các

pixel liền kề bên trên và bên dưới pixel đang tính

Giá trị độ lớn gradient (gradient magnitude) và phương gradient (gradient

direction) có thể được tạo ra từ 2 đạo hàm G x và G y theo công thức bên dưới:

Trang 29

Hình 2.9 Ảnh phân tích Histogram Véctơ Histogram sẽ được tạo ra như sau:

Bước 1: Mapping độ lớn gradient vào các bin tương ứng của phương gradient

Hình 2.10 Map giá trị độ lớn gradient vào các bin tương ứng với phương

Giá trị phương gradient bằng x ghép cặp với độ lớn gradient bằng y x ∈ [x 0 ,x 1 ]

tức là phương gradients rơi vào khoảng giữa bin thứ (l−1) và bin thứ l Khi đó tại 2 bin (l−1) và l được điền vào giá trị cường độ theo công thức:

Giá trị tại bin (l-1)

Trang 30

𝑥𝑙−1 =(𝑥1− 𝑥)

𝑥1− 𝑥0 𝑦 Giá trị tại bin 1:

𝑥1 =(𝑥 − 𝑥0)

𝑥1− 𝑥0 𝑦 Tính tổng tất cả các độ lớn gradient thuộc cùng 1 bin của véctơ bin ta thu được biểu đồ Histogram of Gradients như hình:

Hình 2.11 Biểu đồ HOG tương ứng với 1 cell Bước 2: Chuẩn hóa véctơ histogram theo block 16x16

Véctơ histogram sẽ bị phụ thuộc vào cường độ các pixel của một bức ảnh Với

2 bức ảnh có cùng nội dung nhưng bức ảnh biến thể tối hơn được tạo thành từ ma trận ảnh gốc nhân 1

2 Khi đó giá trị véctơ histogram của ảnh gốc cũng sẽ gấp đôi véctơ histogram của ảnh biến thể Hiện tại mỗi ô đang mang trong mình histogram trên vùng ảnh 8x8, các thông tin này mang tính chất cục bộ Chính vì thế cần chuẩn hóa véctơ histogram để cả 2 bức ảnh có cùng một véctơ biểu diễn Tác giả đã đưa ra nhiều cách chuẩn hóa khác nhau dựa trên các khối (block) chồng lấn (overlap) nhau

Một block gồm nhiều ô, block 2x2 nghĩa là ta có vùng diện tích của 4 ô liền

kề, block này sẽ phủ trên diện tích = 16x16 pixel Trong quá trình chuẩn hóa, ta sẽ

Trang 31

lần lượt chuẩn hóa block 2x2 đầu tiên, rồi dịch block đó sang 1 ô và cũng thực hiện chuẩn hóa cho block này Như vậy, giữa block đầu tiên và block liền kề đã có sự chồng lấn lẫn nhau (2 ô), trong tiếng Anh người ta dùng từ overlap

Công thức chuẩn hóa norm chuẩn bậc 2:

𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒(ℎ) = ℎ

‖ℎ‖2Quá trình chuẩn hóa sẽ thực hiện trên một block kích thước 2x2 trên lưới ô vuông ban đầu (mỗi ô kích thước 8x8 pixel) Như vậy chúng ta sẽ có 4 véctơ histogram kích thước 1x9, nối các véctơ sẽ thu được véctơ histogram tổng hợp kích thước là 1x36 và sau đó chuẩn hóa theo norm chuẩn bậc 2 trên véctơ này

Bước 3: Tính toán HOG theo các block đã chuẩn hóa

2.7 THUẬT TOÁN HAAR-LIKE

2.7.1 Giới thiệu thuật toán Haar-like

Được phát triển bởi Paul Viola và Michael Jones vào năm 2001 Phương pháp này được cho là đơn giản và đạt hiệu quả phát hiện tương đối cao, lên tới 94% Dù

đã được ra đời từ rất lâu nhưng với độ chính xác và tốc độ xử lý mang phương pháp này có thể mang lại, người ta vẫn sử dụng phương pháp này trong bài toán phát hiện khuôn mặt người cho đến ngày nay Các hãng sản xuất máy ảnh nổi tiếng như Canon, Samsung… cũng đã tích hợp nó vào trong các sản phẩm của mình

Trang 32

2.7.2 Đặc trưng của Haar-like

Các đặc trưng Haar – Like là những hình chữ nhật được phân thành các vùng khác nhau như hình:

Hình 2.12 Các đặc trưng của Haar-like

Đặc trưng do Viola và Jones công bố gồm 4 đặc trưng cơ bản để xác định khuôn mặt người Mỗi đặc trưng Haar-Like là sự kết hợp của hai hay ba hình chữ nhật trắng hay đen như trong hình sau:

Hình 2.13 Các đặc trưng của haar-like sử dụng trong việc phát hiện khuôn mặt

Để sử dụng các đặc trưng này vào việc xác định khuôn mặt người, 4 đặc trưng Haar-Like cơ bản được mở rộng ra và được chia làm 3 tập đặc trưng như sau:

- Đặc trưng cạnh (Edge feature)

Trang 33

- Đặc trưng đường (Line feature)

- Đặc trưng xung quanh tâm ( Center-surrounded feature)

Dùng các đặc trưng trên, ta có thể tính được các giá trị của đặc trưng Like là sự chênh lệch giữa tổng của các pixel của vùng đen và vùng trắng như trong công thức sau

Haar-𝑓(𝑥) = 𝑇ổ𝑛𝑔𝑣ù𝑛𝑔 đ𝑒𝑛 (𝑐á𝑐 𝑚ứ𝑐 𝑥á𝑚 𝑐ủ𝑎 𝑝𝑖𝑥𝑒𝑙)

− 𝑇ổ𝑛𝑔𝑣ù𝑛𝑔 𝑡𝑟ắ𝑛𝑔(𝑐á𝑐 𝑚ứ𝑐 𝑥á𝑚 𝑐ủ𝑎 𝑃𝑖𝑥𝑒𝑙)

2.7.3 Khái niệm Intergal Image

Viola và Joines đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều với kích thước bằng với kích thước của ảnh cần tính đặc trưng Haar – Like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó

Hình 2.14 Intergal Image

Công thức tính Intergral Image:

Trang 34

Sau khi tính được Integral Image, việc tính tổng các giá trị mức xám của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản Giả sử ta cần tính tổng giá trị mức xám của vùng D như hình dưới, ta có thể tính được như sau:

D = A+B+C+D-(A+B)-(A+C)+A 𝑃(𝑥, 𝑦) = 𝛴𝑥′ ≤𝑥,𝑦′≤𝑦𝑖(𝑥′, 𝑦′) Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1 Vậy ta có thể viết lại biểu thức tính D ở trên như sau:

Hình 2.15 Mô tả Intergal Image

Các đặc trưng Haar-Like vẫn còn tương đối nguyên thủy, khi so sánh với các lựa chọn thay thế khác thí dụ như steerable features Steerable features xuất sắc trong việc phân tích chi tiết các đường biên, nén ảnh và phân tích kết cấu Ngược lại, với các đặc trưng Haar-Like, mặc dù khá nhạy với sự hiện diện của cạnh (edges), thanh (bars) và các cấu trúc ảnh đơn giản, vẫn còn khá thô sơ Các đặc trưng Haar-like chỉ

có các chiều dọc, ngang và chéo Tuy nhiên một bộ các đặc trưng Haar-like có thể dùng để hỗ trợ quá trình học một cách hiệu quả Kết hợp với integral image, hiệu quả của nó có thể bù đắp cho độ linh hoạt hạn chế

Trang 35

2.7.4 AdaBoost

AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995 Adaboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các bộ lọc yếu (weak classifiers) để hình thành một trong các bộ lọc mạnh

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-like theo mô hình phân tầng (cascade) như sau:

Hình 2.16 Mô tả bộ lọc Haar-Cascade

Trong đó, hk là các bộ phân loại yếu, được biểu diễn như sau:

ℎ𝑘 = {1, 𝑛ế𝑢 𝑝𝑘𝑓𝑘 < 𝑝𝑘𝜃𝑘

0, 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖 Với:

x: Cửa sổ con cần xét

𝜃𝑘: Ngưỡng

𝑓𝑘: Giá trị đặc trưng của Haar-like

Trang 36

𝑝𝑘: Hệ số quyết định chiều của phương trình AdaBoost sẽ kết hợp các bộ phận loại yếu thành bộ phận loại mạnh như sau:

𝐻(𝑥) = 𝛴(𝑎1ℎ1(𝑥) + 𝑎𝑥ℎ2(𝑥) + ⋯ + 𝑎𝑛ℎ𝑛(𝑥)) Với ai >= 0 là hệ số chuẩn hóa cho các bộ phận phân loại yếu

Hình 2.17 Kết hợp các bộ phận phân loại yếu thành bộ phận phân loại mạnh

Viola và Jones sử dụng AdaBoost trong cả 2 việc kết hợp các bộ phân loại và lựa chọn các đặc trưng đại diện cho hình mẫu khuôn mặt người điển hình Ví dụ khuôn mặt người luôn có những đặc điểm chung như phần mắt sẽ tối hơn phần má, phần mũi sẽ sáng hơn phần mắt,…

Hình 2.18 Hai đặc trưng cơ bản nhất để xác định khuôn mặt

Trang 37

Bằng việc lựa chọn một tập hợp các đặc trưng cơ bản hợp lý và xử lý theo mô hình phân tầng, thuật toán này có thể đạt được cả độ chính xác cao và thời gian tính toán nhanh Bộ lọc Haar-cascade hoàn chỉnh có tổng cộng 38 tầng với hơn 6000 đặc trưng, đạt độ chính xác xấp xỉ 94% với thời gian xử lý mỗi ảnh (384x288) khoảng 0.067 giây với công nghệ máy tính thời bấy giờ

2.8 PHẦN MỀM PYTHON

2.8.1 Giới thiệu

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng

do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991.Python được thiết kế với ưu điểm là dễ đọc,dễ học và dễ nhớ.Python là ngôn ngữ có hình thức rất sáng sủa,cấu trúc rõ ràng,thuận tiện cho người mới học lập trình.Cấu trúc của python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu

Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn.Ngôn ngữ phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop,server,lập trình các ứng dụng wed…Ngoài ra Python cũng là ngôn ngữ ưa thích trong xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning.Ban đầu,Python được phát triển để chạy trên nền Unix ,nhưng sau này nó đã chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS ,Window,Linux và các hệ điều hành khác thuộc họ Unix

Hình 2.19 Phần mềm Python 2.8.2 Ứng dụng của Python

Python được ứng dụng trong nhiều lĩnh vực khác nhau:

Trang 38

• Xây dựng các tiện ích nhỏ để tự động hóa các công việc nào đó như: tự động tìm kiếm, phân loại tập tin theo tiêu chí riêng, tự động cập nhật các tập tin văn bản theo yêu cầu nào đó…

• Xây dựng ứng dụng web: Python cung cấp nhiều framework để ta có thể lựa chọn để phát triển ứng dụng web tùy theo mô hình của ứng dụng như: Django, Pyramid, Flask,…

• Lập trình các tính toán khoa học, số liệu nhờ các công cụ và lớp thư viện được xây dựng sẵn như: SciPy, IPython,…

• Lập trình ứng dụng desktop (wxWidgets), lập trình màn hình tương tác (Kivy),…

2.8.3 Đặc điểm nổi bật của Python

Python là ngôn ngữ có hình thức đơn giản,cú pháp ngắn gọn,sử dụng một số

ít các từ khoá,do dó Python là một ngôn ngữ dễ học đối với người mới bắt đầu tìm hiểu.Python là ngôn ngữ có mã lệnh không mấy phức tạp.Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoán được ý nghĩa của từng dòng lệnh trong source code

Python có nhiều ứng dụng trên nhiều nền tảng,chương trình phần mềm viết bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Window,Mac OSX,Linux

2.9 PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT

Gồm 2 quá trình chính: Quá trình training và quá trình nhận diện

Trang 39

2.9.1 Quá trình training

Hình 2.20 Quá trình Traning

• Thu nhận ảnh: chụp ảnh số từ bộ phận thu nhận ảnh số, thường là camera

Ảnh sau khi chụp được đưa sang công đoạn tiền xử lý

• Tiền xử lý ảnh: Chuyển ảnh chụp từ công đoạn thu nhận ảnh sang ảnh xám

Sau đó ứng dụng thuật toán phát hiện khuôn mặt Viola-Jones xuất hiện trong ảnh và loại bỏ phần ảnh thừa không chứa khuôn mặt Sau đó tạo kích thước tập dữ liệu để huấn luyện Đối với nhận diện khuôn mặt thì kích thước dữ liệu phụ thuộc vào số ảnh chụp khuôn của một người Nếu quá ít sẽ không đủ dữ liệu đánh giá và nếu quá nhiều sẽ tốn dung lượng bộ nhớ

• Trích xuất đặc trưng: trích xuất các đặc trưng cơ bản của khuôn mặt bằng

thuật toán HOG để cho ra kết quả là biểu đồ histogram chứa thông tin thể hiện đặc trưng của khuôn mặt và véctơ đặc trưng của tất cả ảnh trong dữ liệu

• Xây dựng bộ phân loại: Dựa trên véctơ đặc trưng HOG và nhãn (label) ứng

với từng người, tiến hành xây dựng mô hình nhận diện

Trang 40

2.9.2 Quá trình nhận diện khuôn mặt

Hình 2.21 Quá trình nhận diện khuôn mặt

Quá trình nhận diện khuôn mặt có những bước cơ bản khá giống với quá trình training Khác biệt là mỗi lần nhận diện chỉ huấn luyện một ảnh Sau khi thu nhận được đưa qua công đoạn tiền xử lý, trích xuất đặc trưng Sau đó đặc trưng này sẽ làm tập mẫu để bộ phân loại đánh giá miền dữ liệu mà tập mẫu này thuộc về, và trả về nhãn chứa tên người tương ứng với khuôn mặt

• Thu nhận ảnh: chụp ảnh số từ bộ phận thu nhận ảnh số

• Tiền xử lý ảnh: Chuyển ảnh vừa chụp thành ảnh xám, sau đó thuật toán

Haar-like sẽ xác định vùng ảnh chứa khuôn mặt và loại bỏ các vùng ảnh còn lại

• Trích xuất đặc trưng: Trích xuất các đặc trưng cơ bản của ảnh khuôn mặt

bằng thuật toán HOG, trả về véctơ đặc trưng đại diện cho khuôn mặt

• Cơ sở dữ liệu: Là dữ liệu đã được đào tạo trước đó qua quá trình training

• Phân loại: Sử dụng bộ phân loại đã train để phân lớp dữ liệu mới Lúc này sẽ

trả về giá trị sai số khi xếp dữ liệu mới vào phân lớp Giá trị này đánh giá mực

Ngày đăng: 01/03/2023, 18:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w