1. Trang chủ
  2. » Luận Văn - Báo Cáo

ứng dụng công cụ simulink trong matlab vào xử lý tín hiệu video số

34 734 3

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 3,28 MB

Nội dung

Trang 8 1.4 Các loại ảnh số Cấu trúc dữ liệu cơ bản trong Matlab là mảng, đó là một hệ thống có trật tự các phần tử thật và phức tạp.. Matlab lưu trữ hầu hết ảnh như là các mảng hai chi

Trang 1

CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG

ỨNG DỤNG CÔNG CỤ SIMULINK TRONG MATLAB

VÀO XỬ LÝ TÍN HIỆU VIDEO SỐ

MÃ SỐ: T71 – 2008

Tp Hồ Chí Minh, 2009

S 0 9

S KC 0 0 2 1 1 3

Trang 2

ĐỀ TÀI NCKH CẤP TRƯỜNG

THUỘC NHÓM NGÀNH: KHOA HỌC KỸ THUẬT

NGƯỜI CHỦ TRÌ: NGUYỄN DUY THẢO

ĐƠN VỊ: KHOA ĐIỆN - ĐIỆN TỬ

TP HỒ CHÍ MINH – 3/2009

ỨNG DỤNG CÔNG CỤ SIMULINK TRONG MATLAB VÀO XỬ LÝ TÍN HIỆU VIDEO SỐ

MÃ SỐ: T71 – 2008

Trang 3

Trang 1

MỤC LỤC

Trang

Mục lục 1

Tóm tắt đề tài 2

I Tính cấp thiết 3

II Mục tiêu 3

III Cách tiếp cận 3

IV Mục đích đề tài 3

V Phương pháp nghiên cứu 3

VI Phạm vi nghiên cứu 3

VII Nội dung 4

1 Giới thiệu xử lý ảnh 4

2 Xử lý tín hiệu video bằng công cụ Simulink 12

VIII Các kết quả nghiên cứu đạt được 28

IX Kết luận và kiến nghị sử dụng kết quả nghiên cứu 28

Tài liệu tham khảo 29

Phụ lục 30

Bản sao Hợp đồng, Thuyết minh đề tài 31

Trang 4

Trang 2

TÓM TẮT KẾT QUẢ NGHIÊN CỨU

ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG

Tên đề tài: Ứng dụng công cụ Simulink trong Matlab vào xử lý tín hiệu video số

Mã số: T71-2008

Chủ nhiệm đề tài: Nguyễn Duy Thảo, E-mail:ngduythao76@yahoo.com

Cơ quan chủ trì đề tài: Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh

Cơ quan và cá nhân phối hợp thực hiện:

Thời gian thực hiện:05/7/2008 – 10/5/2009

Thực hiện các chương trình xử lý video bằng Simulink trong Matlab

3 Kết quả chính đạt được (khoa học, ứng dụng, đào tạo, kinh tế – xã hội, v.v…): Giới thiệu một phương pháp xử lý tín hiệu video được cung cấp trong Matlab Ứng dụng trong môn học Kỹ thuật Audio & Video số

Tài liệu tham khảo cho sinh viên ngành KĐĐ, ĐTVT khi học môn K T A & V số

4 Điểm mới:

Hệ thống lại các chương trình mô phỏng xử lý tín hiệu video trong Matlab

Giới thiệu xử lý ảnh động dựa trên xử lý ảnh tĩnh, xử lý ảnh màu dựa trên ảnh xám

5 Địa chỉ ứng dụng:

Sinh viên ngành KĐĐ, ĐTVT của khoa Điện-Điện tử

Trang 5

Tìm hiểu ngôn ngữ lập trình Matlab

Tìm hiểu công cụ lập trình Simulink trong Matlab

Tìm hiểu lĩnh vực xử lý ảnh

Tham khảo các Demo trong Blocksets/Video and Image Processing

IV MỤC ĐÍCH ĐỀ TÀI

Trình bày lý thuyết về xử lý ảnh

Thực hiện các chương trình xử lý video bằng Simulink trong Matlab

V PHƯƠNG PHÁP NGHIÊN CỨU

Nghiên cứu tài liệu

Thực nghiệm (Thực hiện các chương trình mô phỏng)

VI PHẠM VI ỨNG DỤNG

Ứng dụng trong giảng dạy môn Kỹ thuật Audio – Video số

Trang 6

Hình 1: Các giai đoạn chính trong xử lý ảnh

Trước hết là quá trình thu nhận ảnh Ảnh có thể thu nhận qua camera là tín hiệu tương tự, nhưng cũng có thể là tín hiệu số Ảnh cũng có thể thu nhận từ vệ tinh qua các

