1. Trang chủ
  2. » Văn Hóa - Nghệ Thuật

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

10 62 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,21 MB

Nội dung

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.

Trang 1

TẠP CHÍ KHOA HỌC ĐẠI HỌC SÀI GÒN Số 24 (49) - Tháng 01/2017

Ứng dụng cơng cụ mới trên nền tảng FPGA

vào xử lý ảnh và video

A novel FPGA implementation for image and video processing applications

GS.TS Lê Tiến Thường, Trường Đại học Bách khoa TP.HCM

Le Tien Thuong, Prof.,Ph.D., Ho Chi Minh University of Technology

Đinh Gia Khánh, Trường Đại học Bách khoa TP.HCM Dinh Gia Khanh, Ho Chi Minh University of Technology

Ngơ Hải Long, Trường Đại học Bách khoa TP.HCM Ngo Hai Long, Ho Chi Minh University of Technology

Nguyễn Quang Trường, Trường Đại học Bách khoa TP.HCM Nguyen Quang Truong, Ho Chi Minh University of Technology

Tĩm tắt

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 đượ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 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 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ệ 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 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

Từ đĩ cĩ thể được ứng dụng trong các hệ thống giám sát, an ninh

Từ khĩa: FPGA; zvik; zynq-7000; xử lý ảnh; xử lý video thời gian thực

Abstract

In this article, we introduce Xilinx ZVIK, a novel FPGA implementation for real-time video and image processing applications that has been developed by Xilinx Inc The ZVIK was built based on the

Zynq-7000 ZC702 and contains additional hardware, software, and IP core components for building and developing custom video applications In this article, the ZVIK is applied with real-time image and video applications, supported by a web-based graphical user interface, which allows configuring each of the Xilinx video IP cores in the image-processing pipeline A motion detection algorithm is applied on the hardware and controlled by the embedded system in parallel By all this technique, Xilinx ZVIK can

be applied in monitoring and security cameras

Keywords: FPGA; zvik; zynq-7000; image processing; real-time video processing

Trang 2

1 Giới thiệu

Bộ công cụ Xilinx Zynq®-7000 All

Programmable (AP) SoC Video and

Imaging Kit (ZVIK) xây dựng trên nền

tảng của dòng kit ZC702, bao gồm phần

cứng, phần mềm và các thành phần IP core

cần thiết để phát triển các ứng dụng xử lý

ảnh và xử lý video thời gian thực Ngoài ra,

bộ công cụ cũng bao gồm một module I/O

FMC được cung cấp bởi Avnet, hỗ trợ kết

nối qua cổng HDMI, nhận ngõ vào từ cảm

biến ảnh CMOS, cho phép phát triển tức

thời phần mềm hệ thống, phần sụn và các

thiết kế phần cứng dBên cạnh khả năng xử

lý mạnh mẽ của con ARM® Cortex™-A9

MPCore™, bộ công cụ còn xây dựng các

kết nối ngoại vi cho phép kết nối và giao

tiếp với các thiết bị ngoại vi như PC hay

thẻ nhớ SD

Hình 1 Bộ công cụ ZVIK

Video ngõ vào được tạo bởi cảm biến

ảnh VITA-2000 từ bộ bán dẫn ON, được

cấu hình ở độ phân giải 1080 Ảnh mẫu

con thô Bayer được biến đổi thành ảnh

màu RGB bởi bộ liên hợp triển khai xử lý

ảnh sử dụng các lõi video IP LogiCORE™,

nó sẽ loại bỏ các điểm ảnh lỗi, de-mosaic

và sửa lại màu chính xác cho ảnh Một bộ

đệm khung hình được lắp đặt trong hệ

thống xử lý bộ nhớ DDR3, làm cho hình

ảnh được truy cập tới các lõi bộ xử lý

ARM® thông qua bộ AXI Video Direct

Memory Access (VDMA) Bộ đệm khung

