Mục từ này đã đạt chất lượng ở mức sản phẩm bước đầu của Đề án Biên soạn Bách khoa toàn thư Việt Nam giai đoạn 1
Thị giác máy
(đổi hướng từ Thị giác máy tính)
Thị giác máy có thể là công nghệ hỗ trợ cho thực tại tăng cường

Thị giác máy (còn gọi là thị giác máy tính; tiếng Anh machine vision, computer vision) là lĩnh vực liên ngành liên quan đến cách máy phân tích, xử lý thông tin từ dữ liệu hình ảnh hoặc video thu nhận được từ các máy kỹ thuật số. Thị giác máy nghiên cứu kỹ thuật thu nhận, xử lý tín hiệu và tìm kiếm tri thức tự động để thực hiện các nhiệm vụ như cơ quan thị giác của con người.

Thị giác máy liên quan đến nhiều lĩnh vực như kỹ thuật thu nhận và xử lý tín hiệu số (signal acquisition and processing), trí tuệ nhân tạo (artificial intelligence), học máy (machine learning), khoa học thần kinh (neurobiology), toán học, vật lý, xử lý ngôn ngữ tự nhiên,... Tương tự hệ thống giác quan của con người, thị giác máy là một trong những giác quan giúp hệ thống máy có thể thu thập dữ liệu, xử lý thông tin và hiểu về thế giới xung quanh nó. Có thể quan niệm thị giác máy là một trong những thành phần quan trọng trong các hệ thống thông minh được phát triển dựa trên nền tảng trí tuệ nhân tạo. Một trong những mục tiêu chính của thị giác máy là hình thành các chức năng bắt chước khả năng của hệ thống thị giác con người.

Mục tiêu chính của thị giác máy là giải quyết bài toán làm thế nào để một hệ thống máy thu nhận, phân tích hình ảnh để “hiểu” được thế giới xung quanh và “phản ứng” lại với thế giới xung quanh giống như hệ thống thị giác sinh học người. Ví dụ, giống thị giác sinh học của người, thị giác máy thu nhận, phân tích hình ảnh bằng các phương pháp và giải pháp công nghệ khác nhau nhằm hiểu biết và kiểm soát tự động các sản phẩm công nghiệp hoặc dẫn đường trong robot công nghiệp. Theo cách tiếp cận truyền thống, hệ thống máy được lập trình sẵn để giải quyết các nhiệm vụ cụ thể theo tình huống xác định. Hiện nay, các hệ thống thông minh sử dụng kỹ thuật trí tuệ nhân tạo để học từ dữ liệu thực tế, giải quyết các bài toán có tính phổ quát như con người. Thị giác nhân tạo được xem là tiêu chuẩn đánh giá khả năng của máy thông minh. Trong trường hợp lý tưởng, máy thông minh có khả năng tích hợp thiết bị thị giác, lập luận, hiểu và chuyển thể ngôn ngữ tự nhiên nhằm ra quyết định tương tác với các thực thể giao tiếp khác.

Các thành phần chính của hệ thống thị giác máy

