môn xử lý ảnh với đề tài tìm hiểu, cài đặt, ứng dụng của phương pháp trích chọn đặc trưng hog bọn mình đã đạt được 8,510 với cách trình bày khoa học và dễ nhìn nhưng hoàn toàn đầy đủ nội dung . Các bạn chỉ cần mua về và thay tên . Mình có để tất cả các file lên quan đến bài tập ở phần đính kèm
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI - BÀI TẬP LỚN BỘ MÔN: XỬ LÝ ẢNH VÀ THỊ GIÁC MÁY TÍNH ĐỀ TÀI: TÌM HIỂU, CÀI ĐẶT, ỨNG DỤNG CỦA PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG HOG Giảng viên hướng dẫn: Ths Lê Thị Thủy Nhóm: Sinh viên thực hiện: Lê Tiến Đạt - 2020606371 Bùi Duy Nghiêm - 2020604948 Hoàng Anh Chiến - 2020603959 Trần Danh Sơn - 1041060239 Lưu Cung Minh - 2020604161 Hà Nội, 5/2023 MỤC LỤC PHẦN MỞ ĐẦU .2 Lý chọn đề tài .2 Mục tiêu Phạm vi nghiên cứu CHƯƠNG 1: LÝ THUYẾT VỀ PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG HOG 1.1 Tổng quan HOG 1.2 Thuật toán HOG 1.3 Ý nghĩa HOG 1.4 Ứng dụng HOG .7 CHƯƠNG 2: ỨNG DỤNG CỦA PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG HOG 2.1 Tổng quan nhận dạng khuôn mặt 2.2 Quy trình nhận dạng khn mặt 2.3 Thuật toán nhận dạng khuôn mặt 10 2.4 Chương trình nhận dạng khn mặt .12 2.5 Kết chương trình nhận diện khuôn mặt 18 PHẦN KẾT LUẬN 20 TÀI LIỆU THAM KHẢO 21 PHẦN MỞ ĐẦU Lý chọn đề tài - Phương pháp trích chọn đặc trưng HOG (Histogram of Oriented Gradients) phương pháp quan trọng phổ biến lĩnh vực xử lý ảnh thị giác máy tính HOG giúp mơ tả hình dạng cấu trúc đối tượng ảnh cách tính tốn gradient điểm ảnh Đặc trưng HOG áp dụng thành công nhiều ứng dụng nhận dạng đối tượng, nhận dạng khuôn mặt, phát vật thể, nhiều lĩnh vực khác - Lý chọn đề tài để tìm hiểu chi tiết phương pháp trích chọn đặc trưng HOG, cài đặt ứng dụng tốn xử lý ảnh thị giác máy tính Hiểu rõ HOG giúp có khả phân tích nhận dạng hình ảnh cách xác hiệu Mục tiêu - Tìm hiểu phương pháp trích chọn đặc trưng HOG cách hoạt động việc mơ tả hình dạng cấu trúc đối tượng - Cài đặt thuật tốn HOG mơi trường xử lý ảnh phổ biến Python sử dụng thư viện hỗ trợ OpenCV - Ứng dụng phương pháp HOG vào toán cụ thể lĩnh vực xử lý ảnh thị giác máy tính, ví dụ nhận dạng khn mặt, phát vật thể, toán khác tương tự - Đánh giá hiệu suất so sánh kết phương pháp HOG với phương pháp trích chọn đặc trưng khác (nếu có) Phạm vi nghiên cứu - Nghiên cứu lý thuyết phương pháp trích chọn đặc trưng HOG thuật toán liên quan - Cài đặt thuật tốn HOG mơi trường xử lý ảnh thực thí nghiệm - Áp dụng phương pháp HOG vào toán cụ thể xử lý ảnh thị giác máy tính - Đánh giá kết so sánh hiệu suất HOG với phương pháp trích chọn đặc trưng khác CHƯƠNG 1: LÝ THUYẾT VỀ PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG HOG 1.1 Tổng quan HOG - HOG viết tắt Histogram of Oriented Gradient - loại “feature descriptor” Mục đích “feature descriptor” trừu tượng hóa đối tượng cách trích xuất đặc trưng đối tượng bỏ thơng tin khơng hữu ích Vì vậy, HOG sử dụng chủ yếu để mơ tả hình dạng xuất đối tượng ảnh - Phương pháp HOG giới thiệu Navneet Dalal Bill Triggs vào năm 2005 nhằm mơ tả hình dạng cấu trúc đối tượng ảnh HOG biểu diễn dựa mức độ biến đổi định hướng gradient vùng hình ảnh - Trích chọn đặc trưng: tìm điểm đặc trưng đối tượng so với đối tượng khác tuỳ theo mục đích nhận dạng q trình xử lí ảnh Ví dụ ta muốn phân biệt đâu ảnh cà chua chín dựa vào màu sắc chẳng hạn Có thể dựa vào số đặc điểm sau: o Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn o Đặc điểm biến đổi: Các đặc điểm loại trích chọn việc thực lọc vùng (zonal filtering) Các vùng gọi “mặt nạ đặc điểm” (feature mask) thường khe hẹp với hình dạng khác (chữ nhật, tam giác, cung trịn v v ) o Đặc điểm biên đường biên: Đặc trưng cho đường biên đối tượng hữu ích việc trích trọn thuộc tính bất biến dùng nhận dạng đối tượng Các đặc điểm trích chọn nhờ toán tử gradient, toán tử la bàn, toán tử Laplace, tốn tử “chéo khơng” (zero crossing) v v Việc trích chọn hiệu đặc điểm giúp cho việc nhận dạng đối tượng ảnh xác, với tốc độ tính tốn cao dung lượng nhớ lưu trữ giảm xuống 1.2 Thuật toán HOG - Thuật toán HOG bao gồm bước sau: Bước 1: Chuẩn bị liệu: o Chia ảnh thành nhỏ đồng o Tính tốn gradient pixel Bước 2: Tính tốn histogram gradient cho ô o Từ gradient điểm ảnh ơ, tính tốn định hướng gradient amplitudes gradient tương ứng o Nhóm giá trị gradient vào bin histogram dựa định hướng o Mỗi bin histogram đại diện cho khoảng định hướng chứa tổng amplitudes gradient rơi vào khoảng Bước 3: Chuẩn hóa histogram o Chuẩn hóa giá trị histogram khối để cân biến đổi ánh sáng tăng cường tính đặc trưng o Thực chuẩn hóa theo khối theo ô, tùy thuộc vào thiết lập Bước 4: Ghép biểu diễn HOG o Ghép biểu diễn HOG ô khối thành vectơ đặc trưng cho khối Bước 5: Lấy vectơ đặc trưng khối để tạo vectơ đặc trưng cuối cho toàn ảnh Bước 6: Phân loại đối tượng o Sử dụng phương pháp phân loại Support Vector Machines (SVM), Neural Networks (NN) để phân loại đối tượng dựa vectơ đặc trưng HOG Thuật tốn HOG cài đặt ngơn ngữ lập trình Python MATLAB Các thư viện công cụ OpenCV, scikit-image cung cấp hàm phương pháp để tính tốn HOG ảnh 1.3 Ý nghĩa HOG - Mô tả hình dạng: HOG có khả mơ tả hình dạng đối tượng ảnh cách chi tiết Bằng cách tính tốn gradient điểm ảnh ảnh, HOG tạo biểu đồ histogram đại diện cho định hướng gradient Sự phân bố định hướng gradient cho biết hình dạng cấu trúc đối tượng ảnh - Robustness: HOG phương pháp mạnh mẽ bền vững biến đổi ánh sáng nhiễu ảnh Bằng cách chuẩn hóa histogram sử dụng thơng tin gradient ô nhỏ, HOG giúp giảm ảnh hưởng biến đổi ánh sáng nhiễu lên việc trích xuất đặc trưng - Rotation Invariance: HOG cung cấp tính khơng đổi quay đối tượng Việc tính tốn gradient nhóm giá trị gradient vào bin histogram dựa định hướng giúp giữ cho đặc trưng HOG không thay đổi đối tượng bị xoay ảnh - Real-Time Processing: HOG tính tốn nhanh chóng hiệu quả, cho phép xử lý ảnh thời gian thực Phương pháp tính tốn HOG tối ưu hóa để thích ứng với ứng dụng địi hỏi tốc độ xử lý cao Tóm lại, ý nghĩa HOG nằm khả mô tả hình dạng đối tượng, tính bền vững với biến đổi ánh sáng nhiễu, tính khơng đổi quay khả xử lý ảnh thời gian thực Phương pháp áp dụng thành công nhiều ứng dụng xử lý ảnh thị giác máy tính 1.4 Ứng dụng HOG - Nhận dạng đối tượng: HOG sử dụng rộng rãi nhận dạng đối tượng ảnh Phương pháp phát nhận dạng đối tượng người, ô tô, xe máy, vật thể môi trường đô thị, động vật, vv HOG cung cấp biểu diễn đặc trưng mạnh mẽ cho đối tượng có khả phát đặc điểm quan trọng cạnh, góc, hình dạng - Nhận dạng khn mặt: HOG sử dụng để nhận dạng khuôn mặt ảnh Với khả mô tả chi tiết hình dạng cấu trúc khn mặt, HOG phân biệt đặc điểm khuôn mặt mắt, mũi, miệng viền khn mặt Phương pháp sử dụng ứng dụng nhận dạng khuôn mặt cho việc nhận dạng xác thực - Nhận dạng chữ viết tay: HOG áp dụng việc nhận dạng chữ viết tay Bằng cách trích xuất đặc trưng HOG từ ký tự chữ viết tay, phương pháp xây dựng mơ hình nhận dạng để phân loại ký tự từ văn viết tay - Phân tích hình ảnh y học: HOG sử dụng phân tích hình ảnh y học để xác định đánh giá cấu trúc đặc điểm ảnh y học, phân loại tế bào ung thư, phát khối u, xác định vị trí hình dạng quan thể - Phân tích video: HOG sử dụng phân tích video để phát theo dõi đối tượng chuyển động video Với khả phát theo dõi đặc trưng chuyển động, HOG giúp việc phân tích hành vi, theo dõi đối tượng xác định hướng di chuyển tác vụ theo dõi video Tổng kết lại, HOG có ứng dụng rộng rãi nhận dạng đối tượng, phát vật thể, nhận dạng khuôn mặt, nhận dạng chữ viết tay, phân tích hình ảnh y học phân tích video Phương pháp cung cấp phương tiện mạnh mẽ để trích xuất đặc trưng nhận dạng xử lý ảnh thị giác máy tính CHƯƠNG 2: ỨNG DỤNG CỦA PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG HOG Trong chương này, trình bày, phân tích cụ thể thuật tốn, cách thực hiện, thuật tốn phương pháp trích chọn đặc trưng HOG thể chúng thơng qua chương trình cụ thể Dựa ứng dụng liệt kê tìm hiểu qua chương 1, nhóm chúng em chọn ứng dụng để phân tích, tìm hiểu thuật tốn thực tạo chương trình thử nghiệm ứng dụng: “Nhận diện khuôn mặt” 2.1 Tổng quan nhận dạng khuôn mặt - Ứng dụng nhận dạng khuôn mặt phương pháp HOG (Histogram of Oriented Gradients) phương pháp phổ biến hiệu xử lý ảnh thị giác máy tính Thuật tốn HOG sử dụng để trích xuất đặc trưng từ khn mặt sau sử dụng phương pháp nhận dạng để xác định danh tính khn mặt 2.2 Quy trình nhận dạng khn mặt Tiền xử lý ảnh: Đầu tiên, ảnh chứa khuôn mặt đưa vào trình tiền xử lý Các bước tiền xử lý bao gồm chuyển đổi ảnh sang ảnh xám, cân histogram, loại bỏ nhiễu điều chỉnh kích thước ảnh Chia ảnh thành ô (cells): Ảnh chia thành ô nhỏ hình vng có kích thước cố định Kích thước lựa chọn cho phát đặc trưng cục khuôn mặt Mỗi ô chứa tập hợp điểm ảnh Tính tốn gradient hướng gradient: Đối với ơ, thuật tốn tính tốn gradient điểm ảnh ô Gradient vector thay đổi mạnh yếu màu sắc ảnh Hướng gradient tính tốn dựa giá trị gradient, đo lường hướng thay đổi mạnh yếu Tạo histogram hướng gradient ô: Đối với ô, thuật toán xây dựng histogram hướng gradient xuất Histogram đếm số lượng gradient theo hướng để tạo vector đặc trưng cho Ghép histogram: Các histogram ghép lại từ ô lân cận để tạo vector đặc trưng cho khu vực lớn ảnh Việc ghép histogram giúp mơ hình có khả phát đặc trưng tồn cục khn mặt Normalization (chuẩn hóa): Sau ghép histogram, thuật tốn thực chuẩn hóa (normalize) vector đặc trưng để giảm ảnh hưởng ánh sáng đảm bảo mơ hình nhận diện ảnh hưởng tương tự điều kiện ánh sáng Phân loại khuôn mặt: Vector đặc trưng đưa vào mơ hình phân loại để xác định xem có phải khn mặt hay khơng Mơ hình phân loại phân loại máy vector hỗ trợ (SVM) mạng neural Xác định vị trí khn mặt: Nếu vector đặc trưng phân loại khn mặt, thuật tốn xác định vị trí khn mặt ảnh Thơng thường, thuật tốn sử dụng cửa sổ trượt (sliding window) để quét qua tồn ảnh xác định vị trí tương đối khuôn mặt Xử lý đối tượng gần giống khn mặt: Sau xác định vị trí khn mặt, áp dụng bước xử lý thêm để xác định đối tượng gần giống khuôn mặt loại bỏ chúng, sử dụng mơ hình phân loại khác để phân biệt khuôn mặt đối tượng khác 2.3 Thuật tốn nhận dạng khn mặt - Thuật tốn nhận dạng khn mặt sử dụng phương pháp HOG có bước sau: 10 Chuẩn bị liệu huấn luyện: a Thu thập tập liệu gồm ảnh khuôn mặt người khác nhau, có nhãn cho khn mặt b Tiền xử lý liệu cách chuyển đổi ảnh màu thành ảnh đen trắng cân độ sáng ảnh Xác định ô vuông (cell) khối (block): a Chia ảnh khuôn mặt thành ô vuông nhỏ gọi cell b Kết hợp cell thành khối (block) lớn c Mỗi block chứa số cell Tính tốn gradient histogram cho cell: a Tính gradient (hướng độ lớn) pixel cell cách sử dụng lọc gradient (như Sobel) b Chia khoảng góc gradient thành bin c Tính số lượng gradient rơi vào bin cell d Xây dựng histogram hướng gradient cell Chuẩn hóa kết hợp histogram cell khối: a Chuẩn hóa histogram cell cách chuẩn hóa theo norm L2 b Kết hợp histogram cell khối thành vector đặc trưng khối Xây dựng vector đặc trưng cuối cùng: a Kết hợp vector đặc trưng khối thành vector cuối Huấn luyện phân loại: a Sử dụng phương pháp máy học (ví dụ SVM) để huấn luyện phân loại tập liệu huấn luyện với vector đặc trưng xây dựng Nhận dạng khuôn mặt: 11 a Chuyển đổi ảnh khuôn mặt cần nhận dạng thành vector đặc trưng tương tự trình b Sử dụng phân loại huấn luyện để dự đoán nhãn cho vector đặc trưng ảnh khuôn mặt cần nhận dạng c Xác định danh tính khn mặt dựa nhãn dự đốn bảng ánh xạ danh tính 2.4 Chương trình nhận dạng khn mặt - Đầu tiên, nhóm chúng em chuẩn bị liệu ảnh đầu vào để huấn luyện, tập liệu training bao gồm ảnh liệt kê bên 12 13 - Dưới chương trình viết Python trích chọn đặc trưng sử dụng thuật toán HOG thực ứng dụng “Nhận dạng khuôn mặt” import cv2 import numpy as np from matplotlib import pyplot as plt # Hàm convert_to_gray nhận ảnh đầu vào chuyển đổi thành ảnh xám # cách sử dụng hàm cv2.cvtColor từ module cv2 def convert_to_gray(image): return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Hàm compute_gradients tính gradient theo trục x y ảnh đầu vào # cách sử dụng hàm cv2.Sobel từ module cv2 Gradient x y trả def compute_gradients(image): gradient_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3) gradient_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3) return gradient_x, gradient_y # Hàm compute_magnitude_orientation tính độ lớn hướng gradient dựa # gradient x y tính tốn trước # Sử dụng phép tính tốn mảng từ module numpy để tính tốn độ lớn hướng def compute_magnitude_orientation(gradient_x, gradient_y): magnitude = np.sqrt(gradient_x**2 + gradient_y**2) orientation = np.arctan2(gradient_y, gradient_x) * 180 / np.pi return magnitude, orientation # Hàm compute_histograms tính histogram hướng gradient ô # Đầu vào độ lớn hướng gradient, với kích thước (cell_size) # Hàm tạo mảng histogram có kích thước tương ứng với số ô ảnh số bin (num_bins) # Tiếp theo, hàm lặp qua ô ảnh, tính histogram cho cách sử dụng # hàm np.histogram từ module numpy Kết histogram lưu vào mảng histograms trả def compute_histograms(magnitude, orientation, cell_size): height, width = magnitude.shape num_cells_x = width // cell_size num_cells_y = height // cell_size num_bins = histograms = np.zeros((num_cells_y, num_cells_x, num_bins)) for y in range(num_cells_y): for x in range(num_cells_x): cell_magnitude = magnitude[y * cell_size:(y + 1) * cell_size, x * cell_size:(x + 1) * cell_size] cell_orientation = orientation[y * cell_size:(y + 1) * cell_size, x * cell_size:(x + 1) * cell_size] histogram = np.histogram(cell_orientation, bins=num_bins, range=(0, 180), weights=cell_magnitude)[0] histograms[y, x, :] = histogram return histograms 14 # Hàm normalize_histograms chuẩn hóa block histogram # Đầu vào histogram tính tốn kích thước block # Hàm tạo mảng normalized_histograms có kích thước nhỏ histograms theo block_size # Tiếp theo, hàm lặp qua block histograms, làm phẳng histogram # chuẩn hóa chúng cách chia cho bậc hai tổng bình phương giá trị # histogram, để đảm bảo tổng bình phương giá trị # Kết normalized_histograms trả def normalize_histograms(histograms, block_size): num_cells_y, num_cells_x, num_bins = histograms.shape eps = 1e-7 normalized_histograms = np.zeros((num_cells_y - block_size + 1, num_cells_x - block_size + 1, block_size * block_size * num_bins)) for y in range(num_cells_y - block_size + 1): for x in range(num_cells_x - block_size + 1): block_histograms = histograms[y:y+block_size, x:x+block_size, :].flatten() normalized_histograms[y, x, :] = block_histograms / np.sqrt(np.sum(block_histograms**2) + eps) return normalized_histograms # Hàm compute_hog_features tính đặc trưng HOG (Histogram of Oriented Gradients) ảnh khuôn mặt # Đầu vào ảnh khuôn mặt Hàm chuyển đổi ảnh thành ảnh xám, tính gradient theo trục x y, # tính độ lớn hướng gradient, tính histogram hướng gradient ơ, # chuẩn hóa block histogram Kết đặc trưng HOG ảnh khuôn mặt trả def compute_hog_features(image): gray = convert_to_gray(image) gradient_x, gradient_y = compute_gradients(gray) magnitude, orientation = compute_magnitude_orientation(gradient_x, gradient_y) histograms = compute_histograms(magnitude, orientation, cell_size=8) hog_features = normalize_histograms(histograms, block_size=2) return hog_features # Hàm compare_hog_features so sánh đặc trưng HOG hai ảnh khuôn mặt # Đầu vào hai đặc trưng HOG Hàm tính norm (độ lớn) hiệu hai đặc trưng trả kết def compare_hog_features(features1, features2): return np.linalg.norm(features1 - features2) # Đường dẫn đến ảnh khuôn mặt dùng để huấn luyện known_faces_paths = [f'train/image ({i}).JPG' for i in range(1, 24)] # known_faces_paths.append('img.png') # Chuẩn bị liệu training training_data = [] # Kích thước cố định cho ảnh khn mặt face_size = (100, 100) 15 # Lặp qua ảnh khuôn mặt biết for known_face_path in known_faces_paths: # Đọc ảnh khuôn mặt biết known_face = cv2.imread(known_face_path) # Điều chỉnh kích thước ảnh khn mặt biết known_face_resized = cv2.resize(known_face, face_size) # Trích xuất đặc trưng HOG ảnh khn mặt điều chỉnh kích thước thêm # ảnh gốc đặc trưng HOG vào danh sách liệu training hog_features = compute_hog_features(known_face_resized) training_data.append((known_face, hog_features)) # Đường dẫn đến ảnh khuôn mặt cần kiểm tra unknown_image_path = "test/test.JPG" # Đọc ảnh khuôn mặt unknown_image = cv2.imread(unknown_image_path) # Điều chỉnh kích thước ảnh khn mặt unknown_image_resized = cv2.resize(unknown_image, face_size) # Trích xuất đặc trưng HOG ảnh khuôn mặt unknown_hog_features = compute_hog_features(unknown_image_resized) # So sánh ảnh khuôn mặt với liệu training # Đây ngưỡng (threshold) sử dụng để định xem đặc trưng HOG # ảnh khuôn mặt có khớp với đặc trưng HOG ảnh khuôn mặt biết hay không # Nếu độ tương đồng hai đặc trưng HOG nhỏ ngưỡng này, ta coi chúng khớp threshold = # Biến sử dụng để xác định xem có tìm thấy kết khớp (match) ảnh # khuôn mặt ảnh khuôn mặt biết hay không # Nếu giá trị biến True, có nghĩa tìm thấy kết khớp found_match = False # Biến lưu trữ ảnh khuôn mặt biết mà có đặc trưng HOG khớp với ảnh khn mặt # Nếu khơng tìm thấy kết khớp, giá trị biến giữ nguyên None matched_face = None # Lặp qua danh sách training_data # Biến known_face lưu trữ ảnh khuôn mặt biết biến known_face_features # lưu trữ đặc trưng HOG ảnh khuôn mặt biết for known_face, known_face_features in training_data: # So sánh đặc trưng HOG ảnh khuôn mặt với đặc trưng HOG ảnh khuôn mặt biết similarity_score = compare_hog_features(known_face_features, unknown_hog_features) # In giá trị chênh lệch so sánh đặc trưng HOG print(similarity_score) # Nếu đặc trưng HOG khớp với ảnh khuôn mặt biết 16 if similarity_score < threshold: # Thể tìm thấy ảnh thỏa mãn yêu cầu found_match = True #Lưu lại ảnh thỏa mãn q trình lặp matched_face = known_face break # Nếu tìm thấy ảnh thỏa mãn yêu cầu trạng thái found_natch = True => Đúng if found_match: # Chuyển ảnh test khuôn mặt thành ảnh xám gray = convert_to_gray(unknown_image) # Sử dụng phân loại khuôn mặt OpenCV face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') # Áp dụng phân loại khuôn mặt để phát khuôn mặt ảnh xám (gray) # Kết trả danh sách vùng chứa khuôn mặt phát found_faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) # Tạo hình ảnh với cột hàng fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 5)) # Hiển thị ảnh test cột axes[0].imshow(unknown_image) axes[0].set_title('Image Test') # Vẽ hình chữ nhật xung quanh khuôn mặt for (x, y, w, h) in found_faces: cv2.rectangle(unknown_image, (x, y), (x+w, y+h), (0, 255, 0), 2) # Hiển thị ảnh kết cột thứ hai axes[1].imshow(unknown_image) axes[1].set_title('Image Result') plt.show() # Nếu khơng tìm thấy ảnh thỏa mãn yêu cầu trạng thái found_match = False else: print("Ảnh khuôn mặt không nằm ảnh khuôn mặt biết.") 2.5 Kết chương trình nhận diện khn mặt - Kết thuật tốn nhận dạng khn mặt thông qua HOG việc xác định xem ảnh đầu vào có chứa khn mặt hay khơng có, xác định vị trí ranh giới khn mặt ảnh, khoanh viền hình chữ nhật xung quanh mặt nhận dạng hiển thị kết biểu đồ chứa hình ảnh hình test ban đầu hình kết sau xác định khn mặt ảnh lên hình Thuật tốn phân loại 17 nhận dạng danh tính khn mặt huấn luyện với liệu nhãn tương ứng sử dụng mô hinh máy học - Dưới nhóm chúng em liệt kê kết vài lần chạy chương trình để nhận diện gương mặt 18 PHẦN KẾT LUẬN Trong tập lớn này, nhóm chúng em tìm hiểu, cài đặt ứng dụng phương pháp trích chọn đặc trưng HOG (Histogram of Oriented Gradients) Nhóm em mơ tả chi tiết thuật toán HOG, ý nghĩa ứng dụng lĩnh vực xử lý ảnh thị giác máy tính Trong Chương 1, chúng em trình bày lý thuyết phương pháp HOG, bao gồm thuật tốn ý nghĩa Chúng em giải thích cách HOG hoạt động cách tính toán gradient điểm ảnh khối, tạo histogram hướng gradient sử dụng đặc trưng để mơ tả hình dạng cấu trúc đối tượng Trong Chương 2, chúng em trình bày ứng dụng HOG lĩnh vực khác Chúng em xây dựng chương trình cụ thể để áp dụng HOG nhận dạng đối tượng ảnh, nhận dạng khuôn mặt, nhận dạng chữ viết tay phân tích hình ảnh y học Các chương trình sử dụng thuật tốn HOG để trích xuất đặc trưng áp dụng phương pháp phân loại để nhận dạng phân tích liệu Trong trình thực tập lớn, chúng em triển khai thuật tốn HOG mà khơng dùng thư viện có sẵn, đảm bảo hiểu biết sâu cách hoạt động linh hoạt việc điều chỉnh tùy chỉnh để phù hợp với nhu cầu cụ thể Tổng kết lại, phương pháp trích chọn đặc trưng HOG phương pháp mạnh mẽ linh hoạt xử lý ảnh thị giác máy tính Nó áp dụng nhiều lĩnh vực khác tùy chỉnh để đáp ứng nhu cầu cụ thể ứng dụng Việc nắm vững áp dụng thành công phương pháp HOG mang lại kết đáng kể việc nhận dạng phân tích liệu ảnh video 19