hình không cần thiết trong quy trình xử lý ảnh, nhưng lại được bao hàm trong thiết kế

để cho phép chụp ảnh từ video dùng trong phân tích Hình 2 chỉ ra sơ đồ khối của thiết kế camera 1080p60

Hình 2 Sơ đồ khối bộ ZVIK và các thiết

bị ngoại vi

Dòng Zynq-7000 tích hợp hệ thống

xử lý trên nền của chip lõi kép ARM® Cortex™-A9 MPCore™ cùng phần luận

lý lập trình của Xilinx, với công nghệ xử

lý hiện đại nhất, hiệu suất xử lý cao, hiệu năng sử dụng năng lượng thấp, kích thước chỉ 28nm Các CPU của ARM Cortex-A9 MPCore là phần quan trọng nhất của hệ thống lập trình, bên cạnh bộ nhớ trong, bộ nhớ ngoài cùng các thiết bị ngoại vi khác Hệ quả là hệ thống

Zynq-7000 có thể ứng dụng rộng rãi ở nhiều lình vực, chẳng hạn như hỗ trợ tự động lái xe, truyền video, điều khiển động cơ công nghiệp, kết nối hệ thống mạng, thị giác máy tính, camera thông minh, hệ thống giám sát và theo dõi, xử lý ảnh chẩn đoán trong y khoa,…

Giao diện đồ họa người dùng (GUI – Graphical User Interface) trên nền web cho phép cấu hình mỗi lõi IP video trong quy trình xử lý ảnh, hiển thị thông tin về ảnh đi vào như đồ thị histogram của dữ liệu, và cho phép các thao tác nền vi xử lý trên dữ liệu như cân bằng trắng tự động hay phơi

sáng tự động

Trang 3

Hình 3 Cấu trúc của họ Zynq-7000.

2 Giao diện người dùng trên web

Để truy cập vào giao diện người dùng

trên nền web, sử dụng một trình duyệt web

như Internet Explorer, Firefox hoặc Google

Chrome Nhập vào địa chỉ IP của bộ ZVIK

là http://192.168.1.10 Trang web sẽ hiện

ra như Hình 4

Từ giao diện người dùng này, có thể

điều chỉnh các thông số về khung hình

(frame) trong video theo mong muốn Khi điều chỉnh thì trình duyệt web sẽ gửi các gói HTTP Request đến cho bộ ZVIK Bộ ZVIK

sẽ thực hiện hiệu chỉnh theo các thông số và gửi trả lại gói HTTP Response Việc bộ ZVIK điều chỉnh các thông số hình ảnh như thế nào thì ZVIK sẽ sử dụng phần cứng và phần mềm trong board để thao tác, có thể được tìm hiểu sâu hơn ở các phần sau

Hình 4 Giao diện người dùng (GUI) của ZVIK trên nền web

Trang 4

2.1 Điều chỉnh độ lợi (Gain) và độ

sáng (Exposure)

Độ lợi và độ sáng có thể được điều

chỉnh tự động bằng cách đánh dấu vào các

ô như trong hình, nguyên lý làm việc cụ thể

như sau:

1 Processor Control: Một trong các

con vi xử lý của bộ Zynq-7000 SoC sẽ thu

thập thông tin ảnh từ lõi IP Thống kê ảnh

(Image Statistics IP) và dùng chúng để điều

chỉnh cài đặt độ lợi và độ sáng Có thể

chỉnh độ sáng theo yêu cầu bằng thanh

trượt ở mục Tarrget Intensity

2 Image Sensor Auto Gain/Exposure:

Sử dụng bộ điều khiển tự động độ lợi/độ sáng

nội trong cảm biến ảnh để tùy chỉnh độ lợi và

độ sáng của ảnh Có thể chỉnh thủ công bằng

thanh trượt ở mục Target Intensity

2.2 Chụp ảnh từ video

Mục chụp ảnh (Image Capture) của

giao diện người dùng cho phép chụp ảnh từ