Thông thường, hệ thống thị giác máy gồm các thành phần chính như thu nhận dữ liệu, tiền xử lý, trích chọn và biểu diễn đặc trưng từ hình ảnh, phân loại nhận dạng mẫu, biễu diễn tri thức, ra quyết định. Các bài toán giải quyết được trong thị giác máy:

  1. Nhận dạng (recognition): bài toán truyền thống trong thị giác máy liên quan đến yêu cầu xác định trong bức ảnh liệu có chứa những đối tượng quan tâm, các đặc trưng hay hoạt động cụ thể (gọi tắt là đối tượng quan tâm) hay không? Nhận dạng liên quan đến bài toán một hoặc một số đối tượng, lớp đối tượng cụ thể có thể được nhận ra nhờ vào “tri thức” máy đã được học thông qua các đặc trưng được trích rút từ hình dạng trong không gian 2 chiều (2D) hoặc không gian 3 chiều (3D) của đối tượng trong bức ảnh hoặc video thu nhận được. Một số bài toán con của lĩnh vực nhận dạng mẫu như:
    • Phát hiện đối tượng (object detection, nhận dạng đối tượng): là việc phát hiện đối tượng nào đó có tồn tại trong ảnh hay không và xác định vị trí của nó. Ví dụ bài toán phát hiện khuôn mặt khi chụp ảnh trong các máy ảnh kỹ thuật số, phát hiện người đi bộ, phát hiện phương tiện tham gia giao thông (vehicle) trong đoạn video, phát hiện tế bào hoặc khối u bất thường trong hình ảnh y tế.
    • Định danh đối tượng (object identification): là việc định danh các thực thể riêng lẻ về một loại đối tượng cụ thể nào đó. Ví dụ bài toán xác định danh tính của một người bằng vân tay, khuôn mặt hay võng mạc của người đó; bài toán nhận dạng các ký tự hoặc từ (word) viết tay, xác định một chủ sở hữu xe cụ thể bằng cách nhận dạng biển số của xe đó.
  2. Phân tích chuyển động (motion analysis): liên quan đến ước lượng chuyển động của đối tượng bằng cách phân tích ràng buộc hình học của sự biến đổi các vật thể trong các ảnh tuần tự từ đó có thể ước lượng được vận tốc (hoặc vận tốc tương đối) của đối tượng tại từng thời điểm thu nhận hình ảnh. Một số bài toán con của phân tích chuyển động có thể kể đến như:
    • Xác định chuyển động của vật thể qua hình ảnh (egomotion): là việc xác định chuyển động của vật thể (hoặc chuyển động của chính camera đang thu nhận ảnh) thông qua phân tích sự thay đổi tương đối của vật thể trong các hình ảnh tuần tự thu được từ camera đó.
    • Theo vết đối tượng (tracking) là việc xác định vị trí của vật thể (quỹ đạo chuyển động của đối tượng) thông qua phân tích chuyển động tương đối của nó trong các ảnh tuần tự được thu từ một camera hoặc hệ thống camera nối tiếp.
  3. Tái cấu trúc vật thể (reconstruction): liên quan đến nhiệm vụ xây dựng lại cấu trúc vật thể tương tự như hình dạng thật của nó trong 3D bằng cách phân tích mối quan hệ của vật thể đó trong một hoặc tập các ảnh (các ảnh này có thể thu thập từ nhiều thiết bị camera, các thời gian khác nhau). Trong lĩnh vực thị giác máy, quá trình tái cấu trúc vật thể được thực hiện theo một quy trình ngược lại, ví dụ để mô tả thế giới xung quanh, chúng ta nhìn vào các ảnh để tái cấu trúc lại các thuộc tính, hình dạng, độ sáng và phân phối màu sắc của nó.

Lịch sử[sửa]

Một tem thư ở Liên Xô năm 1977 minh hoạ hệ thống đọc tự động mã vùng để phân loại thư

Có thể xem cha đẻ của lĩnh vực thị giác máy là Larry Roberts. Ông đã công bố các kết quả nghiên cứu liên quan đến thị giác máy trong luận án tiến sĩ tại Viện MIT năm 1960. Qua đó, ông đã trình bày các quan điểm, kết quả phân tích, đánh giá về khả năng trích xuất thông tin hình học 3D từ khung nhìn 2D theo các khối (đa diện) của nó. Sau đó, lĩnh vực trí tuệ nhân tạo trong giải quyết các bài toán thị giác máy đã thu hút được nhiều nhà nghiên cứu trên thế giới.

Thị giác máy bắt đầu hình thành như một lĩnh vực nghiên cứu từ những năm 1960. Mục tiêu của thị giác máy là phát triển các giải pháp có thể bắt chước lại được hệ thống thị giác sinh học của con người và yêu cầu máy tương tác lại môi trường dựa vào quá trình hiểu biết (một cách tự động) bằng việc phân tích hình ảnh dựa vào các kỹ thuật trí tuệ nhân tạo và xử lý ảnh.

