Fréchet Inception Distance (FID)
Tìm hiểu cách Fréchet Inception Distance (FID) đánh giá chất lượng, độ chân thực và độ đa dạng của hình ảnh AI tạo sinh—cũng như cách tính toán và diễn giải điểm số.
Fréchet Inception Distance (FID) là một metric dùng để so sánh các ảnh do một generative model tạo ra với một tập hợp ảnh thực tế tham chiếu. Metric này chuyển đổi cả hai tập hợp thành các visual feature đã học, tổng hợp phân phối của từng feature và đo lường khoảng cách giữa chúng. FID thấp hơn thường cho thấy ảnh được tạo ra giống với ảnh thực tế hơn về cả chất lượng trực quan lẫn độ đa dạng, trong khi FID cao hơn cho thấy các artifact, thiếu hụt sự biến đổi hoặc sự sai lệch về nội dung.
Cách thức hoạt động của FID#
FID đánh giá các tập hợp ảnh thay vì từng cặp ảnh riêng lẻ. Điều này làm cho FID hữu ích trong việc đánh giá các hệ thống AI tạo sinh như mạng đối kháng tạo sinh và mô hình khuếch tán.
Quá trình tính toán gồm bốn bước chính:
- Ảnh thực tế và ảnh được tạo ra đi qua một bộ trích xuất đặc trưng Inception v3, thường được huấn luyện trước trên ImageNet.
- Mạng chuyển đổi mỗi ảnh thành một embedding, là một biểu diễn số học của các đặc trưng trực quan cấp cao.
- FID ước tính giá trị trung bình và ma trận hiệp phương sai của các tập hợp đặc trưng thực tế và được tạo ra. Giá trị trung bình đại diện cho tâm của chúng, trong khi hiệp phương sai mô tả cách các đặc trưng biến đổi cùng nhau.
- FID kết hợp khoảng cách bình phương giữa các giá trị trung bình với sự khác biệt giữa các ma trận hiệp phương sai. Phép tính này bao gồm một căn bậc hai ma trận.
Điểm số FID kết quả không phải là số âm. Các phân phối đặc trưng giống hệt nhau sẽ tạo ra giá trị bằng không ở giới hạn lý tưởng, mặc dù các mẫu hữu hạn và hiệu ứng số học có nghĩa là ngay cả hai tập hợp con ảnh thực cũng có thể tạo ra điểm số khác không.
Giải thích điểm số FID#
Thấp hơn sẽ tốt hơn, nhưng không có ngưỡng phổ quát nào cho một điểm số FID "tốt". Việc giải thích phụ thuộc vào tập dữ liệu, độ phân giải ảnh, số lượng mẫu, pipeline tiền xử lý và bộ trích xuất đặc trưng. Các điểm số chỉ nên được so sánh khi những điều kiện này nhất quán.
FID phản hồi hai khía cạnh quan trọng của hình ảnh được tạo ra:
- Độ trung thực: Ảnh mờ, kết cấu phi thực tế, đối tượng bị biến dạng và các visual artifact khác có thể đẩy các đặc trưng được tạo ra ra khỏi phân phối thực tế.
- Độ đa dạng: Các kết quả lặp đi lặp lại hoặc hiện tượng sụp đổ mô hình làm giảm sự biến đổi của đặc trưng, thay đổi hiệp phương sai của phân phối được tạo ra.
Tuy nhiên, FID không giải thích lý do tại sao điểm số thay đổi. FID cũng có thể bỏ sót các trường hợp lỗi hiếm gặp nhưng quan trọng, ảnh bị ghi nhớ, sự lệch prompt không chính xác hoặc độ lệch tập dữ liệu. Do đó, các nhóm nên kết hợp FID với việc kiểm tra trực quan, các bài kiểm tra dành riêng cho ứng dụng và phân tích theo nhóm con.
FID và các metric liên quan#
FID thường bị nhầm lẫn với các metric tạo ảnh và thị giác máy tính khác:
- Inception Score: Đánh giá ảnh được tạo ra mà không trực tiếp so sánh chúng với ảnh tham chiếu thực tế. FID nhìn chung cung cấp nhiều thông tin hơn về sự sai lệch phân phối vì FID sử dụng cả mẫu thực tế và mẫu được tạo ra.
- Kernel Inception Distance: Cũng so sánh các phân phối đặc trưng nhưng sử dụng bộ ước tính dựa trên kernel. Metric này có thể hữu ích khi việc ước tính hiệu quả về mặt mẫu hoặc không chệch là quan trọng.
- Độ chính xác trung bình trung bình: Đo lường xem một bộ dò tìm đối tượng có phân loại và định vị chính xác các đối tượng được gán nhãn hay không. FID đánh giá các phân phối ảnh được tạo ra chứ không phải độ chính xác của việc phát hiện.
- Độ tương đồng tri giác: Thường so sánh các cặp ảnh tương ứng. Thay vào đó, FID đánh giá xem hai tập hợp có các thống kê tổng thể tương tự nhau hay không.
Các ứng dụng trong thực tế#
Một ứng dụng thực tế là đánh giá dữ liệu tổng hợp cho việc kiểm tra sản xuất. Một nhóm có thể tạo ra hình ảnh về các vết xước, vết nứt hoặc các linh kiện bị thiếu và tính toán FID dựa trên các bức ảnh được giữ lại từ một dây chuyền sản xuất thực tế. Điểm số cao có thể cho thấy ánh sáng, kết cấu hoặc hình dạng lỗi tổng hợp không giống với điều kiện triển khai. Sau khi cải tiến trình tạo, nhóm vẫn nên huấn luyện bộ dò tìm của mình và sử dụng chế độ xác thực của Ultralytics để xác minh hiệu suất cụ thể theo tác vụ.
Ví dụ thứ hai là tạo cảnh đường phố mô phỏng. Các kỹ sư có thể tạo ra hình ảnh ban đêm, trời mưa hoặc có sương mù để mở rộng dữ liệu huấn luyện lái xe tự động. FID có thể so sánh từng điều kiện tổng hợp với các khung hình thực từ môi trường đó. Khoảng cách lớn cảnh báo về sự sai lệch miền có thể khiến bộ dò tìm ở hạ nguồn học các nền tảng hoặc artifact thời tiết phi thực tế thay vì các đặc trưng đường xá có thể chuyển giao.
Quản lý tập dữ liệu trên Nền tảng Ultralytics có thể giúp các nhóm tổ chức, kiểm tra và quản lý phiên bản các tập chia tách ảnh thực và ảnh tổng hợp trước khi huấn luyện và triển khai.
Tính toán FID bằng Python#
Triển khai TorchMetrics FID được tài liệu hóa chấp nhận các lô ảnh thực tế và ảnh được tạo ra:
import torch
from torchmetrics.image.fid import FrechetInceptionDistance
generator = torch.Generator().manual_seed(7)
real_images = torch.randint(0, 256, (64, 3, 64, 64), dtype=torch.uint8, generator=generator)
generated_images = torch.randint(32, 224, (64, 3, 64, 64), dtype=torch.uint8, generator=generator)
fid = FrechetInceptionDistance(feature=64)
fid.set_dtype(torch.float64)
fid.update(real_images, real=True)
fid.update(generated_images, real=False)
print(f"FID: {fid.compute().item():.3f}")Ví dụ nhỏ này sử dụng các đặc trưng 64 chiều để minh họa nhanh. Các phép so sánh điểm chuẩn tiêu chuẩn thường sử dụng biểu diễn 2.048 chiều mặc định và nhiều hình ảnh hơn nữa. Để đánh giá đáng tin cậy, hãy giữ nguyên quá trình tiền xử lý và số lượng mẫu, báo cáo cấu hình chính xác, lặp lại các phép đo khi có thể và bổ sung cho FID quy trình đánh giá mô hình của Ultralytics khi dữ liệu được tạo hỗ trợ tác vụ thị giác ở hạ nguồn.