bộ sensor, hay hình ảnh được quét trên scanner

Tiếp theo là quá trình số hóa để biến đổi tín hiệu tương tự sang tín hiệu số, trước khi chuyển sang giai đoạn xử lý, phân tích hay lưu trữ

Quá trình phân tích ảnh bao gồm nhiều công đoạn nhỏ Trước hết là công việc tăng cường ảnh để nâng cao chất lượng ảnh Do những nguyên nhân khác nhau: có thể do chất lượng thiết bị thu nhận ảnh, do nguồn sáng hay do nhiễu, ảnh có thể bị suy biến

Do vậy cần phải tăng cường và khôi phục lại ảnh để làm nổi bật một số đặc tính chính của ảnh, hay làm cho ảnh gần giống nhất với trạng thái gốc-trạng thái trước khi ảnh bị biến dạng

Giai đoạn tiếp theo là phát hiện các đặc tính như biên, phân đoạn ảnh, trích chọn các đặc tính

Cuối cùng, tùy theo mục đích của ứng dụng, sẽ là giai đoạn nhận dạng, phân đoạn hay các xử lý khác

Trang 7

Ảnh ở hình 2 đã được chia ra thành M = 16 hàng và N = 16 cột Giá trị của mỗi pixel là độ sáng trung bình của pixel xung quanh có giá trị nguyên gần nhất Quá trình biểu diễn biên độ của tín hiệu 2D ở một tọa độ đã cho là một giá trị nguyên với L mức xám khác nhau được gọi là lượng tử hóa biên độ hay đơn giản là lượng tử hóa

Có nhiều giá trị chuẩn cho các thông số khác nhau trong quá trình xử lý ảnh số Những giá trị này có thể là do các tiêu chuẩn video hoặc do các thuật toán yêu cầu

Trang 8

Trang 6

Bảng 1 Trình bày một số giá trị thường gặp

“đen” và “trắng” hoặc “0” hoặc “1”

Các loại toán tử có thể được áp dụng với ảnh số để biến đổi một ảnh vào a[m,n] sang một ảnh ra b[m,n] được chia ra thành 3 loại

giá trị của ảnh ngõ vào

Hình 3: Minh họa các loại toán tử ảnh

Các toán tử lân cận đóng một vai trò quan trọng trong xử lý ảnh hiện đại Nó giúp cho chúng ta hiểu ảnh được lấy mẫu như thế nào và mối quan hệ giữa các lân cận khác nhau có thể được sử dụng để xử lý ảnh

Lấy mẫu hình vuông: Trong hầu hết trường hợp, ảnh được lấy mẫu bằng cách đặt một lưới hình vuông lên một ảnh như minh họa ở hình 4 Các kết quả lấy mẫu được thấy ở hình 4a và 4b

Trang 9

Nhiễu cũng có thể gây ra do việc chồng chập tín hiệu khi lấy mẫu hoặc sai số lượng

tử trong quá trình số hóa

Nhiễu có thể là tác động của môi trường bên ngoài trong khi truyền dẫn tín hiệu Có nhiều loại nhiễu khác nhau, mỗi loại có thể biểu diễn bằng mô hình toán học (mô hình nhiễu)

Các vết ố màu bẩn: là loại nhiễu thường xuất hiện trên các phim nhựa cũ, các vết bẩn làm cho độ sáng ở các vùng này sai lệch so với chi tiết ảnh trên phim Nguyên nhân chủ yếu của dạng mất dữ liệu này là do vật liệu làm phim lâu ngày bị thay đổi tính chất Vết màu bẩn ít khi xuất hiện ở cùng một vị trí đối với hai frame liền trước và sau nó

Trang 10

Trang 8

1.4 Các loại ảnh số

Cấu trúc dữ liệu cơ bản trong Matlab là mảng, đó là một hệ thống có trật tự các phần tử thật và phức tạp Nó thích hợp cho việc biểu diễn ảnh có giá trị thật được sắp xếp thành hệ thống dữ liệu màu và cường độ

Matlab lưu trữ hầu hết ảnh như là các mảng hai chiều (như là các ma trận), trong đó mỗi phần tử của ma trận tương ứng với một điểm ảnh đơn trong ảnh được biểu diễn Mặc định, Matlab lưu trữ hầu hết dữ liệu trong các mảng kiểu double Dữ liệu trong các mảng này được lưu trữ như là các số floating-point (64 bit) Tất cả các hàm trong Matlab đều làm việc với các mảng này

