Nghiên cứu thuật toán chuyển đổi hough 3d ứng dụng phát hiện mặt phẳng sv project 3 HD
MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH VẼ 2 ĐẶT VẤN ĐỀ 3 CHƯƠNG I TỔNG QUAN VỀ THUẬT TOÁN HOUGH 4 1.1 Tổng quan về phương pháp Hough 4 1.2 Các phương pháp Hough 7 1.2.1 Phương pháp biến đổi Hough cơ bản (standard) 7 1.2.2 Phương pháp biến đổi Hough theo xác suất (Probability) 8 1.2.3 Phương pháp biến đổi Hough ngẫu nhiên (Randomized Hough Transform).14 1.3 Đánh giá các phương pháp Hough 16 CHƯƠNG 2 THỰC HIỆN THUẬT TOÁN HOUGH TRÊN NỀN FPGA 18 2.1 Nguyên tắc biến đổi Hough ứng dụng trên nền FPGA 18 2.2 Phương pháp tính toán biến đổi Hough 19 2.2.1 Phương pháp cổ điển 19 2.2.2 Biến đổi Hough tăng cường nhanh 2 (FIHT2) 20 2.2.3 Phương pháp dựa trên góc nghiêng 21 2.2.4 Thuật toán CORDIC 22 2.3 Triển khai FPGA theo cấu trúc CORDIC 25 2.4 Kiến trúc FPGA thời gian thực cho biến đổi Hough sử dụng thuật toán CORDIC 28 2.4.1 Tìm đường thẳng 32 2.4.2 Nguyên mẫu 37 KẾT LUẬN 38 THAM KHẢO 39 1 DANH MỤC HÌNH VẼ Hình 1.1 Không gian Hough 5 Hình 1.2. Các mặt phẳng trong không gian Hough 6 Hình 2.1 Nguyên tắc biến đổi Hough 18 Hình 2.2 Mối quan hệ định hướng cạnh – góc nghiêng 21 Hình 2.3 So sánh kích thước không gian tham số của biến đổi Hough dựa trên góc nghiêng và cổ điển 24 Hình 2.4 Kiến trúc CORDIC lặp song song 25 Hình 2.5 Kiến trúc CORDIC song song liên tầng 26 Hình 2.6 Cấu trúc chuỗi CORDIC 28 Hình 2.7 Cấu trúc chung tìm đường thẳng 29 Hình 2.8 Cấu trúc chung Gradient–CORDIC dựa trên biến đổi Hough 30 Hình 2.9 Kiến trúc đơn vị thông số 30 Hình 2.10 Kiến trúc đơn vị tham số 33 Hình 2.11 Kiến trúc khối xấy dựng lại đường thẳng 34 Hình 2.12 Kết quả tìm đường thẳng 35 Hình 2.13 Hệ thống nguyên mẫu thử nghiệm 37 2 ĐẶT VẤN ĐỀ Như đã biết, biến đổi Hough (HT) được sử dụng rộng rãi trong việc xử lý hình ảnh, đặc biệt là trong nhận dạng mẫu như các đường thẳng, hình tròn, hình bầu dục và các hình dạng khác. Nguyên tắc biến đổi Hough cũng được sử dụng trong việc nhận ra đối tượng 3D, vật rắn định hướng, các thông số chuyển động của các vật thể di động Biến đổi Hough là một kỹ thuật hấp dẫn vì độ bền của nó với nhiễu. Tuy nhiên, nhược điểm chính của nó là yêu cầu kích thước bộ nhớ lớn và các tính toán phức tạp và tốn nhiều thời gian. Rất nhiều công trình được tiến hành có liên quan đến việc thực hiện phần cứng của biến đổi Hough thời gian thực. Trong chip L64250 của Logic Company có chỉnh sửa biến đổi Hough cho việc xử lý thời gian thực. O’Gorman và Clowes đã đề xuất việc sử dụng góc nghiêng để giảm độ phức tạp trong việc tính toán. Ngoài ra, Zhou và Kornerup đề xuất sử dụng thuật toán CORDIC trong việc biến đổi nhanh Hough. Các đề xuất kiến trúc thời gian thực cho việc phát hiện đường thẳng được thực hiện trên các thiết bị FPGA, sử dụng cả góc nghiêng và thuật toán CORDIC. Một mặt, góc nghiêng được sử dụng để giảm khối lượng tính toán để thời gian yêu cầu ít hơn, mặt khác thuật toán CORDIC được sử dụng để làm cho các toán tử ít phức tạp hơn. Phần chương I trình bày nhanh nguyên tắc biến đổi Hough và có sự thảo luận có liên quan đến các phương pháp tính toán chuyển đổi Hough khác nhau. Thuật toán CORDIC được mô tả một cách ngắn gọn trong phần 2.2.4. Chi tiết về một sô việc thực hiện thuật toán CORDIC được trình bày để lựa chọn cấu trúc phù hợp với kiến trúc của chúng ta. Phần 2.3 mô tả các thuật toán phát hiện đường thẳng và các kiến trúc được đề xuất trên nền FPGA. Phần 2.4 trình bày các hệ thống nguyên mẫu. Cuối cùng là các kết quả thu được được trình bày ở cuối báo cáo này 3 CHƯƠNG I TỔNG QUAN VỀ THUẬT TOÁN HOUGH 1.1 Tổng quan về phương pháp Hough Transform Hough là một phương pháp nổi tiếng để phát hiện đối tượng tham số. Đây là tiêu chuẩn thực tế cho việc phát hiện đường thẳng và vòng tròn trong bộ dữ liệu 2-chiều. Đối với 3D, cho đến nay nó được ít sự chú ý. Ngay cả đối với trường hợp 2D do chi phí cao tính toán đã dẫn đến sự phát triển của rất nhiều biến thể cho Hough Transform. Trong bài viết này, có sự đánh giá các biến thể khác nhau của Biến đổi Hough có liên quan đến ứng dụng phát hiện mặt phẳng trong những đám mây điểm 3D một cách đáng tin cậy. Ngoài tính toán chi phí, vấn đề chính là cách biểu diễn bộ tích lũy. Các triển khai thông thường thiên về đối tượng hình học với một số thông số do không đồng đều lấy mẫu của không gian tham số. Nội dung trình bày một cách tiếp cận để thiết kế bộ tích lũy tập trung vào việc đạt được cùng kích thước cho mỗi cell và so sánh nó với thiết kế hiện tại. Biến đổi Hough (Hough transform) là một phương pháp để phát hiện các đối tượng tham số, thường được sử dụng cho các đường thẳng và vòng tròn. Tuy nhiên, có thể tập trung vào việc phát hiện các mặt phẳng trong các đám mây điểm 3D. (Mặc dù nhiều phương pháp Biến đổi Hough làm việc với đầu vào là điểm ảnh nhưng điều này không phải luc nào cũng cần thiết). Trong kịch bản, có một tập hợp các điểm chưa được tổ chức được sử dụng như là đầu vào và đầu ra bao gồm các tham số mặt phẳng. Mặt phẳng thường được biểu diễn bởi đã ký hiệu ρ là khoảng cách đến gốc của hệ tọa độ và độ dốc mx và my theo hướng x và trục y, tương ứng: Để tránh các vấn đề do dốc vô hạn khi cố gắng biểu diễn mặt phẳng thẳng đứng, một định nghĩa thông thường, Hesse hình thức bình thường, sử dụng các vectơ pháp tuyến. Do đó mặt phẳng được đưa ra bởi một điểm p trên mặt phẳng, n vector pháp tuyến mà vuông góc với mặt phẳng và ρ là khoảng cách với gốc 4 Xem xét các góc giữa vector pháp tuyến và phối hợp hệ thống, các tọa độ của N được factorized (1) với θ là góc của vector pháp tuyến trên mặt phẳng xy φ là góc giữa mặt phẳng xy và vector pháp tuyến trong z hướng như mô tả trong hình. 1. θ, φ ρ được xác định bởi bộ tham số (θ, φ, ρ) trong không gian 3 - chiều Hough (3D Hough Space) Như vậy mà mỗi điểm trong Space Hough tương ứng với một mặt phẳng. Hình 1.1 Không gian Hough Để tìm các mặt phẳng trong một tập hợp điểm, ta phải tính toán Biến đổi Hough cho mỗi điểm. Với một điểm p trong tọa độ Cartesian chúng ta phải tìm tất cả các mặt phẳng điểm nằm trên, nghĩa là, tìm thấy tất cả các θ, φ và ρ đáp ứng phương trình (1). Đánh dấu các điểm trong không gian Hough dẫn đến một sinusoid 3D đường cong như hình. 2. 5 Hình 1.2. Các mặt phẳng trong không gian Hough Các nút giao của hai đường cong ở Hough không gian chỉ ra mặt phẳng có thể xoay xung quanh đường thẳng được xây dựng bởi hai điểm. Do đó, các giao lộ ba đường cong ở Hough không gian tương ứng với toạ độ cực xác định mặt phẳng được kéo dài bởi ba điểm. Trong hình. 2 - giao nhau được đánh dấu màu đen. Với bộ điểm P trong hệ tọa độ Carter, một trong những biến đổi tất cả các điểm pi ∈ P thành Hough Space. Càng có thêm các đường cong giao nhau trong hj ∈ (θ, φ, ρ), càng có nhiều điểm 6 nằm trên mặt phẳng biểu diễn bởi hj và xác suất hj thực sự là chiết xuất từ P càng cao hơn. 1.2 Các phương pháp Hough 1.2.1 Phương pháp biến đổi Hough cơ bản (standard) Đối với các ứng dụng thực tế, Duda và Hart (1971) đề xuất sử dụng không gian Hough với các tham số ρ, φ và θ dùng để biểu thị mức độ của mỗi cell theo hướng theo trong không gian Hough. Một cấu trúc dữ liệu là cần thiết để lưu trữ tất cả các cell với tham số tính điểm cho mỗi cell. Trong phần tiếp theo sẽ đề cập cách tăng điểm của một cell và lượng gia tăng điểm số bằng 1. Cấu trúc dữ liệu này gọi là bộ tích lũy, được mô tả chi tiết hơn trong phần sau. Đối với mỗi điểm biến đổi Hough sẽ xử lý tăng tất cả các cell có liên quan đến nó. Quá trình gia tăng này thường được gọi là quá trình bỏ phiếu, tức là, mỗi điểm bỏ phiếu cho tất cả các bộ tham số (θ, φ, ρ) xác định một mặt phẳng mà trên đó nó có thể nằm trên, tức là, nếu khoảng cách euclidian từ điểm đang xem xét đến mặt phẳng đại diện bởi cell nhỏ hơn một ngưỡng. Các cell với các giá trị cao nhất đại diện cho những mặt phẳng nổi bật nhất, mặt phẳng bao gồm hầu hết các điểm của đám mây điểm. Một khi tất cả các điểm đã bình chọn, những mặt phẳng chiến thắng được lựa chọn. Do sự rời rạc của không gian Hough và nhiễu trong các dữ liệu đầu vào thì nên tìm kiếm không chỉ một cell với số điểm tối đa mà còn tìm tổng tối đa trong một khu vực nhỏ của bộ tích lũy. Kiryati sử dụng các tiêu chuẩn thực hành để phát hiện điểm đỉnh. Trong thủ tục cửa sổ trượt, một cửa sổ 3 chiều nhỏ xác định được thiết kế để phủ phổ các đỉnh đầy đủ. Mặt phẳng có ưu thế nhất tương ứng với điểm trung tâm của một khối lập phương trong không gian Hough với tổng các giá trị tích lũy là lớn nhất. Các bước của thủ tục được nêu trong thuật toán 1. Gồm hai giai đoạn GĐ1: Tất cả các điểm P i thuộc tập điểm P được chuyển sang không gian Hough. Gồm các dòng 1 đến 7 trong giải thuật 7 Algorithm: Standard Hough Transform (SHT) 1: for all points in pi in point set P do 2: for all cells (θ, φ, ρ) in accumulator A do 3: if point pi lies on the plane defined by (θ, φ, ρ) then 4: increment cell A(θ, φ, ρ) 5 : end if 6 : end for 7 : end for 8 : search for the most prominent cells in the accumulator, that define the detected planes in P GĐ2: Tìm các đỉnh cao nhất trong bộ tích lũy (dòng 8 trong giải thuật) Do thời gian tính toán cao của biến đổi Hough tiêu chuẩn là khó áp dụng thực tế, đặc biệt là cho các ứng dụng thời gian thực. Do đó nhiều biến thể đã được đặt ra. Illingworth và Kittler đưa ra một cuộc khảo sát về sự phát triển sớm và ứng dụng. Kälviäinen thực hiện so sánh phiên bản sửa đổi của biến đổi Hough nhằm làm cho các thuật toán thực tế hơn. Một số trong những thủ tục đó được mô tả trong các phần dưới đây. Phần cuối cung cấp một đánh giá của các phương pháp này với mục đích để tìm ra sự thay đổi tối ưu cho nhiệm vụ phát hiện số lượng mặt phẳng không biết trước trong một đám mây điểm 3D. 1.2.2 Phương pháp biến đổi Hough theo xác suất (Probability) Biến đổi Hough tiêu chuẩn được thực hiện trong hai giai đoạn. Đầu tiên, tất cả các điểm pi từ tập điểm P được chuyển sang không gian Hough, tức là, các cell trong bộ tích lũy được tăng lên. Điều này cần O (| P | • Nφ • Nθ) phép toán khi tính toán một ρ duy nhất tương ứng với mặt phẳng mà trên đó điểm pi được cho trước φ và θ, với Nφ là số lượng cell theo hướng φ, Nθ theo hướng θ và Nρ theo hướng ρ, tương ứng. Thứ hai, trong giai đoạn tìm kiếm các đỉnh cao nhất trong bộ tích lũy được phát hiện trong O (Nρ • Nφ • Nθ) phép toán. Vì kích thước của đám mây điểm | P | thường lớn hơn nhiều so 8 với số Nρ • Nφ • Nθ của các cell trong mảng accumulator, cải tiến lớn liên quan đến chi phí tính toán được thực hiện bằng cách giảm số lượng các điểm hơn là bằng cách điều chỉnh quá trình rời rạc trong không gian Hough. Kiryati đề xuất một phương pháp xác suất để lựa chọn một tập hợp con từ tập điểm ban đầu. Sự thích nghi của SHT trở thành biến đổi Hough xác suất (PHT) được trình bày trong thuật toán 2. Algorithm: Probabilistic Hough Transform (PHT) 1: determine m and T 2: randomly select m points to create Pm ⊂ P 3: for all points in m i p in point set Pm do 4: for all cells (θ, φ, ρ) in accumulator A do 5: if point pi lies on the plane defined by (θ, φ, ρ) then 6: increment cell A(θ, φ, ρ) 7: end if 8: end for 9: end for 10: Search for the most prominent cells in the accumulator, that define the detected planes in P Các điểm m (m <| P |) được chọn ngẫu nhiên từ các đám mây điểm P. Những điểm này được biến đổi thành Hough không gian và bỏ phiếu cho các mặt phẳng mà các điểm có thể nằm trên. Phần chi phối thời gian chạy được tỷ lệ thuận với m • Nφ • Nθ. Bằng cách giảm m, thời gian chạy là giảm mạnh. Để có được kết quả tốt tương tự như với phương pháp biến đổi Hough tiêu chuẩn thì điều quan trọng là đảm bảo tính năng vẫn phát hiện với xác suất cao ngay cả khi chỉ có một tập hợp các các điểm m được sử dụng. Sự lựa chọn tối ưu của m và ngưỡng T 9 phụ thuộc vào các vấn đề thực tế. Nhiễu cảm biến dẫn đến mặt phẳng xuất hiện dày hơn so với số mặt phẳng đang có trong thực tế. Sự rời rạc của không gian Hough kết hợp với các phương pháp tiếp cận cửa sổ trượt chính là cách xử lý cho vấn đề này. Càng có nhiều mặt phẳng biểu diễn trong các đám mây điểm thì càng ít sự chiếm ưu thế là đỉnh trong bộ tích lũy. Hiệu ứng tương tự xuất hiện, khi đối tượng đang ở trong đám mây điểm mà không bao chứa mặt phẳng. Tùy thuộc vào các yếu tố, số lượng m tối ưu khác nhau giữa các bộ dữ liệu với các đặc tính khác nhau. 1.2.2.1 Adaptive Probabilistic Hough Transform (APHT) Kích thước cho các tập con của các điểm phải tối ưu để đạt được kết quả tốt trong phương pháp PHT là một vấn đề phụ thuộc rất cao. Tập hợp con này thường được chọn lớn hơn nhiều so với cần thiết để giảm thiểu nguy cơ lỗi. Một số phương pháp đã được phát triển để xác định một số lượng hợp lý các điểm được lựa chọn. Phương pháp biến đổi Hough xác suất thích nghi (APHT) (Ylä-Jääski và Kiryati) giám sát bộ tích lũy. Cấu trúc của bộ tích lũy thay đổi một cách năng động trong giai đoạn bỏ phiếu. Ngay sau khi cấu trúc bộ tích lũy ổn định xuất hiện và trở thành đỉnh đáng kể thì quá trình biểu quyết được kết thúc. Chỉ có những cell cần phải được theo dõi sau mỗi quá trình bỏ phiếu mới được tác động đến. Các cell cực đại trong những cell này được xác định và xem xét để khai thác xem chúng có là mặt phẳng hay không. Nếu một số cell có số điểm cao cùng nhau thì một trong số đó được lựa chọn. Có một danh sách các cell tối đa tiềm năng được cập nhật. Luôn có một sự so sánh danh sách đỉnh liên tiếp cho phép kiểm tra tính nhất quán của bảng xếp hạng đỉnh cao trong danh sách. Thuật toán 3 phác thảo thủ tục này. 10 [...]... nằm trên mặt phẳng đó bị loại từ đầu vào và hiệu quả phát hiện được tăng lên Do thuật toán không tính toán Biến đổi Hough cho tất cả các điểm nên có khả năng là không phải toàn không gian Hough cần phải được tác động Điều này sẽ dẫn đến có nhiều các mặt phẳng mà không điểm đầu vào nằm trên Việc này cho phép tiết kiệm không gian lưu trữ thủ tục vì chỉ lưu trữ các cell thực sự cần đến Biến đổi Hough 14... giác trong thời gian thực của các ứng dụng điều hướng Công việc tiếp theo được thực hiện bởi Walther là mở rộng các tính năng khác của thuật toán CORDIC Thuật toán CORDIC được sử dụng trong một vài hệ thống cụ thể bộ đồng xử lý số 8087, máy tính HP -35 và các bộ vi xử lý radar chuyên dụng khác Mỗi hàm lượng giác có thể được tính toán bằng cách sử dụng vecto quay Thuật toán cung cấp một phương pháp lặp... được gọi để ổn định là tối đa Nguyên tắc dừng khi phát hiện chính xác một mặt phẳng là nếu thứ tự ổn định của S1 vượt quá một ngưỡng xác định trước Đối với việc phát hiện k đối tượng, trật tự ổn định của Sk phải vượt quá một số định trước Phát hiện một số lượng tùy ý các mặt phẳng sử dụng một số lần lặp với k cố định có thể dẫn đến thời gian thực hiện bài toán dài Vì vậy, một đề nghị cho phép các chương... được tìm thấy nằm trên một mặt phẳng đã được phát hiện Thậm chí nếu các thuật toán được phép dừng sớm thì nó không có nghĩa rằng tất cả điểm phải được lựa chọn Tùy thuộc vào cấu trúc đầu vào, nhiều điểm có thể bị xóa trước khi nó được bỏ phiếu bởi vì chúng thuộc về một mặt phẳng đã được phát hiện Các PPHT được trình bày trong thuật toán 4 12 Algorithm: Progressive Probabilistic Hough Transform (PPHT) 1:... của APHT là quá trình thực hiện của nó Trong khi các phương pháp khác thực hiện đơn giản, thì APTH luôn có sự cần thiết phải duy trì một danh sách các cell cực đại có mối quan hệ vùng lân cận đưa để vào tài khoản, dẫn đến sự phức tạp thi hành cao hơn 17 CHƯƠNG 2 THỰC HIỆN THUẬT TOÁN HOUGH TRÊN NỀN FPGA 2.1 Nguyên tắc biến đổi Hough ứng dụng trên nền FPGA Mục đích của biến đổi Hough là đại diện cho các... Điều này không chỉ tăng tốc độ thuật toán do giảm số lượng các điểm nhưng cũng làm giảm khả năng việc phát hiện một mặt phẳng giả mà đi qua những điểm này, đặc biệt là trong trường hợp các dữ liệu bị nhiễu Thuận lợi chính của RHT là trong mỗi lần lặp chỉ một cell là bị tác động Bằng cách tránh việc thực hiện đủ Biến đổi Hough, một số lượng lớn các cell tương ứng với các mặt phẳng chỉ được biểu diễn bởi... 2.12 biểu diễn kết quả của thuật toán trên thực hiện bằng ngôn ngữ C, áp dụng cho các ảnh khác nhau 34 Hình 2.12 Kết quả tìm đường thẳng Bảng 6 Tiêu chuẩn truyền dẫn ảnh có thể sử dụng kiến trúc đề xuất cho tính toán không gian tham số biến đổi thời gian thực Hough 35 Kết quả như nhau cho các ảnh đơn giản, tuy nhiên với những ảnh có nhiều đối tượng hơn các dòng bổ sung được phát hiện Điều này chủ yếu... nhiều khả năng rằng ba điểm từ mặt phẳng này đượcchọn ngẫu nhiên Cuối cùng, các cell tương ứng với các mặt phẳng thực tế RHT có một số lợi thế chính không phải tất cả các điểm phải được xử lý, và đối với những điểm được coi là không có Biến đổi Hough hoàn chỉnh là cần thiết Thay vào đó, giao điểm của ba đường cong Biến đổi Hough được đánh dấu trong bộ tích lũy để phát hiện từng đường cong Khi vượt trên... bằng 0.60 73 khi n tiến tới vô cùng Do đó, các thuật toán đạt được −i −i Gn ≈ 1:647 Để đơn giản hóa việc thực hiện phần cứng, có thể coi arctan(2 ) ≈ 2 khi i ≥ 4 Giá trị arctan(2-i) có thể được lấy trực tiếp từ bảng tra cứu (một đầu vào cho mỗi lần lặp) Với cơ sở này, thuật toán CORDIC sử dụng hai chế độ xác định dấu hiệu quay cơ bản: chế độ luân chuyển và chế độ vector Trong chế độ luân chuyển, góc... (MHz) 6.10 26 9 208 5.64 10 232 4. 83 11 256 4. 43 12 280 3. 78 13 304 3. 48 Ảnh hưởng của số lần lặp đến độ phức tạp và tần số hoạt động có thể thấy rõ ràng trong bảng 2 khi cấu trúc được thực hiện trên thiết bị Xilinx 4010 Sự phức tạp được đo bằng cách sử dụng khối tế bào logic (CLB) Đối với các thiết bị gia đình cụ thể, một CLB bao gồm hai flip-flop, 2 bảng tra cứu thực hiện logic tổ hợp và một số điều . 8 1.2 .3 Phương pháp biến đổi Hough ngẫu nhiên (Randomized Hough Transform).14 1 .3 Đánh giá các phương pháp Hough 16 CHƯƠNG 2 THỰC HIỆN THUẬT TOÁN HOUGH TRÊN NỀN FPGA 18 2.1 Nguyên tắc biến đổi Hough. biến đổi nhanh Hough. Các đề xuất kiến trúc thời gian thực cho việc phát hiện đường thẳng được thực hiện trên các thiết bị FPGA, sử dụng cả góc nghiêng và thuật toán CORDIC. Một mặt, góc nghiêng. biến thể cho Hough Transform. Trong bài viết này, có sự đánh giá các biến thể khác nhau của Biến đổi Hough có liên quan đến ứng dụng phát hiện mặt phẳng trong những đám mây điểm 3D một cách