MC&TT Co., Ltd

10 thuật ngữ về thị giác máy tính bạn nên biết

Chia sẻ:

Thị giác máy tính là một nhánh của trí tuệ nhân tạo, cho phép các hệ thống đánh giá mức độ hiểu biết tổng thể về hình ảnh, video hoặc các thực thể và hoạt động thời gian thực khác. Để bắt kịp với đà phát triển nhanh, mạnh của các kỹ thuật liên quan đến công nghệ thị giác máy tính, bạn cần trang bị nền tảng vững chắc và kiến thức chính xác về những thuật ngữ, bài toán trong lĩnh vực này.

Bài viết dưới đây sẽ cùng bạn “bóc tách” 10 thuật ngữ phổ biến nhất, cùng với đó là một số thuật toán, hoặc code gợi ý cho từng bài toán cụ thể. Dựa trên cơ sở nắm chắc kiến thức cơ bản, bạn có thể xây dựng bất kỳ loại dự án thị giác máy tính nào với sự kết hợp của các thuật toán học máy hoặc học sâu.

10 thuật ngữ về thị giác máy tính bạn nên biết

Image Formatting (Định dạng hình ảnh)

Image formatting (Định dạng hình ảnh) và image manipulations (thao tác trên hình ảnh) là hai thuật ngữ phổ biến nhất mà bạn sẽ bắt gặp trong thị giác máy tính. Những hình ảnh bình thường mà chúng ta thấy được trong thế giới tự nhiên thường là những hình ảnh có chiều rộng, chiều cao nhất định và có ba kênh vì chúng chứa bố cục màu của hình ảnh RGB. Dưới đây là một ví dụ của các thông số hình ảnh.

Height of the Image = 512

Width of the Image = 512

Number of channels = 3

Với các thao tác trên hình ảnh, bạn có thể thực hiện nhiều tác vụ xử lý hữu ích giúp giảm yêu cầu tính toán cho các thuật toán học máy hoặc học sâu. Một số phương pháp xử lý hình ảnh bao gồm thay đổi kích thước, cắt xén hoặc chuyển đổi chúng thành hình ảnh thang độ xám. Thao tác trên hình ảnh đóng một vai trò quan trọng trong các ứng dụng thị giác máy tính.

Với định dạng hình ảnh, mục đích là đạt được sự thể hiện tốt nhất của hình ảnh, làm cho nó phù hợp với từng bài toán cụ thể. Bước này có thể bao gồm một số thao tác hình ảnh nhất định và lưu trữ nó ở định dạng mong muốn. Các định dạng lưu trữ hình ảnh thông thường bao gồm PNG, JPG, JPEG, TIF,…

Grayscale (Thang độ xám)

Trong thị giác máy tính, hình ảnh thang độ xám đóng một vai trò quan trọng trong phần lớn các ứng dụng thực tế. Thông thường, giá trị 0 đề cập đến màu đen, và khi giá trị tăng liên tục, các sắc thái nhạt dần cho đến cuối cùng là màu trắng ở giá trị 255. Do đó, ảnh thang độ xám cũng có thể được coi là một dải ảnh có màu hơi xám và theo các sắc độ xám khác nhau.

Có rất nhiều cách để chuyển đổi hình ảnh RGB đầy màu sắc sang các định dạng khác, đặc biệt là thành hình ảnh thang độ xám, nhằm giảm tải yêu cầu tính toán cũng như giảm giới hạn CPU (hoặc đôi khi là GPU). Với các bộ dữ liệu được chuyển đổi thành thang độ xám, bạn có thể xử lý tính toán nhanh hơn và hiệu quả hơn. Bạn cũng có thể sử dụng nó để đơn giản hóa các thuật toán và trích xuất các bộ mô tả mà không tốn quá nhiều yêu cầu bổ sung. Mã đơn giản để chuyển đổi sang thang độ xám như sau.

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Convert the color image to grayscale image

cv2.imshow(“Gray Picutre”, gray) # Display Grayscale image

cv2.waitKey(0)

Một khái niệm cần thiết khác là masking. Mask là một hình ảnh nhị phân bao gồm các giá trị 0 và khác 0. Nếu một mask được áp dụng cho một nhị phân khác hoặc cho một hình ảnh thang độ xám có cùng kích thước, thì tất cả các pixel bằng 0 trong mask sẽ được đặt thành 0 trong hình ảnh đầu ra. Tất cả những pixel khác vẫn không thay đổi.

