1.2 GIỚI THIỆU ĐỀ TÀI Giới thiệu chung về các phương pháp nhận dạng mặt người: a Các phương pháp nhận dạng mặt người: Phương pháp nhận d愃ng hiện nay c漃Ā 2 lo愃i: Nhận d愃ng dựa trên c
Trang 1ĐỒ ÁN
NGÀNH ĐIỆN TỬ
ĐỀ TÀI NHẬN DIỆN KHUÔN MẶT BẰNG
Trang 3MỤC LỤC:
CHƯƠNG 1 GIỚI THIỆU
1.1 TỔNG QUAN
1.2 GIỚI THIỆU ĐỀ TÀI
1.3) Phân chia công việc
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Ngôn ngư lập trình, thư viện và công cụ hỗ trợ
2.1.1 Python
2.1.2 OpenCV
2.1.3 Các thư viện được sử dụng
2.2.1 Tiền xử lý
2.2.2 Đối tượng nhận d愃ng
2.2.3 Các đặc trưng Haar-like
2.2.4 Cách áp dụng đặc trưng Haar-like để phát hiện khuôn mặt trong ảnh
2.2.5 Số lượng đặc trưng Haar-like
2.3 Nhận diện khuôn mặt opencv
2.3.1 Trích xuất tính năng
2.3.2 So sánh khuôn mặt
CHƯƠNG 3: QUY TRÌNH THỰC HIỆN
3.1 Phát hiện khuôn mặt sử dụng bộ phân t3ng Haar
3.1.1 Cài đặt các phụ thuộc
3.1.2 Áp dụng các t3ng Haar
3.1.3 Kết quả
3.2 Lấy dư liệu khuôn mặt tư webcam
3.2.1 Cài đặt các phụ thuộc
3.2.2 chụp ảnh tư webcam và lưu vào dataset
3.3 Huấn luyện tập dư liệu
3.3.1 đọc dư liệu tư id
3.3.2 Huấn luyện tập dư liệu sử dụng hàm training recognizer
3.4 Nhận diện khuôn mặt trong luồng video
3.4.1 Lấy dư liệu tư tập dư liệu đ( training
3.4.2 Đọc camera và nhận diện khuôn mặt trong luồng video
CHƯƠNG 4: KẾT QUẢ THỰC HIỆN
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 T漃Ām tắt và kết luận
5.2 Hướng phát triển
TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 4CHƯƠNG 1 GIỚI THIỆU 1.1 TỔNG QUAN
Hiện nay, cùng với sự phát triển của x( hội, vấn đề an ninh bảo mật đang được yêu c3u khắt khe t愃i mọi quốc gia trên thế giới Các hệ thống nhận d愃ng con người được ra đời với độ tin cậy ngày càng cao Một trong các bài toán nhận d愃ng con người rất được quan tâm hiện nay là nhận d愃ng khuôn mặt.
Bài toán nhận d愃ng khuôn mặt phục vụ m愃nh mẽ trong nhiều lĩnh vực của đời sống đặt biệt ở nhưng lĩnh vực công nghệ cao yêu c3u bảo đảm an ninh bảo mật…
Vì vậy bài toán nhận d愃ng khuôn mặt vẫn còn là bài toán n漃Āng hổi và càng ngày người
ta luôn tìm cách hoàn thiện n漃Ā để mang l愃i kết quả nhận d愃ng tốt nhất.
1.2 GIỚI THIỆU ĐỀ TÀI Giới thiệu chung về các phương pháp nhận dạng mặt người:
a) Các phương pháp nhận dạng mặt người:
Phương pháp nhận d愃ng hiện nay c漃Ā 2 lo愃i:
Nhận d愃ng dựa trên các đặc trưng của các ph3n tử trên khuôn mặt (Feature based face recognition).
Nhận d愃ng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition).
Ngoài ra còn c漃Ā một số lo愃i nhận d愃ng sử dụng mô hình về khuôn mặt, một số phương pháp được dùng cho lo愃i này:
Nhận d愃ng 2D: Elastic Bunch Graph, Active Appearance Model.
Nhận d愃ng 3D: 3D Morphable Model.
b) Nhận dạng dựa trên các đặc trưng khuôn mặt:
Đây là phương pháp nhận d愃ng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình d愃ng của mắt, mũi, miệng,…), và mối quan hệ giưa chúng (như khoảng cách của hai mắt, khoảng cách của hai lông mày,…).
Ưu điểm của phương pháp này là n漃Ā g3n với cách mà con người sử dụng để nhận biết khuôn mặt Hơn nưa với việc xác định đặc tính và các mối quan hệ, phương pháp này c漃Ā thể cho kết quả tốt trong các trường hợp ảnh c漃Ā nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi.
Trang 5Nhược điểm của phương pháp này là cài đặt thuật toán phưc t愃p do việc xác định mối quan hệ giưa các đặc tính đòi hỏi các thuật toán phưc t愃p Mặt khác, với các ảnh kích thước bé thì các đặc tính sẽ kh漃Ā phân biệt do đ漃Ā kh漃Ā tính toán được các đặc trưng trên khuôn mặt.
c) Nhận dạng dựa trên xét toàn diện khuôn mặt:
Nhận d愃ng đựa trên toàn diện khuôn mặt, c漃Ā nghĩa mình sẽ không đi xét đến tưng thành ph3n đặc trưng trên khuôn mặt nưa… Mình sẽ xem khuôn mặt là một không gian cụ thể và mình tìm nhưng đặc trưng, nhưng đặc điểm chính trên không gian đ漃Ā.
Nội dung chính của hướng tiếp cận này là xem mỗi ảnh c漃Ā kích thước RxC là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới c漃Ā chiều nhỏ hơn sao cho khi biểu diễn trong không gian đ漃Ā các đặc điểm chính của một khuôn mặt không bị mất đi Trong không gian đ漃Ā, các ảnh của cùng một người sẽ được tập trung l愃i thành một nh漃Ām g3n nhau và cách xa các nh漃Ām khác.
Hai phương pháp thường được sử dụng là trong hướng tiếp cận này:
PCA (Principle Components Analysis)
LDA (Linear Discriminant Analysis) Vâng, với hướng tiếp cận này chúng ta c漃Ā thể hình dung tương đối dễ chịu hơn phải không Chúng ta không c3n phải phân tích nhiều về đặc điểm khuôn mặt nưa do đ漃Ā phương pháp tiếp cận này tương đối dễ cài đặt hơn và cũng khá hiệu quả trong việc nhận d愃ng.
Nhược điểm thì tất nhiên sẽ không khỏi tránh khỏi Tùy theo phương pháp chúng ta sư dụng PCA hay LDA mà đánh giá nhược điểm trong hướng tiếp cận này.
1.3) Phân chia công việc trong nhóm
Tr3n Xuân Lộc Tìm hiểu và ch愃y code 50%
Hoàng Trung Kiên Demo, kiểm duyệt, viết
báo cáo
50%
Trang 6CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ lập trình, thư viện và công cụ hỗ trợ 2.1.1 Python
Python được thiết kế với ưu điểm m愃nh là dễ đọc, dễ học, dễ nhớ Theo thời gian, Python d3n mở rộng sang mọi hệ điều hành Mac OS, Windows,… và c漃Ā thể sử dụng được online trên các nền tảng web hiện nay Ở chủ đề này, nh漃Ām chọn lựa ngôn ngư lập trình Python dùng để lập trình cho việc nhận diện biển số xe vì các ưu điểm
mà ngôn ngư này mang l愃i.
2.1.2 OpenCV
OpenCV (Open Computer Vision) là một thư viện m( nguồn mở hàng đ3u cho
xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++, vì vậy c漃Ā tốc độ tính toán rất nhanh, c漃Ā thể sử dụng với các ưng dụng liên quan đến thời gian thực Opencv c漃Ā các interface cho C/C++, Python Java vì vậy
hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS OpenCV OpenCV c漃Ā nhiều ưng dụng trong nhận d愃ng và xử lí ảnh.
2.1.3 Các thư viện được sử dụng.
- Thư viện numpy: là một thư viện toán học rât phổ biến và m愃nh mẽ của Python
NumPy được trang bị các hàm số đ( được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dư liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều l3n khi chỉ sử dụng Python đơn thu3n.
- Thư viện os: module os trong Python cung cấp các chưc năng được sử dụng để tương tác với hệ điều hành và cũng c漃Ā được thông tin liên quan về n漃Ā OS đi theo các Module tiện ích tiêu chuẩn của Python Module này cung cấp một cách linh động sử dụng chưc năng phụ thuộc vào hệ điều hành.
- Thư viện sqlite: là cơ sở dư liệu Back -end, b愃n c漃Ā thể sử dụng Python để xây dựng
một trang web hoặc t愃o các công cụ c漃Ā yêu c3u lưu trư dư liệu SQLite cũng được sử dụng rộng r(i trong các trường khác, chẳng h愃n như HTML5 và các thiết bị đ3u cuối di động Python sqlite3 Trong thư viện tiêu chuẩn cung cấp giao diện của cơ sở dư liệu.
2.2 Phát hiện khuôn mặt bằng bộ phân tầng haar
C漃Ā rất nhiều phương pháp để giải quyết bài toán xác định khuôn mặt người trên ảnh 2D dựa trên các hướng tiếp cận khác nhau Phương pháp Haar-like – Adaboost(viết tắt HA) của hai tác giả Paul Viola và Michael J.Jones là phương pháp xác định mặt người
Trang 7dựa theo hướng tiếp cận trên diện m愃o.
Hướng tiếp cận trên diện m愃o tưc là hệ thống nhận d愃ng khuôn mặt sẽ được học các mẫu của khuôn mặt tư một tập ảnh mẫu Sau khi quá trình học hay quá trình huấn luyện này (training) thực hiện xong, hệ thống sẽ rút ra được nhưng tham số để phục vụ cho quá trình nhận d愃ng.Vì vậy tiếp cận trên diện m愃o còn được biết đến với tên gọi tiếp cận theo phương pháp học máy Bài báo cáo tập trung chủ yếu vào quá trình nhận d愃ng(sau khi đ( thực hiện quá trình học).
Về tổng quan, phương pháp HA được xây dựng dựa trên sự kết hợp, lắp ghép của 4 thành ph3n, đ漃Ā là:
- Các đặc trưng Haar-like: các đặc trưng được đặt vào các vùng ảnh để tính toán các giá trị của đặc trưng, tư nhưng giá trị đặc trưng này đưa vào bộ phân lo愃i Adaboost ta sẽ xác định được ảnh c漃Ā khuôn mặt hay không.
- Ảnh tích hợp(Integral Image): thực ra đây là một công cụ giúp việc tính toán các giá trị đặc trưng Haar-like nhanh hơn.
- Adaboost(Adaptive Boost): bộ phân lo愃i (bộ lọc) ho愃t động dựa trên nguyên tắc kết hợp các bộ phân lo愃i yếu để t愃o lên bộ phân lo愃i m愃nh Adaboost sử dụng giá trị đặc trưng Haar-like để phân lo愃i ảnh là mặt hay không phải mặt.
- Cascade of Classifiers: bộ phân lo愃i t3ng với mỗi tâng là một bộ phân lo愃i Adaboost, c漃Ā tác dụng tăng tốc độ phân lo愃i.
Như vậy bài toán xác định mặt người trong ảnh cũng chính là bài toán phân lo愃i ảnh thành hai lớp mặt hoặc không phải mặt.
2.2.1 Tiền xử lý
Một lưu ý nhỏ là phương pháp HA thực hiện trên ảnh xám (gray image) Mỗi điểm ảnh(pixel) sẽ c漃Ā giá trị mưc xám tư 0 đến 255(không gian màu 8 bit) Như vậy phương pháp HA sẽ không khai thác nhưng đặc điểm về màu sắc khuôn mặt để nhận d愃ng song vẫn rất hiệu quả Ảnh màu sẽ được chuyển về ảnh xám để nhận d愃ng, việc chuyển đổi này khá đơn giản, thực hiện bằng một hàm chuyển đổi và sử dụng chỉ với một câu lệnh trong Opencv nên báo cáo chưa đề cập tới.
Sau khi chuyển thành ảnh xám, ảnh l愃i tiếp tục được chuyển thành “ảnh tích hợp” (sẽ trình bày ở ph3n sau) và trong bước đ3u tiên của quá trình nhận d愃ng, các đặc trưng Haar-like sẽ làm việc trực tiếp trên ảnh tích hợp.
2.2.2 Đối tượng nhận dạng.
Trên ảnh, vùng khuôn mặt là tập hợp các điểm ảnh c漃Ā nhưng mối quan hệ khác biệt so với các vùng ảnh khác, nhưng mối quan hệ này t愃o lên các đặc trưng riêng của khuôn mặt Tất cả khuôn mặt người đều c漃Ā chung nhưng đặc điểm sau khi đ( chuyển qua ảnh xám, ví dụ như:
- Vùng hai mắt sẽ tối hơn vùng má và vùng chán, tưc mưc xám của vùng này cao hơn vượt trội so với hai vùng còn l愃i.
- Vùng giưa sống mũi cũng tối hơn vùng hai bên mũi.
- …
Trang 8Và còn rất nhiều nhưng đặc điểm khác của khuôn mặt và các đặc trưng Haar like dựa vào các đặc điểm này để nhận d愃ng.
Về tổng quát, các đặc trưng Haar like không chỉ được sử dụng để nhận d愃ng khuôn mặt mà c漃Ā thể dùng để nhận d愃ng bất kì một đối tượng nào trên ảnh( thân người, tay, chân, ô tô, đồ vật,….) Bởi vì cũng giống như khuôn mặt, mỗi đối tượng c漃Ā nhưng đặc điểm riêng biệt đặc trưng bởi các vùng điểm ảnh, công việc của đặc trưng Haar-like là tính toán các giá trị tương quan giưa các vùng ảnh đ漃Ā.
Đây chỉ là bước ban đ3u về cách áp dụng đặc trưng để phân lo愃i cửa sổ con, chi tiết cách phân lo愃i của bộ Adaboost và Cascade of Classifiers sẽ trình bày ở mục sau.
o Đặc trưng tâm – xung quanh:
Giá trị của một đặc trưng Haar-like là sự khác biệt giưa tổng các giá trị xám của các pixel trong vùng “đen” với tổng các giá trị xám của các pixel trong vùng “trắng”:
f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel) (1)
Vậy khi được đặt lên một vùng ảnh, đặc trưng Haar-like sẽ tính toán và đưa ra giá trị đặc trưng h(x) của vùng ảnh đ漃Ā.
2.2.4 Cách áp dụng đặc trưng Haar-like để phát hiện khuôn mặt trong ảnh.
Trang 9Như đ( trình bày ở bài báo cáo 1, để phát hiện khuôn mặt, hệ thống sẽ cho một cửa sổ con(sub-window) c漃Ā kích thước cố định quét lên toàn bộ ảnh đ3u vào Như vậy
sẽ c漃Ā rất nhiều ảnh con ưng với tưng cửa sổ con, các đặc trưng Haar-like sẽ được đặc lên các cửa sổ con này để tư đ漃Ā tính ra giá trị của đặc trưng Sau đ漃Ā các giá trị này được bộ phân lo愃i xác nhận xem khung hình đ漃Ā c漃Ā phải khuôn mặt hay không Hình dưới là một ví dụ: khung màu xanh là cửa sổ con, một đặc trưng Haar-like với kích thước và vị trí đặt như trong hình vẽ.
Ứng với mỗi một đặc trưng như trên, một bộ phân lớp yếu(weak classifier)
h k (x) được định nghĩa như sau:
(2) Trong đ漃Ā:
X : cửa sổ con c3n xét : ngưỡng
f k : giá trị của đặc trưng Haar-like
p k : hệ số quyết định chiều của bất phương trình
Ta hiểu công thưc trên đơn giản như sau: khi giá trị của đặc trưng Haar-like k:f k
t愃i cửa sổ con vượt qua một ngưỡng thì bộ phân lớp h (x) sẽ kết luận cửa sổ con là x k x
khuôn mặt(h (x)=1), còn f không vượt qua ngưỡng đ漃Ā thì không là khuôn mặt k k
Ngưỡng là giá trị đ( rút ra sau qua trình huấn luyện bộ phân lớp, sẽ trình bày sau.
Như trong ph3n đối tượng nhận d愃ng, ta thấy đặc trưng Haar-like c漃Ā kích k
thước và vị trí đặt trong cửa sổ con trên hình sẽ c漃Ā giá trị f rất lớn(vì mưc xám ở x k
vùng mắt lớn hơn rất nhiều vùng má ) Giá trị f này lớn hơn nhiều với h3u hết các giá k
trị f k khác khi ta di chuyển cửa sổ con x sang các vị trí khác(quét trên toàn ảnh đ3u vào), và với nhưỡng phù hợp, kết quả bộ phân lớp h (x) sẽ cho cửa sổ con ở vị trí như k
trên là khuôn mặt còn ở vị trí khác thì không.
Đương nhiên sẽ c漃Ā nhưng vị trí khác trên ảnh đ3u vào vô tình cho ra f vượt k
Trang 10ngưỡng và bộ phân lớp yếu h (x) kết luận đấy là khuôn mặt, nhưng ta không chỉ dùng k
một đặc trưng Haar-like mà dùng rất nhiều đặc trưng ở nhưng vị trí và kích thước khác nhau trong cửa sổ con làm giảm đi sự trùng hợp ngẫu nhiên.
2.2.5 Số lượng đặc trưng Haar-like
Việc xác định một cửa sổ con c漃Ā phải là mặt hay không phải sử dụng rất nhiều đặc trưng Haar-like Ứng với mỗi một kích thước, kiểu đặc trưng và vị trí đặt trong cửa
sổ con cho ta một đặc trưng ưng với một bộ phân lớp yếu Vì vậy tập hợp đ3y đủ số x
lượng các đặc trưng trong một cửa sổ con là rất lớn Theo như sự tính toán của hai tác giả, với một cửa sổ con ở kích thước cơ bản 2424 pixel số lượng đ3y đủ các đặc trưng Haar-like là hơn 160000.C漃Ā hai vấn đề đặt ra ở đây:
Thư nhất là giá trị của mỗi một đặc trưng Haar-like được tính bằng tổng giá trị các điểm ảnh vùng đen trư đi tổng các điểm ảnh vùng trắng, như vậy là với số lượng lớn các đặc trưng sẽ t愃o ra một khối lượng tính toán khổng lồ Điều này là không phù hợp để đáp ưng thời gian thực vì thời gian xử lý rất lâu.
Thư hai là trong số hàng trăm nghìn đặc trưng đ漃Ā thì không phải đặc trưng nào cũng c漃Ā ích cho công việc phân lo愃i Nếu chúng ta không tìm cách lo愃i bổ nhưng đặc trưng không c漃Ā ích để tập trung vào nhưng đặc trưng c漃Ā hiệu quả cao thì cũng sẽ mất thời gian xử lý một cách vô ích.
Nhưng ph3n sau sẽ l3n lượt tìm cách giải quyết các vấn đề này.
2.3 Nhận diện khuôn mặt opencv
Cách nhận dạng khuôn mặt của OpenCV hoạt động:
Trang 11Hình 1: Tổng quan về đường ống nhận d愃ng khuôn mặt OpenCV Bước quan trọng là
một công cụ trích xuất tính năng CNN để t愃o ra các hình ảnh nhúng trên khuôn mặt 128-d
Để xây dựng quy trình nhận d愃ng khuôn mặt OpenCV của chúng tôi, chúng tôi sẽ áp dụng học sâu theo hai bước chính:
1 Để áp dụng tính năng nhận diện khuôn mặt , phát hiện sự hiện diện và vị trí của một khuôn mặt trong hình ảnh, nhưng không xác định được khuôn mặt đ漃Ā
2 Để trích xuất các vectơ đặc trưng 128-d (được gọi là "nhúng") định lượng tưng khuôn mặt trong một hình ảnh
2.3.1 Trích xuất tính năng
Bây giờ chúng ta đ( cắt khuôn mặt ra khỏi hình ảnh, chúng ta trích xuất các tính năng tư n漃Ā Ở đây chúng ta sẽ sử dụng phương pháp nhúng khuôn mặt để tách các đặc điểm ra khỏi khuôn mặt Một m愃ng nơ-ron lấy hình ảnh khuôn mặt của một người làm đ3u vào và xuất ra một vectơ đ愃i diện cho các đặc điểm quan trọng nhất của khuôn mặt Trong học máy, vectơ này được gọi là nhúng và do đ漃Ā chúng tôi gọi vectơ này là nhúng khuôn mặt Bây giờ điều này giúp ích như thế nào trong việc nhận d愃ng khuôn mặt của nhưng người khác nhau?
Trong khi huấn luyện m愃ng nơ-ron, m愃ng sẽ học cách xuất ra các vectơ tương tự cho các khuôn mặt trông giống nhau Ví dụ: nếu c漃Ā nhiều hình ảnh khuôn mặt trong khoảng thời gian khác nhau, tất nhiên, một số đặc điểm trên khuôn mặt c漃Ā thể thay đổi nhưng không nhiều Vì vậy, trong trường hợp này các vectơ liên kết với các mặt
là tương tự nhau hay n漃Āi ngắn gọn là chúng rất g3n nhau trong không gian vectơ H(y xem sơ đồ dưới đây để biết sơ bộ:
Trang 12Bây giờ sau khi huấn luyện m愃ng, m愃ng học cách xuất ra các vectơ g3n nhau hơn (tương tự) cho các khuôn mặt của cùng một người (trông giống nhau) Các vectơ trên bây giờ biến đổi thành:
Chúng tôi sẽ không đào t愃o một m愃ng như vậy ở đây vì c3n một lượng lớn dư liệu
và sưc m愃nh tính toán để đào t愃o các m愃ng như vậy Chúng tôi sẽ sử dụng một m愃ng được huấn luyện trước do Davis King đào t愃o trên tập dư liệu gồm ~ 3 triệu hình ảnh M愃ng xuất ra một vectơ gồm 128 số đ愃i diện cho các đặc điểm quan trọng nhất của một khuôn mặt.
Trang 132.3.2 So sánh khuôn mặt
Bây giờ chúng ta đ( nhúng khuôn mặt cho mọi khuôn mặt trong dư liệu của chúng ta được lưu trong một tệp, bước tiếp theo là nhận d愃ng một hình ảnh t mới không c漃Ā trong dư liệu của chúng ta Vì vậy, bước đ3u tiên là tính toán việc nhúng khuôn mặt cho hình ảnh bằng cùng một m愃ng mà chúng ta đ( sử dụng ở trên và sau đ漃Ā so sánh cách nhúng này với ph3n còn l愃i của các l3n nhúng mà chúng ta c漃Ā Chúng tôi nhận ra khuôn mặt nếu cách nhúng được t愃o g3n hơn hoặc tương tự với bất kỳ cách nhúng nào khác như được hiển thị bên dưới:
Trang 14Vì vậy, chúng tôi chuyển qua hai hình ảnh, một trong nhưng hình ảnh là của Vladimir Putin và hình ảnh khác của George W Bush Trong ví dụ của chúng tôi ở trên, chúng tôi đ( không lưu các nhúng cho Putin nhưng chúng tôi lưu các nhúng của Bush Vì vậy, khi chúng tôi so sánh hai phương pháp nhúng mới với các phương pháp hiện c漃Ā, vectơ cho Bush g3n với các phương pháp nhúng khuôn mặt khác của Bush trong khi các phương pháp nhúng khuôn mặt của Putin không g3n với bất kỳ phương pháp nhúng nào khác và do đ漃Ā chương trình không thể nhận ra ông ấy.
3.1 Phát hiện khuôn mặt sử dụng bộ phân tầng Haar 3.1.1 Cài đặt các phụ thuộc
Trước tiên, chúng ta c3n cài đặt OpenCV vì n漃Ā cung cấp việc triển khai các tệp phân lo愃i t3ng Haar ở d愃ng XML bằng cách sử dụng hàm cv2.CascadeClassifier ().
3.1.2 Áp dụng các tầng Haar