TỔNG QUAN
Tổng quan
Trong những năm gần đây, nghiên cứu và phát triển ứng dụng thị giác máy tính cho robot đã thu hút sự quan tâm mạnh mẽ từ các nhà nghiên cứu và công ty Công nghệ này được áp dụng rộng rãi trong lĩnh vực quân sự, bao gồm robot tự hành và robot thám hiểm, cũng như trong các ứng dụng dân sự như robot giúp việc nhà và robot trong sản xuất linh hoạt.
Hiện nay, việc trang bị cho robot giác quan giống người thông qua công nghệ máy tính đang trở thành xu thế mới, với thị giác máy tính (computer vision) là lĩnh vực nghiên cứu nổi bật Thị giác máy tính mô phỏng hệ thị giác của con người, giúp robot giao tiếp hiệu quả hơn với thế giới bên ngoài thông qua hình ảnh Các thuật toán xử lý dữ liệu hình ảnh cho phép xác định vị trí vật thể trong không gian ba chiều và khôi phục không gian ba chiều từ nhiều ảnh chụp Camera, với độ phân giải cao và khả năng ứng dụng linh hoạt, là cảm biến ánh sáng phổ biến nhất trong thị giác máy tính Tuy nhiên, tại Việt Nam, ngành này vẫn còn mới mẻ và gặp nhiều khó khăn, dẫn đến việc ứng dụng thị giác máy tính vào robot còn hạn chế Dù vậy, xu hướng áp dụng công nghệ này vào robot và quá trình tự động hóa công nghiệp đang mở ra nhiều tiềm năng.
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
1.1.2 Các công trình nghiên cứu lien quan
Nhiều nghiên cứu về nhận dạng và xử lý ảnh, như [3], [4], [6], và [11], đã tập trung vào việc nhận diện các hình dạng như vuông và tròn, cũng như xử lý các ảnh được thu thập từ camera.
- Một số công trình nghiên cứu thị giác nổi trên nền FPGA như [1],[9], [10],
[14], [15], [16] tập trung vào việc nghiên cứu thị giác nổi trên nền FPGA, nhận dạng ảnh từ 02 camera
Nghiên cứu về thị giác nổi trên nền FPGA cho Eye robot, như đề cập trong tài liệu [2], tập trung vào việc nhận dạng hình ảnh từ hai camera để bám mục tiêu hiệu quả.
Nhiều nghiên cứu về xử lý ảnh đã đạt được thành công đáng kể, bao gồm nhận dạng biển số xe, nhận diện vân tay, ứng dụng trong bãi giữ xe, trạm thu phí, và quản lý thời gian làm việc của nhân viên.
Một số đề tài nghiên cứu nổi bật về xử lý ảnh trên nền FPGA bao gồm "Sử dụng FPGA để xác định tọa độ không gian" và "Thiết kế hệ thống ảnh số trên nền FPGA" Những nghiên cứu này tập trung vào việc ứng dụng công nghệ FPGA trong việc cải thiện hiệu suất và khả năng xử lý hình ảnh.
1.2 Mục tiêu đề tài Ứng dụng lý thuyết về xử lý ảnh, nhận dạng ảnh để xây dựng giải thuật nhận dạng đối tượng cho trước (vật vuông, tròn), tính toán khoảng cách để bám đối tượng
Lập trình Verilog trên nền kít FPGA ( DE2 115) để điều khiển Mobile robot bám mục tiêu.
Phương pháp nghiên cứu
-Nghiên cứu lý thuyết về xử lý ảnh, thị giác máy tính, ngôn ngữ verilog , kít FPGA…
-Xây dựng giải thuật điều khiển như nhận dạng đối tượng, tính toán tọa độ không gian để xác định vị trí đối tượng, bám đối tượng
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
-Kiểm chứng thực nghiệm bằng việc xây dựng mô hình mobile robot với 02 camera FIFO và kít FPGA
-Lập trình verilog trên kít DE2 115 để kiểm chứng kết quả.
Giới hạn đề tài
Nghiên cứu tập trung vào việc áp dụng các giải thuật nhận dạng đối tượng trong ảnh thông qua thuật toán Hough, nhằm tính toán tọa độ của đối tượng và khoảng cách D giữa đối tượng và robot di động Bên cạnh đó, bài viết cũng đề cập đến việc điều khiển robot để bám theo đối tượng.
Lập trình Verilog trên nền kít FPGA DE2 115 để kiểm chứng kết quả lập trình
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
CƠ SỞ LÝ THUYẾT
Cơ sở lý thuyết về ảnh số
2.1.1 Phần tử ảnh Ảnh trong thực tế là ảnh liên tục về không gian và giá trị độ sáng Để xử lý ảnh bằng máy tính thì người ta phải số hóa ảnh, biến đổi tín hiệu từ liên tục sang tín hiệu rời rạc về giá trị vị trí và độ sáng ảnh mà phải đảm bảo mắt thường không phân biệt được hai mức kề nhau Trong quá trình này người ta sử dụng khái niệm phần tử ảnh Pixel đại diện cho các điểm ảnh đó Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)
2.1.2 Độ phân giải Độ phân giải của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều Độ phân giải của ảnh được biểu diễn làm hai loại :
Hình 2.1 : Khung ảnh với giá trị Pixel
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
- Độ phân dải màu : sự thay đổi màu nhỏ nhất có thể thay đổi được và cho ta biết số màu tối đa của ảnh
- Độ phân dải không gian : chi tiết nhỏ nhất có thể thay đổi được
Mỗi pixel trong ảnh không chỉ có tọa độ mà còn mang giá trị mức xám, thể hiện cường độ sáng tại từng pixel Số lượng mức xám của ảnh phụ thuộc vào không gian màu, ví dụ như ảnh 8 bit có 256 mức xám từ 0 đến 255.
Không gian màu RGB được hình thành từ ba thành phần cơ bản là Đỏ (R), Xanh lá (G) và Xanh dương (B) Sự pha trộn màu sắc trong không gian này mang tính chất cộng, với mỗi màu được biểu diễn bằng một bộ ba số (R, G, B) Các thành phần R, G, B là các số thực có giá trị từ 0 đến 1.
Hình 2.2 : Sự pha màu có tính chất cộng
Không gian màu HSV là hệ tọa độ trụ mô tả màu sắc RGB, bao gồm ba thành phần chính: H (Hue - màu sắc), S (Saturation - độ bão hòa màu) và V (Value - độ sáng) Giá trị H được thể hiện qua góc trên vòng tròn, với màu đỏ (R) tại 0 độ, màu xanh lục (Green) tại 120 độ và màu xanh lá (Blue) tại 240 độ, theo hướng ngược chiều kim đồng hồ.
HVTH: PHẠM THANH HẢI, GVHD: TS NGUYỄN ĐỨC THÀNH Không gian màu 360 độ với độ và quay trở về màu đỏ thường được ứng dụng trong lĩnh vực thị giác máy và đồ họa máy tính.
Hình 2.3: Hệ tọa độ trụ cho không gian màu HSV
Không gian YCbCr thường được sử dụng trong ảnh JPEG và các chuẩn video, vì nó phù hợp cho việc nén và giải nén dữ liệu theo tần số Các thành phần chính trong không gian này bao gồm Y (độ sáng) và Cb, Cr (các thành phần màu).
Y: thành phần độ sáng( ảnh xám )
Cb và Cr: thành phần sắc thái màu
2.1.5 Nhận dạng đối tƣợng trong ảnh bằng Hough
Thuật toán Hough, được Paul Hough phát triển vào năm 1962, là một phương pháp hiệu quả để phát hiện các đặc điểm hình học như đường thẳng và đường tròn trong ảnh số Thuật toán này thực hiện việc chuyển đổi ảnh từ không gian tọa độ Descartes sang không gian tham số, giúp nhận diện các hình dạng một cách chính xác.
Phương trình đường tròn trong hệ trục tọa độ đề các :
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Trong đó : r là bán kính đường tròn
Thuật toán Hough tìm kiếm 3 thông số (a, b, r) của đường tròn, ứng với mỗi điểm trên đường tròn sẽ vẽ vòng tròn bán kính r
Hình 2.4 : chuyển đổi Hough với r biết trước
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Phương pháp Hough là kỹ thuật nhận dạng đường thẳng trong ảnh, mô tả bất kỳ đường thẳng nào trong mặt phẳng xy bằng phương trình với khoảng cách bình thường từ tọa độ tâm đến đường thẳng và góc giữa đường thẳng và tọa độ tâm Khi áp dụng phương pháp Hough, các điểm trên đường thẳng (xi, yi) sẽ được xác định và kết quả sẽ được biểu diễn qua hàm C(,).
Xét một hình chữ nhật với các đỉnh P 1 = (x 1 , y 1 ), P 2 = (x 2 , y 2 ), P 3 = (x 3 , y 3 ) và
P 4 = (x 4 , Y 4 ), với P1P2 và P3P4 hai mặt song song với chiều dài a, P2P3 và P4P1
Hình 2.6 : đường thẳng trong Hough với thông số và Hình 2.5 : chuyển đổi Hough với r chưa biết
HVTH: PHẠM THANH HẢI, GVHD: TS NGUYỄN ĐỨC THÀNH Hệ tọa độ được giả định nằm ở trung tâm của hình chữ nhật, như minh họa trong hình dưới đây Trong không gian Hough, hình chữ nhật này có bốn đỉnh.
H 1 = (ρ 1 , θ 1 ), H 2 = (ρ 2 , θ 2 ), H 3 = (ρ 3 , θ 3 ) và H 4 = (ρ 4 , θ 4 ), tương ứng với bốn mặt của hình chữ nhật (P 2 P 3 , P 1 P 4 , P 3 P 4 và P 1 P 2 )
Hình 2.8 : chuyển đổi Hough của hình chữ nhật
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Hai camera được đặt trên cùng một trục và khoảng cách giữa 2 camera là B, khoảng cách từ camera đến đối tượng là D như hình 2.9 và hình 2.10
Hình 2.9 : Vị trí đặt 02 camera
Hình 2.10 : ảnh của vật nhìn từ 02 camera
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Khoảng cách B được tính như sau :
Từ đó : khoảng cách D là
Từ hình 2.11 và hình 2.12 ta có :
Hình 2.11 : Ảnh của vật nhìn từ camera trái Hình 2.12: Ảnh của vật nhìn từ camera phải
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Calip số liệu thực tế của camera trong frame hình để tính giá trị tan 0/2
Thị giác máy tính
2.2.1 Thị giác máy tính dùng 1 camera
Camera là thiết bị chuyển đổi hình ảnh từ không gian 3D sang mặt phẳng 2D Mối quan hệ giữa điểm M trong không gian 3D với tọa độ (X, Y, Z)T và điểm ảnh m(x, y)T được xác định thông qua phương pháp tọa độ thuần nhất.
Mô hình thị giác máy tính sử dụng một camera để chiếu đối tượng từ không gian ba chiều vào mặt phẳng hai chiều Cơ sở hình học của mô hình này dựa trên phép chiếu phối cảnh.
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Theo phương pháp tọa độ thuần nhất, điểm M trong không gian ba chiều với tọa độ (X, Y, Z) T có mối quan hệ với ảnh của nó trong mặt phẳng hai chiều m có tọa độ (x, y) T được biểu diễn qua công thức ˆm CMˆ.
Ma trận chiếu của camera, ký hiệu là C, cùng với tọa độ thuần nhất của các điểm m và M được ký hiệu là ˆm và Mˆ, là những yếu tố quan trọng trong thị giác máy tính Tuy nhiên, khi sử dụng một camera, chiều sâu của hình chiếu đối tượng sẽ bị mất, gây khó khăn cho việc thực hiện các ứng dụng ba chiều như khôi phục không gian ba chiều và định vị ba chiều vật thể.
2.2.2 Thị giác máy tính dùng 2 camera
Thị giác máy tính sử dụng hai camera dựa trên hình học Epipolar, một mối quan hệ hình học giữa hai ảnh khác nhau của cùng một cảnh vật Mối quan hệ này được thể hiện qua công thức x Fx T 0, trong đó F là ma trận cơ sở, x và x’ là hai ảnh chiếu của điểm X trong không gian ba chiều vào mặt phẳng ảnh hai chiều.
Mô hình thị giác máy tính sử dụng hai camera cho phép xác định chiều thứ ba của hình chiếu đối tượng Như hình 2.2-2 thể hiện, điểm X duy nhất cung cấp hai ảnh x và x’ cố định trên hai bức ảnh khác nhau.
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
FPGA ( DE2 115 )
Hình 2.3-1 Kít DE2 115 Đặc điểm phần cứng cung cấp trên board Kit DE2 115 :
Altera Cyclone® IV 4CE115 FPGA device Altera Serial Configuration device – EPCS64 USB boot loader
Bộ nhớ Flash 8-Mbyte Khe cắm SD
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
9 Led xanh Xung clock 50 Mhz
24 bit audio CODEC, line in, line out jack
TV decoder and TV- in connector 10/100 Enthernet Controller connector USB host/device Controller
Giao tiếp RS-232 Cổng PS2 chuột và bàn phím
Hình 2.3-2: sơ đồ khối DE2 115
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
- Hoạt động đồng bộ xung clock kích cạnh lên
- Lập trình trễ (2 và 3 chu kỳ xung clcock) – CAS latency
- Điều khiển thông qua tín hiệu LDQM, UDQM
Bảng 2.3-1 : Bảng mô tả chân của SDRAM
CLK Xung clock (Master clock)
CKE Xung Clock cho phép hoạt động, tích cực mức cao
Chân chọn lựa, tích cực mức thấp Địa chỉ hàng Địa chỉ cột Hình 2.3-3 : sơ đồ kết nối SDRAM và FPGA
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
BA0-1 Địa chỉ bank thanh ghi
V ddq Nguồn cung cấp cho DQ
DESL Lệnh hủy chọn thiết bị H X H X X X X X X
MRS Chế độ nạp thanh ghi H X L L L L L L V
READA Đọc với lệnh tự nạp trước H X L H L H V L V
WRITEA Ghi với lệnh tự nạp trước H X L H L L V H V
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Ngôn ngữ lập trình
Ngôn ngữ mô tả phần cứng (HDL) là ngôn ngữ lập trình được sử dụng để mô phỏng hoạt động của phần cứng, trong đó VHDL và Verilog là hai ngôn ngữ phổ biến nhất hiện nay.
Verilog là ngôn ngữ mô tả phần cứng tiêu chuẩn được IEEE công nhận vào năm 1995, chủ yếu được sử dụng trong thiết kế hệ thống số và mạch tích hợp Ngôn ngữ này nổi bật với tính độc lập về công nghệ, dễ dàng trong thiết kế và gỡ lỗi, cũng như sự đơn giản so với thiết kế bằng sơ đồ khối, đặc biệt trong các hệ thống phức tạp Verilog thường được áp dụng để phát triển ứng dụng trên nền tảng FPGA và CPLD, với mã Verilog được sử dụng để mô tả các hệ thống số trong các thiết bị lập trình của các nhà sản xuất như Xilinx, Altera và Amtel.
2.4.2.2 Thực thể thiết kế của Verilog
Một thực thể thiết kế bao gồm một đơn vị thiết kế duy nhất, gọi là Module Đơn vị này không chỉ mô tả giao diện thiết kế mà còn các giao diện khác trong cùng một môi trường thiết kế, như được minh họa trong hình ảnh mô tả module MOD1.
Hình 2.4-1: thực thể thiết kế verilog
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Một đơn vị thiết kế có thể bao gồm các chương trình con như task hoặc function mà không cần phải khai báo riêng biệt Trong module, không tồn tại miền khai báo riêng cho khối tuần tự và khối đồng thời, cũng như cho các task và function.
Trong verilog, có kiểu phát biểu đồng thời và kiểu phát biểu tuần tự :
Kiểu phát biểu đồng thời cho phép thực thi song song và hoạt động độc lập với các phát biểu khác Nó bao gồm phép gán tiếp tục (continuous assignment) và phát biểu always, giúp tối ưu hóa quy trình xử lý trong lập trình.
- Phát biểu tuần tự là phát biểu được thực thi phụ thuộc vào luồng thủ tục của các cấu trúc bao quanh chúng
Hình 2.4-2: khai báo chương trình con trong đơn vị thiết kế
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Y= FN1(… ) begin }…2 end begin }…2 end fork }…2 join fork }…2 join begin }…2 end fork }…2 join
Sequential block concurrent block module MOD1()
}…1 endmodule initial }…2 always }…2 Design unit
Hình 2.4-3: các lời gọi chương trình con, khối tuần tự hoặc đồng thời
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
2.4.2.3 Đối tƣợng dữ liệu verilog Đối tượng dữ liệu net( wire, wand, wor) và register (reg) được khai báo mà không có tầm, theo mặc định rộng 1 bít và được tham chiếu ở dạng vô hướng
Đối tượng dữ liệu net có khả năng tổng hợp, biểu diễn và mô hình hóa sự kết nối vật lý của các tín hiệu Để đảm bảo tính chính xác, mỗi đối tượng net phải luôn được gán thông qua phát biểu gán tiếp tục (continuous assignment).
Đối tượng dữ liệu register lưu trữ các giá trị từ một phát biểu gán thủ tục đến phát biểu gán thủ tục tiếp theo Phép gán thủ tục này giúp duy trì giá trị trong một kiểu dữ liệu của register cho các phép gán thủ tục sau đó.
Bảng 2.3-3 : mô tả các loại toán tử Verilog
Toán tử của verilog Tên Chức năng
[] Chọn bít hoặc chọn phần
& AND rút gọn Rút gọn
| OR rút gọn Rút gọn
~& NAND rút gọn Rút gọn
~| OR rút gọn Rút gọn
^ XOR rút gọn Rút gọn
~ ^ hoặc ^ ~ XNOR rút gọn Rút gọn
+ Cộng nhị phân Số học
- Trừ nhị phân Số học
>= Lớn hơn hoặc bằng Quan hệ
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
> MegaWizard Plug-In Manager, chọn "next" trong cửa sổ hiện ra Tiếp theo, chọn phần I/O ALTPLL, ngôn ngữ Verilog, và lưu lại với tên SDRAM_PLL trước khi nhấn "next" để tiếp tục cấu hình các ngõ vào và ngõ ra.
Phần General/modes : chọn inclk0 là 25Mhz
Phần output : chọn 2 tín hiệu đầu ra clk c0 , và clk c1
- Tín hiệu clk c0 cung cấp cho cho các khối FIFO : chọn output clock 100 Mhz, độ trễ là 0 ns
- Tín hiệu clk c1 cung cấp tần số đọc ghi cho SDARAM : chọn output clock là 100 Mhz, độ trễ -3ns
Hình 3.3-6 : Cấu hình khối nhân tần
Khối điều khiển SDRAM được dùng để giao xuất các tín hiệu giao tiếp với chip SDRAM, đọc và ghi dữ liệu Khối điều khiển này nhằm mục đích :
Cấu hình thông số hoạt động của SDRAM cho phù hợp với thiết kế
Phân vùng địa chỉ lưu, đọc dữ liệu
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Phân chia thời điểm truy xuất bộ nhớ và cách thức truy xuất, tránh sự tranh chấp trến bus
Bảng 3.3-3 : Mô tả chi tiết khối SDRAM
RD1_ADDR [22:0] input Địa chỉ bắt đầu đọc khung ảnh left RD1_MAX_ADDR [22:0] input Địa chỉ kết thúc đọc khung ảnh left
RD2_ADDR [22:0] input Địa chỉ bắt đầu đọc khung ảnh right
RD2_MAX_ADDR [22:0] input Địa chỉ kết thúc đọc khung ảnh right
WR1_ADDR [22:0] input Địa chỉ bắt đầu ghi khung hình left Hình 3.3-7 : Khối điều khiển SDRAM mDATAIN_1[15 0] mDATAOUT_1[15 0]
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
WR1_MAX_ADDR [22:0] input Địa chỉ kết thúc ghi khung hình left
WR2_ADDR [22:0] input Địa chỉ bắt đầu ghi khung hình right
WR2_MAX_ADDR [22:0] input Địa chỉ kết thúc ghi khung hình right WR1_DATA[15 0] input Dữ liệu ảnh left ghi vào SDRAM
WR2_DATA[15 0] input Dữ liệu ảnh right ghi vào SDRAM
RD1_DATA [15 0] output Dữ liệu ảnh left đọc từ SDRAM ra FIFO RD2_DATA [15 0] output Dữ liệu ảnh right đọc từ SDRAM ra FIFO
SDRAM SIDE – TÍN HIỆU ĐIỀU KHIỂN SDRAM
CS output Tín hiệu chọn chíp
CKE output Tín hiệu clock enable
ADDR [11:0] output Bus địa chỉ
SDR_CLK output Clock cấp cho SDRAM
BA [1:0] output Tín hiệu nối vào chân {BA1,BA0}
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
3.3.2 Giải thuật nhận dạng ảnh
Khối nhận dạng ảnh được thiết kế để chuyển đổi tín hiệu YCbCr chuẩn YUV 4:2:2 từ khối SDRAM sang chuẩn YUV 4:4:4 Sau đó, tín hiệu này được chuyển đổi sang không gian màu HSV nhằm nhận dạng đối tượng trong ảnh bằng thuật toán Hough, từ đó xác định tọa độ tâm của đối tượng.
3.3.2.1 khối chuyển không gian màu
Khối này được thiết kế nhằm lấy tín hiệu hình ảnh được đọc ra từ SDRAM YCbCr[15 0] chuẩn YUV 4:2:2 chuyển đổi sang không gian màu HSV như sau :
Khối YUV 4:2:2_to_YUV 4:4:4 được xây dựng nhằm mục đích chuyển đổi tín hiệu được đọc ra từ SDRAM chuẩn YUV 4:2:2 sang chuẩn YUV 4:4:4 như sau :
Hình 3.3 -8 : sơ đồ khối khối nhận dạng ảnh
Hình 3.3-9 : sơ đồ khối chuyển không gian màu
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Mỗi pixel n chứa thành phần Y n U n V n Y n+1 nên căn cứ theo tín hiệu IX[n] để tách thành phần trong pixel Y n U n V n Y n+1 thành Y n U n V n và Y n+1 U n V n
Bảng 3.3-4 mô tả chức năng chân khối YUV4:2:2_TO_YUV4:4:4
Tên Kiểu Mô tả iCLK input Xung clock đầu vào 25 Mhz iRST input Tín hiệu reset hệ thống
Hình 3.3.-12 : sơ đồ khối YUV4:2:2_TO_YUV4:4:4
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
YCbCr[15 0] input Tín hiệu ra từ SDRAM chuẩn YUV422
Tín hiệu ra từ khối chuyển đổi chuẩn YUV444
Khối YCbCr_to_RGB được xây dựng nhằm mục đích chuyển đổi tín hiệu từ không gian màu YCbCr sang không gian màu RGB
Hình 3.3-15: sơ đồ khối YCbCr_TO_RGB
Cr[7 0] iDVAL Hình 3.3-13 không gian màu YCbCr Hình 3.3-14 không gian màu RGB
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
+ Công thức chuyển đổi các giá trị YCbCr sang RGB
Bảng 3.3-5 mô tả chức năng chân khối YCbCr_TO_RGB
Tên Kiểu Mô tả iCLK input Xung clock đầu vào 25 Mhz iRST input Tín hiệu reset hệ thống iDVAL input
Tín hiệu YCbCr[7 0] chuẩn YUV 4:4:4
Red[9 0] output Tín hiệu ra R 10 bít
Green[9 0] output Tín hiệu ra G 10 bít
Blue[9 0] output Tín hiệu ra B 10 bít
Khối RGB_to_HSV được xây dựng nhằm mục đích chuyển đổi tín hiệu từ không gian màu RGB sang không gian màu HSV
Hình 3.3-16 : không gian màu RGB Hình 3.3-17 : không gian màu HSV
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
+ Các bước chuyển đổi giá trị không gian màu RGB sang HSV:
B1: Tính giá trị lớn nhất, nhỏ nhất
Sơ đồ khối chuyển đổi như sau :
HSV oH[7 0] oS[7 0] oV[7 0] iCLK iRST_N
Hình 3.3-18 : sơ đồ khối RGB_TO_HSV iRed[9 0] iGreen[9 0] iBlue[9 0]
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Bảng 3.3-6 : mô tả sơ đồ chân khối RGB_TO_HSV
Tên Kiểu Mô tả iCLK input Xung clock đầu vào 25Mhz iRST input Tín hiệu reset hệ thống iRed[9 0] input
Tín hiệu vào RGB 10 bít iGreen[9 0] input iBlue[9 0] input
Tín hiệu ra HSV 8 bít
Khối này được thiết kế để chuyển đổi tín hiệu hình ảnh từ hai camera trong không gian HSV thành ảnh nhị phân, sử dụng phương pháp tách biên Sobel, nhằm cung cấp dữ liệu cho khối nhận dạng ảnh.
KHỐI LẤY BIÊN ẢNH iCLK iRST_N
Hình 3.3-19 : sơ đồ khối khối lấy biên ảnh iH[7 0] iS[7 0] iV[7 0] ảnh nhị phân trái ảnh nhị phân phải
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Bảng 3.3-7 : mô tả sơ đồ chân khối lấy biên
Tên Kiểu Mô tả iCLK input Xung clock đầu vào 25 Mhz iRST input Tín hiệu reset hệ thống
H[7 0] input Tín hiệu ảnh vào không gian màu HSV
S[7 0] input Tín hiệu ảnh vào không gian màu HSV
Đầu vào là tín hiệu ảnh ở không gian màu HSV, với ảnh nhị phân bên trái Kết quả đầu ra là tín hiệu ảnh đã được lấy biên, hiển thị qua ảnh nhị phân bên phải.
+ Tạo ma trận nhân chập
THỰC NGHIỆM
Một số kết quả đạt đƣợc
Hình 4.1-1 Mobile robot thực tế
Hình 4.2-1 ảnh thu được camera trái Hình 4.2-2 ảnh thu được camera phải
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Hình 4.2-3 : Ma trận S không gian màu HSV
Hình 4.2-4 : Ma trận H không gian màu HSV
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH
Bảng số liệu thu được từ quá trình thực nghiệm :
XL XR D LEFT RIGH MAX MIN KẾT QUẢ
Hình 4.2-6 : ảnh đã tách biên qua bộ lọc Sobel
Hình 4.2-7 : ảnh trong không gian Hough với 85= iRed )
H_BR_Star = Quotient_BR_C + 2048; else H_BR_Star = 2048 - Quotient_BR_C ; if (iRed >= iGreen) H_RG_Star = Quotient_RG_C + 4096;
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH else H_RG_Star = 4096 - Quotient_RG_C ;
// TINH H = H'*60 mH_GB = H_GB_Star*60;// SO 27 BIT mH_BR = H_BR_Star*60; mH_RG = H_RG_Star*60;
//TINH H if(max == 0 ) mH = 10'h3ff; else begin if(max == iRed ) mH = mH_GB[18:11]; if(max == iGreen) mH = mH_BR[18:11]; if(max == iBlue ) mH = mH_RG[18:11]; end
The control block module operates with inputs including iclk, clk_50, rst, wr_done, arc_done, and find_done, producing a 2-bit output, oResult It defines three states: S0 for memory write, S1, and S2 The state transitions occur on the positive edge of iclk or when reset is triggered, initializing the state to S0 upon reset.
HVTH : PHẠM THANH HẢI GVHD : TS NGUYỄN ĐỨC THÀNH case (state)
S0: if(wr_done) state