IoU và Dice Loss

Trong khi làm việc với hình ảnh và hầu hết các tác vụ thị giác máy tính, ta sử dụng một số chỉ số tính toán thiết yếu nhất định để phân tích hiệu suất của các mô hình. Hai chỉ số chính để đảm bảo rằng mô hình đang hoạt động hiệu quả trong quá trình đào tạo và trong các giai đoạn đánh giá là điểm số Intersection over Union (IoU) và Dice Loss.

IoU, như tên cho thấy, là tỷ lệ trùng lặp giữa kết quả thực tế và dự đoán do mô hình đưa ra. Nó thường được coi là thước đo tốt hơn độ chính xác và được sử dụng rộng rãi cho các ứng dụng thị giác máy tính. Thông thường, điểm IoU trên 0,5 có thể được coi là điểm tốt cho các ứng dụng thực tế.

Mặt khác, Dice Loss là một trong những biện pháp được sử dụng trong xử lý ảnh để hiểu được sự giống nhau giữa hai hoặc nhiều thực thể mong muốn.

TP: true positive, FP: false positive, FN: false negative

Anchor Boxes and NMS

Hai thuật ngữ sau, Anchor Boxes và non-maximum suppression, là hai từ phổ biến được sử dụng trong thị giác máy tính, đặc biệt là trong việc triển khai các thuật toán phát hiện đối tượng. 

Anchor Boxes rất hữu ích để đặt các hộp giới hạn có chiều cao và chiều rộng được xác định trước trong một hình ảnh. Chúng thường nắm bắt nhiều tỷ lệ và tỷ lệ khung hình của các đối tượng khác nhau mà bạn đang tìm cách kết hợp cụ thể trong mô hình đào tạo. Có rất nhiều Anchor Boxes được sử dụng cho mục đích này.

Khi có nhiều Anchor Boxes được sử dụng cho một mục đích cụ thể, nó có thể dẫn đến một số vấn đề và sự cố nhất định, đặc biệt là do chồng chéo. Do đó, khái niệm non-maximum suppression (NMS) được sử dụng để lọc ra các ô chồng chéo quá mức và chuyển kết quả đã xử lý sang mạng neural để tính toán và xử lý thêm.

Noise (nhiễu)

Nhiễu trong ảnh về cơ bản là bất kỳ loại nhiễu nào có khả năng xảy ra do sự can thiệp của các yếu tố bên ngoài gây giảm giá trị chất lượng của ảnh. Nhiễu trong ảnh thường có thể được coi là nhiễu không mong muốn, mặc dù đôi khi bạn có thể cố gắng thêm một số nhiễu cho hình ảnh (như trong GAN). 

Trong các điều kiện mà bạn cho rằng hình ảnh cụ thể không cần thêm nhiễu, bạn có thể thử lọc bỏ nhiễu này. Lọc nhiễu là một trong những phương pháp thử nghiệm các thủ thuật khác nhau trong mô-đun OpenCV để loại bỏ nhiễu hiện có. Dưới đây là một đoạn code ví dụ:

Blur Techniques (Kỹ thuật làm mờ)

Quá trình làm mờ hoặc làm mịn là một kỹ thuật quan trọng trong thị giác máy tính để giảm số lượng ngoại lệ trong một hình ảnh cụ thể. Một trong những cách để lọc nhiễu là sử dụng các kỹ thuật làm mờ.

Trong mã trên,một kỹ thuật làm mờ phổ biến được sử dụng có tên là Gaussian Blur, sử dụng hàm Gaussian và giúp làm mịn hình ảnh đã cho sao cho phù hợp. Trong mã Gaussian Blur cụ thể do OpenCV cung cấp, mục tiêu là cung cấp nguồn và kích thước kernel, luôn phải là một bộ số lẻ để đạt được hình ảnh được làm mịn.

Edge Detection (Phát hiện cạnh)

