Tổng quan về Computer Vision – Thị giác máy tính

Computer Vision (CV) hay Thị giác máy tính – mô tả một lĩnh vực cho phép các thiết bị thu thập, xử lý, hiểu và phân tích hình ảnh và video kỹ thuật số cũng như trích xuất thông tin hữu ích.

Computer Vision là gì?

Computer Vision có mục tiêu chính đầu tiên là hiểu nội dung của video và hình ảnh tĩnh; nó hình thành thông tin hữu ích từ chúng để giải quyết một loạt vấn đề ngày càng mở rộng. Là một nhóm con của Trí tuệ nhân tạo (AI) và Học sâu (DL), CV đào tạo các mạng nơ-ron tích chập (Convolutional Neural Networks) để phát triển khả năng thị giác của con người cho các ứng dụng.

CV có thể bao gồm việc đào tạo cụ thể các CNN đối với phân đoạn (Segmentation), phân loại (Classification) và phát hiện (Detection) bằng cách sử dụng hình ảnh và video cho dữ liệu.

Mạng nơ-ron tích chập (CNN) có thể thực hiện phân đoạn, phân loại và phát hiện cho vô số ứng dụng:

  • Segmentation: Phân đoạn hình ảnh là việc phân loại các pixel thuộc về một danh mục nhất định, chẳng hạn như ô tô, đường đi hoặc người đi bộ. Nó được sử dụng rộng rãi trong các ứng dụng xe tự lái, bao gồm stack phần mềm NVIDIA DRIVE, để hiển thị những con đường, ô tô và con người. Hãy coi nó như một kỹ thuật trực quan (visualization) giúp con người hiểu được những gì máy tính thực hiện dễ dàng hơn.
  • Classification: Phân loại hình ảnh được sử dụng để xác định nội dung trong hình ảnh. Ví dụ, mạng nơ-ron nhân tạo có thể được đào tạo để xác định chó hoặc mèo hoặc nhiều thứ khác với độ chính xác cao.
  • Detection: Phát hiện hình ảnh cho phép máy tính định vị nơi các đối tượng (objects) tồn tại. Trong nhiều ứng dụng, CNN đặt các khung giới hạn hình chữ nhật xung quanh vùng quan tâm (region of interest) chứa đầy đủ đối tượng. Một bộ phát hiện (detector) cũng có thể được đào tạo để xác định ô tô hoặc con người ở đâu trong một hình ảnh.
Segmentation Classification Detection
Tốt trong phân định đồ vật Đó là một con mèo hay một con chó? Nó tồn tại ở đâu trong không gian?
Được sử dụng trong xe tự lái Phân loại một cách chính xác Nhận biết mọi thứ để đảm bảo an toàn

Tại sao Computer Vision lại quan trọng?

Vì nó có nhiều ứng dụng, bao gồm trong các lĩnh vực như thể thaoô tônông nghiệpbán lẻngân hàngxây dựngbảo hiểm và hơn thế nữa. Tất cả các loại máy móc được điều khiển bằng AI đang được trang bị những đôi mắt giống như của chúng ta, nhờ vào mạng nơ-ron tích chập (CNN) – công cụ xử lý hình ảnh hiện được máy móc sử dụng để nhận dạng vật thể. Các CNN hiện tại đang là những đôi mắt của các phương tiện tự hànhkhai thác dầu và nghiên cứu năng lượng nhiệt hạch. Chúng cũng có thể giúp phát hiện bệnh nhanh chóng bằng hình ảnh y khoa và cứu người.

Các kỹ thuật xử lý hình ảnh và CV truyền thống đã được sử dụng qua nhiều thập kỷ trong nhiều ứng dụng và công việc nghiên cứu. Tuy nhiên, sự ra đời của các kỹ thuật AI hiện đại sử dụng mạng lưới thần kinh nhân tạo, cho phép đạt được độ chính xác hiệu suất cao hơn và những bước tiến trong điện toán hiệu năng cao (HPC) từ các GPU, mang lại độ chính xác ngoài sức tưởng tượng, đã dẫn đến việc áp dụng rộng rãi trong các ngành như vận tảibán lẻsản xuấtchăm sóc sức khỏe và dịch vụ tài chính.