video Sau khi nhấn Click to Take Snapshot,

ảnh nén được hiển thị ra Ảnh đúng kích cỡ

(24-bit RGB 1920x1080 bitmap (BMP)) có

thể được lưu trữ bằng cách nhấn phải chuột

và chọn Save Picture As

2.3 Cấu hình cho mục Sửa lỗi điểm

ảnh (Defective Pixel Correction)

Để quan sát quá trình IP core này hoạt

động thì di chuyển thanh trượt Pixel Age

lên 100 Lúc này các chấm trắng nhỏ sẽ

xuất hiện trên màn hình, đây chính là các

điểm ảnh lỗi trên ảnh Bằng việc chỉnh

thanh trượt Pixel Age về 0, các điểm ảnh

lỗi sẽ được loại bỏ khỏi ảnh thông qua xử

lý của lõi IP sửa điểm ảnh lỗi

2.4 Nâng cao chất lượng ảnh

Phần nâng cao chất lượng ảnh (Image

Enhancement) của Xilinx giúp giảm nhiễu

và tăng cường đường biên của các vật thể

trong ảnh Bộ lọc hai chiều được dùng để

khử nhiễu, đồng thời bảo toàn và tăng

cường đường biên vật thể Cụ thể, bộ lọc

thông thấp được dùng để giảm nhiễu, bộ

lọc thông cao được dùng để làm sắc nét đường biên Ngoài ra, hiệu ứng khử Halo giúp giảm nhiễu vòng và hiệu ứng cường điệu do bộ lọc thông cao gây ra

2.5 Cấu hình cho mục Ma trận hiệu chỉnh màu sắc ảnh

Phần Ma trận hiệu chỉnh màu sắc cho ảnh (Color Correction Matrix) cung cấp khả năng hiệu chỉnh màu cho ảnh nhằm chỉnh sửa theo các nguồn sáng khác nhau Ngoài ra, cài đặt cân bằng trắng có thể được điều khiển tự động bởi các bộ vi xử

lý của Zynq-7000 SoC Dựa trên thông tin thu nhận được từ lõi IP Image Statistic, con

vi xử lý sẽ chọn tổng một hay nhiều mức cấu hình cân bằng trắng, dựa trên các xác suất được tính toán của mỗi nguồn sáng Thanh chỉnh độ sáng và độ tương phản (Brightness and Contrast) được dùng để thay đổi cường độ của ảnh, làm cho ảnh tối

đi hoặc sáng hơn Thanh chỉnh độ bão hòa (Saturation) dùng để thay đổi cường độ màu sắc Khi độ bão hòa bằng 0 tương ứng với ảnh mức xám

Hình 5 minh họa ảnh hưởng của cân bằng trắng trên bảng kiểm tra màu cho bốn nguồn chiếu sáng khác nhau

Bốn ảnh phía trên là ngõ ra của chuỗi

xử lý ảnh chụp từ cảm biến ảnh không qua chỉnh sửa màu sắc ứng với bốn nguồn sáng khác nhau Bốn ảnh phía dưới là ngõ ra được chỉnh sửa lại màu sắc, minh họa cho cách chỉnh cân bằng sáng cho ảnh Các ảnh được chụp bởi camera trong bộ ZVIK ở hộp sáng X-Rite Macbeth Judge

Hình 5 Kết quả bảng màu qua xử lý cân trắng

Trang 5

Hình 6 Sơ đồ khối phần cứng của bộ công cụ ZVIK

3 Nền tảng phần cứng trong bộ ZVIK

Quá trình xử lý ảnh và xử lý video

trong bộ công cụ ZVIK được thực hiện

theo từng bước tương ứng với từng khối IP

core theo chuỗi như sơ đồ sau đây:

Hình 7 Chuỗi các khối IP core dùng trong

xử lý ảnh và xử lý video

3.1 Clocking

Thành phần PL (Programmable Logic)

của hệ thống có hai vùng xung clock:

