Tải bản đầy đủ (.doc) (40 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (875.76 KB, 40 trang )

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
Algorithm: Adaptive Probabilistic Hough Transform (APHT)
1: while stability order of Sk is smaller than threshold tk and
maximum stability order is smaller than threshold tmax do
2: randomly select a small subset Pm ⊂ P of size n
3: for all points mi p in Pm do
4: vote for the cells in the accumulator
5 : choose maximum cell from the incremented
cells and add it to active list of maxima
6 : end for
7: merge active list of peaks with previous list of

peaks
8: determine stability order
9: end while
Để đẩy nhanh quá trình, việc cập nhật danh sách chỉ được thực hiện sau khi một
lô hàng nhỏ các điểm đã được bình chọn. Danh sách các đỉnh bị hạn chế về quy mô và
sắp xếp tăng dần theo giá trị của các cell. Khi cập nhật danh sách với một đỉnh, tọa độ
của đỉnh được đưa vào tài khoản. Nếu hai đỉnh nằm trong cùng khu vực không gian của
nhau, đỉnh nào thấp hơn được bỏ qua hoặc loại bỏ khỏi danh sách. Trong giai đoạn đầu
của thuật toán sự thay đổi theo thứ tự các đỉnh núi thường xuyên xảy ra. Khi cập nhật,
cấu trúc của bộ tích lũy trở nên rõ ràng hơn. Nguyên tắc dừng cho các thuật toán được
xác định bởi sự ổn định của các đỉnh chiếm ưu thế nhất.
Một tập Sk của k đỉnh trong danh sách được gọi là ổn định nếu tập này chứa tất
cả các đỉnh lớn nhất trước và sau khi giai đoạn một lần cập nhật. Thứ tự trong tập hợp là
không quan trọng cho sự ổn định. Số lượng danh sách liên tiếp (mk) mà trong đó Sk
được ổn định được gọi là trật tự ổn định của Sk. Các tính ổn định tối đa là yếu tố k của
tập Sk với trật tự ổn định cao nhất. Trong trường hợp có hai bộ có cùng trật tự ổn định
11
thì bộ nào có yếu tố cao hơn được ưu tiên hơn. Trình tự ổn định của bộ Sk có tính ổn
định tối đa đượ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 trình chạy cho đến khi trật tự ổn định tối
đa đạt đến một ngưỡng. Sau đó giá trị điếm ổn định tối đa là số lượng các đối tượng
được tìm thấy.
1.2.2.2 Phương pháp biến đổi Hough theo xác suất cải tiến (Progressive
Probabilistic Hough Transform)
Phương pháp biến đổi Hough lũy tiến xác suất (PPHT) tính toán số lần dừng cho
quá trình lựa chọn ngẫu nhiên các điểm phụ thuộc vào số phiếu trong một bộ tích lũy

cell và tổng số phiếu bầu. Nền tảng của phương pháp này là lọc những bộ tích lũy kết
quả được cho là do tiếng ồn ngẫu nhiên. Thuật toán dừng lại bất cứ khi nào một số
lượng cell vượt một ngưỡng của các điểm s có thể được gây bởi tiếng ồn trong đầu vào.
Ngưỡng được tính mỗi khi một điểm được lựa chọn. Nó được xác định trên tỷ lệ phần
trăm phiếu bầu cho một cell từ tất cả các điểm có bình chọn. Khi một đối tượng dạng
hình học được phát hiện, các phiếu bầu từ tất cả các điểm hỗ trợ nó được rút lại.
Các quy tắc dừng lại là dừng bất cứ lúc nào có được kết quả hữu ích. Đặc trưng
này được phát hiện ngay sau khi các nội dung bộ tích lũy cho phép ra quyết định. Nếu
thuật toán không dừng lại thì nó sẽ chạy đến khi không có điểm còn lại trong tập hợp
đầu vào. Điều này xảy ra khi tất cả các điểm hoặc đã bình chọn hoặc đã đượ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: while still enough points in P do
2: randomly select a point pi from point set P
3: calculate threshold t
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: remove point pi from P and add it to Pvoted
10: if highest accumulated cell is higher than threshold t then
11: select all points from P and Pvoted that are close to the
plane defined by the highest peak and add them to Pplane
12: search for the largest connected region Pregion in

Pplane
13: remove from P all points that are in Pregion
14: for all point pj that are in Pvoted and Pregion do
15: unvote pj from the accumulator
16: remove pj from Pvoted
17: end for
18: if the area covered by Pregion is larger than a
threshold then
19: add Pregion to the output list
20: end if
21: end if
22: end while

13
1.2.3 Phương pháp biến đổi Hough ngẫu nhiên (Randomized Hough
Transform)
Phương pháp biến đổi Hough ngẫu nhiên (RHT) làm giảm số lượng cell được tác
động bằng cách khai thác thực tế rằng một đường cong với n các thông số được xác
định bởi n điểm. Đối với việc phát hiện các mặt phẳng, ba điểm từ không gian đầu vào
được ánh xạ vào một điểm trong Không gian Hough. điểm này là một trong những điểm
tương ứng với mặt phẳng xác định bởi ba điểm. Trong mỗi bước thủ tục chọn ngẫu
nhiên ba điểm p1, p2 và p3 từ đám mây điểm. Mặt phẳng trải rộng bởi ba điểm được
tính như sau
ρ = n · p1 = ((p3 - p2) × (p1 - p2)) · p1
φ và θ được tính như được giải thích trong phần 2 và ô tương ứng A (θ, φ, ρ)
được tích lũy. Nếu điểm đám mây bao gồm một mặt phẳng với θ, φ, ρ, sau một số lượng
nhất định lần lặp sẽ có một điểm số cao tại A (θ, ρ, φ).
Khi mặt phẳng được biểu diễn bởi một số lượng lớn các điểm, có 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 một ngưỡng t nhất định, tất cả các điểm 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
Algorithm: Randomized Hough Transform (RHT)
1: while still enough points in point set P do
2: randomly pick three points p1, p2, p3 from the set of
points P
3: if p1, p2 and p3 fulfill the distance criterion then
4: calculate plane (θ, φ, ρ) spanned by p1, p2, p3
5: increment cell A(θ, φ, ρ) in the accumulator space
6: if the counter |A(θ, φ, ρ)| equals threshold t then
7: (θ, φ, ρ) parameterize the detected plane
8: delete all points close to (θ, φ, ρ) from P
9: reset the accumulator
10: end if
11: else
12: continue
13: end if
14: end while
15
1.3 Đánh giá các phương pháp Hough
Bảng so sánh các phương pháp biến đổi Hough
Phương pháp

Tham số
SHT PHT PPHT APHT RHT
Độ hoàn thành/tính
xác định
+ - - - -
Điều kiện dừng - - + + +
Điều kiện dừng
thích nghi
- - + ++ -
Xóa các mặt phẳng
phát hiện được từ
bộ điểm
- - + - +
Tác động chỉ một
cell trên một lần lặp
- - - - +
Độ dễ khi thực hiện + + + - +
Nhận xét:
Trong SHT, HT hoàn được thực hiện cho tất cả các điểm (gọi là biến đổi Hough
hoàn toàn). Điều này làm cho nó có số lượng phép toán lớn.
Các PPHT, APHT và RHT thì không cần biến đổi Hough hoàn toàn do thêm vào
một hoặc vài quy tắc dừng lại.
16
Trong khi đối với RHT số dừng lại quy tắc là một ngưỡng đơn giản, ví dụ, điểm
còn lại trong đám mây điểm hoặc số lượng các mặt phẳng được phát hiện.
PPHT có một quy tắc dừng lại đó là dựa trên số lượng điểm đã được xử lý. Vì
vậy, thuật toán là ít nhạy cảm với nhiễu trong các dữ liệu.
Quy tắc dừng lại tinh vi nhất là áp dụng trong phương pháp APHT. Ở đây, sự ổn
định của một số cực đại được theo dõi theo thời gian trong quá trình lựa chọn làm cho
thuật toán mạnh mẽ hơn đối với các tác động tiêu cực lựa chọn điểm ngẫu nhiên.

Trong PPHT và RHT, các điểm được loại bỏ khỏi các đám mây điểm khi phát
hiện có một mặt phẳng mà chúng nằm trên. Đ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 rất ít các điểm có khả năng nhất không bị tác
động bởi RHT.
Nhược điểm chính 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 dạng hình học thông thường
trong một không gian tham số xác định bởi
ρ

θ
. Nếu xem xét một đường thẳng,
ρ

khoảng cách tiêu chuẩn từ gốc đến đường thẳng đó và
θ
là góc giữa pháp tuyến của
đường thẳng với trục X như hình 2.1. Do đó, một đường thẳng được đại diện bởi
phương trình (2) liên quan đến (1):
y ax b= +

(1)
cos sinx y
ρ θ θ
= +
(2)
Hình 2.1 Nguyên tắc biến đổi Hough
Trong không gian tham số, mỗi đường thẳng được đại diện bởi 1 điểm
( )
,
k k k
L
ρ θ
.
Theo phương trình (2), mỗi điểm sẽ thuộc 1 đường thẳng, nó tương ứng với đồ thị hình
sin trong không gian tham số. Tất cả các đồ thị hình sin tương ứng với mỗi đường thẳng
sẽ đi qua một điểm duy nhất trong không gian tham số
( )
0 0
,
ρ θ
. Nói cách khác, đối
tượng đầu vào cho việc tính toán không gian tham số là một đường viền hình ảnh. Với
18
mỗi điểm riêng biệt trong đường viền hình ảnh, các đồ thị hình sin tương ứng được tính
toán bằng máy tính sử dụng quan hệ (2). Nếu một tập hợp các điểm đặc trưng trong
đường viền hình ảnh thuộc cùng một đường thẳng, đồ thị hình sin tương ứng của chúng
sẽ có một điểm chung trong không gian tham số. Sử dụng nguyên tắc biến đổi Hough,
nhiệm vụ phát hiện đường thẳng trong không gian (x,y) trở thành tìm ra các điểm
giaonhau của các đường cong hình sin trong không gian tham số. Những điểm đi qua vị
trí của không gian bộ nhớ đơn giản là tham số được bầu chọn cao.

2.2 Phương pháp tính toán biến đổi Hough
Có hai phương pháp chính để tính toán không gian tham số Hough. Cái đầu tiên
được gọi là phương pháp cổ điển, trong đó tại cho một điểm đặc trưng duy nhất, tất cả
các giá trị có thể có của tham số
i
θ
được sử dụng để tính toán giá trị
i
ρ
tương ứng.
Cách tiếp cận này đòi hòi thời gian tính toán dài và không gian bộ nhớ lớn. Phương
pháp thứ hai được dựa trên góc nghiêng định hướng, trong đó chỉ có một giá trị
θ
duy
nhất được sử dụng để tính toán giá trị
i
ρ
tương ứng với mỗi điểm đặc trưng. Giá trị
θ

được xác định từ các góc nghiêng nằm ngang và thẳng đứng tại các điểm đặc trưng
được xem xét.
2.2.1 Phương pháp cổ điển
Quy trình tính toán không gian tham số Hough sử dụng phương pháp cổ điển
được tóm tắt trong các thuật toán sau đây:
Không gian tham số là một ma trận
( )
,R
ρ θ
.

Ma trận
( )
,R
ρ θ
được khởi tạo bằng 0.
Với mỗi điểm đặc trưng (x,y) trong đường viền hình ảnh
Begin
Với mỗi giá trị
[ ]
min max
,
k
θ θ θ

Begin
Tính toán
.cos .sin
k k k
x y
ρ θ θ
= +
Cho
( )
,R
ρ θ
=
( )
,R
ρ θ
+1

19
End
End
Nếu các giá trị sin và cos thu được từ bảng tra cứu (LUT).
Bảng 2.1 Độ phức tạp của biến đổi Hough cổ điển
Bổ sung C.K
Sản phẩm 2.C.K
Truy cập bảng tra cứu 2.C.K
Truy cập bộ nhớ của không gian tham số C.K
Bảng 2.1 tóm tắt các tính toán phức tạp cần thiết, trong đó K là tất cả các giá trị
θ
có thể có và C là chỉ số đặc trưng trong đường viền hình ảnh được xem xét.
2.2.2 Biến đổi Hough tăng cường nhanh 2 (FIHT2)
FIHT2 là viết tắt của Fast Incremental Hough Transform. Đó là biến đổi Hough
được chỉnh sửa để cung cấp những kết quả tương tự với chỉ những toán tử đơn giản như
bộ cộng và bộ dịch logic. Đây là phiên bản mới của biến đổi Hough dựa trên thực tế
rằng
θ
có thể được viết là
( )
. / .
n
n K n
θ π ε
= =
, trong đó n = 0,1, ,K-1 và
ε
đại diện cho
bước định lượng của
θ

. Không gian tham số
( )
,R
ρ θ
có thể được xác định lại bởi quan
hệ (3) và (4):
( )
cos sin / 2 sin
n n n n
x y p K x
ρ θ θ θ
= + +
(3)
( )
'
cos sin / 2 sin
n n n n
x y p K x
ρ θ θ θ
= − + −
(4)
Các đánh giá lượng giác cũng như các sản phẩm có thể tránh được nếu
/ 1 2
m
p K
ε
= = =
với K = p.2m với m là số tự nhiên. Phương trình (3) và (4) trở thành:
'
1

0 n<K/2
n n n
ρ ρ ερ
+
= + ≤
(5)
' '
1 1
K/2 n<K
n n n
ρ ρ ερ
+ +
= − ≤
(6)
Từ
ε
là một năng lượng của (2), sản phẩm được giảm toán tử dịch đơn giản.
Phương pháp này cần
0
ρ

'
0
ρ
tương ứng khởi tạo cho x và y giá trị của điểm riêng
biệt hiện tại để bắtđầu tính toán. Với m = 6 và K = 201 và theo bảng 2.1, sản phẩm
20
402.C giảm xuống 199.C bằng toán tử dịch logic. Sử dụng lỗi được giới thiệu trong
quan hệ (5) và (6) đối với phương trình (1) là 0:002. Khi giá trị này nhỏ hơn độ phân
giải điểm ảnh thì kỹ thuật FIHT2 được sử dụng để phát hiện đường thẳng nếu K được

chọn đủ lớn. Tuy nhiên, phương pháp này vẫn cần C.K bổ sung và truy cập không gian
bộ nhớ tham số C.K bởi vì nó sử dụng tất cả các giá trị có thể có của
θ
.
2.2.3 Phương pháp dựa trên góc nghiêng.
Như đã mô tả trước đây, phương pháp này sử dụng góc nghiêng để ước lượng
định hướng đường thẳng vào điểm riêng biệt cần xem xét. Khi một giá trị duy nhất của
θ
cần dùng đến, chỉ có một bộ nhớ truy cập duy nhất được yêu cầu cho mỗi điểm riêng
biệt. Điều này tất nhiên sẽ tăng tốc tính toán và giảm yêu cầu về kích thước bộ nhớ.
Chất lượng yếu kém của các máy dò cạnh không cho phép việc sử dụng đáng tin cậy khi
O’Gormans và M.B. Clowes giới thiệu ý tưởng này vào năm 1976. Góc nghiêng ngang
Gx và góc nghiêng dọc Gy thu được từ toán tử tiền xử lý trong khi chiết xuất đường
viền hình ảnh như Robert, Sobel, Prewitt hoặc sử dụng áy dò cạnh Deriche đứng sau
một hình ảnh mịn.
tan
tan
y
y x
x
x
y x
y
G
G G G
G
G
G G G
G
= ≤

= >
(7)
Hình 2.2 Mối quan hệ định hướng cạnh – góc nghiêng
Như đã thấy trong hình 2.2, chúng ta nhằm mục đích tính toán độ dốc của góc
nghiêng G tại mỗi điểm riêng biệt trong đường viền hình ảnh. Theo quan hệ (7), G luôn
nhỏ hơn 1 để đảm bảo phát hiện chính xác. Rõ ràng việc sử dụng góc nghiêng làm giảm
21
đáng kể kích thước bộ nhớ và số lượng truy cập bộ nhớ. Hình 3 cho ta thấy sự khác
nhau giữa kích thước của không gian tham số thu được bởi hai phương pháp cổ điển và
phương pháp dựa trên góc nghiêng. Tuy nhiên, số lượng và độ phức tạp của các toán tử
vẫn rất quan trọng. Thuật toán CORDIC cung cấp các khả năng để tránh toán tử khó
chẳng hạn như tính toán lượng giác và bộ chia chỉ sử dụng bộ cộng và bộ dịch logic.
2.2.4 Thuật toán CORDIC
Thuật toán CORDIC (COordinate Rotation DIgital Computer) được mô tả lần
đầu tiên vào năm 1959 bởi Jack E. Voldernhư một giải pháp số học cho vấn đề lượng
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 đi lặp lại
vecto quay bởi góc tùy ý
Φ
chỉ sử dụng toán tử cộng, so sánh và dịch. Thuật toán
Volder có nguồn gốc từ phương trình chung của vecto quay.
Nếu một vecto V(x,y) quay một góc
φ
tạo ra vecto mới V’(x’,y’) thì chúng có
thể được thể hiện qua quan hệ (8) và (9):
' '
cos sin y cos sinx x y y x

φ φ φ φ
= − = +
(8)
' '
cos [ tan ] y cos [ tan ]x x y y x
φ φ φ φ
= − = +
(9)
Các biểu thức này vẫn còn rất phức tạp để thể hiện phần cứng. Các phép nhân
bởi tan
φ
có thể tránh được nếu các góc quay được giới hạn giá trị là tan
φ
= 2-i. Điều
này dẫn đến toán tử dịch đơn giản. Góc xoay tùy ý có thể thu được bằng cách sử dụng
một vài phép quay cơ bản với
arctan 2
i−
φ =
. Do đó, quan hệ trên có thể được viết theo
(10) và (11):
1
[ 2 ]
i
i i i i i
x K x y d

+
= −
(10)

1
2
i
i i i i i
y K y x d

+
 
= −
 
(11)
22
Trong đó:
2
cos(arctan(2 )) 1/ (1 2 ) and d 1.
i i
i i
K
− −
= = + =
Tích của tất cả giá trị Ki được gọi là hệ số K. Giá trị này có thể thu được một
cách riêng biệt và nó bằng 0.6073 khi n tiến tới vô cùng. Do đó, các thuật toán đạt được
Gn

1:647. Để đơn giản hóa việc thực hiện phần cứng, có thể coi
arctan(2 ) 2
i i
− −

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 thiết bị được
khởi tạo với góc z0 mong muốn. Với mỗi lần lặp lại, các dấu hiệu quay được chọn theo
cách như vậy để giảm thiểu các góc còn sót lại trong thiết bị. Do đó, các quyết định
được dựa trên dấu hiệu góc còn sót lại. Sau n lần lặp, thu được phương trình (12) và
(13):
0 0 0 0
[ cos(z ) sin(z )]
n n
x A x y
= −
(12)
[ ]
0 0 0 0
cos( ) sin(z )
n n
y A y z x
= +
(13)
Với
( )
2
1/ 1 2
i
n n
n

A K

= = +

Trong chế độ vector, thuật toán CORDIC quay các vector đầu vào
( )
0 0
,V x y
theo
các góc độ thích hợp để các góc kết quả liên kết với trục x. Vì thế kết quả là một góc
quay (góc thiết bị Z) và vector đầu vào được nhân bởi Gn (thành phần x của kết quả r).
Chế độ này cố gắng để giảm thiểu vector thành phần Y còn lại. Dấu hiệu vòng quay tiếp
theo được xác định theo các dấu hiệu thành phần Y cuối cùng. Sau n lần lặp,
, ,
n n n
x z y
có thể thu được theo các quan hệ (14) và (15):
2 2
0 0n n
x A x y
= +
(14)
0
0
0
arctan y 0
n n
y
z z
x

 
= + =
 ÷
 
(15)
23
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
Trong cả hai chế độ, góc quay được giới hạn giữa -
/ 2
π

/ 2
π
+
. Hạn chế
này do giá trị 20 đã được sử dụng cho các tiếp tuyến vòng cung tại lần lặp đầu tiên. Đối
24
với các góc lớn hơn
/ 2
π
, vòng quay đầu tiên của
/ 2
π
±
sẽ được thể hiện trong phương
trình (16):
' ' '
y z / 2x dy dx z d
π

= − = = +
Trong đó d = +1 nếu y < 0 và d = -1 nếu y

0.
Từ mô tả trên, thuật toán CORDIC cho phép tính toán trực tiếp một số hàm
lượng giác cũng như tính toán các hoạt động khác một cách gián tiếp nếu chọn các giá
trị ban đầu và thực hiện chế độ quay một cách thích hợp.
Hình 2.4 Kiến trúc CORDIC lặp song song
2.3 Triển khai FPGA theo cấu trúc CORDIC
Các phương trình CORDIC được sửa đổi trước đó có thể được thực hiện theo
những cách khác nhau: nối tiếp, song song, lặp hoặc liên tầng. Một vài lựa chọn có thể
dùng. Các kiến trúc chủ yếu được mô tả trong phần tham khảo.
Trong việc thực hiện lặp đi lặp lại song song, ít nhất các bit quan trong của thanh
ghi Y (hoặc Z tùy theo chế độ sử dụng) quyết định toán tử cộng hoặc trừ được thực hiện
cho lần lặp kế tiếp. Một máy trạng thái đơn giản là cần thiết để điều khiển yếu tố khác
và trình tự thuật toán. Kiến trúc này được thể hiện trong hình 2.4.
Việc thực hiện song song – liên tầng dựa trên dạng của phương trình CORDIC,
cấu trúc song song của một bit đơn lẻ được liên tầng nhiều như số lần lặp và số bit. Điều
này được thể hiện trong hình 2.5.
25

×