Dù là truyền thống hay dựa trên AI, những hệ thống CV đều có thể tốt hơn con người trong việc phân loại hình ảnh và video thành các danh mục và lớp riêng biệt, chẳng hạn như những thay đổi nhỏ theo thời gian trong chụp cắt lớp vi tính theo trục trong y tế (CAT scan). Trong trường hợp này, CV sẽ tự động hóa các nhiệm vụ mà con người có thể thực hiện nhưng với độ chính xác và tốc độ cao hơn nhiều.

Với một loạt những ứng dụng tiềm năng hiện tại, không có gì đáng ngạc nhiên khi dự báo tăng trưởng cho các công nghệ và giải pháp CV là rất lớn. Một cuộc khảo sát nghiên cứu thị trường cho rằng thị trường này sẽ tăng trưởng đáng kinh ngạc 47% hàng năm cho đến năm 2023, khi đó nó sẽ đạt 25 tỷ USD trên toàn cầu. Trong tất cả các lĩnh vực Khoa học máy tính, Computer Vision là một trong những lĩnh vực nghiên cứu và phát triển nóng bỏng và sôi động nhất.

Computer Vision hoạt động như thế nào?

Nó phân tích hình ảnh và sau đó tạo ra các biểu diễn bằng số về những gì nó ‘nhìn thấy’ thông qua sử dụng mạng nơ-ron tích chập (CNN). CNN là một tầng của mạng thần kinh nhân tạo, sử dụng các lớp tích chập để lọc đầu vào cho ra thông tin hữu ích. Hoạt động tích chập bao gồm việc kết hợp dữ liệu đầu vào (feature map) với một kernel tích chập (filter) để tạo thành feature map được chuyển đổi.

Các bộ lọc trong lớp các tích chập (conv layers) được sửa đổi dựa trên các tham số đã học để trích xuất thông tin hữu ích nhất cho một tác vụ cụ thể. Mạng tích chập tự động điều chỉnh để tìm ra tính năng tốt nhất dựa trên nhiệm vụ. CNN sẽ lọc thông tin về hình dạng của một vật thể khi thực hiện nhiệm vụ nhận dạng đối tượng chung nhưng sẽ trích xuất màu sắc của con chim (bird) khi thực hiện nhiệm vụ nhận dạng chim. Điều này dựa trên sự hiểu biết của CNN rằng các loại vật thể khác nhau có hình dạng khác nhau, nhưng các loại chim khác nhau có nhiều khả năng khác nhau về màu sắc hơn là hình dạng.

 

Các trường hợp sử dụng Computer Vision trong công nghiệp

Các trường hợp sử dụng CV bao gồm nhận dạng hình ảnh, phân loại hình ảnh, gán nhãn video và trợ lý ảo. Một số trường hợp sử dụng phổ biến và nổi bật hơn cho CV bao gồm:

  • Thuốc: Xử lý hình ảnh y khoa liên quan đến việc trích xuất nhanh chóng dữ liệu hình ảnh quan trọng để giúp chẩn đoán chính xác bệnh nhân, bao gồm phát hiện nhanh các khối u và xơ cứng động mạch. Mặc dù bản thân Computer Vision không thể được tin cậy để đưa ra chẩn đoán, nhưng nó là một phần vô giá của các kỹ thuật chẩn đoán y tế hiện đại, củng cố tối thiểu những gì bác sĩ nghĩ và ngày càng cung cấp thông tin mà các bác sĩ lẽ ra không thể thấy.
  • Phương tiện tự hành: Một lĩnh vực rất tích cực khác của nghiên cứu Thị giác máy tính – phương tiện tự hành có thể được tiếp quản hoàn toàn bằng các giải pháp CV hoặc hoạt động của chúng có thể được tăng cường đáng kể. Các ứng dụng phổ biến hiện đang hoạt động bao gồm hệ thống cảnh báo sớm trên ô tô.
  • Sử dụng công nghiệp: Sản xuất hiện có rất nhiều ứng dụng tiềm năng của các giải pháp CV để hỗ trợ các quy trình sản xuất. Các ứng dụng hiện tại bao gồm kiểm soát chất lượng trong đó những hệ thống CV kiểm tra các bộ phận và thành phẩm để tìm lỗi. Trong nông nghiệp, các hệ thống CV sử dụng phân loại quang học để loại bỏ các vật liệu không mong muốn khỏi sản phẩm thực phẩm.

Nhà khoa học dữ liệu và Thị giác máy tính

