intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Ứng dụng công cụ mới trên nền tảng FPGA vào xử lý ảnh và video

Chia sẻ: ViVatican2711 ViVatican2711 | Ngày: | Loại File: PDF | Số trang:10

91
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết này đề xuất phát triển các ứng dụng xử lý ảnh và video thời gian thực trên thiết bị FPGA mới được phát triển bởi hãng Xilinx: Bộ công cụ Xilinx ZVIK. Bộ ZVIK được xây dựng trên nền tảng bộ Zynq-7000 ZC702, bao gồm cả phần cứng, phần mềm và các thành phần IP dùng trong phát triển các ứng dụng video.

Chủ đề:
Lưu

Nội dung Text: Ứng dụng công cụ mới trên nền tảng FPGA vào xử lý ảnh và video

TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 24 (49) - Thaùng 01/2017<br /> <br /> <br /> <br /> <br /> Ứng dụng công cụ mới trên nền tảng FPGA<br /> vào xử lý ảnh và video<br /> A novel FPGA implementation for image and video processing applications<br /> <br /> GS.TS. Lê Tiến Thường, Trường Đại học Bách khoa TP.HCM<br /> Le Tien Thuong, Prof.,Ph.D., Ho Chi Minh University of Technology<br /> <br /> Đinh Gia Khánh, Trường Đại học Bách khoa TP.HCM<br /> Dinh Gia Khanh, Ho Chi Minh University of Technology<br /> <br /> Ngô Hải Long, Trường Đại học Bách khoa TP.HCM<br /> Ngo Hai Long, Ho Chi Minh University of Technology<br /> <br /> Nguyễn Quang Trường, Trường Đại học Bách khoa TP.HCM<br /> Nguyen Quang Truong, Ho Chi Minh University of Technology<br /> <br /> <br /> Tóm tắt<br /> Bài báo này đề xuất phát triển các ứng dụng xử lý ảnh và video thời gian thực trên thiết bị FPGA mới<br /> được phát triển bởi hãng Xilinx: bộ công cụ Xilinx ZVIK. Bộ ZVIK được xây dựng trên nền tảng bộ<br /> Zynq-7000 ZC702, bao gồm cả phần cứng, phần mềm và các thành phần IP dùng trong phát triển các<br /> ứng dụng video. Trong bài báo này, bộ công cụ zynq-7000 được dùng trong xử lý ảnh và video thời gian<br /> thực, được hỗ trợ với giao diện người dùng trên nền web, giúp cho việc tùy chỉnh các thông số trong hệ<br /> thống xử lý ảnh trở nên dễ dàng và thân thiện hơn. Ở đây, một giải thuật nhận dạng chuyển động thời<br /> gian thực được triển khai trên phần cứng, đồng thời sử dụng hệ thống nhúng để điều khiển phần mềm.<br /> Từ đó có thể được ứng dụng trong các hệ thống giám sát, an ninh...<br /> Từ khóa: FPGA; zvik; zynq-7000; xử lý ảnh; xử lý video thời gian thực.<br /> Abstract<br /> In this article, we introduce Xilinx ZVIK, a novel FPGA implementation for real-time video and image<br /> processing applications that has been developed by Xilinx Inc. The ZVIK was built based on the Zynq-<br /> 7000 ZC702 and contains additional hardware, software, and IP core components for building and<br /> developing custom video applications. In this article, the ZVIK is applied with real-time image and<br /> video applications, supported by a web-based graphical user interface, which allows configuring each of<br /> the Xilinx video IP cores in the image-processing pipeline. A motion detection algorithm is applied on<br /> the hardware and controlled by the embedded system in parallel. By all this technique, Xilinx ZVIK can<br /> be applied in monitoring and security cameras.<br /> Keywords: FPGA; zvik; zynq-7000; image processing; real-time video processing.<br /> <br /> <br /> <br /> <br /> 3<br /> 1. Giới thiệu hình không cần thiết trong quy trình xử lý<br /> Bộ công cụ Xilinx Zynq®-7000 All ảnh, nhưng lại được bao hàm trong thiết kế<br /> Programmable (AP) SoC Video and để cho phép chụp ảnh từ video dùng trong<br /> Imaging Kit (ZVIK) xây dựng trên nền phân tích. Hình 2 chỉ ra sơ đồ khối của<br /> tảng của dòng kit ZC702, bao gồm phần thiết kế camera 1080p60.<br /> cứng, phần mềm và các thành phần IP core<br /> cần thiết để phát triển các ứng dụng xử lý<br /> ảnh và xử lý video thời gian thực. Ngoài ra,<br /> bộ công cụ cũng bao gồm một module I/O<br /> FMC được cung cấp bởi Avnet, hỗ trợ kết<br /> nối qua cổng HDMI, nhận ngõ vào từ cảm<br /> biến ảnh CMOS, cho phép phát triển tức<br /> thời phần mềm hệ thống, phần sụn và các<br /> thiết kế phần cứng. dBên cạnh khả năng xử Hình 2. Sơ đồ khối bộ ZVIK và các thiết<br /> lý mạnh mẽ của con ARM® Cortex™-A9 bị ngoại vi.<br /> MPCore™, bộ công cụ còn xây dựng các Dòng Zynq-7000 tích hợp hệ thống<br /> kết nối ngoại vi cho phép kết nối và giao xử lý trên nền của chip lõi kép ARM®<br /> tiếp với các thiết bị ngoại vi như PC hay Cortex™-A9 MPCore™ cùng phần luận<br /> thẻ nhớ SD. lý lập trình của Xilinx, với công nghệ xử<br /> lý hiện đại nhất, hiệu suất xử lý cao, hiệu<br /> năng sử dụng năng lượng thấp, kích<br /> thước chỉ 28nm. Các CPU của ARM<br /> Cortex-A9 MPCore là phần quan trọng<br /> nhất của hệ thống lập trình, bên cạnh bộ<br /> nhớ trong, bộ nhớ ngoài cùng các thiết bị<br /> ngoại vi khác. Hệ quả là hệ thống Zynq-<br /> 7000 có thể ứng dụng rộng rãi ở nhiều<br /> Hình 1. Bộ công cụ ZVIK lình vực, chẳng hạn như hỗ trợ tự động<br /> Video ngõ vào được tạo bởi cảm biến lái xe, truyền video, điều khiển động cơ<br /> ảnh VITA-2000 từ bộ bán dẫn ON, được công nghiệp, kết nối hệ thống mạng, thị<br /> cấu hình ở độ phân giải 1080. Ảnh mẫu giác máy tính, camera thông minh, hệ<br /> con thô Bayer được biến đổi thành ảnh thống giám sát và theo dõi, xử lý ảnh<br /> màu RGB bởi bộ liên hợp triển khai xử lý chẩn đoán trong y khoa,…<br /> ảnh sử dụng các lõi video IP LogiCORE™, Giao diện đồ họa người dùng (GUI –<br /> nó sẽ loại bỏ các điểm ảnh lỗi, de-mosaic Graphical User Interface) trên nền web cho<br /> và sửa lại màu chính xác cho ảnh. Một bộ phép cấu hình mỗi lõi IP video trong quy<br /> đệm khung hình được lắp đặt trong hệ trình xử lý ảnh, hiển thị thông tin về ảnh đi<br /> thống xử lý bộ nhớ DDR3, làm cho hình vào như đồ thị histogram của dữ liệu, và<br /> ảnh được truy cập tới các lõi bộ xử lý cho phép các thao tác nền vi xử lý trên dữ<br /> ARM® thông qua bộ AXI Video Direct liệu như cân bằng trắng tự động hay phơi<br /> Memory Access (VDMA). Bộ đệm khung sáng tự động.<br /> <br /> <br /> 4<br /> Hình 3. Cấu trúc của họ Zynq-7000.<br /> <br /> 2. Giao diện người dùng trên web (frame) trong video theo mong muốn. Khi<br /> Để truy cập vào giao diện người dùng điều chỉnh thì trình duyệt web sẽ gửi các gói<br /> trên nền web, sử dụng một trình duyệt web HTTP Request đến cho bộ ZVIK. Bộ ZVIK<br /> như Internet Explorer, Firefox hoặc Google sẽ thực hiện hiệu chỉnh theo các thông số và<br /> Chrome. Nhập vào địa chỉ IP của bộ ZVIK gửi trả lại gói HTTP Response. Việc bộ<br /> là http://192.168.1.10. Trang web sẽ hiện ZVIK điều chỉnh các thông số hình ảnh như<br /> ra như Hình 4. thế nào thì ZVIK sẽ sử dụng phần cứng và<br /> Từ giao diện người dùng này, có thể phần mềm trong board để thao tác, có thể<br /> điều chỉnh các thông số về khung hình được tìm hiểu sâu hơn ở các phần sau.<br /> <br /> <br /> <br /> <br /> Hình 4. Giao diện người dùng (GUI) của ZVIK trên nền web.<br /> <br /> 5<br /> 2.1. Điều chỉnh độ lợi (Gain) và độ lọc thông cao được dùng để làm sắc nét<br /> sáng (Exposure) đường biên. Ngoài ra, hiệu ứng khử Halo<br /> Độ lợi và độ sáng có thể được điều giúp giảm nhiễu vòng và hiệu ứng cường<br /> chỉnh tự động bằng cách đánh dấu vào các điệu do bộ lọc thông cao gây ra.<br /> ô như trong hình, nguyên lý làm việc cụ thể 2.5. Cấu hình cho mục Ma trận hiệu<br /> như sau: chỉnh màu sắc ảnh<br /> 1. Processor Control: Một trong các Phần Ma trận hiệu chỉnh màu sắc cho<br /> con vi xử lý của bộ Zynq-7000 SoC sẽ thu ảnh (Color Correction Matrix) cung cấp<br /> thập thông tin ảnh từ lõi IP Thống kê ảnh khả năng hiệu chỉnh màu cho ảnh nhằm<br /> (Image Statistics IP) và dùng chúng để điều chỉnh sửa theo các nguồn sáng khác nhau.<br /> chỉnh cài đặt độ lợi và độ sáng. Có thể Ngoài ra, cài đặt cân bằng trắng có thể<br /> chỉnh độ sáng theo yêu cầu bằng thanh được điều khiển tự động bởi các bộ vi xử<br /> trượt ở mục Tarrget Intensity. lý của Zynq-7000 SoC. Dựa trên thông tin<br /> 2. Image Sensor Auto Gain/Exposure: thu nhận được từ lõi IP Image Statistic, con<br /> Sử dụng bộ điều khiển tự động độ lợi/độ sáng vi xử lý sẽ chọn tổng một hay nhiều mức<br /> nội trong cảm biến ảnh để tùy chỉnh độ lợi và cấu hình cân bằng trắng, dựa trên các xác<br /> độ sáng của ảnh. Có thể chỉnh thủ công bằng suất được tính toán của mỗi nguồn sáng.<br /> thanh trượt ở mục Target Intensity. Thanh chỉnh độ sáng và độ tương phản<br /> 2.2. Chụp ảnh từ video (Brightness and Contrast) được dùng để<br /> Mục chụp ảnh (Image Capture) của thay đổi cường độ của ảnh, làm cho ảnh tối<br /> giao diện người dùng cho phép chụp ảnh từ đi hoặc sáng hơn. Thanh chỉnh độ bão hòa<br /> video. Sau khi nhấn Click to Take Snapshot, (Saturation) dùng để thay đổi cường độ<br /> ảnh nén được hiển thị ra. Ảnh đúng kích cỡ màu sắc. Khi độ bão hòa bằng 0 tương ứng<br /> (24-bit RGB 1920x1080 bitmap (BMP)) có với ảnh mức xám.<br /> thể được lưu trữ bằng cách nhấn phải chuột Hình 5 minh họa ảnh hưởng của cân<br /> và chọn Save Picture As. bằng trắng trên bảng kiểm tra màu cho bốn<br /> 2.3. Cấu hình cho mục Sửa lỗi điểm nguồn chiếu sáng khác nhau<br /> ảnh (Defective Pixel Correction) Bốn ảnh phía trên là ngõ ra của chuỗi<br /> Để quan sát quá trình IP core này hoạt xử lý ảnh chụp từ cảm biến ảnh không qua<br /> động thì di chuyển thanh trượt Pixel Age chỉnh sửa màu sắc ứng với bốn nguồn sáng<br /> lên 100. Lúc này các chấm trắng nhỏ sẽ khác nhau. Bốn ảnh phía dưới là ngõ ra<br /> xuất hiện trên màn hình, đây chính là các được chỉnh sửa lại màu sắc, minh họa cho<br /> điểm ảnh lỗi trên ảnh. Bằng việc chỉnh cách chỉnh cân bằng sáng cho ảnh. Các ảnh<br /> thanh trượt Pixel Age về 0, các điểm ảnh được chụp bởi camera trong bộ ZVIK ở<br /> lỗi sẽ được loại bỏ khỏi ảnh thông qua xử hộp sáng X-Rite Macbeth Judge.<br /> lý của lõi IP sửa điểm ảnh lỗi.<br /> 2.4. Nâng cao chất lượng ảnh<br /> Phần nâng cao chất lượng ảnh (Image<br /> Enhancement) của Xilinx giúp giảm nhiễu<br /> và tăng cường đường biên của các vật thể<br /> trong ảnh. Bộ lọc hai chiều được dùng để<br /> khử nhiễu, đồng thời bảo toàn và tăng<br /> cường đường biên vật thể. Cụ thể, bộ lọc<br /> thông thấp được dùng để giảm nhiễu, bộ Hình 5. Kết quả bảng màu qua xử lý cân trắng.<br /> <br /> 6<br /> Hình 6. Sơ đồ khối phần cứng của bộ công cụ ZVIK.<br /> <br /> 3. Nền tảng phần cứng trong bộ ZVIK VITA-2000. Mặt khác, bộ tạo xung PS<br /> Quá trình xử lý ảnh và xử lý video (Programmable System) tạo xung clock<br /> trong bộ công cụ ZVIK được thực hiện AXI4 – lite 50 MHz và 200 MHz cho dữ<br /> theo từng bước tương ứng với từng khối IP liệu từ VITA receiver.<br /> core theo chuỗi như sơ đồ sau đây: 3.2. AXI interconnect<br /> Phần thiết kế PL có một bộ kết nối cho<br /> AXI4 master và một bộ kết nối cho AXI4 –<br /> Lite register interface. AXI4 interconnect<br /> được kết nối với một master, AXI VDMA,<br /> Hình 7. Chuỗi các khối IP core dùng trong đồng thời nó cũng được kết nối với một<br /> xử lý ảnh và xử lý video. slave, cổng HP0 trên Zynq-7000 AP SoC<br /> 3.1. Clocking PS; hoạt động ở tần số xung 148.5 MHz,<br /> Thành phần PL (Programmable Logic) AXI4 – Lite register interface hoạt động ở<br /> của hệ thống có hai vùng xung clock: tần số xung 50 MHz, kết nối như một slave<br /> AXI4 - Lite (vùng xung điều khiển hoạt tới cổng GP0 trên Zynq-7000 AP SoC.<br /> động của các thanh ghi) và vùng video Hoạt động của bộ xử lý song song được<br /> clock. Video clock có chức năng điều điều khiển bởi các thanh ghi bên trong mỗi<br /> khiển AXI4 interface (memory – mapped), IP core. Phụ thuộc vào luồng dữ liệu yêu<br /> AXI4 – Stream peripherals (các giao tiếp cầu, bộ xử lý (ARM A9) sẽ ghi lên những<br /> ngoại vi) và luồng video vào/ra của thiết thanh ghi bên trong mỗi IP core thông qua<br /> kế. Hai vùng clock này tương ứng là 50 AXI4 - Lite interconnect. Chức năng của<br /> MHz và 148.5 MHz. Nguồn clock ngoài AXI4 - Lite interconnect là đọc hoặc ghi<br /> 148.5 MHz trên FMC-IMAGEON card dữ liệu từ bộ xử lý, lựa chọn các IP core<br /> được đưa vào bộ tạo xung clock, để tạo ra cần giao tiếp và thiết lập kết nối giũa bộ xử<br /> xung clock 37.125 MHz cho camera lý và các IP core tương ứng.<br /> <br /> 7<br /> 3.3. Các khối IP core trong chuỗi xử c) Color Filter Array Interpolation (CFA)<br /> lý ảnh và xử lý video trên bộ công cụ ZVIK Đây là thành phần xử lý thứ hai trong<br /> a) Test Pattern Generator (TPG) chuỗi xử lý ảnh. CFA có chức năng chuyển<br /> Bộ tạo mẫu thử được Xilinx cung cấp ảnh từ định dạng RAW sang miền RGB<br /> dưới dạng các IP core. IP core TPG có bằng thuật toán CFA, đồng thời cũng có<br /> chức năng tạo các mẫu thử cho việc bắt thể phục hồi lại lỗi màu của các bit bằng bộ<br /> đầu hệ thống, đánh giá và tháo gỡ lỗi khi lọc Bayer. Ảnh được chụp bởi cảm biến<br /> gặp. IP core này cho phép thiết lập màu, ảnh CMOS/CCD ban đầu đều là ảnh đơn<br /> mức chất lượng hình ảnh và trình diễn sắc. Để tạo ra ảnh màu, mỗi điểm ảnh cần<br /> video. Đây là khối xử lý bắt buộc phải có là tổ hợp của ba màu cơ bản là đỏ, lam và<br /> đối với những thiết kế sử dụng luồng dữ lục. Trước khi cảm biến màu được chế tạo,<br /> liệu từ camera VITA-2000. Có thể thấy có ảnh màu được tạo ra bằng cách để ba tấm<br /> hai khối AXI TPG trong chuỗi xử lý ảnh. ảnh đỏ, lam và lục đồng nhất nhau phía<br /> Khối thứ nhất có thể chèn các điểm ảnh lỗi trước cảm biến ảnh. Việc đặt các tấm lọc<br /> để kiểm tra khả năng làm việc của khối màu này (gọi là Color Filter Array) phía<br /> AXI DPC phía sau. Khối TPG thứ hai được trước cảm biến ảnh sẽ cho phép khôi phục<br /> dùng để chèn một mẫu thử RGB vào trong lại màu sắc của một bức ảnh. Các bộ lọc<br /> chuỗi xử lý. Trong quá trình xử lý ảnh và màu này được xem như một phần của cảm<br /> video thực tế, hai khối TPG sẽ bị vô hiệu biến ảnh và được đặt ngay trên các<br /> và để dòng dữ liệu video truyền qua mà transistor quang điện. Những mẫu này<br /> không bị sửa đổi gì. được gọi là mẫu Bayer và được sử dụng ở<br /> b) Defective Pixel Correction (DPC)<br /> nhiều hệ thống xử lý ảnh số.<br /> IP core AXI Defective Pixel Correction<br /> d) Image Statistic Engine (Stats)<br /> (DPC) là phần tử xử lý đầu tiên trong chuỗi<br /> Chức năng của IP core Image Statistic<br /> xử lý chính thức. Dữ liệu ảnh chụp từ<br /> Engine (Stats) là phân tích các đặc trưng<br /> camera VITA-2000 có thể bao gồm một<br /> của ảnh như: color histograms, trung bình<br /> hoặc vài điểm ảnh lỗi, nguyên nhân có thể<br /> và phương sai của cường độ sáng. Các<br /> do lỗi phần cứng (manufacturing fault) hoặc<br /> thông số này sẽ được gửi cho PS để thực<br /> có thể do điều kiện môi trường (lỗi phơi<br /> hiện các giải thuật cân bằng trắng và độ<br /> sáng). DPC có chức năng phục hồi lại những<br /> phơi sáng của ảnh.<br /> điểm ảnh lỗi này thông qua bộ lọc Bayer<br /> e) Color Space Conversion<br /> subsample. Nguyên lý của bộ lọc Bayer là<br /> Cores Color Space Conversion có<br /> so sánh mức xám của một điểm ảnh với các<br /> điểm ảnh lân cận, nếu có sự sai biệt lớn về chức năng chuyển ảnh không gian màu<br /> mức xám thì bộ lọc Bayer sẽ thay thế mức RGB thành YcrCb (YUV) để phù hợp với<br /> xám của điểm ảnh đó bằng mức xám tương thiết bị phát (màn hình). Nó là một bộ nhận<br /> quan với các điểm ảnh lân cận nó. ma trện 3x3 đơn giản, giúp chuyển đổi màu<br /> từ các mẫu ngõ vào.<br /> g) Image Edge Enhancement<br /> Chức năng của IP core này là giảm<br /> nhiễu của ảnh và làm nổi bật các đường<br /> Hình 8. Mô tả ảnh sau khi đi qua bộ sửa viền của vật thể bằng cách sử dụng bộ lọc<br /> lỗi điểm ảnh. hai chiều. Sau khi đưa qua bộ lọc thông<br /> <br /> 8<br /> thấp để giảm nhiễu và đưa qua bộ lọc hay còn được gọi là phân đoạn điểm ảnh<br /> thông cao để làm nổi bật đương viền, kết tiền cảnh/ hậu cảnh.<br /> quả hỗn hợp được đưa vào hai module anti- Mục tiêu của việc phân đoạn ảnh là<br /> halo và ant-alias. Module anti-halo sẽ làm đánh dấu mỗi điểm ảnh trong một khung<br /> giảm nhiễn vòng cũng như hiệu ứng quá tải hình như một phần của khung nền tĩnh hay<br /> do bộ lọc thông cao gây ra. Module anti- tiền cảnh chuyển động. Quyết định phụ<br /> alias sẽ làm giảm nhiễu chồng lấn xuất thuộc vào các mô hình thống kê và tổ hợp.<br /> hiện khi tăng cường đường biên. Các điểm ảnh trong một bức ảnh được xem<br /> h) Color Correction Matrix (CCM) là độc lập với nhau. Mỗi điểm ảnh được mô<br /> Trong một số điều kiện có thể gây ra hình hóa bởi tổ hợp của K mô hình nền<br /> sự mất cân bằng trong các thông số của ảnh Gauss mạnh nhất, trong ứng dụng này chọn<br /> - nguyên nhân có thể do điều kiện sáng K=4. Mỗi mô hình Gauss được định nghĩa<br /> thay đổi hoặc do đặc tính của cảm biến. Do bởi ba giá trị trung bình gồm<br /> đó, core AXI CCM có chức năng cân bằng , tương ứng với ba màu cơ<br /> lại các thông số ảnh như: cân bằng trắng, bản đỏ, lục, lam; với phương sai , và<br /> độ sáng của ảnh, độ tương phản và mức<br /> bão hòa. trọng lượng . Các mô hình có không<br /> i) Gamma Correction gian màu RGB được xem như không gian<br /> AXI Gamma Correction, còn gọi là màu ‘nền tĩnh’ của điểm ảnh. Ở đây có K=4<br /> Gamma Compression hay encoding, được mô hình Gauss độc lập áp dụng cho mỗi<br /> dùng để mã hóa tính chất tuyến tính của giá điểm ảnh cho phép các trường hợp mà điểm<br /> trị màu RGB cho phù hợp với tính phi ảnh thay đổi giữa hai màu đều đặn, như<br /> tuyến của thiết bị phát (ở đây là màn hình). thang máy di chuyển hay cây lay trong gió.<br /> 4. Ứng dụng bộ công cụ ZVIK trong Mỗi mô hình cũng chứa trọng số chỉ ra<br /> nhận dạng chuyển động mức độ thường xuyên mà mỗi mẫu cụ thể<br /> Luồng video được thực hiện bằng cánh được mô tả thành công theo điểm ảnh.<br /> sử dụng các AXI Streams, HDMI được sử<br /> dụng cho ngõ vào và ngõ ra. Các IP core<br /> được xây dựng bằng phần mềm Vivado<br /> HLS (tổng hợp mức cao từ ngôn ngữ lập<br /> trình C). Ở đây, ứng dụng được chạy trên<br /> phần mềm Vivado bản 2013.3 với các IP<br /> core được tích hợp.<br /> Một ứng dụng thực tế cho việc nhận<br /> dạng chuyển động là sử dụng trong các<br /> camera an ninh giám sát thông minh. Ngõ Hình 9. Các bước giải thuật tiến hành cập<br /> vào qua cổng HDMI sẽ được thay thế bởi nhật các mẫu.<br /> một camera và hệ thống FPGA có thể tích Hình phía trên cho thấy cách mà giải<br /> hợp trong module camera. thuật cập nhật các mẫu; được đơn giản hóa<br /> 4.1. Giải thuật nhận dạng chuyển động bằng việc bỏ qua các màu RGB và chỉ hiển<br /> Hệ thống này thực hiện nhận dạng thị ba mẫu. Hình đầu tiên trên cùng hiện thị<br /> chuyển động trong video thời gian thực, tình trạng ban đầu với ba mẫu<br /> <br /> 9<br /> Phần xử lý video đầu vào được nối với<br /> nhau bằng các dây màu vàng như trên Hình<br /> Khi màu của điểm ảnh trùng với một trong 10. Phần này bao gồm các lõi xử lý sau<br /> các mẫu, thì mô hình sẽ được tăng cường đây: HDMI input and decoder; Video to<br /> bằng cách tăng nhẹ trọng lượng của nó, và AXI-Stream convertor, YUV 4:2:2 to 4:4:4<br /> màu của điểm ảnh được xác nhận như expander (16 to 24 bits) (custom core in<br /> khung nền ổn định. Như ở hình thứ hai, VHDL), YUV 4:4:4 to RGB colour space<br /> màu trùng vào mẫu M3, trọng số được converter, 24-to-32 bits pixel padding,<br /> tăng lên. Nếu màu không trùng với mẫu Video DMA (lưu trữ video đầu vào, sau đó<br /> nào thì tự mẫu sẽ dịch chuyển nhẹ hướng truyền tới bộ nhớ chính), AXI memory<br /> tới vị trí của màu. Tuy nhiên, khi màu của interconnect, Cổng kết nối Zynq HP0<br /> điểm ảnh mới không trùng bất kì mô hình (150MHz, 64bits).<br /> Gauss nào, thì sẽ được xem như tiền cảnh Phần xử lý video đầu ra được nối với<br /> đang di chuyển. Mô hình yếu nhất sẽ bị nhau bằng các dây màu lam như trên hình.<br /> xóa bỏ và thay thế bằng một mô hình mới Cơ bản phần này cũng bao gồm các thành<br /> đại diện cho màu mới, mặc dù có trọng số phần như phần xử lý video đầu vào nhưng<br /> khởi tạo nhỏ. Điều này được minh họa như đảo ngược thứ tự, cụ thể: Cổng kết nối Zynq<br /> trên hình thứ ba. Giải thuật được lập trình HP1 (150MHz, 64bits), AXI memory<br /> bằng ngôn ngữ C. interconnect, Video DMA (đọc và tạo ra<br /> 4.1. Cấu trúc phần cứng dòng điểm ảnh trên ngõ ra AXI-Stream), 32-<br /> 4.2. Hệ thống này gồm ba phần to-24 bits trim, RGB to YUV 4:4:4 colour<br /> chính: Nhận và xử lý video đầu vào, Xử lý space convertor, YUV 4:4:4 to YUV 4:2:2<br /> và xuất video đầu ra, Hệ thống con tăng conversion (24 to 16 bits), AXI-Stream to<br /> tốc độ xử lý. video stream, HDMI output coder.<br /> <br /> <br /> <br /> <br /> Hình 10. Sơ đồ khối thiết kế cho ứng dụng nhận dạng chuyển động.<br /> <br /> <br /> 10<br /> Hệ thống con tăng tốc độ xử lý sử bên thứ ba là Avnet. Giải thuật nhận dạng<br /> dụng các đường dẫn màu đỏ như trong chuyển động đã được đơn gian hóa bớt để<br /> hình. Cụ thể gồm các thành phần sau: Cổng có thể dễ dàng hơn trong việc xây dựng<br /> kết nối Zynq HP2 (100MHz, 64bits) (truy phần cứng cho hệ thống.<br /> cập điểm ảnh và dữ liệu thuộc tính), Ở ứng dụng trên, video đầu vào được<br /> Central DMA engine (tự động tìm các khối phát từ PC truyền qua cổng HDMI tới<br /> mô tả mới thông qua cổng ACP), AXI ZVIK, sau khi xử lý sẽ hiện kết quả lên<br /> interconnects, AXI BRAM controllers, màn hình. Để áp dụng ứng dụng này vào<br /> BRAMs (chứa dữ liệu hoạt động cho bộ thực tiến, hệ thống sẽ được phát triển lên<br /> gia tốc- các điểm ảnh vào/ ra…). bằng cách thay đầu vào bằng hình ảnh từ<br /> Phần cứng cho hệ thống gia tốc này camera 1080p60 giống như sơ đồ khối<br /> được xây dựng trên phần mềm Vivado dưới đây:<br /> HLS.<br /> 4.3. Kết quả mô phỏng<br /> <br /> <br /> <br /> <br /> Hình 12. Sơ đồ khối phần cứng cho ứng<br /> dụng nhận dạng chuyển động trực tiếp từ<br /> Hình 11. Giao diện hiển thị kết quả ứng camera.<br /> dụng nhận dạng chuyển động. Thay vì phương pháp cổ điển sử dụng<br /> Ngõ vào và ngõ ra được truyền thông phần mềm để thực hiện các giải thuật tính<br /> qua cổng HDMI trên card mở rộng toán phức tạp và linh động nhưng tốc độ<br /> Imageon. Video đầu vào có độ phân giải xử lý chậm; hoặc sử dụng phần cứng để<br /> 1080p truyền qua cổng HDMI từ PC, ngõ thực hiện các giải thuật tính toán tốc độ<br /> ra ở độ phân giải 1280x720p được hiển thị nhanh nhưng không có khả năng tùy biến<br /> lên màn hình. Ảnh ngõ ra có một khung theo yêu cầu, ZVIK cung cấp cho người<br /> hình kích thước 640x480 ở góc trái màn dùng khả năng kết hợp độc đáo giữa phần<br /> hình, hiển thị nguồn để nhận diện chuyển mềm ứng dụng trên nền tảng Linux và<br /> động. Ở góc phải màn hình là một khung phần cứng thông qua các IP core để một<br /> hình trắng đen có kích thước 640x480 để ứng dụng vừa có tộc độ xử lý nhanh của<br /> hiện thị đầu ra của ứng dụng. phần PL và cũng như có thể thay đổi linh<br /> 5. Kết luận và hướng phát triển hoạt nhờ phần PS. Điều này mang lại cho<br /> tương lai các ứng dụng thời gian thực một bước tiến<br /> Bài báo này đã trình bày ứng dụng của mới, và tất nhiên, đi kèm với nó là chất<br /> bộ ZVIK trong việc nhận dạng chuyển lượng hình ảnh/ video được cải thiện lên<br /> động từ video; cũng đã thành công xây nhiều lần.<br /> dựng nên phần cứng cho ứng dụng, bao Trong tương lai, bộ ZVIK có thể được<br /> gồm các khối IP core xử lý ảnh và video sử dụng nhiều hơn trong các ứng dụng xử<br /> được cung cấp bởi hãng Xilinx cũng như lý video thời gian thực khác. Cụ thể là ứng<br /> <br /> 11<br /> dụng làm hệ thống camera giám sát chuyển 5. P. KaewTraKulPong and R. Bowden, “An<br /> động, nhận dạng và theo dấu khuôn mặt Improved Adaptive Background Mixture<br /> Model for Realtime Tracking with Shadow<br /> của người đi đường, trong các tòa nhà, văn Detection”, Proc. 2nd European Workshop on<br /> phòng. Ngoài ra, ZVIK cũng có thể được Advanced Video Based Surveillance Systems,<br /> ứng dụng trong hệ thống automotive (lái xe AVBS01. Sept. 2001, Kluwer Academic<br /> hơi tự động), các tác vụ cụ thể của camera Publishers.<br /> như là nhận dạng làn đường, biển báo giao 6. Sofia Nayak, Shashank Sekhar Pujari,<br /> “Moving Object Tracking Application: FPGA<br /> thông, cảnh báo các chướng ngại vật trên And Model Based”, (2015) International<br /> đường đi, tránh vật cản, hạn chế va chạm Conference on Computing Communication<br /> với các phương tiện đang lưu thông khác. Control and Automation.<br /> Ngoài ra, camera cũng có thể được dùng để 7. S. Pleshkova, “Development of Embedded<br /> Motion Detection in Thermo Visual System<br /> kiểm soát trạng thái của lái xe như là buồn<br /> with Audio Visual Interface to Information<br /> ngủ, không tỉnh táo khi lái xe… Networks”, Recent Advances in Systems<br /> Lời cảm ơn: Nghiên cứu này được hổ Science, pp. 143 - 148.<br /> trợ bởi Đại Học Quốc Gia Thành phố Hồ 8. Peyman Sabouri, Hamid GholamHosseini and<br /> Chí Minh theo mã số B2015-20-02. John Collins, Border Detection of Melanoma<br /> Skin Lesions on a Single System on Chip<br /> TÀI LIỆU THAM KHẢO (SoC), Auckland University of Technology<br /> 1. Jim Beneke, Designing High Pixel - Rate Auckland, New Zealand.<br /> Video Systems with Xilinx FPGAs, 2012, 9. Mohammadsadegh Sadri et al, Energy and<br /> Avnet Inc. Performance Exploration of Accelerator<br /> 2. Cecile Belleudy et al, “Fall Detection Coherency Port Using Xilinx ZYNQ,<br /> Application on an ARM and FPGA Technische Universitat Kaiserslautern.<br /> Heterogeneous Computing Platform”, 10. Sheng Yang at al, Adaptive Energy<br /> IJAREEIE, vol.3, issue 8, August 2014. Minimization of Embedded Heterogeneous<br /> 3. Louise H. Crockett. Ross A. Elliot, Martin A. Systems using Regression-based Learning,<br /> Enderwitz and Robert W. Stewart, The Zynq University of Southampton and Imperial<br /> Book- Embedded Processing with the ARM® College, UK.<br /> Cortex®-A9 on the Xilinx® Zynq®-7000 All<br /> Programmable SoC, Department of PHỤ LỤC: TỪ VIẾT TẮT<br /> Electronic and Electrical Engineering, [1] AXI: Advanced eXtensible Interface.<br /> University of Strathclyde, Glasgow, Scotland,<br /> UK, 2014. [2] FPGA: Field-Programmable Gate Array.<br /> 4. Christopher V. Dobson, An Architecture [3] GUI: Graphical User Interface.<br /> Study on a Xilinx Zynq Cluster with Software [4] IP: Intellectual Property core.<br /> Defined Radio Applications, Virginia<br /> Polytechnic Institute and State University, [5] ZVIK: Xilinx Zynq®-7000 All Program-<br /> 2014. mable (AP) SoC Video and Imaging Kit.<br /> <br /> <br /> Ngày nhận bài: 06/6/2016 Biên tập xong: 15/01/2017 Duyệt đăng: 20/01/2017<br /> <br /> <br /> <br /> <br /> 12<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2