Mở đầu ▪ Phần 1: Giới thiệu về đề tài ▪ Phần 2: Giới thiệu bài toán ▪ Phần 3: Giải bài toán nhận dạng khuôn mặt với thư viện Face Recognition ▪ Phần 4: Cài đặt và thử nghiệm hệ thống ▪ Kết luận ▪ Tài liệu tham khảo 3 CHƯƠNG 2. GIỚI THIỆU BÀI TOÁN 2. Tổng quan về thị giác máy tính và nhận dạng khuôn mặt 2. Tổng quan thị giác máy tính Thị giác máy tính (Computer vision) là một lĩnh vực khoa học liên ngành đề cập đến cách máy tính có thể đạt được hiểu biết cấp cao từ hình ảnh hoặc video kỹ thuật số.
Từ góc độ kỹ thuật, nó tìm cách hiểu và tự động hóa các nhiệm vụ mà hệ thống thị giác của con người có thể thực hiện. Các nhiệm vụ về thị giác máy tính bao gồm các phương pháp thu thập, xử lý, phân tích và hiểu hình ảnh kỹ thuật số cũng như trích xuất dữ liệu chiều cao từ thế giới thực để tạo ra thông tin số hoặc biểu tượng, ví dụ: dưới các hình thức quyết định. Hiểu theo ngữ cảnh này có nghĩa là sự chuyển đổi các hình ảnh trực quan (đầu vào của võng mạc) thành các mô tả về thế giới có ý nghĩa đối với các quá trình suy nghĩ và có thể gợi ra hành động thích hợp. Sự hiểu biết về hình ảnh này có thể được coi là sự tách rời thông tin biểu tượng từ dữ liệu hình ảnh bằng cách sử dụng các mô hình được xây dựng với sự hỗ trợ của hình học, vật lý, thống kê và lý thuyết học tập.
Ngành khoa học về thị giác máy tính liên quan đến lý thuyết đằng sau các hệ thống nhân tạo trích xuất thông tin từ hình ảnh. Dữ liệu hình ảnh có thể ở nhiều dạng, chẳng hạn như chuỗi video, chế độ xem từ nhiều máy ảnh, dữ liệu đa chiều từ máy quét 3D hoặc thiết bị quét y tế. Ngành công nghệ về thị giác máy tính tìm cách áp dụng các lý thuyết và mô hình của nó vào việc xây dựng các hệ thống thị giác máy tính. Các lĩnh vực phụ của thị giác máy tính bao gồm tái tạo cảnh, phát hiện đối tượng, phát hiện sự kiện, theo dõi video, nhận dạng đối tượng, ước tính tư thế 3D, học tập, lập chỉ mục, ước tính chuyển động, hỗ trợ trực quan, tạo mô hình cảnh 3D và phục hồi hình ảnh.
Thị giác máy tính (Computer vision) Lịch sử của thị giác máy tính Các nhà khoa học và kỹ sư đã cố gắng phát triển các cách để máy móc có thể nhìn và hiểu dữ liệu hình ảnh trong khoảng 60 năm qua. Thí nghiệm bắt đầu vào năm 1959 khi các nhà sinh lý học thần kinh cho một con mèo xem một loạt hình ảnh, cố gắng tìm ra mối tương quan giữa phản ứng trong não của nó. Họ phát hiện ra rằng nó phản ứng đầu tiên với các cạnh hoặc đường nét cứng và về mặt khoa học, điều này có nghĩa là quá trình xử lý hình ảnh bắt đầu với các hình dạng đơn giản như các cạnh thẳng. Hệ thống máy tính quét ảnh thời kỳ trước 5 Cùng lúc đó, công nghệ quét hình ảnh máy tính đầu tiên được phát triển, cho phép máy tính số hóa và thu được hình ảnh.
Một cột mốc quan trọng khác đã đạt được vào năm 1963 khi máy tính có thể chuyển đổi hình ảnh hai chiều thành dạng ba chiều. Vào những năm 1960, AI nổi lên như một lĩnh vực nghiên cứu học thuật và nó cũng đánh dấu sự khởi đầu của nhiệm vụ AI nhằm giải quyết vấn đề thị giác của con người. Năm 1974 chứng kiến sự ra đời của công nghệ nhận dạng ký tự quang học (OCR), có thể nhận dạng văn bản được in ở bất kỳ phông chữ hoặc kiểu chữ nào. Tương tự, nhận dạng ký tự thông minh (ICR) có thể giải mã văn bản viết tay sử dụng mạng lưới thần kinh.
Kể từ đó, OCR và ICR đã tìm được đường vào xử lý tài liệu và hóa đơn, nhận dạng biển số xe, thanh toán di động, chuyển đổi máy và các ứng dụng phổ biến khác. Năm 1982, nhà thần kinh học David Marr đã chứng minh rằng tầm nhìn hoạt động theo thứ bậc và giới thiệu các thuật toán cho máy móc để phát hiện các cạnh, góc, đường cong và các hình dạng cơ bản tương tự. Đồng thời, nhà khoa học máy tính Kunihiko Fukushima đã phát triển một mạng lưới tế bào có thể nhận dạng các mẫu. Mạng này được gọi là Neocognitron, bao gồm các lớp tích chập trong mạng lưới thần kinh.
Đến năm 2000, trọng tâm nghiên cứu là nhận dạng đối tượng; và đến năm 2001, những ứng dụng nhận diện khuôn mặt theo thời gian thực đầu tiên xuất hiện. Tiêu chuẩn hóa cách gắn thẻ và chú thích các tập dữ liệu trực quan đã xuất hiện từ những năm 2000. Năm 2010, bộ dữ liệu ImageNet đã có sẵn. Nó chứa hàng triệu hình ảnh được gắn thẻ trên hàng nghìn lớp đối tượng và cung cấp nền tảng cho CNN cũng như các mô hình học sâu được sử dụng ngày nay.
Năm 2012, một nhóm từ Đại học Toronto đã đưa CNN tham gia một cuộc thi nhận dạng hình ảnh. Mô hình có tên AlexNet đã giảm đáng kể tỷ lệ lỗi khi nhận dạng hình ảnh. Sau bước đột phá này, tỷ lệ lỗi đã giảm xuống chỉ còn vài phần trăm. 6 Thị giác máy tính hoạt động như thế nào? Hình 2.
Mô phỏng hoạt động của thị giác máy tính Thị giác máy tính cần rất nhiều dữ liệu. Nó chạy đi phân tích dữ liệu nhiều lần cho đến khi phân biệt được sự khác biệt và cuối cùng nhận ra được hình ảnh. Ví dụ, để huấn luyện máy tính nhận dạng lốp ô tô, nó cần được cung cấp một lượng lớn hình ảnh lốp và các mục liên quan đến lốp để tìm hiểu sự khác biệt và nhận biết lốp, đặc biệt là lốp không có khuyết tật. Hai công nghệ thiết yếu được sử dụng để thực hiện điều này: một loại máy học được gọi là học sâu và mạng nơ-ron tích chập (CNN).
Học máy sử dụng các mô hình thuật toán cho phép máy tính tự dạy về bối cảnh của dữ liệu trực quan. Nếu đủ dữ liệu được cung cấp qua mô hình, máy tính sẽ “nhìn” vào dữ liệu và tự dạy mình cách phân biệt hình ảnh này với hình ảnh khác. Các thuật toán cho phép máy tự học thay vì ai đó lập trình để nhận dạng hình ảnh. CNN giúp mô hình học máy hoặc học sâu “nhìn” bằng cách chia hình ảnh thành các pixel được gắn thẻ hoặc nhãn.
Nó sử dụng các nhãn để thực hiện các phép tích chập (một phép toán trên hai hàm để tạo ra hàm thứ ba) và đưa ra dự đoán về những gì nó “nhìn thấy”. Mạng lưới thần kinh chạy các phép tích chập và kiểm tra tính chính xác của các dự đoán của nó trong một loạt các lần lặp cho đến khi các dự đoán bắt đầu 7 trở thành hiện thực. Sau đó nó nhận biết hoặc nhìn thấy hình ảnh theo cách tương tự như con người. Giống như con người tạo ra một hình ảnh từ xa, CNN trước tiên phân biệt các cạnh cứng và hình dạng đơn giản, sau đó điền thông tin khi chạy lặp lại các dự đoán của mình.
CNN được sử dụng để hiểu các hình ảnh đơn lẻ. Mạng thần kinh tái phát (RNN) được sử dụng theo cách tương tự cho các ứng dụng video để giúp máy tính hiểu các hình ảnh trong một loạt khung hình có liên quan với nhau như thế nào. Ứng dụng của thị giác máy tính Có rất nhiều nghiên cứu đang được thực hiện trong lĩnh vực thị giác máy tính nhưng không dừng lại ở đó. Các ứng dụng trong thế giới thực chứng minh tầm quan trọng của thị giác máy tính đối với những nỗ lực trong kinh doanh, giải trí, giao thông vận tải, chăm sóc sức khỏe và cuộc sống hàng ngày.
Ứng dụng của thị giác máy tính Động lực chính cho sự phát triển của các ứng dụng này là dòng thông tin hình ảnh tràn ngập từ điện thoại thông minh, hệ thống an ninh, camera giao thông và các thiết bị đo trực quan khác. Dữ liệu này có thể đóng một vai trò quan trọng trong hoạt động của nhiều ngành, nhưng ngày nay không được sử dụng. Thông tin tạo ra nền tảng thử nghiệm để huấn luyện các ứng dụng thị giác máy tính và là bệ phóng để chúng trở thành một phần trong hàng loạt hoạt động của con người: 8 IBM đã sử dụng thị giác máy tính để tạo ra Những khoảnh khắc của tôi cho giải golf Masters 2018. IBM Watson® đã xem hàng trăm giờ các thước phim Masters và có thể xác định khung cảnh (và âm thanh) của những cảnh quay quan trọng.
Nó tuyển chọn những khoảnh khắc quan trọng này và cung cấp chúng cho người hâm mộ dưới dạng cuộn phim nổi bật được cá nhân hóa. Google Dịch cho phép người dùng hướng camera của điện thoại thông minh vào một biển hiệu bằng ngôn ngữ khác và gần như ngay lập tức nhận được bản dịch của biển hiệu đó sang ngôn ngữ ưa thích của họ. Sự phát triển của phương tiện tự lái dựa vào thị giác máy tính để hiểu được đầu vào hình ảnh từ camera của ô tô và các cảm biến khác. Điều cần thiết là phải xác định các ô tô khác, biển báo giao thông, vạch kẻ đường, người đi bộ, xe đạp và tất cả thông tin trực quan khác gặp trên đường.
IBM đang áp dụng công nghệ thị giác máy tính với các đối tác như Verizon để đưa AI thông minh lên đỉnh cao và giúp các nhà sản xuất ô tô xác định các khiếm khuyết về chất lượng trước khi xe rời khỏi nhà máy. Ví dụ về thị giác máy tính Nhiều tổ chức không có đủ nguồn lực để tài trợ cho các phòng thí nghiệm thị giác máy tính và tạo ra các mô hình học sâu và mạng lưới thần kinh. Họ cũng có thể thiếu khả năng tính toán cần thiết để xử lý các bộ dữ liệu trực quan khổng lồ. Các công ty như IBM đang trợ giúp bằng cách cung cấp các dịch vụ phát triển phần mềm thị giác máy tính.
Các dịch vụ này cung cấp các mô hình học tập được xây dựng sẵn từ đám mây—và cũng giúp giảm bớt nhu cầu về tài nguyên máy tính. Người dùng kết nối với các dịch vụ thông qua giao diện lập trình ứng dụng (API) và sử dụng chúng để phát triển các ứng dụng thị giác máy tính. Ví dụ về quá trình xử lý của một hệ thống thị giác máy tính Hình 2.