Python là ngôn ngữ lập trình phổ biến nhất cho Học máy (ML) và hầu hết các nhà khoa học dữ liệu đều quen thuộc với tính dễ sử dụng và kho thư viện lớn của nó – hầu hết đều là nguồn mở và miễn phí. Các nhà khoa học dữ liệu sử dụng Python trong các hệ thống ML để khai thác dữ liệu và phân tích dữ liệu, vì Python cung cấp hỗ trợ cho một loạt các mô hình và thuật toán ML.

Với mối quan hệ giữa ML và CV, các nhà khoa học dữ liệu có thể tận dụng vũ trụ mở rộng của các ứng dụng CV đối với các doanh nghiệp thuộc mọi loại hình để trích xuất thông tin quan trọng từ kho hình ảnh và video cũng như tăng cường khả năng ra quyết định dựa trên dữ liệu.

Tăng tốc mạng nơ-ron tích chập bằng việc sử dụng GPU

Về mặt kiến ​​trúc, CPU chỉ bao gồm một vài lõi với nhiều bộ nhớ đệm có thể xử lý một số luồng phần mềm cùng một lúc. Ngược lại, một GPU bao gồm hàng trăm lõi có thể xử lý hàng nghìn luồng cùng một lúc.

Bởi vì mạng lưới nơ-ron được tạo ra từ số lượng lớn các tế bào thần kinh giống hệt nhau nên về bản chất chúng rất song song. Tính song song này ánh xạ tự nhiên tới GPU, cung cấp kiến ​​trúc số học song song dữ liệu (data-parallel) và tăng tốc độ tính toán đáng kể so với việc đào tạo chỉ dùng CPU.

Kiểu kiến ​​trúc này thực hiện một tập hợp tính toán tương tự trên một mảng dữ liệu hình ảnh. Khả năng một lệnh (single-instruction), nhiều dữ liệu (multiple-data) (SIMD) của GPU giúp nó phù hợp để chạy các tác vụ CV, thường liên quan đến các phép tính tương tự hoạt động trên toàn bộ hình ảnh. Cụ thể, NVIDIA GPU tăng tốc đáng kể các hoạt động Thị giác máy tính, giải phóng CPU cho các công việc khác. Hơn nữa, nhiều GPU có thể được sử dụng trên cùng một máy, tạo ra một kiến ​​trúc có khả năng chạy song song nhiều thuật toán Thị giác máy tính.

Các framework Học sâu được tăng tốc bằng GPU

Các framework DL được tăng tốc bởi GPU cung cấp giao diện cho các ngôn ngữ lập trình được sử dụng phổ biến như Python. Chúng cũng mang lại sự linh hoạt để dễ dàng tạo và khám phá các CNN và DNN tùy chỉnh, đồng thời cung cấp tốc độ cao cần thiết cho cả thử nghiệm và triển khai công nghiệp.

NVIDIA CUDA-X AI tăng tốc các framework DL được sử dụng rộng rãi như Caffe, The Microsoft Cognitive Toolkit (CNTK), TensorFlow, Theano và Torch, cũng như nhiều ứng dụng ML khác. Các framework DL chạy nhanh hơn trên những GPU và mở rộng quy mô trên nhiều GPU trong cùng một node.

Để sử dụng các framework với GPU cho quá trình suy luận và đào tạo CNN, NVIDIA cung cấp cuDNNTensorRT tương ứng. cuDNN và TensorRT cung cấp các triển khai được điều chỉnh cao cho các quy trình tiêu chuẩn như tích chập, gộp, chuẩn hóa và các lớp kích hoạt.

Nhấp vào đây để xem hướng dẫn cài đặt và sử dụng NVCaffe từng bước. Triển khai C++/CUDA nhanh chóng của CNN xem tại đây.

Để phát triển và triển khai mô hình vision một cách nhanh chóng, NVIDIA cung cấp DeepStream SDK dành cho các nhà phát triển vision AI. Nó cũng bao gồm TAO Toolkit để tạo các mô hình AI chính xác và hiệu quả cho CV domain.

Khoa học dữ liệu toàn diện, được tăng tốc bằng GPU

Bộ thư viện phần mềm nguồn mở NVIDIA RAPIDS, được xây dựng trên CUDA, mang đến cho bạn khả năng thực thi các quy trình phân tích và khoa học dữ liệu đầu cuối hoàn toàn trên GPU, trong khi vẫn sử dụng các giao diện quen thuộc như Pandas và Scikit-Learn APIs.

Theo NVIDIA

____
Bài viết liên quan
Góp ý / Liên hệ tác giả