Nhận diện hình ảnh AI là một trong những công nghệ hiện được ứng dụng phổ biến nhất, ở mọi lĩnh vực từ tài chính, ngân hàng đến du lịch, nghỉ dưỡng hay y tế. Bài viết dưới đây sẽ mang đến cho bạn cái nhìn toàn diện nhất về công nghệ này, từ khái niệm, kỹ thuật đến ứng dụng.
1. Nhận diện hình ảnh AI là gì?
1.1. Khái niệm nhận diện hình ảnh AI
Nhận diện hình ảnh AI là bài toán xác định các đối tượng cần quan tâm trong ảnh và phân loại ảnh đó vào từng nhóm cụ thể. Image recognition, photo recognition, và picture recognition đều là những thuật ngữ chỉ nhận diện hình ảnh AI và có thể được sử dụng thay thế cho nhau.
Đối với con người, khi nhìn thấy một đồ vật hoặc khung cảnh, ta sẽ tự động nhận dạng các đối tượng và gắn chúng với một tên gọi, khái niệm cụ thể. Tuy nhiên, với máy tính, đây lại là một nhiệm vụ rất phức tạp, đòi hỏi năng lực xử lý đáng kể.
Do đó, nhận diện hình ảnh AI đã trở thành một vấn đề nghiên cứu lâu đời trong thị giác máy tính (computer vision). Mặc dù hiện đã phát triển các phương pháp khác nhau để mô phỏng thị giác của con người, mục tiêu chung của việc nhận diện hình ảnh là phân loại các đối tượng được phát hiện thành các nhóm khác nhau. Bài toán này cũng được gọi là nhận dạng đối tượng học sâu (deep learning object recognition).
1.2. Nhận diện hình ảnh và Thị giác máy tính
Cần phân biệt rõ nhận diện hình ảnh là một ứng dụng của thị giác máy tính và thường cần xử lý nhiều hơn một tác vụ thị giác máy tính, chẳng hạn như phát hiện đối tượng, nhận dạng hình ảnh và phân loại hình ảnh.
1.3. Nhận diện hình ảnh và Khoanh vùng đối tượng
Khoanh vùng đối tượng (Object localization) là một phân ngành khác của Thị giác máy tính, thường bị nhầm lẫn với Nhận dạng hình ảnh (Image Recognition). Khoanh vùng đối tượng đề cập đến việc xác định vị trí của một hoặc nhiều đối tượng trong ảnh và gắn chúng với một bounding box bao quanh. Tuy nhiên, khoanh vùng đối tượng không bao gồm việc phân loại các đối tượng được phát hiện.
1.4. Nhận diện hình ảnh và Phát hiện hình ảnh
Giữa các thuật ngữ “nhận diện hình ảnh” (image recognition) và “phát hiện hình ảnh” (image detection) có sự khác biệt quan trọng về kỹ thuật.
Phát hiện hình ảnh (Image Detection) là bài toán tìm kiếm các đối tượng khác nhau bên trong một bức ảnh. Khi chỉ tập trung vào việc phát hiện, hệ thống không quan tâm đến việc các đối tượng được phát hiện có nội dung/ý nghĩa gì. Mục tiêu của phát hiện đối tượng chỉ là phân biệt một đối tượng với đối tượng khác để xác định có bao nhiêu thực thể riêng biệt xuất hiện trong ảnh. Do đó, các bounding box sẽ được vẽ xung quanh mỗi đối tượng riêng biệt.
Mặt khác, nhận diện hình ảnh là bài toán xác định các đối tượng cần quan tâm trong một ảnh và nhận biết chúng thuộc loại hoặc lớp nào.
2. Nhận diện hình ảnh AI hoạt động như thế nào?
2.1. Sử dụng Thị giác máy tính truyền thống
Với tác vụ nhận diện hình ảnh, cách tiếp cận truyền thống sử dụng một chuỗi xử lý (gọi là quy trình xử lý thị giác máy tính) bao gồm lọc ảnh, phân vùng ảnh, trích xuất đặc trưng và phân loại dựa trên quy luật. Tuy nhiên, việc xây dựng các quy trình xử lý như vậy đòi hỏi chuyên môn sâu về xử lý ảnh và thị giác máy tính, tốn nhiều thời gian phát triển và thử nghiệm, đồng thời cần điều chỉnh thủ công các tham số. Nhìn chung, các hệ thống nhận diện hình ảnh truyền thống dựa trên pixel thường hạn chế về khả năng mở rộng hoặc khả năng tái sử dụng trong các tình huống/ngữ cảnh khác nhau.
2.2. Sử dụng Học máy và Học sâu
Ngược lại, nhận diện hình ảnh với học máy sử dụng các thuật toán để học kiến thức từ một tập dữ liệu gồm goos/bad samples. Phương pháp học máy phổ biến nhất hiện nay là học sâu, sử dụng nhiều lớp ẩn của mạng nơ-ron trong một mô hình.
Sự xuất hiện của học sâu, kết hợp với phần cứng AI và GPU mạnh, đã tạo ra những bước đột phá lớn trong lĩnh vực nhận diện hình ảnh. Nhờ học sâu, các thuật toán phân loại hình ảnh và nhận diện khuôn mặt đạt được hiệu suất vượt trội so với con người và có thể phát hiện vật thể theo thời gian thực.
Tuy nhiên, việc cân bằng giữa hiệu suất và hiệu quả tính toán vẫn là một thách thức. Phần cứng và phần mềm sử dụng mô hình học sâu cần được cân nhắc phối hợp để giải quyết các vấn đề về chi phí trong thị giác máy tính. Nên ưu tiên ứng dụng những thuật toán mới, tiên tiến nhất bởi tính tiết kiệm về chi phí. So với các thuật toán cũ, thuật toán mạnh và hiệu quả thường đòi hỏi phần cứng rẻ hơn nhiều lần hoặc đạt được hiệu suất tốt hơn nhiều lần trên phần cứng tương đương.
3. Nhận diện hình ảnh với Học máy
3.1. Các mô hình học máy nhận diện hình ảnh
Dưới đây là ba mô hình học máy nhận diện hình ảnh phổ biến nhất:
- Support Vector Machines – SVM: SVM hoạt động bằng cách tạo biểu đồ (histogram) hình ảnh chứa các đối tượng mục tiêu và biểu đồ các hình ảnh không chứa đối tượng. Sau đó, thuật toán sẽ lấy ảnh kiểm tra và so sánh các giá trị biểu đồ đã được huấn luyện với giá trị của các phần khác nhau trong ảnh để kiểm tra xem có khớp nhau không.
- Mô hình Bag of Features: Các mô hình Bag of Features như Scale Invariant Feature Transformation (SIFT) và Maximally stable extremal regions (MSER) hoạt động bằng cách lấy ảnh cần quét và ảnh mẫu của đối tượng cần tìm làm tham chiếu. Sau đó, mô hình sẽ cố gắng khớp pixel các đặc trưng từ ảnh mẫu với các phần khác nhau của ảnh mục tiêu để xem có tìm thấy sự trùng khớp hay không.
- Thuật toán Viola-Jones: Viola-Jones là một thuật toán nhận dạng khuôn mặt được sử dụng rộng rãi trước khi Mạng nơ-ron tích chập (Convolutional Neural Network – CNN) phát triển. Viola-Jones hoạt động bằng cách quét khuôn mặt và trích xuất các đặc trưng, sau đó đưa chúng qua boosting classifier. Quá trình này bao gồm một số boosting classifiers, được sử dụng để kiểm tra ảnh. Hoàn tất quy trình, ảnh kiểm tra phải đạt được kết quả trùng khớp từ mỗi classifier này.
3.2. Các mô hình học sâu nhận diện hình ảnh
Trong lĩnh vực nhận diện hình ảnh, việc sử dụng Mạng nơ-ron tích chập (Convolutional Neural Networks – CNN) còn được gọi là Nhận diện hình ảnh sâu (Deep Image Recognition). Hiệu quả của CNN vượt trội hoàn toàn so với các phương pháp học máy truyền thống. CNN không chỉ đạt được tốc độ và kết quả phát hiện tốt, mà còn có khả năng phát hiện nhiều biểu diễn khác nhau của một đối tượng trong một ảnh, ngay cả khi hình ảnh bị biến dạng, kéo dãn hoặc thay đổi theo một số cách khác.
Trong Nhận diện hình ảnh sâu, Mạng nơ-ron tích chập (CNN) thậm chí còn vượt trội so với con người trong các nhiệm vụ phân loại đối tượng thành các nhóm chi tiết, chẳng hạn như phân biệt giống chó cụ thể hoặc loài chim. Các mô hình học sâu phổ biến nhất, chẳng hạn như YOLO, SSD và RCNN, sử dụng các lớp tích chập để phân tích ảnh kỹ thuật sô. Trong quá trình huấn luyện, mỗi lớp tích chập hoạt động như một bộ lọc, học cách nhận dạng một số khía cạnh của hình ảnh trước khi chuyển sang lớp tiếp theo. Một lớp xử lý màu sắc, một lớp khác xử lý hình dạng, v.v. Cuối cùng, kết quả tổng hợp của tất cả các lớp này được tính toán đồng thời để xác định xem có tìm thấy khớp hay không.
4. Thuật toán nhận diện hình ảnh AI
Trong nhận diện hình ảnh có một vài thuật toán vượt trội hơn hẳn so với phần còn lại. Mặc dù tất cả đều là thuật toán học sâu, nhưng cách tiếp cận cơ bản của chúng đối với việc nhận diện các lớp đối tượng khác nhau lại có sự khác biệt. Hãy cùng điểm qua một số thuật toán nhận diện hình ảnh phổ biến nhất hiện nay:
4.1. Faster Region-based CNN (Faster RCNN)
Faster RCNN là thuật toán có hiệu suất tốt nhất trong họ R-CNN của các thuật toán nhận diện hình ảnh, bao gồm R-CNN và Fast R-CNN. Faster RCNN sử dụng RPN – Region Proposal Network để phát hiện đặc trưng cùng với Fast R-CNN để nhận dạng hình ảnh, giúp cải tiến đáng kể so với phiên bản tiền nhiệm (Lưu ý: Fast RCNN vs. Faster RCNN). Faster R-CNN có thể xử lý ảnh dưới 200ms, trong khi Fast RCNN mất 2 giây trở lên.
4.2. Single Shot Detector (SSD)
Các thuật toán RCNN vẽ các bounding box xung quanh một tập hợp các điểm được đề xuất trên ảnh, một số điểm có thể chồng chéo lên nhau. SSD giải bài toán này bằng cách chia ảnh thành các bounding boxes mặc định dạng lưới trên các tỷ lệ khung hình khác nhau. Sau đó, nó kết hợp các feature map thu được từ việc xử lý hình ảnh ở các tỷ lệ khung hình khác nhau để xử lý các đối tượng có kích thước khác nhau. Điều này giúp cho SSD rất linh hoạt, chính xác và dễ dàng huấn luyện. Một ứng dụng của SSD có thể xử lý ảnh trong vòng 125ms.
4.3. You Only Look Once (YOLO)
YOLO là viết tắt của You Only Look Once, đúng như tên gọi, thuật toán chỉ xử lý khung hình một lần bằng cách sử dụng kích thước lưới cố định, sau đó xác định xem ô lưới có chứa ảnh hay không.
YOLO sử dụng một confidence metric và nhiều bounding boxes trong mỗi ô lưới. Tuy nhiên, nó không đi vào sự phức tạp của nhiều tỷ lệ khung hình hoặc feature map, do đó, mặc dù phương pháp này cho kết quả nhanh hơn, nhưng độ chính xác có thể thấp hơn một chút so với SSD. Một phiên bản nhẹ, được tối ưu hóa cho các thiết bị biên của YOLO có tên Tiny YOLO có thể xử lý video ở tốc độ lên đến 244 khung hình/giây hoặc 1 hình ảnh trong 4 ms. Các phiên bản YOLO phổ biến khác bao gồm: YOLOv3, YOLOv4, YOLOv5, YOLOv6, YOLOv7, YOLOv8, YOLOv9.
5. Ứng dụng nhận diện hình ảnh AI
Nhận diện hình ảnh AI đang ngày một được ứng dụng rộng rãi trong đa lĩnh vực từ y tế, bán lẻ, đến an ninh, nông nghiệp và nhiều lĩnh vực khác. Việc ứng dụng nhận diện hình ảnh AI giúp doanh nghiệp tự động hóa một số quy trình giám sát an ninh, an toàn, nhận diện khách hàng, cũng như phân tích dữ liệu từ hình ảnh và video để đưa ra quyết định chính xác.
Làm chủ công nghệ nhận diện hình ảnh AI và nguồn dữ liệu quy mô lớn, VinBigdata cung cấp hệ sinh thái các giải pháp phân tích hình ảnh thông minh Vizone bao gồm Nhận diện khuôn mặt, Giám sát an ninh – an toàn, Phân tích hành vi khách hàng, Định danh khách hàng điện tử và Nhận diện giấy tờ tùy thân…Hệ sinh thái tổng hợp các giải pháp công nghệ toàn diện với mục tiêu mang lại cuộc sống an toàn – tiện nghi cho mọi người.
Nằm trong hệ sinh thái Vizone, giải pháp Vizone Access (nhận dạng khuôn mặt và phát hiện giả mạo) đã được áp dụng tại hệ thống Vinpearl để hỗ trợ các hoạt động check-in/out, giám sát ra vào hay chấm công cho nhân viên bằng khuôn mặt. Giải pháp mang lại hiệu quả vượt trội, với tốc độ nhận diện khuôn mặt dưới 1 giây, độ chính xác 99,9%.
6. Kết luận
Nhờ sự phát triển của học máy và học sâu, công nghệ nhận diện hình ảnh AI đang ngày một được cải tiến, với nhiều kỹ thuật và thuật toán mới, mang lại độ chính xác và tốc độ vượt trội. Bước tiến trong nghiên cứu và phát triển nhận diện hình ảnh AI tạo đà cho nhiều ứng dụng như tự động hóa giám sát an ninh, an toàn, nhận diện khuôn mặt, nhận diện giấy tờ tùy thân,…., từ đó giúp doanh nghiệp gia tăng hiệu quả kinh doanh, vận hành.
Nhận tư vấn chuyên sâu về nhận diện hình ảnh AI, liên hệ ngay với VinBigdata:
- Fanpage: VinBigdata
- LinkedIn: VinBigData
- Email: info@vinbigdata.com
- Hotline: (024) 3 208 8208