Thị giác máy tính (Computer vision) là một trong những lĩnh vực khoa học công nghệ được tập trung nghiên cứu trong thời gian gần đây. Đã có nhiều ứng dụng hữu ích ra đời nhờ khai thác tiềm năng của thị giác máy tính.
Computer vision là một trong những lĩnh vực phát triển nhanh nhất của khoa học máy tính và trí tuệ nhân tạo. Với hơn 3 tỷ hình ảnh được chia sẻ mỗi ngày, lĩnh vực thị giác máy tính ngày càng được chú trọng đầu tư, nghiên cứu với những phần cứng và thuật toán mới được áp dụng.
1. Thị giác máy tính là gì?
Thị giác máy tính là một lĩnh vực của Trí tuệ nhân tạo (AI - Artificial Intelligence), cho phép máy tính và hệ thống lấy thông tin hữu ích từ hình ảnh kỹ thuật số, video và các đầu vào trực quan khác.
Sau đó, công nghệ này thực hiện phân tích, đưa ra đề xuất dựa trên thông tin đó. Nếu AI cho phép máy tính suy nghĩ, thì thị giác máy tính cho phép chúng nhìn, quan sát và hiểu.
Thị giác máy tính hoạt động giống như thị giác của con người. Tuy nhiên, ở thị giác con người, khi nhìn thấy hình ảnh có thể gợi nhớ hoặc tạo nên ký ức, suy nghĩ. Với máy tính, tất cả các hình ảnh đều là một mảng các pixel, các giá trị số đại diện cho các sắc độ của màu đỏ, xanh lá cây và xanh dương.
Thị giác con người có lợi thế trong việc lưu trữ, phân tích bối cảnh. Thị giác máy tính cần được huấn luyện để thực hiện những chức năng này trong thời gian rất ngắn.
Một hệ thống ứng dụng thị giác máy tính được đào tạo để kiểm tra sản phẩm có thể phân tích hàng nghìn sản phẩm hoặc quy trình cùng lúc, phát hiện lỗi hoặc những vấn đề mà con người chưa kịp nhận thấy.
Xem thêm bài viết:
2. Thị giác máy tính hoạt động như thế nào?
Thị giác máy tính cần rất nhiều dữ liệu. Nó thực hiện phân tích dữ liệu lặp đi lặp lại cho đến khi phân biệt được các điểm khác biệt và nhận ra hình ảnh.
Ví dụ, để đào tạo một máy tính “nhìn” được lốp xe, nó cần được cung cấp một lượng lớn hình ảnh lốp xe và các nội dung liên quan đến lốp xe để tìm hiểu sự khác biệt và nhận ra một chiếc lốp xe hoàn chỉnh hoặc bị lỗi.
Hai công nghệ thiết yếu được ứng dụng để thực hiện điều này gồm: Công nghệ máy học, hay còn gọi là học sâu (Deep learning) và mạng nơ-ron tích hợp (Convolutional neural network - CNN).
Máy học sử dụng các mô hình thuật toán, cho phép máy tính tự học về ngữ cảnh của dữ liệu trực quan, thay vì cần người lập trình. Nếu đủ dữ liệu được cung cấp thông qua mô hình, máy tính sẽ “nhìn” vào dữ liệu và tự dạy nó phân biệt hình ảnh này với hình ảnh khác.
CNN giúp mô hình học máy hoặc học sâu “nhìn” bằng cách chia nhỏ 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 tính chập (một phép toán dựa trên hai hàm để tạo ra hàm thứ ba) và đưa ra dự đoán về những gì nó đang “nhìn thấy”.
Mạng nơ-ron tuần hoàn (RNN - Recurrent neural network) chạy phức hợp và lặp lại rất nhiều lần việc kiểm tra độ chính xác các dự đoán cho đến khi dự đoán bắt đầu trở thành sự thật. 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 trông thấy hình ảnh ở khoảng cách xa, đầu tiên, CNN phân biệt các cạnh cứng và hình dạng đơn giản, sau đó nạp thông tin trong 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ẻ. RNN hoạt động theo cách tương tự đối với video để hiểu cách các hình ảnh trong một chuỗi khung liên quan với nhau.
Thị giác máy tính cần “học” để có thể phân biệt hình ảnh - Ảnh: Internet
3. Lịch sử của thị giác máy tính
Các nhà khoa học và kỹ sư đã cố gắng nghiên cứu nhiều cách thức khác nhau để máy móc có thể nhìn và hiểu dữ liệu trực quan trong khoảng hơn 60 năm trở lại đây.
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ương quan với 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 cứng. 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.
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 nhận hình ảnh. Một cột mốc quan trọng đã đạ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 ba chiều.
Năm 1974, công nghệ Nhận dạng ký tự quang học (OCR - Optical character recognition) ra đời, có khả năng nhận dạng văn bản được in bằng 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 hay còn gọi là nhận dạng chữ viết tay (ICR - Intelligent Character Recognition) có thể giải mã văn bản viết tay bằng cách sử dụng mạng nơ-ron. Kể từ đó, OCR và ICR đã tìm ra cách xử lý tài liệu và hóa đơn, nhận dạng biển số xe, thanh toán di động, dịch máy và rất nhiều ứng dụng phổ biến khác.
Năm 1982, nhà thần kinh học David Marr đã xác định rằng thị giác hoạt động theo thứ bậc và đưa ra 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 các tế bào có thể nhận dạng các mẫu. Mạng lưới được gọi là Neocognitron, bao gồm các lớp phức hợp trong một mạng nơron.
Đến năm 2000, trọng tâm của nghiên cứu là nhận dạng vật thể. Tiêu chuẩn về cách các tập dữ liệu trực quan được gắn thẻ và chú thích đã xuất hiện trong những năm 2000. Năm 2001, các ứng dụng nhận dạng khuôn mặt thời gian thực đầu tiên đã xuất hiện.
Năm 2010, tập dữ liệu ImageNet - một cơ sở dữ liệu hình ảnh quy mô lớn được thiết kế để sử dụng trong nghiên cứu phần mềm nhận dạng đối tượng trực quan đã ra đời. Nó chứa hàng triệu hình ảnh được gắn thẻ của hơn một nghìn đối tượng và cung cấp nền tảng cho CNN và các mô hình học sâu được sử dụng ngày nay.
Năm 2012, một nhóm nghiên cứu từ Đại học Toronto đã đưa CNN vào một cuộc thi nhận dạng hình ảnh. Mô hình AlexNet, đã giảm đáng kể tỷ lệ lỗi khi nhận dạng hình ảnh, chỉ còn vài phần trăm.
4. Ứng dụng của thị giác máy tính trong thế giới hiện đại
Các ứng dụng trong thế giới thực chứng minh tầm quan trọng của máy tính trong nhiều lĩnh vực, bao gồm: Kinh doanh, giải trí, giao thông, chăm sóc sức khỏe và cuộc sống sinh hoạt hàng ngày.
Động lực chính cho sự phát triển của các ứng dụng này chính là lượng thông tin thu thập được từ điện thoại thông minh, hệ thống an ninh, camera giao thông và các thiết bị hỗ trợ trực quan khác.
Những thông tin này được sử dụng để đào tạo ứng dụng thị giác máy tính, khiến chúng trở thành một phần cần thiết trong các hoạt động của con người.
Lượng hình ảnh thu thập qua camera hàng ngày cung cấp nhiều dữ liệu hữu ích cho thị giác máy tính - Ảnh: Internet
Phát hiện lỗi
Có thể nói, đây là ứng dụng phổ biến nhất của thị giác máy tính. Trước khi có thị giác máy tính, việc phát hiện các khiếm khuyết được thực hiện bởi con người. Đối với khối lượng công việc lớn, việc kiểm soát chính xác hoàn toàn là rất khó khăn và cần nhiều nhân lực.
Với thị giác máy tính, chúng có thể phát hiện ra những lỗi dù là nhỏ nhất như vết nứt trên kim loại, lỗi sơn, bản in xấu,... với kích thước nhỏ hơn 0,05mm, tốt hơn nhiều so với mắt người.
Trong đó, thuật toán là “bộ não thông minh”, được thiết kế và đào tạo đặc biệt cho từng ứng dụng cụ thể thông qua các hình ảnh có lỗi và không lỗi.
Đo lường
Đo lường là một trong những ứng dụng quan trọng nhất của thị giác máy tính. Những gì trước đây được đo lường bởi các thiết bị hoặc đầu dò laser phức tạp, hiện có thể đơn giản hóa bằng thị giác máy tính.
Để việc đo lường có độ chính xác cao, cần cung cấp đầy đủ tài liệu tham khảo để máy học và tạo ra môi trường ánh sáng thuận lợi, phù hợp với các đối tượng. Nhờ sử dụng hệ thống thị giác nhân tạo, con người có thể đo lường kích thước bộ phận thay đổi, độ thẳng, độ song song…
Đọc mã và ký tự (OCR)
Ngày nay, camera của điện thoại thông minh có thể đọc trực tiếp văn bản ngay lập tức. Ta dễ thấy điều này ở các ứng dụng dịch thuật. Khi camera quét qua, phần văn bản sẽ được nhập tự động và dịch sang ngôn ngữ khác. Ở đây, thị giác máy tính sử dụng thuật toán OCR để nhận dạng các ký tự với độ chính xác cao.
Vận hành tự động
Xe tự lái là một trong những sản phẩm ứng dụng thị giác máy tính hiệu quả để vận hành tự động. Nhờ công nghệ này, ý tưởng về xe tự vận hành, không người lái đã được hiện thực hóa và hứa hẹn sẽ những bước tiến bộ nhanh chóng trong tương lai.
Trí tuệ nhân tạo giúp đã thu thập được những dữ liệu, thông tin về hành vi của người lái xe. Từ đó, những chiếc xe có thể tự “học” và tự động điều khiển, vận hành, tìm làn đường, phát hiện nguy hiểm, hiểu được ý nghĩa của các tín hiệu giao thông.
Nhận dạng mẫu và xử lý hình ảnh
Chức năng này thường được đưa vào ứng dụng trong lĩnh vực y tế. Những hình ảnh y khoa đã trở thành một phần thiết yếu, hỗ trợ quá trình chẩn đoán của bác sĩ và các chuyên gia trong lĩnh vực y tế - chăm sóc sức khỏe. Từ đó, bác sĩ có thể đưa ra phương pháp điều trị sao cho phù hợp nhất.
Công nghệ thị giác máy tính cũng là công cụ kỹ thuật hỗ trợ đắc lực cho các ca phẫu thuật. Ví dụ, hình ảnh 3D của hộp sọ rất cần thiết trong việc điều trị khối u não; Tận dụng thị giác máy tính để phân loại các nốt trong phổi nhằm chẩn đoán sớm ung thư phổi.
Xem thêm bài viết:
Thị giác máy tính được ứng dụng hiệu quả trong ngành y tế - Ảnh: Internet
Ngoài ra, thị giác máy tính còn được ứng dụng trong một số lĩnh vực khác như an ninh (tìm kiếm tội phạm bằng công nghệ nhận diện khuôn mặt) hay bán lẻ (giúp cải thiện trải nghiệm của khách hàng),…
Trong tương lai, khi được nghiên cứu và phát triển mạnh mẽ hơn, chắc chắn thị giác máy tính sẽ mang lại những thay đổi đáng kể cho cuộc sống con người.