AXI4 - Lite (vùng xung điều khiển hoạt

động của các thanh ghi) và vùng video

clock Video clock có chức năng điều

khiển AXI4 interface (memory – mapped),

AXI4 – Stream peripherals (các giao tiếp

ngoại vi) và luồng video vào/ra của thiết

kế Hai vùng clock này tương ứng là 50

MHz và 148.5 MHz Nguồn clock ngoài

148.5 MHz trên FMC-IMAGEON card

được đưa vào bộ tạo xung clock, để tạo ra

xung clock 37.125 MHz cho camera

VITA-2000 Mặt khác, bộ tạo xung PS (Programmable System) tạo xung clock AXI4 – lite 50 MHz và 200 MHz cho dữ liệu từ VITA receiver

3.2 AXI interconnect

Phần thiết kế PL có một bộ kết nối cho AXI4 master và một bộ kết nối cho AXI4 – Lite register interface AXI4 interconnect được kết nối với một master, AXI VDMA, đồng thời nó cũng được kết nối với một slave, cổng HP0 trên Zynq-7000 AP SoC PS; hoạt động ở tần số xung 148.5 MHz, AXI4 – Lite register interface hoạt động ở tần số xung 50 MHz, kết nối như một slave tới cổng GP0 trên Zynq-7000 AP SoC Hoạt động của bộ xử lý song song được điều khiển bởi các thanh ghi bên trong mỗi

IP core Phụ thuộc vào luồng dữ liệu yêu cầu, bộ xử lý (ARM A9) sẽ ghi lên những thanh ghi bên trong mỗi IP core thông qua AXI4 - Lite interconnect Chức năng của AXI4 - Lite interconnect là đọc hoặc ghi

dữ liệu từ bộ xử lý, lựa chọn các IP core cần giao tiếp và thiết lập kết nối giũa bộ xử

lý và các IP core tương ứng

Trang 6

3.3 Các khối IP core trong chuỗi xử

lý ảnh và xử lý video trên bộ công cụ ZVIK

a) Test Pattern Generator (TPG)

Bộ tạo mẫu thử được Xilinx cung cấp

dưới dạng các IP core IP core TPG có

chức năng tạo các mẫu thử cho việc bắt

đầu hệ thống, đánh giá và tháo gỡ lỗi khi

gặp IP core này cho phép thiết lập màu,

mức chất lượng hình ảnh và trình diễn

video Đây là khối xử lý bắt buộc phải có

đối với những thiết kế sử dụng luồng dữ

liệu từ camera VITA-2000 Có thể thấy có

hai khối AXI TPG trong chuỗi xử lý ảnh

Khối thứ nhất có thể chèn các điểm ảnh lỗi

để kiểm tra khả năng làm việc của khối

AXI DPC phía sau Khối TPG thứ hai được

dùng để chèn một mẫu thử RGB vào trong

chuỗi xử lý Trong quá trình xử lý ảnh và

video thực tế, hai khối TPG sẽ bị vô hiệu

và để dòng dữ liệu video truyền qua mà

không bị sửa đổi gì

b) Defective Pixel Correction (DPC)

IP core AXI Defective Pixel Correction

(DPC) là phần tử xử lý đầu tiên trong chuỗi

xử lý chính thức Dữ liệu ảnh chụp từ

camera VITA-2000 có thể bao gồm một

hoặc vài điểm ảnh lỗi, nguyên nhân có thể

do lỗi phần cứng (manufacturing fault) hoặc

có thể do điều kiện môi trường (lỗi phơi

sáng) DPC có chức năng phục hồi lại những

điểm ảnh lỗi này thông qua bộ lọc Bayer

subsample Nguyên lý của bộ lọc Bayer là

so sánh mức xám của một điểm ảnh với các

điểm ảnh lân cận, nếu có sự sai biệt lớn về

mức xám thì bộ lọc Bayer sẽ thay thế mức

xám của điểm ảnh đó bằng mức xám tương

