Image Recognition
Nhận dạng ảnh xác định nội dung trong ảnh, từ một nhãn cho toàn bộ ảnh đến mọi vật thể, khuôn mặt hoặc từ ngữ trong ảnh. Tìm hiểu cách hoạt động và các dạng nhận dạng.
Nhận dạng ảnh là thuật ngữ bao quát chỉ phần mềm xác định nội dung của ảnh: đối tượng, người, địa điểm, văn bản hoặc hành động. Trong cách dùng thông thường, đây là từ đồng nghĩa với phân loại ảnh, tức gán nhãn như "chó golden retriever" hoặc "viêm phổi" cho toàn bộ ảnh. Trong nghiên cứu, "nhận dạng thị giác" bao gồm phạm vi rộng hơn các tác vụ xác định nội dung ảnh, như trong Thử thách Nhận dạng Hình ảnh Quy mô Lớn ImageNet, diễn ra từ năm 2010 đến 2017 với các hạng mục phân loại, định vị và phát hiện đối tượng.
Cách nhận dạng ảnh hoạt động#
Model nhận dạng chuyển pixel thành mô tả cô đọng, rồi so sánh mô tả đó với những gì model đã biết. Một backbone, có thể là mạng nơ-ron tích chập (CNN) hoặc Transformer thị giác (ViT), trích xuất đặc trưng qua từng lớp, từ cạnh và kết cấu ở các lớp đầu đến bộ phận và toàn bộ đối tượng ở các lớp sâu hơn, rồi gộp chúng thành vector đặc trưng, hay embedding. Bước tiếp theo phụ thuộc vào cách xác định tập hợp câu trả lời khả thi:
Một đầu phân loại được huấn luyện bằng học có giám sát trên ảnh đã gán nhãn, chẳng hạn 1,28 triệu ảnh huấn luyện thuộc 1.000 lớp của ImageNet, sẽ chọn lớp có xác suất cao nhất trong tập lớp cố định. Nhận dạng khuôn mặt và sản phẩm so sánh embedding với thư viện các mẫu đã lưu, nhờ đó có thể thêm người hoặc sản phẩm mới mà không cần huấn luyện lại. Model zero-shot như CLIP của OpenAI nhúng ảnh và văn bản vào cùng một không gian, rồi nhận dạng mọi danh mục có thể diễn đạt bằng prompt văn bản.
Trước deep learning, các hệ thống nhận dạng đưa những đặc trưng được thiết kế thủ công, chẳng hạn keypoint SIFT và histogram gradient định hướng, vào các bộ phân loại như máy vector hỗ trợ. Năm 2012, AlexNet giảm tỷ lệ lỗi top-5 trên ImageNet xuống 15,3%, từ mức 26,2% của model đứng thứ hai; kể từ đó, các đặc trưng được học đã chiếm ưu thế.
Các hình thức nhận dạng ảnh#
- Phân loại ảnh: Một nhãn, hoặc nhiều nhãn trong phân loại đa nhãn, cho toàn bộ ảnh.
- Phát hiện đối tượng: Một nhãn và một bounding box cho mỗi đối tượng, vì vậy ảnh có ba con chó sẽ tạo ra ba kết quả.
- Nhận dạng khuôn mặt: Xác định hoặc xác minh một người cụ thể bằng cách so sánh embedding khuôn mặt với các khuôn mặt đã đăng ký.
- Nhận dạng ký tự quang học (OCR): Đọc văn bản in hoặc viết tay trong ảnh và chuyển thành ký tự máy có thể đọc.
- Nhận dạng hành động: Xác định mọi người đang làm gì qua các khung hình của video.
YOLO26 xử lý hai hình thức đầu tiên: các model -cls gán một trong 1.000 lớp ImageNet cho toàn bộ ảnh, còn model phát hiện gọi tên và xác định vị trí từng đối tượng. Ví dụ này chạy cả hai model trên cùng một ảnh:
from ultralytics import YOLO
image = "https://ultralytics.com/images/bus.jpg"
# Nhận dạng ở cấp ảnh: một nhãn cho toàn bộ ảnh
classifier = YOLO("yolo26n-cls.pt")
results = classifier(image)
result = results[0]
print("Image label:", result.names[result.probs.top1])
# Nhận dạng ở cấp đối tượng: một nhãn cho mỗi đối tượng được tìm thấy
detector = YOLO("yolo26n.pt")
results = detector(image)
result = results[0]
print("Objects:", [result.names[int(c)] for c in result.boxes.cls])Model phân loại trả về một nhãn ImageNet duy nhất cho toàn bộ ảnh, còn model phát hiện trả về một nhãn COCO cho mỗi đối tượng tìm được.
Ứng dụng thực tế#
- Phân tích ảnh y tế: Model phân loại ảnh X-quang ngực, ảnh da và ảnh võng mạc thành bình thường hoặc bất thường để bác sĩ ưu tiên xem xét các ca khẩn cấp.
- Bán lẻ: Nhận dạng sản phẩm đối chiếu các mặt hàng trên kệ hoặc tại quầy thanh toán với danh mục ảnh sản phẩm, bao gồm cả sản phẩm được thêm vào sau khi model huấn luyện.
- Sản xuất: Camera trên dây chuyền nhận dạng linh kiện lỗi cũng như các bộ phận sai hoặc bị thiếu trước khi đóng gói.
- Khả năng tiếp cận: Trình đọc màn hình và ứng dụng điện thoại mô tả ảnh, đọc to biển báo cho người mù hoặc có thị lực kém.
Nhận dạng vượt ra ngoài các nhãn cố định#
Model phân loại với nhãn cố định chỉ nhận dạng các lớp đã được huấn luyện; muốn thêm lớp mới cần thu thập ảnh đã gán nhãn và huấn luyện lại. Model được huấn luyện trên các cặp ảnh-văn bản loại bỏ giới hạn này, còn model thị giác-ngôn ngữ mở rộng khả năng đó sang mô tả cảnh và trả lời câu hỏi về cảnh. CLIP, được huấn luyện trên 400 triệu cặp ảnh-văn bản từ internet, đạt độ chính xác trên ImageNet ngang với ResNet-50 ban đầu theo phương thức zero-shot, mà không sử dụng bất kỳ ảnh nào trong số 1,28 triệu ảnh gán nhãn dùng để huấn luyện ResNet-50.