Đến thập niên 1980, thị giác máy đã đạt được dấu mốc quan trọng khi David Marr đề xuất giải pháp nhằm giúp máy có thể hiểu môi trường xung quanh. Giai đoạn này đã hình thành các thuật toán nền tảng nổi tiếng trong thị giác máy tính như trích xuất đặc trưng cạnh, đường trong ảnh; mô hình hóa các khối kiến trúc hình học như mô hình đa giác, đa diện và biểu diễn thực thể bằng cách kết nối các cấu trúc cơ sở, các giải pháp ước lượng chuyện động, luồng quang học,...

Thập niên 1990 chứng kiến sự đột phá mạnh mẽ trong lĩnh vực thị giác máy như các thuật toán trích xuất đặc trưng trên không gian tỷ lệ, mô hình suy diễn hình dáng, kết cấu đối tượng, biểu diễn mô hình thực thể bằng đường viền, các kỹ thuật tái cấu trúc vật thể. Bên cạnh đó, các kỹ thuật nhận dạng, phân lớp mẫu cũng đạt được những kết quả tích cực với sự hỗ trợ đắc lực của trí tuệ nhân tạo nói chung và học máy nói riêng.

Đến đầu thế kỷ 21, thế giới chứng kiến sự phát triển vượt bậc của thị giác máy từ việc phát triển các kỹ thuật tìm kiếm và biểu diễn đặc trưng hình ảnh như HOG (Histogram of Oriented Gradients), GLOH (Gradient Location and Orientation Histogram), Haar-like features, SIFT (Scale-Invariant Feature Transform), SURF (Speeded Up Robust Features), LBP (Local binary patterns), ACF (Aggregate Channel Features),... Các kỹ thuật tìm kiếm và biểu diễn đặc trưng hình ảnh đó đã giúp nâng cao độ chính xác các hệ thống nhận dạng trong thị giác máy. Trong giai đoạn này, các kỹ thuật nhận dạng được dùng chủ yếu theo cách tiếp cận học máy truyền thống như SVM (Support Vector Machine), RF (Random Forest), boosting, NN (Neural Network),...

Gần đây, với sự hỗ trợ mạnh mẽ của kỹ thuật xử lý song song, đặc biệt là GPU (Graphical Processing Unit), các kỹ thuật học sâu (Deep Learning, điển hình là mạng nơ ron tích chập - CNN) đã đạt được tốc độ xử lý thời gian thực. Cách tiếp cận học sâu trên dữ liệu lớn đảm bảo độ chính xác cao đã dần chiếm ưu thế so với cách tiếp cận học máy truyền thống. Một số giải pháp và mô hình học sâu điển hình được sử dụng khá phổ biến như AlexNet (2012), ZFNet (2013), VGGNet (2014), GoogLeNet (2015), ResNet (2015), Region Based CNNs (R-CNN 2013, Fast R-CNN2015, Faster R-CNN2015),... Thực sự, kỹ thuật học sâu được ghi nhận như là một nhóm kỹ thuật vượt trội về độ chính xác và khả thi từ khoảng 2012 nhưng nguồn gốc khởi xướng của nó có thể được xác định từ 1998 với mô hình nhận dạng LeNet của nhóm tác giả Yann LeCun.

Ứng dụng[sửa]

Xe tự lái của Waymo đang vận hành thử nghiệm tại Hoa Kỳ năm 2017

Ngày nay, thị giác máy có phạm vi ứng dụng rộng rãi từ hệ thống phục vụ dân sự, quân sự, hàng không vũ trụ. Thị giác máy tính bao gồm nhiều thành phần công nghệ cốt lõi trong việc phân tích hình ảnh một cách tự động để trích rút thông tin, tri thức được ứng dụng nhiều trong các lĩnh vực khác nhau như:

  • Kiểm soát sản xuất công nghiệp, kiểm soát sản phẩm, theo dõi quy trình sản xuất;
  • Các hệ thống giao thông thông minh, xe tự hành, giám sát an ninh thông minh,...
  • Nhận dạng chẩn đoạn bệnh, các hệ thống chăm sóc người già, bệnh nhân,...
  • Nhận dạng văn bản và các ứng dụng trong xử lý văn bản,...