Tuy nhiên, đối với việc xử lý ảnh, kiểu dữ liệu này (kiểu double) không phải luôn là

lý tưởng Số lượng các điểm ảnh trong một ảnh là rất lớn, ví dụ như một ảnh 1000x1000 sẽ có một triệu điểm ảnh Nếu mỗi điểm ảnh được biểu diễn bởi ít nhất một phần tử của mảng thì ảnh này đòi hỏi khoảng 8 Mb bộ nhớ

Để giảm bộ nhớ, Matlab hỗ trợ kiểu lưu trữ dữ liệu khác là uint8 Dữ liệu trong kiểu mảng này được lưu trữ như là các số nguyên không dấu 8 bit Dữ liệu được lưu trữ trong mảng uint8 chỉ đòi hỏi bộ nhớ bằng 1/8 mảng double

Hộp công cụ xử lý ảnh hỗ trợ bốn loại ảnh cơ bản: Ảnh chỉ số (Indexed Images), ảnh cường độ (Intensity Images), ảnh nhị phân (Binary Images), ảnh RGB (RGB Images)

1.4.1 Ảnh chỉ số (Indexed Images)

Một ảnh chỉ số bao gồm hai mảng: một ma trận ảnh và một biểu đồ màu (color map) Colormap là một hệ thống các giá trị được sắp xếp để biểu diễn màu sắc trong ảnh Đối với mỗi điểm ảnh, ma trận ảnh chứa đựng một giá trị mà giá trị đó là chỉ số bên trong colormap

Colormap là một ma trận kích cỡ m x 3 của kiểu dữ liệu double Mỗi hàng của ma trận colormap chỉ xác định các giá trị RGB cho một màu đơn lẻ

Color = [R G B] R, G, B là các giá trị thực vô hướng dao động từ 0 (đen) đến 1 (cường độ mạnh nhất)

Hình 5: Ảnh chỉ số

Trang 11

Trang 9

Hình 5 minh họa cấu trúc của một ảnh chỉ số Các điểm ảnh trong ảnh chỉ số được biểu diễn bằng các số nguyên, và các số này cũng để chỉ các giá trị màu lưu trữ trong colormap

Mối quan hệ giữa giá trị trong ma trận ảnh và colormap tùy thuộc vào loại ma trận ảnh đó là loại double hay uint8 Nếu ma trận ảnh là kiểu double thì giá trị 1 chỉ hàng đầu tiên trong colormap, giá trị 2 chỉ hàng thứ hai

Nếu là loại uint8 thì sẽ xảy ra việc bù khi đó giá trị 0 chỉ hàng đầu tiên, 1 chỉ hàng thứ hai trong colormap Kiểu uint8 làm cho ảnh chỉ số 8 bit có thể hỗ trợ lên đến 256 màu

1.4.2 Ảnh cường độ (Intensity Images)

Matlab lưu trữ một ảnh cường độ như là một ma trận đơn, với mỗi phần tử của ma trận tương ứng với một điểm ảnh Ma trận có thể là double nếu nó có giá trị trong khoảng [0,1]; là loại uint8 nều giá trị trong khoảng [0, 255] Các thành phần trong ma trận cường độ biểu diễn các giá trị cường độ khác nhau, hoặc các mức xám mà ở đó giá trị cường độ 0 tượng trưng cho màu đen và giá trị cường độ 1 (hoặc 255) là màu trắng

Hình 6: Ảnh cường độ

1.4.3 Ảnh nhị phân (Binary Images)

Trong ảnh nhị phân, mỗi điểm ảnh sẽ là một trong hai giá trị rời rạc (0,1) Hai giá trị này tương ứng với on và off Một ảnh nhị phân được lưu trữ như là một ma trận hai chiều của các giá trị 0 và 1

Ảnh nhị phân được xem là một loại đặc biệt của ảnh cường độ, chỉ chứa màu trắng

và đen Nói cách khác ảnh nhị phân là một ảnh chỉ số chỉ có hai màu

Một ảnh nhị phân có thể được lưu trữ trong một mảng double hoặc uint8 Tuy nhiên, mảng uint8 thì lợi hơn vì dùng ít bộ nhớ Trong hộp công cụ xử lý ảnh, bất cứ hàm nào cho kết quả là một ảnh nhị phân thì ảnh đó là một mảng logic uint8 Hộp công cụ dùng sự hiện diện của cờ logíc để cho biết rằng phạm vi dữ liệu là [0,1] (Nếu

cờ logic là off, hộp công cụ có phạm vi dữ liệu là [0, 255])

