Thị giác máy tính computer vision, là một lĩnh vực nghiên cứu của trí tuệ nhân tạo liên quan đến khả năng của máy tính để xử lý, hiểu và giải thích thông tin hình ảnh hoặc video từ thế giới thực. Nó đang phát triển rất nhanh và đang có ứng dụng rộng rãi trong nhiều lĩnh vực, từ công nghiệp, y tế, giao thông, an ninh, marketing, đến nghệ thuật và giải trí. Hãy theo dõi bài viết dưới đây để tìm hiểu về lĩnh vực này nhé!
Tổng quan lịch sử thị giác máy tính
Vào năm 1966, hai nhà tiên phong về trí tuệ nhân tạo là Seymour Papert và Marvin Minsky đã bắt đầu dự án “Summer Vision Project”, một dự án kéo dài hai tháng với sự tham gia của 10 người để phát triển một hệ thống máy tính có khả năng nhận dạng các đối tượng trong ảnh.
Để hoàn thành mục tiêu, một chương trình máy tính phải có khả năng xác định pixel thuộc về đối tượng nào trong hình ảnh. Đây là một thách thức lớn đối với máy tính, bởi khác với thị giác của con người được hỗ trợ bởi kiến thức và kinh nghiệm phong phú về thế giới thực cũng như tiến hóa hàng tỷ năm, thế giới trong mắt máy tính chỉ là dữ liệu số, là một nhiệm vụ phức tạp.
Vào thời điểm dự án này, thống trị chủ lực trong lĩnh vực trí tuệ nhân tạo là AI dựa trên quy tắc (rule-based AI), còn gọi là symbolic AI. Các lập trình viên tự định nghĩa các quy tắc để phát hiện các đối tượng trong hình ảnh. Tuy nhiên, vấn đề đặt ra là các vật thể trong ảnh có thể xuất hiện từ nhiều góc độ và trong điều kiện ánh sáng khác nhau. Đối tượng có thể xuất hiện trên nhiều nền khác nhau hoặc bị che khuất một phần bởi các đối tượng khác. Mỗi tình huống này đều tạo ra các giá trị pixel khác nhau và không thể tạo ra quy tắc thủ công cho từng trường hợp này.
Tất nhiên, dự án “Summer Vision Project” không đạt được kết quả nhiều. Vài năm sau đó, vào năm 1979, nhà khoa học Nhật Bản Kunihiko Fukushima đã đề xuất neocognitron, một hệ thống thị giác máy tính dựa trên nghiên cứu về thần kinh của vỏ não về thị giác của con người. Mặc dù neocognitron của Fukushima không thể thực hiện các nhiệm vụ trực quan phức tạp, nhưng nó đã đặt nền tảng cho một trong những phát triển quan trọng nhất trong lịch sử thị giác máy tính.
Thị giác máy tính computer vision là gì?
Thị giác máy tính, hay còn được gọi là Computer Vision, là một lĩnh vực của khoa học máy tính tập trung vào việc tái tạo các phần phức tạp của hệ thống thị giác con người và cho phép máy tính xác định và xử lý các đối tượng trong hình ảnh và video theo cách tương tự như con người.
Một trong những yếu tố thúc đẩy sự phát triển của thị giác máy tính là lượng dữ liệu được tạo ra ngày nay để đào tạo và cải thiện tính chính xác của hệ thống. Với lượng dữ liệu trực quan lớn khổng lồ (hơn 3 tỷ hình ảnh được chia sẻ trực tuyến mỗi ngày), lĩnh vực thị giác máy tính đang phát triển cùng với sự tiến bộ trong phần cứng và thuật toán. Tỷ lệ chính xác trong việc nhận dạng đối tượng cũng đã tăng lên theo đó. Chỉ trong chưa đầy một thập kỷ, các hệ thống hiện đại đã đạt đến độ chính xác 99%, so với chỉ 50% trong quá khứ, và vượt xa tính chính xác của con người trong việc xử lý đầu vào trực quan.
Các thí nghiệm đầu tiên về thị giác máy tính đã bắt đầu từ những năm 1950 và lần đầu tiên được ứng dụng thương mại để phân biệt giữa văn bản đánh máy và viết tay vào những năm 1970. Ngày nay, ứng dụng của thị giác máy tính đã phát triển vượt bậc theo cấp số nhân.
Thị giác máy tính hoạt động như thế nào?
Thị giác máy tính hoạt động dựa trên một chuỗi các bước xử lý hình ảnh để phân tích, nhận dạng và hiểu các đối tượng trong hình ảnh hoặc video. Dưới đây là một số bước cơ bản trong quá trình thị giác máy tính:
Tiền xử lý hình ảnh
Đây là bước đầu tiên trong quá trình thị giác máy tính, bao gồm việc chuẩn hóa hình ảnh bằng cách thay đổi kích thước, chuẩn hoá màu sắc, loại bỏ nhiễu và xử lý các biến động ánh sáng.
Trích xuất đặc trưng
Bước này liên quan đến việc trích xuất các đặc trưng đại diện cho hình ảnh, chẳng hạn như các cạnh, đỉnh, góc, hoặc các đặc điểm địa phương khác của hình ảnh. Đây là bước quan trọng để hình ảnh được biểu diễn dưới dạng dữ liệu số có thể được xử lý bởi các thuật toán máy tính.
Mô hình học máy
Sau khi có các đặc trưng của hình ảnh, các thuật toán học máy được sử dụng để huấn luyện các mô hình nhận dạng đối tượng. Các mô hình này có thể được huấn luyện dựa trên các dữ liệu huấn luyện có nhãn, trong đó đối tượng cần nhận dạng đã được gán nhãn trước đó. Các thuật toán phổ biến được sử dụng trong thị giác máy tính bao gồm Support Vector Machine (SVM), Convolutional Neural Networks (CNN), và Recurrent Neural Networks (RNN).
Phân loại và nhận dạng đối tượng
Sau khi mô hình đã được huấn luyện, nó có thể được sử dụng để phân loại và nhận dạng đối tượng trong hình ảnh hoặc video. Các đối tượng có thể được phân loại vào các lớp đã được định nghĩa trước đó, chẳng hạn như người, xe hơi, động vật, hoặc các đối tượng khác tùy thuộc vào ứng dụng cụ thể.
Đưa ra đầu ra và đánh giá
Cuối cùng, sau khi các đối tượng đã được nhận dạng, kết quả được đưa ra dưới dạng đầu ra, chẳng hạn như các nhãn, định nghĩa, hoặc các thông tin khác liên quan đến đối tượng được nhận dạng. Đồng thời, các kết quả này cũng cần được đánh giá để đánh giá độ chính xác của quá trình nhận dạng. Có thể sử dụng các độ đo như độ chính xác, độ nhạy, độ đặc hiệu và các phương pháp đánh giá khác để đánh giá hiệu suất của hệ thống thị giác máy tính.
Ví dụ:
Nếu bạn cho máy tính nhận biết một triệu hình ảnh hoa, tất cả chúng sẽ phải tuân theo các thuật toán cho phép chúng phân tích màu sắc trong ảnh, hình dạng của hoa, khoảng cách giữa các điểm trên hoa… để nó xác định một hồ sơ về “hoa” có nghĩa là gì. Khi quá trình hoàn tất, máy tính (về lý thuyết) sẽ có thể sử dụng trải nghiệm của mình nếu được cung cấp các hình ảnh không được gắn nhãn khác để tìm những hình ảnh của hoa. Ví dụ, máy tính có thể phân loại các hình ảnh mới là hoa lan, hoa hồng, hoa cúc, hoa tulip, v.v. dựa trên những đặc trưng đã học được từ dữ liệu huấn luyện trước đó.
Ngoài ra, trong quá trình thị giác máy tính, còn có các công nghệ tiên tiến khác như phát hiện và theo dõi đối tượng trong thời gian thực, xử lý ảnh đa kênh, xử lý ảnh 3D, và các ứng dụng đặc biệt như nhận dạng khuôn mặt, nhận dạng biển số xe, hay nhận dạng vật thể trong không gian 3D.
Qua đó, chúng ta có thể hiểu quá trình thị giác máy tính là một chuỗi các bước xử lý hình ảnh để phân tích, nhận dạng và hiểu các đối tượng trong hình ảnh hoặc video. Các bước chính bao gồm tiền xử lý hình ảnh, trích xuất đặc trưng, mô hình học máy, phân loại và nhận dạng đối tượng, và đưa ra đầu ra và đánh giá. Công nghệ thị giác máy tính đang ngày càng phát triển và được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như công nghiệp, y tế, an ninh, giao thông vận tải, và nhiều ứng dụng khác.
Sự phát triển của thị giác máy tính computer vision
Trước khi Học sâu xuất hiện, khả năng của thị giác máy tính là hạn chế và đòi hỏi nhiều công sức và mã hóa thủ công từ các nhà phát triển và người vận hành. Ví dụ: để thực hiện nhận dạng khuôn mặt, bạn cần phải thực hiện các bước sau:
- Xây dựng cơ sở dữ liệu: Bạn phải chụp từng bức ảnh của các đối tượng mà bạn muốn theo dõi theo định dạng cụ thể.
- Gắn thẻ hình ảnh: Sau đó, đối với mỗi bức ảnh, bạn phải nhập một số điểm dữ liệu chính như khoảng cách giữa hai mắt, chiều rộng của sống mũi, khoảng cách giữa môi trên và mũi, cùng với hàng chục phép đo khác để xác định các đặc điểm độc nhất của từng người.
- Chụp ảnh mới: Tiếp theo, bạn cần phải chụp ảnh mới, bao gồm cả ảnh đơn hay video. Sau đó, bạn phải thực hiện lại quá trình đo lường, đánh dấu các điểm chính trên hình ảnh. Bạn cũng cần tính đến góc chụp của ảnh.
Sau tất cả các công việc thủ công này, cuối cùng ứng dụng sẽ có thể so sánh các phép đo trên hình ảnh mới với các phép đo được lưu trữ trong cơ sở dữ liệu và cho biết liệu chúng tương ứng với bất kỳ cấu hình nào mà nó đang theo dõi hay không. Tuy nhiên, thực tế là hầu hết các công việc vẫn được thực hiện thủ công và độ lỗi vẫn còn khá lớn.
- Học máy và học sâu là hai phương pháp khác nhau để giải quyết các vấn đề thị giác máy tính. Trong học máy, các nhà phát triển cần phải lập trình các tính năng cụ thể để phát hiện các mẫu trong hình ảnh và sử dụng các thuật toán học thống kê để phân loại hình ảnh hoặc phát hiện các đối tượng. Tuy nhiên, đối với học sâu, mạng nơ-ron được sử dụng để học và trích xuất các đặc trưng tự động từ dữ liệu được đưa vào mà không cần phải lập trình các tính năng cụ thể.
- Mạng nơ-ron sâu là một loại mạng nơ-ron nhân tạo có nhiều lớp, cho phép nó học và biểu diễn thông tin phức tạp từ dữ liệu đầu vào. Khi được đào tạo với một lượng lớn dữ liệu đào tạo được gắn nhãn, mạng nơ-ron sâu có khả năng tự động học và nhận biết các đặc trưng chung của dữ liệu, giúp nó thực hiện các tác vụ như phân loại, phát hiện đối tượng, hoặc nhận dạng khuôn mặt một cách tự động.
Một trong những ưu điểm lớn của học sâu là:
- Khả năng tự động học các đặc trưng từ dữ liệu.
- Giúp giảm bớt sự phụ thuộc vào việc lập trình các tính năng cụ thể như trong học máy truyền thống.
- Học sâu cũng đem lại khả năng đạt được độ chính xác cao hơn trong nhiều ứng dụng thị giác máy tính, đặc biệt là khi đối diện với dữ liệu phức tạp và đa dạng.
Hiện nay, học sâu và mạng nơ-ron sâu được sử dụng rộng rãi trong nhiều ứng dụng thực tế, bao gồm phát hiện ung thư, ô tô tự lái, nhận dạng khuôn mặt, nhận dạng đồ vật, nhận dạng chữ viết tay, và nhiều lĩnh vực khác. Nhờ sự phát triển của tài nguyên phần cứng và điện toán đám mây, học sâu đã trở nên dễ dàng hơn để phát triển và triển khai trong các ứng dụng thực tế.
Ứng dụng của thị giác máy tính
Nhiều ứng dụng hàng ngày sử dụng công nghệ thị giác máy tính để cải thiện trải nghiệm người dùng. Ví dụ, Google sử dụng thị giác máy tính để giúp người dùng tìm kiếm hình ảnh và đồ vật trong thư viện Hình ảnh của họ.
Các công ty khác như Adobe Lightroom CC cũng sử dụng thị giác máy tính để cải thiện hình ảnh. Thay vì sử dụng kỹ thuật nội suy truyền thống để phóng to hình ảnh và tô màu các khu vực được phóng to, Lightroom sử dụng thuật toán máy học để phát hiện đối tượng trong hình ảnh và làm nét các đối tượng này khi phóng to, từ đó nâng cao chất lượng hình ảnh.
Một trong những lĩnh vực tiên phong nhờ sự phát triển của thị giác máy tính là nhận dạng khuôn mặt. Apple sử dụng thuật toán nhận dạng khuôn mặt để mở khóa iPhone, trong khi Facebook sử dụng tính năng nhận dạng khuôn mặt để phát hiện người dùng trong các bức ảnh được đăng trực tuyến.
Ngoài ra, AmazonGo – cửa hàng vật lý không nhân viên của Amazon, cũng sử dụng thị giác máy tính để đưa ra trải nghiệm mua sắm tiện lợi cho người dùng. Các camera và cảm biến trong cửa hàng giám sát các sản phẩm mà người dùng lấy ra và tự động tính phí khi họ rời khỏi cửa hàng, cho phép người dùng lựa chọn sản phẩm mà không cần dừng lại ở quầy thu ngân.
Có nhiều ứng dụng khác của thị giác máy tính trong nhiều lĩnh vực khác nhau, bao gồm:
- Xử lý ảnh y tế: Thị giác máy tính có thể được sử dụng để giúp phát hiện các bệnh lý y tế trên hình ảnh y tế, chẳng hạn như phát hiện ung thư, xác định các vùng tổn thương trong hình ảnh MRI hoặc CT scan, hỗ trợ trong quá trình phẫu thuật, và theo dõi sự tiến triển của bệnh.
- Xe tự động: Thị giác máy tính có thể giúp cho các xe tự động nhận dạng và theo dõi các đối tượng trên đường, như xe hơi, người đi bộ, người đi xe đạp, biển báo giao thông, … Điều này giúp cho xe tự động có thể tự động lái xe, tránh tai nạn và cải thiện an toàn giao thông.
- Công nghiệp và nhà máy thông minh: Thị giác máy tính có thể được sử dụng để tự động hóa các quy trình sản xuất trong công nghiệp và nhà máy thông minh, chẳng hạn như kiểm tra chất lượng sản phẩm, nhận dạng sản phẩm, đếm sản phẩm, v.v. Điều này giúp cải thiện hiệu quả sản xuất, giảm bớt lỗi nhân công và tăng cường tính tự động hóa trong sản xuất.
- Bảo mật và an ninh: Thị giác máy tính có thể được sử dụng để phát hiện, nhận dạng và theo dõi các hoạt động bất thường trong các hệ thống an ninh, chẳng hạn như nhận dạng khuôn mặt để kiểm tra danh tính, phát hiện vật thể nghi ngờ trong khu vực cấm, và theo dõi các hoạt động gây nguy hiểm.
- Truyền thông và giải trí: Thị giác máy tính có thể được sử dụng trong công nghệ truyền thông và giải trí, chẳng hạn như nhận dạng nội dung đa phương tiện, …
Hy vọng qua bài viết trên của Laptop Uy Tín sẽ cung cấp cho bạn những thông tin hữu ích về thị giác máy tính computer vision là gì. Nếu còn có thắc mắc nào khác, hãy để lại phản hồi dưới phần bình luận để chúng tôi có thể tư vấn thêm cho bạn.