quan với các điểm ảnh lân cận nó

Hình 8 Mô tả ảnh sau khi đi qua bộ sửa

lỗi điểm ảnh

c) Color Filter Array Interpolation (CFA)

Đây là thành phần xử lý thứ hai trong chuỗi xử lý ảnh CFA có chức năng chuyển ảnh từ định dạng RAW sang miền RGB bằng thuật toán CFA, đồng thời cũng có thể phục hồi lại lỗi màu của các bit bằng bộ lọc Bayer Ảnh được chụp bởi cảm biến ảnh CMOS/CCD ban đầu đều là ảnh đơn sắc Để tạo ra ảnh màu, mỗi điểm ảnh cần

là tổ hợp của ba màu cơ bản là đỏ, lam và lục Trước khi cảm biến màu được chế tạo, ảnh màu được tạo ra bằng cách để ba tấm ảnh đỏ, lam và lục đồng nhất nhau phía trước cảm biến ảnh Việc đặt các tấm lọc màu này (gọi là Color Filter Array) phía trước cảm biến ảnh sẽ cho phép khôi phục lại màu sắc của một bức ảnh Các bộ lọc màu này được xem như một phần của cảm biến ảnh và được đặt ngay trên các transistor quang điện Những mẫu này được gọi là mẫu Bayer và được sử dụng ở nhiều hệ thống xử lý ảnh số

d) Image Statistic Engine (Stats)

Chức năng của IP core Image Statistic Engine (Stats) là phân tích các đặc trưng của ảnh như: color histograms, trung bình

và phương sai của cường độ sáng Các thông số này sẽ được gửi cho PS để thực hiện các giải thuật cân bằng trắng và độ phơi sáng của ảnh

e) Color Space Conversion

Cores Color Space Conversion có chức năng chuyển ảnh không gian màu RGB thành YcrCb (YUV) để phù hợp với thiết bị phát (màn hình) Nó là một bộ nhận

ma trện 3x3 đơn giản, giúp chuyển đổi màu

từ các mẫu ngõ vào

g) Image Edge Enhancement

Chức năng của IP core này là giảm nhiễu của ảnh và làm nổi bật các đường viền của vật thể bằng cách sử dụng bộ lọc hai chiều Sau khi đưa qua bộ lọc thông

Trang 7

thấp để giảm nhiễu và đưa qua bộ lọc

thông cao để làm nổi bật đương viền, kết

quả hỗn hợp được đưa vào hai module

anti-halo và ant-alias Module anti-anti-halo sẽ làm

giảm nhiễn vòng cũng như hiệu ứng quá tải

do bộ lọc thông cao gây ra Module

anti-alias sẽ làm giảm nhiễu chồng lấn xuất

hiện khi tăng cường đường biên

h) Color Correction Matrix (CCM)

Trong một số điều kiện có thể gây ra

sự mất cân bằng trong các thông số của ảnh

- nguyên nhân có thể do điều kiện sáng

thay đổi hoặc do đặc tính của cảm biến Do

đó, core AXI CCM có chức năng cân bằng

lại các thông số ảnh như: cân bằng trắng,

độ sáng của ảnh, độ tương phản và mức

bão hòa

i) Gamma Correction

AXI Gamma Correction, còn gọi là

Gamma Compression hay encoding, được

dùng để mã hóa tính chất tuyến tính của giá

trị màu RGB cho phù hợp với tính phi

tuyến của thiết bị phát (ở đây là màn hình)

4 Ứng dụng bộ công cụ ZVIK trong

nhận dạng chuyển động

Luồng video được thực hiện bằng cánh

sử dụng các AXI Streams, HDMI được sử

dụng cho ngõ vào và ngõ ra Các IP core

được xây dựng bằng phần mềm Vivado

HLS (tổng hợp mức cao từ ngôn ngữ lập

trình C) Ở đây, ứng dụng được chạy trên