Một số ví dụ ứng dụng cụ thể như:

  • Nhận dạng vân tay (Fingerprint Recognition). Cho phép tự động định danh hoặc xác nhận danh tính từng người riêng biệt dựa trên việc so sánh các ảnh dấu vân tay của người đó. Nhận dạng vân tay được ứng dụng nhiều trong các hệ thống bảo mật, an ninh và các hệ thống nhúng khác như nhà thông minh, bảo mật thông tin trong thiết bị di động, máy tính; các ứng dụng chuyện dụng trong tài chính, ngân hàng, quản lý nhân sự, xuất nhập cảnh,...
  • Nhận dạng mặt người (Face Detection). Các thiết bị chụp ảnh hiện nay đã tích hợp tính năng nhận dạng mặt người khi chụp ảnh, ghép ảnh tạo hiệu ứng lên khuôn mặt hoặc có thể nhận dạng giúp xác thực danh tính người trong các hệ thống an ninh thông minh.
  • Nhận dạng biển số xe (License Plate Recognition). Được ứng dụng trong giám sát giao thông thông minh, bãi xe thông minh. Hệ thống nhận dạng giúp quản lý xe trong các bãi xe ra vào một cách có khoa học và chuyên nghiệp, đảm bảo độ chính xác và xử lý thời gian thực. Trong giám sát giao thông thông minh, kết quả nhận dạng biển số xe giúp định danh xe trong quá trình giám sát và phát hiện kịp thời các tình huống vi phạm luật của phương tiện tham gia giao thông nhằm tự động hóa quản lý, xác thực và thực thi pháp luật.
  • Chuyển đổi hình ảnh qua văn bản (Image to Text). Có liên quan chặt chẽ đến bài toán nhận dạng ký tự quang học (OCR). Đây là bài toán đã trở nên phổ biến, các phần mềm đi kèm như là thành phần mặc định đối với máy quét (scaner), từ các máy quét văn bản văn phòng thông thường đến các máy quét chuyên dụng dùng trong các lĩnh vực ngân hàng, bưu chính, các máy bán hàng, máy đọc mã vạch,... Nhiều phần mềm chuyên dụng chuyển đổi hình ảnh qua văn bản đã được thương mại hóa như VnDOCR (phát triển tại Việt Nam), FineReader, ABBYY, Foxit Phantom, Microsoft OneNote, SimpleOCR, Capture2Text,...
  • Chẩn đoán y khoa bằng hình ảnh (Medical Diagnosis). Hỗ trợ xét nghiệm chẩn đoán bệnh lý bằng cách sử dụng các kỹ thuật phân tích hình ảnh trong y khoa. Ví dụ phân tích hình ảnh nhằm phát hiện khối u trong quét cộng hưởng từ (MRI), kiểm tra xương và khớp trong hình ảnh X quang (x-ray), kiểm tra và chẩn đoán bệnh ngoài da trong máy soi da (Dermatoscopy).
  • Hệ thống xe không người lái (Autonomous Vehicle, Self-Driving Car). Các hệ thống thị giác máy cho phép xe có khả năng thu nhận tín hiệu và hiểu được môi trường xung quanh nhằm đưa ra các quyết định điều khiển chuyển động một cách an toàn theo lộ trình mà không cần sự can thiệp của con người. Hệ thống xe tự lái kết hợp nhiều loại cảm biến khác nhau để “hiểu biết” môi trường xung quanh. Một số loại cảm biến điển hình được dùng nhiều như camera, radar, Laser khoảng cách, sonar, GPS, IMU,... Các hệ thống điều khiển tiên tiến sẽ phân tích, kết hợp thông tin từ các cảm biến (có thể quan niệm như là các giác quan) để xác định lộ trình thích hợp, các chướng ngại vật, biển báo và các đối tượng khác liên quan trong môi trường giao thông để điều hướng và thực hiện các tương tác khác theo yêu cầu một cách phù hợp và an toàn.

