Nghiên cứu Khoa học
Thuật toán Canny và ứng dụng phát hiện biên ảnh
1. Thuật toán Candy
Biên ảnh là tập hợp các pixel có giá trị xám thay đổi lớn trong ảnh, là đặc trưng cơ bản của ảnh. Cho đến nay thì chưa có định nghĩa chính xác về biên, trong mỗi ứng dụng người ta đưa ra các độ đo khác nhau về biên, một trong số các độ đo đó là sự thay đổi đột ngột về cấp xám. Tập hơp các điểm biên tạo nên biên hay đường bao của đối tượng. Người ta đưa ra phương pháp phát hiện biên cơ bản. Kỹ thuật phát hiện biên bằng phương pháp Canny là phương pháp dò biên trực tiếp rất hiệu quả áp dụng cho các loại ảnh nhiễu.
Thuật toán Canny bao gồm các bước sau:
- Làm mờ ảnh: Sử dụng một bộ lọc Gaussian để làm mờ ảnh ban đầu. Bước này giúp giảm nhiễu và làm mịn ảnh.
- Tính toán gradient: Sử dụng các bộ lọc Sobel để tính toán đạo hàm của ảnh theo hướng x và y. Điều này cho phép chúng ta tính toán độ lớn và hướng của gradient tại mỗi điểm ảnh.
- Tìm cạnh: Từ các đạo hàm, thuật toán xác định các điểm ảnh nằm trên cạnh bằng cách tìm điểm cực đại trong độ lớn gradient và kiểm tra xem chúng có là các điểm cực đại trong hướng gradient hay không.
- Giữ mạnh và loại bỏ yếu: Trong bước này, thuật toán xác định các điểm cạnh mạnh và yếu. Các điểm cạnh mạnh được giữ lại, trong khi các điểm cạnh yếu được xem xét và quyết định xem chúng có nên được giữ lại hay không dựa trên một ngưỡng trên và ngưỡng dưới.
- Liên kết cạnh: Cuối cùng, các điểm cạnh yếu được liên kết với các điểm cạnh mạnh gần đó để tạo thành các đường cạnh liền mạch và hoàn chỉnh.
Canny đưa ra ba điểm chính mà một phương pháp phát hiện biên phải xác định được đó là:
- Mức lỗi: Phương pháp phải làm sao chỉ có hiệu quả đối với các điểm biên, phải tìm ra tất cả các biên và không có đường biên nào bị bỏ sót.
- Định vị: Khoảng cách giữa các điểm biên được tìm thấy trong giải thuật và biên trong thực tế phải càng nhỏ càng tốt.
- Hiệu xuất: Không được phép chỉ ra nhiều biên trong khi chỉ có một biên tồn tại
- Giải thuật phát hiện biên Canny được trình bày như sau:
- Đọc ảnh I cần xử lý.
- Tạo một mặt nạ G để nhân xoắn với I. Độ lệch tiêu chuẩn của mặt nạ này chính là tham số để tách cạnh.
- Tạo một mặt nạ cho đạo hàm bậc nhất của Gaussiantheo hướng x, y và gọi
là Gx, Gy và giá trị vẫn được giữ như ở bước 2.
- Nhân xoắn ảnh I cùng với G dọc theo các hàng tạo ảnh thành phần x gọi là Ix và theo các cột tạo ra ảnh Iy.
Một số hạn chế của thuật toán Canny Edge Detection (Canny) bao gồm:
- Độ phức tạp tính toán: Thuật toán Canny yêu cầu nhiều bước tính toán phức tạp như làm mờ, tính toán đạo hàm và ngưỡng hóa. Điều này có thể làm tăng thời gian tính toán và ảnh hưởng đến hiệu suất của thuật toán.
- Độ nhạy cảm đối với nhiễu: Thuật toán Canny có thể bị ảnh hưởng bởi nhiễu trong hình ảnh gốc. Nếu hình ảnh chứa nhiễu nhiều, việc xác định biên có thể bị sai lệch và tạo ra các đường viền không chính xác.
- Độ chính xác của kết quả: Một số đường viền có thể bị bỏ qua hoặc không được xác định chính xác bởi thuật toán Canny. Điều này có thể xảy ra đặc biệt khi có các đường viền mờ hoặc không liên tục.
- Độ lớn của ngưỡng: Các giá trị ngưỡng được sử dụng trong thuật toán Canny có thể ảnh hưởng đến kết quả cuối cùng. Nếu lựa chọn ngưỡng không phù hợp, có thể dẫn đến việc bỏ sót các đường viền quan trọng hoặc tạo ra các đường viền không mong muốn.
- Độ phụ thuộc vào hình ảnh đầu vào: Thuật toán Canny có thể không hoạt động tốt trên các loại hình ảnh đặc biệt như hình ảnh có độ tương phản thấp hoặc hình ảnh có nền đồng nhất.
Tuy nhiên, mặc dù có những hạn chế này, thuật toán Canny vẫn là một trong những phương pháp phổ biến và hiệu quả để xác định biên trong xử lý ảnh và thị giác máy tính.
2. Quy trình nhận diện ảnh