Trang 12

độ này được lưu trữ trực tiếp vào mảng ảnh, chứ không gián tiếp trong một colormap Trong Matlab, các thành phần đỏ, xanh lục, xanh lam của một ảnh RGB thường trú trong một ma trận đơn m x n x 3; với m và n là số hàng và cột của các điểm ảnh trong ảnh, giá trị thứ ba bao gồm ba mặt phẳng, chứa đựng giá trị cường độ đỏ, xanh lục, xanh lam kết hợp lại để tạo nên màu thật của điểm ảnh

Một mảng RGB có thể là double, nếu có chứa giá trị trong khoảng [0,1] hoặc uint8, nếu phạm vi dữ liệu là [0,255] Hình 2.8 minh họa một ảnh RGB kiểu double

Hình 8: Ảnh RGB

Trang 13

Trang 11

1.4.5 Mảng đa ảnh (multiframe image arrays)

Trong một vài ứng dụng, có lẽ bạn cần làm việc với những tập hợp các bức ảnh có liên hệ về thời gian và không gian, do đó hộp công cụ xử lý ảnh cũng cần sự hỗ trợ cho việc lưu trữ các ảnh nhiều thành phần trong cùng một mảng Mỗi ảnh riêng lẻ được gọi

là frame Nếu một mảng có nhiều frame thì chúng sẽ được nối với nhau theo một thông số thứ tự Ví dụ, một mảng với năm ảnh RGB kích cỡ 400x300 sẽ được biểu diễn là 400x300x3x5 Đối với ảnh cường độ hoặc chỉ số thì sẽ là 400x300x1x5

Cho một nhóm ảnh A1,A2,A3,A4,A5 có thể lưu trữ chúng trong một mảng đơn như sau: A= Cat (4, A1,A2,A3,A4,A5)

Có thể trích xuất các frame từ một ảnh nhiều frame Lệnh sau sẽ trích xuất frame thứ 3: FRM3= MULTI (:,:,:,3)

Chú ý rằng trong một mảng đa ảnh, mỗi ảnh phải là cùng kích cỡ và nó cùng số lượng mặt phẳng màu; còn đối với ảnh chỉ số thì các ảnh phải dùng cùng một colormap

1.5 Giới thiệu video số

Video (còn gọi là ảnh động) là một chuỗi các hình ảnh được chiếu liên tục theo thời gian với tốc độ xuất hiện thông thường là 24 hình/giây Nếu tốc độ thấp hơn sẽ thấy hình ảnh bị nhấp nháy Các tính chất và đặc điểm của Video số đều dựa trên tính chất và đặc điểm của ảnh tĩnh

Xử lý tín hiệu Video chúng ta phải phân bố (lần lượt hoặc song song) xử lý từng ảnh tĩnh (frame) Tất nhiên quá trình xử lý Video sẽ đòi hỏi tốc độ xử lý và thuật toán nhanh cùng với hệ thống xử lý nhanh hoặc là một tập nhiều bộ vi xử lý

Trang 14

Trang 12

2 Xử lý tín hiệu video bằng công cụ Simulink trong Matlab

Simulink là phần chương trình mở rộng của Matlab nhằm mục đích mô hình hoá,

mô phỏng và khảo sát các hệ thống động học Giao diện đồ hoạ trên màn hình của Simulink cho phép thể hiện hệ thống dưới các sơ đồ tín hiệu với các khối chức năng quen thuộc

Simulink cung cấp cho người sử dụng một thư viện có sẵn rất phong phú với số lượng lớn các khối chức năng cho các hệ tuyến tính, phi tuyến và gián đoạn Người sử dụng có thể tạo các khối cho riêng mình

Sau khi xây dựng mô hình của hệ thống cần nghiên cứu, bằng cách ghép các khối cần thiết thành sơ đồ cấu trúc của hệ, ta có thể khởi động chương trình mô phỏng Trong quá trình mô phỏng, ta có thể trích tín hiệu tại vị trí bất kỳ của sơ đồ cấu trúc và hiển thị đặc tính của sơ đồ đó trên màn hình Ta có thể cất giữ các đặc tính đó vào môi trường nhớ Việc nhập và thay đổi tham số của tất cả các khối cũng có thể được thực hiện rất đơn giản bằng cách nhập trực tiếp hay thông qua Matlab