Xu thế[sửa]

Biểu trưng của thư viện OpenCV

Hiện nay, để hỗ trợ phát triển các hệ thống thị giác máy, một số framework và thư viện thị giác máy đã được sử dụng rộng rãi như OpenCV, Computer Vision- Matlab Toolbox, TensorFlow, Keras, PyTorch, DL4J, DLib,...

Thị giác máy là một lĩnh vực tương đối mới và có tốc độ phát triển nhanh chóng, thu hút được đông đảo các nhà nghiên cứu và đơn vị ứng dụng. Thị giác máy hướng đến xây dựng những chức năng có thể bắt chước, mô phỏng được những tính năng như hệ thống thị giác sinh học của con người với công cụ hỗ trợ đắc lực là trí tuệ nhân tạo. Nó cũng là mục tiêu của ngành khoa học dữ liệu. Những kết quả đạt được của thị giác máy được xem là bước tiến quan trọng trong nghiên cứu và phát triển trí tuệ nhân tạo, giúp các hệ thống máy có thể tự quan sát (nhìn), tự học, hiểu sự vật hiện tượng và tự đưa ra quyết định tương tác phù hợp giống như con người.

Hơn 20 năm qua, thị giác máy đã và đang trở thành một nhân tố cơ bản, quan trọng trong nền tảng hạ tầng của các hệ thống thông minh có ứng dụng toàn cầu. Tương tự hạ tầng viễn thông là nền tảng cho các dịch vụ dữ liệu phân tán. Các hệ thống thông minh chuyên dụng trong từng lĩnh vực (dựa trên thị giác máy) sẽ được xây dựng và tích hợp mặc định trong hầu hết các thiết bị như là một thành tố cơ bản của lĩnh vực Internet vạn vật (IoT-Internet of Things) bao gồm phân tích xử lý dữ liệu hình ảnh, âm thanh, văn bản và công nghệ cảm biến (giác quan).

Với định hướng phát triển cơ sở hạ tầng đáp ứng tiêu chuẩn công nghiệp 4.0 (Industry 4.0), chính phủ các nước, nhiều tập đoàn, doanh nghiệp đang tiến hành cuộc chạy đua xây dựng các nền tảng. Các ứng dụng thông minh nhằm tạo ra bộ não nhân tạo thực thi nhiệm vụ như con người trong tương lai, với các giác quan nhân tạo mà trong đó thị giác là một trong những giác quan không thể thiếu. Các hệ thống nền tảng hỗ trợ đắc lực cho thị giác máy gồm cả phần cứng (kỹ thuật xử lý cảm biến, đường truyền, CPU, GPU,...) và phần mềm (điển hình là trí tuệ nhân tạo).

Như là một trào lưu của thế giới trong cộng đồng phát triển hệ thống thông minh, những năm đầu thế kỷ 21, lĩnh vực thị giác máy đã thu hút được đông đảo những nhà nghiên cứu, doanh nghiệp đầu tư tìm hiểu, phát triển giải pháp và ứng dụng. Các chuyên gia và các nhà nghiên cứu của Việt Nam cũng không đứng ngoài trào lưu đó.

Tài liệu tham khảo[sửa]

  1. Huang, T. Vandoni, Carlo, E, “Computer Vision: Evolution and Promise”, 19th CERN School of Computing. Geneva: CERN. pp.21–25, 1996.
  2. Milan Sonka, Vaclav Hlavac, Roger Boyle, “Image Processing, Analysis, and Machine Vision”, Thomson, 2008.
  3. Richard Szeliski, “Computer vision: algorithms and applications”, Springer Science & Business Media, 2010.
  4. Kushal Kafle, Shrestha Robik, and Kanan Christopher, “Challenges and Prospects in Vision and Language Research”, Frontiers in artificial intelligence, vol.2 (28), pp.1-12, 2019.
  5. Yann LeCun, Bottou Léon, BengioYoshua, and Haffner Patrick, “Gradient-based learning applied to document recognition”, Proceedings of the IEEE, vol.86, no.11, pp.2278-2324, 1998.