phần mềm Vivado bản 2013.3 với các IP

core được tích hợp

Một ứng dụng thực tế cho việc nhận

dạng chuyển động là sử dụng trong các

camera an ninh giám sát thông minh Ngõ

vào qua cổng HDMI sẽ được thay thế bởi

một camera và hệ thống FPGA có thể tích

hợp trong module camera

4.1 Giải thuật nhận dạng chuyển động

Hệ thống này thực hiện nhận dạng

chuyển động trong video thời gian thực,

hay còn được gọi là phân đoạn điểm ảnh tiền cảnh/ hậu cảnh

Mục tiêu của việc phân đoạn ảnh là đánh dấu mỗi điểm ảnh trong một khung hình như một phần của khung nền tĩnh hay tiền cảnh chuyển động Quyết định phụ thuộc vào các mô hình thống kê và tổ hợp Các điểm ảnh trong một bức ảnh được xem

là độc lập với nhau Mỗi điểm ảnh được mô hình hóa bởi tổ hợp của K mô hình nền Gauss mạnh nhất, trong ứng dụng này chọn K=4 Mỗi mô hình Gauss được định nghĩa bởi ba giá trị trung bình gồm

, tương ứng với ba màu cơ bản đỏ, lục, lam; với phương sai , và trọng lượng Các mô hình có không gian màu RGB được xem như không gian màu ‘nền tĩnh’ của điểm ảnh Ở đây có K=4

mô hình Gauss độc lập áp dụng cho mỗi điểm ảnh cho phép các trường hợp mà điểm ảnh thay đổi giữa hai màu đều đặn, như thang máy di chuyển hay cây lay trong gió Mỗi mô hình cũng chứa trọng số chỉ ra mức độ thường xuyên mà mỗi mẫu cụ thể được mô tả thành công theo điểm ảnh

Hình 9 Các bước giải thuật tiến hành cập

nhật các mẫu

Hình phía trên cho thấy cách mà giải thuật cập nhật các mẫu; được đơn giản hóa bằng việc bỏ qua các màu RGB và chỉ hiển thị ba mẫu Hình đầu tiên trên cùng hiện thị tình trạng ban đầu với ba mẫu

Trang 8

Khi màu của điểm ảnh trùng với một trong

các mẫu, thì mô hình sẽ được tăng cường

bằng cách tăng nhẹ trọng lượng của nó, và

màu của điểm ảnh được xác nhận như

khung nền ổn định Như ở hình thứ hai,

màu trùng vào mẫu M3, trọng số được

tăng lên Nếu màu không trùng với mẫu

nào thì tự mẫu sẽ dịch chuyển nhẹ hướng

tới vị trí của màu Tuy nhiên, khi màu của

điểm ảnh mới không trùng bất kì mô hình

Gauss nào, thì sẽ được xem như tiền cảnh

đang di chuyển Mô hình yếu nhất sẽ bị

xóa bỏ và thay thế bằng một mô hình mới

đại diện cho màu mới, mặc dù có trọng số

khởi tạo nhỏ Điều này được minh họa như

trên hình thứ ba Giải thuật được lập trình

bằng ngôn ngữ C

4.1 Cấu trúc phần cứng

4.2 Hệ thống này gồm ba phần

chính: Nhận và xử lý video đầu vào, Xử lý

và xuất video đầu ra, Hệ thống con tăng

tốc độ xử lý

Phần xử lý video đầu vào được nối với nhau bằng các dây màu vàng như trên Hình

10 Phần này bao gồm các lõi xử lý sau đây: HDMI input and decoder; Video to AXI-Stream convertor, YUV 4:2:2 to 4:4:4 expander (16 to 24 bits) (custom core in VHDL), YUV 4:4:4 to RGB colour space converter, 24-to-32 bits pixel padding, Video DMA (lưu trữ video đầu vào, sau đó truyền tới bộ nhớ chính), AXI memory interconnect, Cổng kết nối Zynq HP0 (150MHz, 64bits)