Phát hiện cạnh là một mục tiêu quan trọng khác được thực hiện với thị giác máy tính. Phát hiện cạnh giúp xác định các phần khác nhau của hình ảnh với độ sáng khác nhau hoặc sự không liên tục trong các mẫu, nhờ đó có thể tìm thấy khu vực cần thiết. Nó cũng được sử dụng để trích xuất cấu trúc của các đối tượng cụ thể từ một hình ảnh hoặc phát hiện đối tượng.

Hình ảnh trên là một ví dụ về cách thực hiện phát hiện cạnh và cách bạn có thể thay đổi các khả năng phát hiện bằng cách thay đổi hệ số ngưỡng. Mặc dù có nhiều phương pháp để thực hiện phát hiện đối tượng, dưới đây là một khối mã minh họa việc sử dụng bộ phát hiện cạnh Canny trong OpenCV.

FPS

Khung hình trên giây (FPS) là một khái niệm thiết yếu khác về thị giác máy tính thường được sử dụng trong tính toán cảnh quay video hoặc hình ảnh thời gian thực. Để hiểu khái niệm này một cách đơn giản hơn, chúng ta hãy xem xét một vài ví dụ. Giả sử bạn đang xem video hoặc phim trên một nền tảng cụ thể chẳng hạn như YouTube hoặc phần mềm cục bộ. Bạn có tùy chọn để xem video đang phát bao nhiêu khung hình trên giây và chất lượng cụ thể là gì.

Đối với những tác vụ này, 60 khung hình mỗi giây thường được coi là một con số tốt. Tương tự, đối với các dự án điện toán như phát hiện đối tượng thời gian thực, khái niệm FPS là tối quan trọng để xác định hiệu suất của mô hình.

Segmentation (Phân đoạn)

Một trong những thao tác quan trọng nhất mà bạn có thể thực hiện với thị giác máy tính và học sâu là nhiệm vụ phân đoạn. Phân đoạn có nghĩa là tách riêng các phần tử thiết yếu nhất hoặc một phần tử mong muốn cụ thể khỏi hình ảnh.

Quá trình phân đoạn thông thường bao gồm việc xem xét một tập dữ liệu cụ thể cùng với các mặt nạ phân đoạn tương ứng của chúng. Ta có thể huấn luyện một mô hình cho một số mẫu nhất định bằng các phương pháp như U-Net hoặc các kiến trúc tương tự khác. Khi xây dựng thành công mô hình, bạn có thể thực hiện nhiều thử nghiệm phân đoạn trên các hình ảnh khác và cô lập (tách biệt) các yêu cầu thiết yếu.

Object Detection (Phát hiện đối tượng)

Một trong những nhiệm vụ khác về thị giác máy tính là phát hiện đối tượng. Phát hiện đối tượng là một trong những ứng dụng quan trọng nhất ở hiện tại, liên quan đến nhiều vấn đề như theo dõi đối tượng, nhận dạng khuôn mặt, ứng dụng robot, ô tô tự lái và nhiều hơn nữa, từ đó, cuối cùng sẽ mang lại lợi ích cho con người trên quy mô lớn.

Vì phát hiện đối tượng là một trong những yếu tố thiết yếu nhất của nhiệm vụ thị giác máy tính nên có một số phương pháp, công cụ, thuật toán và thư viện để tiếp cận nhiệm vụ này. Một số thuật toán tốt nhất bao gồm Histogram of Oriented Gradients (HOG), Faster R-CNN, YOLO và nhiều thuật toán và kỹ thuật tương tự khác. Ngoài ra còn có một số thư viện như Image AI và Detectron2 thực hiện các tác vụ này một cách hiệu quả.

Tổng kết

Trên đây là những thông tin bạn đọc cần biết về 10 thuật ngữ về thị giác máy tính bạn nên biết, hi vọng rằng sẽ hỗ trợ bạn trong việc tìm hiểu và nâng cao kiến thức về thị giác máy tính. Đừng quên theo dõi những bài viết mới nhất của chúng tôi trong thời gian sắp tới nhé.

Bạn đang xem: 10 thuật ngữ về thị giác máy tính bạn nên biết
Bài trước Bài sau
VIẾT BÌNH LUẬN CỦA BẠN

Địa chỉ email của bạn sẽ được bảo mật. Các trường bắt buộc được đánh dấu *

Đăng nhập
Đăng ký
Hotline: 0904251826
x