Video and Image Processing Blockset (VIPB) là công cụ dùng để thiết kế nhanh, tạo mẫu gốc, mô phỏng sinh động và khả năng phát mã cho xử lý toán học tín hiệu video Các khối VIPB có khả năng nhập tín hiệu video vào môi trường Simulink và thực hiện lọc hai chiều (2-D), biến đổi hình học và đổi tần, xử lý khối, xác định chuyển động, tách biên và xử lý toán học các tín hiệu Các khối trong VIPB có thể liên kết với Real-Time Workshop để tự động phát mã C cho xử lý, thực hiện theo thời gian thực

2.1 Làm việc với file AVI (Working with AVI files)

Trước khi phân tích và làm việc trên dữ liệu, người sử dụng phải nhập file vào mô hình Simulink và xuất trở lại thành file sau khi đã hoàn thành công việc

Khối Read AVI File sử dụng để nhập một file AVI vào mô hình, khối Write AVI file để xuất ra một file AVI, dùng khối Gain để thay đổi giá trị từng màu RGB của video và khối Video Viewer để xem file này

Hình 9: Mô hình nhập, xuất và xem một file AVI

Khi mô hình hoạt động, kết quả Video của demo được hiển thị trong cửa sổ Video Viewer Khối Write AVI file xuất ra dữ liệu Video từ mô hình Simulink thành một file AVI trong thư mục hiện hành Lúc này, file AVI xuất ra có tên là output.avi

Trang 15

Trang 13

2.2 Kỹ thuật tách biên (Edge detection)

Demo tìm biên của các đối tượng trong tín hiệu video bằng phương pháp Prewitt Khối Edge Detection cho phép đặt lại thông số ngưỡng (Threshold) trong khi đang chạy mô phỏng Video gốc được che phủ bởi biên trong cửa sổ Overlay

Hình 10: Mô hình tách biên tín hiệu video

Hình 11: Kết quả demo tách biên

Trang 16

Trang 14

2.3 Tách cảnh thay đổi (Scene change detection)

Demo minh họa một hệ thống phân đoạn video Sự phân đoạn video thành các đoạn phim liên tục (những nhóm ảnh liền nhau) dùng trong những ứng dụng mà yêu cầu sự truy cập nội dung chuẩn (content-based) trong thư viện video Ví dụ, yêu cầu đưa ra là ghi lại 6 giờ video Thuật toán được minh họa trong demo này cho phép bỏ qua các cảnh giống nhau liên tục vì thế chúng ta có thể xem lại video nhanh hơn

Hình 12: Mô hình tách các cảnh thay đổi trong video

Demo tìm biên trong 2 frame video liền nhau Dựa vào những biên này, demo dùng khối Block Processing để so sánh các vùng giữa các frame video Nếu số lượng vùng khác nhau vượt quá ngưỡng xác định, demo xác định là cảnh đã thay đổi

Hình 13: Video hiển thị ba cảnh thay đổi trong video gốc

Trang 17

Trang 15

2.4 Tách chuyển động (Motion detection)

Phương pháp tổng khác nhau tuyệt đối (SAD) là một kỹ thuật phổ biến tách chuyển động trong xử lí video Mô phỏng này áp dụng phương pháp SAD độc lập cho 4 góc một cảnh video Nếu chuyển động được tìm thấy ở phần tư nào thì phần tư đó sẽ sáng màu đỏ

Hình 14: Mô hình tách chuyển động trong video

Khối Swith giúp chuyển đổi tín hiệu liên kết đến SAD bên cạnh, khối Video Viewer hiển thị giá trị SAD, giá trị đó đặc trưng cho sự khác nhau giữa ảnh hiện tại và ảnh trước đó Khi giá trị SAD vượt qua giá trị ngưỡng, sẽ xuất hiện phần tư màu đỏ trên cửa sổ Video Viewer

Sự khác nhau trong chính mỗi ảnh có thể được quan sát và thay thế cho một ảnh đa cấp xám nguyên bản, cùng với sự chiếu sáng màu đỏ các chuyển động Đây là một ý tưởng thể hiện ma trận SAD làm việc như thế nào

Hình 15: Kết quả demo tách chuyển động

Ngày đăng: 04/09/2016, 10:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Lương Mạnh Bá - Nguyễn Thanh Thủy, Nhập môn xử lý ảnh, Nhà xuất bản Khoa học và Kỹ thuật, 2003 Khác
[2]. Nguyễn Kim Sách, Xử lý ảnh và Video số, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội, 1997 Khác
[3]. A.Murat Tekalp, Digital Video Processing, Prentice Hall,1998 Khác
[4]. Image Processing Toolbox (For Use with Matlab) Khác
[5]. Video and Image Processing Blockset (For Use with Matlab) Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w