Phần xử lý video đầu ra được nối với nhau bằng các dây màu lam như trên hình

Cơ bản phần này cũng bao gồm các thành phần như phần xử lý video đầu vào nhưng đảo ngược thứ tự, cụ thể: Cổng kết nối Zynq HP1 (150MHz, 64bits), AXI memory interconnect, Video DMA (đọc và tạo ra dòng điểm ảnh trên ngõ ra AXI-Stream), 32-to-24 bits trim, RGB to YUV 4:4:4 colour space convertor, YUV 4:4:4 to YUV 4:2:2 conversion (24 to 16 bits), AXI-Stream to video stream, HDMI output coder

Hình 10 Sơ đồ khối thiết kế cho ứng dụng nhận dạng chuyển động

Trang 9

Hệ thống con tăng tốc độ xử lý sử

dụng các đường dẫn màu đỏ như trong

hình Cụ thể gồm các thành phần sau: Cổng

kết nối Zynq HP2 (100MHz, 64bits) (truy

cập điểm ảnh và dữ liệu thuộc tính),

Central DMA engine (tự động tìm các khối

mô tả mới thông qua cổng ACP), AXI

interconnects, AXI BRAM controllers,

BRAMs (chứa dữ liệu hoạt động cho bộ

gia tốc- các điểm ảnh vào/ ra…)

Phần cứng cho hệ thống gia tốc này

được xây dựng trên phần mềm Vivado

HLS

4.3 Kết quả mô phỏng

Hình 11 Giao diện hiển thị kết quả ứng

dụng nhận dạng chuyển động

Ngõ vào và ngõ ra được truyền thông

qua cổng HDMI trên card mở rộng

Imageon Video đầu vào có độ phân giải

1080p truyền qua cổng HDMI từ PC, ngõ

ra ở độ phân giải 1280x720p được hiển thị

lên màn hình Ảnh ngõ ra có một khung

hình kích thước 640x480 ở góc trái màn

hình, hiển thị nguồn để nhận diện chuyển

động Ở góc phải màn hình là một khung

hình trắng đen có kích thước 640x480 để

hiện thị đầu ra của ứng dụng

5 Kết luận và hướng phát triển

tương lai

Bài báo này đã trình bày ứng dụng của

bộ ZVIK trong việc nhận dạng chuyển

động từ video; cũng đã thành công xây

dựng nên phần cứng cho ứng dụng, bao

gồm các khối IP core xử lý ảnh và video

được cung cấp bởi hãng Xilinx cũng như

bên thứ ba là Avnet Giải thuật nhận dạng chuyển động đã được đơn gian hóa bớt để

có thể dễ dàng hơn trong việc xây dựng phần cứng cho hệ thống

Ở ứng dụng trên, video đầu vào được phát từ PC truyền qua cổng HDMI tới ZVIK, sau khi xử lý sẽ hiện kết quả lên màn hình Để áp dụng ứng dụng này vào thực tiến, hệ thống sẽ được phát triển lên bằng cách thay đầu vào bằng hình ảnh từ camera 1080p60 giống như sơ đồ khối dưới đây:

Hình 12 Sơ đồ khối phần cứng cho ứng

dụng nhận dạng chuyển động trực tiếp từ

camera

Thay vì phương pháp cổ điển sử dụng phần mềm để thực hiện các giải thuật tính toán phức tạp và linh động nhưng tốc độ

xử lý chậm; hoặc sử dụng phần cứng để thực hiện các giải thuật tính toán tốc độ nhanh nhưng không có khả năng tùy biến theo yêu cầu, ZVIK cung cấp cho người dùng khả năng kết hợp độc đáo giữa phần mềm ứng dụng trên nền tảng Linux và phần cứng thông qua các IP core để một ứng dụng vừa có tộc độ xử lý nhanh của phần PL và cũng như có thể thay đổi linh hoạt nhờ phần PS Điều này mang lại cho các ứng dụng thời gian thực một bước tiến mới, và tất nhiên, đi kèm với nó là chất lượng hình ảnh/ video được cải thiện lên nhiều lần

Trong tương lai, bộ ZVIK có thể được

sử dụng nhiều hơn trong các ứng dụng xử

lý video thời gian thực khác Cụ thể là ứng

Trang 10

dụng làm hệ thống camera giám sát chuyển

động, nhận dạng và theo dấu khuôn mặt

của người đi đường, trong các tòa nhà, văn

phòng Ngoài ra, ZVIK cũng có thể được

ứng dụng trong hệ thống automotive (lái xe

hơi tự động), các tác vụ cụ thể của camera

như là nhận dạng làn đường, biển báo giao

thông, cảnh báo các chướng ngại vật trên

đường đi, tránh vật cản, hạn chế va chạm

với các phương tiện đang lưu thông khác

Ngoài ra, camera cũng có thể được dùng để

kiểm soát trạng thái của lái xe như là buồn

ngủ, không tỉnh táo khi lái xe…

Lời cảm ơn: Nghiên cứu này được hổ

trợ bởi Đại Học Quốc Gia Thành phố Hồ

Chí Minh theo mã số B2015-20-02

TÀI LIỆU THAM KHẢO

1 Jim Beneke, Designing High Pixel - Rate

Video Systems with Xilinx FPGAs, 2012,

Avnet Inc

2 Cecile Belleudy et al, “Fall Detection

Application on an ARM and FPGA

Heterogeneous Computing Platform”,

IJAREEIE, vol.3, issue 8, August 2014

3 Louise H Crockett Ross A Elliot, Martin A

Enderwitz and Robert W Stewart, The Zynq

Book- Embedded Processing with the ARM®

Cortex®-A9 on the Xilinx® Zynq®-7000 All

Programmable SoC, Department of

Electronic and Electrical Engineering,

University of Strathclyde, Glasgow, Scotland,

UK, 2014

4 Christopher V Dobson, An Architecture

Study on a Xilinx Zynq Cluster with Software

Defined Radio Applications, Virginia

Polytechnic Institute and State University,

2014

5 P KaewTraKulPong and R Bowden, “An Improved Adaptive Background Mixture Model for Realtime Tracking with Shadow

Detection”, Proc 2nd European Workshop on

Advanced Video Based Surveillance Systems, AVBS01 Sept 2001, Kluwer Academic

Publishers

6 Sofia Nayak, Shashank Sekhar Pujari,

“Moving Object Tracking Application: FPGA

And Model Based”, (2015) International

Conference on Computing Communication Control and Automation

7 S Pleshkova, “Development of Embedded Motion Detection in Thermo Visual System with Audio Visual Interface to Information

Networks”, Recent Advances in Systems

Science, pp 143 - 148

8 Peyman Sabouri, Hamid GholamHosseini and

John Collins, Border Detection of Melanoma

Skin Lesions on a Single System on Chip (SoC), Auckland University of Technology

Auckland, New Zealand

9 Mohammadsadegh Sadri et al, Energy and

Performance Exploration of Accelerator Coherency Port Using Xilinx ZYNQ,

Technische Universitat Kaiserslautern

10 Sheng Yang at al, Adaptive Energy Minimization of Embedded Heterogeneous Systems using Regression-based Learning,

University of Southampton and Imperial College, UK

PHỤ LỤC: TỪ VIẾT TẮT

[1] AXI: Advanced eXtensible Interface [2] FPGA: Field-Programmable Gate Array [3] GUI: Graphical User Interface

[4] IP: Intellectual Property core

[5] ZVIK: Xilinx Zynq®-7000 All

Program-mable (AP) SoC Video and Imaging Kit

Ngày nhận bài: 06/6/2016 Biên tập xong: 15/01/2017 Duyệt đăng: 20/01/2017

Ngày đăng: 14/02/2020, 20:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w