Đề tài “Tách Cảnh Nền Thời Gian Thực Dùng FPGA” được thực hiện nhằm thiết kế một hệ thống hoàn chỉnh thực hiện chức năng tách cảnh nền dựa trên phương pháp mô hình Gaussian đơn kết hợp
Trang 1ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
TRƯƠNG VĂN CƯƠNG
TÁCH CẢNH NỀN THỜI GIAN THỰC DÙNG FPGA
Chuyên ngành : Kỹ Thuật Điện Tử
Mã số : 60520203
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 01 năm 2016
Trang 2Cán bộ hướng dẫn khoa học :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 :
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1
2
3
4
5
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: TRƯƠNG VĂN CƯƠNG MSHV: 13140462 Ngày, tháng, năm sinh: 03/03/1989 Nơi sinh: Hà Nam Chuyên ngành: Kỹ Thuật Điện Tử Mã số: 60520203 I TÊN ĐỀ TÀI: TÁCH CẢNH NỀN THỜI GIAN THỰC DÙNG FPGA II NHIỆM VỤ VÀ NỘI DUNG:
III NGÀY GIAO NHIỆM VỤ:
IV NGÀY HOÀN THÀNH NHIỆM VỤ:
V CÁN BỘ HƯỚNG DẪN:
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
Tp HCM, ngày tháng năm 2015 CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)
TRƯỞNG KHOA ĐIỆN ĐIỆN TỬ
(Họ tên và chữ ký)
Trang 4Tôi xin chân thành cám ơn quý thầy cô trường Đại Học Bách Khoa TP Hồ Chí Minh, những người đã truyền đạt cho tôi những kiến thức và kinh nghiệm quý báu trong suốt khóa học cao học tại trường
Tôi xin chân thành cảm ơn phòng Đào Tạo Sau Đại Học, trường Đại học Bách Khoa đã
hỗ trợ kinh phí thực hiện đề tài nghiên cứu để tôi có thể hoàn thành đề tài nghiên cứu
Tôi xin được gửi lời cám ơn sâu sắc đến thầy – TS.Trương Quang Vinh Thầy đã hướng đầy tận tình, tạo cho tôi cách tư duy và làm việc khoa học, và hướng cho tôi đến các đề tài khoa học mới mẽ
Tôi xin gửi lời cảm ơn đến gia đình, bạn bè đã luôn động viên và ủng hộ, giúp tôi có thêm động lực để hoàn thành đề tài
TP Hồ Chí Minh, ngày 01 tháng 01 năm 2016
Học viên
Trương Văn Cương
Trang 5
TÓM TẮT
Phương pháp tách cảnh nền là một kỹ thuật quan trọng trong lĩnh vực xử lý ảnh và thị giác máy tính Phương pháp này được ứng dụng rộng rãi trong nhiều ứng dụng như: phát hiện đối tượng chuyển động, trong lĩnh vực giám sát hình ảnh Trong những năm gần đây, với sự phát triển mạnh về công nghệ, chất lượng video ngày càng được nâng cao về độ phân giải cũng như
độ sắc nét, do đó việc yêu cầu về xử lý video tốc độ cao đáp ứng thời gian thực là rất cần thiết
Đề tài “Tách Cảnh Nền Thời Gian Thực Dùng FPGA” được thực hiện nhằm thiết kế một hệ
thống hoàn chỉnh thực hiện chức năng tách cảnh nền dựa trên phương pháp mô hình Gaussian đơn kết hợp với giải thuật phân vùng ảnh GrowCut Hệ thống được thiết kế trên cấu trúc phần cứng FPGA, và được thiết kế theo cấu trúc đường ống để có thể đáp ứng xử lý thời gian thực trên khung hình video có độ phân giải cao Để hiện thực hệ thống, đề tài thiết kế và đóng một
IP sử dụng chuẩn giao tiếp Avalon ST video và giao tiếp Avalon MM của hãng Altera Thiết
kế đã được thử nghiệm trên kit Bitec Cyclone III, và đáp ứng được xử lý video thời gian thực ở độ phân dải 1080P
Trang 6Background subtraction, also known as Foreground Detection, is a technique in the fields
of image processing and computer vision wherein an image's foreground is extracted for further processing (object recognition etc.) Generally an image's regions of interest are objects (humans, cars, text etc.) in its foreground After the stage of image preprocessing (which may include image denoising, post processing like morphology etc.) object localisation is required which may make use of this technique Background subtraction is a widely used approach for detecting moving objects in videos from static cameras In recent years, with strong growth in technology, quality is increasingly high video resolution and sharpness, so the requirements for high-speed video processing real-time response is very necessary The thesis
“Implementation real-time background subtraction using FPGA” is choosen in order to design a full system which implement background subtraction based Single Gaussian and Modified GrowCut In order to impement the system, an IP is designed and packed using Avalon ST and Avalon MM standard The hardware architecture of the proposed method is designed by pipeline structure which is verified on Altera FPGA Cyclone III to perform real-time object segmentation on HD videos
Trang 7LỜI CAM ĐOAN
Tôi cam đoan các kết quả đề tài thực hiện chưa từng công bố trong bất kỳ công trình khoa học trước đây
Người cam đoan
Trương Văn Cương
Trang 8TÓM TẮT ii
ABSTRACT iii
MỤC LỤC v
DANH MỤC BẢNG viii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ix
DANH MỤC CÁC HÌNH VẼ x
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1
1.1 Giới thiệu về giải thuật tách cảnh nền 1
1.2 Các công trình nghiên cứu liên quan 3
1.2.1 Một số phương pháp mô hình nền 3
1.2.2 Phân vùng ảnh dựa trên phương pháp GrowCut 10
1.3 Phương pháp tiếp cận 16
1.3.1 Hệ thống đề nghị 17
1.4 Mục tiêu, nội dung luận văn 18
1.4.1 Mục tiêu 18
1.4.2 Nội dung 18
CHƯƠNG 2: THIẾT KẾ CẤU TRÚC PHẦN CỨNG CHO GIẢI THUẬT TÁCH CẢNH NỀN DỰA TRÊN PHƯƠNG PHÁP SINGLE GAUSSIAN VÀ GIẢI THUẬT GROWCUT 19 2.1 Giải thuật tách cảnh nền dựa trên phương pháp Single Gaussin 19
2.1.1 Mô hình nền 20
2.1.2 Trừ nền dựa trên phương pháp Growcut 21
2.1.3 Cập nhật mô hình nền 22
2.2 Mô tả tổng quan thiết kế trên cấu trúc phần cứng 23
2.2.1 Yêu cầu chi tiết thiết kế 23
Trang 92.2.2 Giới thiệu một số chuẩn bus của hãng altera 24
2.3 Mô tả chi tiết thiết kế 33
2.3.1 Khối Sink Control 37
2.3.2 Khối Source Control 40
2.3.3 Khối AMM control master 41
2.3.4 Khối data controller 44
CHƯƠNG 3: MÔ PHỎNG KIỂM TRA THIẾT KẾ 57
3.1 Mô hình kiểm tra thiết kế 57
3.2 Phương pháp mô phỏng 59
3.3 Kết quả mô phỏng IP 60
3.3.1 Dạng sóng khối sink control 61
3.3.2 Dạng sóng khối source control 63
3.3.3 Dạng sóng khối data controller 65
3.4 So sánh kết quả mô phỏng phần cứng với phần mềm 71
CHƯƠNG 4: HIỆN THỰC HỆ THỐNG TRÊN KIT FPGA 74
4.1 Giới thiệu hệ thống 74
4.2 Tổng hợp và đóng gói IP trong SOPC 78
4.3 Xây dựng hệ thống SOPC 83
4.4 Tổng hợp hệ thống 91
4.4.1 Phân tích tín hiệu clock 95
4.5 Kết quả hiện thực hệ thống trên kit FPGA Cyclone III 96
4.6 Phân tích, nhận xét, đánh giá kết quả 100
4.6.1 Phân tích tốc độ dữ liệu, khả năng xử lý thời gian thực 100
4.6.2 Đánh giá về chất lượng xử lý tách cảnh nền 102
4.6.3 Nhận xét, đánh giá kết quả 103
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 104
Trang 105.2 Hướng phát triển 104
TÀI LIỆU THAM KHẢO 105 PHỤ LỤC 107
Trang 11
DANH MỤC BẢNG
Bảng 1: Bảng mô tả thông số thiết kế IP 23
Bảng 2 Các kiểu packet và giá trị của 4-bit định dạng tương ứng 29
Bảng 3 Ý nghĩa của 4 bits interlaced/progressive 31
Bảng 4: Thứ tự và nội dung của nibbles trong control data packet 32
Bảng 5 Các thông số của Video Avalon khi truyền dữ liệu 33
Bảng 6 Các tín hiệu dùng trong Video Avalon 33
Bảng 7: Bảng mô tả chi tiết tín hiệu vào ra của IP tách cảnh nền 36
Bảng 8: Bảng cài đặt tham số cho IP tách cảnh nền 37
Bảng 9: Bảng mô tả chức năng tín hiệu khối Sink Control 38
Bảng 10: Bảng mô tả chức năng tín hiệu của khối Source Control 41
Bảng 11: Chi tiết chức năng các tín hiệu điều khiển 43
Bảng 12: Mô tả chức năng tín hiệu đọc dữ liệu từ FIFO của bộ read_master 44
Bảng 13: Mô tả chức năng các tín hiệu giao tiếp để ghi dữ liệu vào bộ FIFO của bộ write_master 44
Bảng 14: Chi tiết chức năng các tín hiệu vào ra của module data controller 46
Bảng 15: Bảng tín hiệu vào ra của bộ data writer 47
Bảng 16: Bảng các tham số cài đặt cho bộ data writer 48
Bảng 17: Bảng mô tả chức năng tín hiệu vào ra của bộ data reader 49
Bảng 18: Bảng các tham số cài đặt cho bộ data reader 49
Bảng 19: Mô tả chức năng tín hiệu khối core 50
Bảng 20: Bảng tần số sử dụng của hệ thống 95
Bảng 21: Bảng tính toán tốc độ dữ liệu của các kênh ngõ vào ra 101
Bảng 22: Bảng so sánh chất lượng giải thuật đề nghị với một số giải thuật khác 102
Trang 12FPGA Field-Programmable Gate Array
Trang 13DANH MỤC CÁC HÌNH VẼ
Hình 1-1: Sơ đồ khối hệ thống theo dõi đối tượng trong hệ thống giám sát phương tiện giao thông Dựa vào thuật toán tách cảnh nền, các phương tiện giao thông được tách khỏi nền và
sử dụng thuật toán tracking để theo dõi phương tiện 1
Hình 1-2: Mô tả ứng dụng thiết bị key, (a) Diễn viên quay trước một màn hình xanh dương, (b): Diễn viên được tách khỏi cảnh nền và ghép vào ảnh mới 2
Hình 1-3: Sơ đồ khối của quá trình tách cảnh nền 3
Hình 1-4: Minh họa các lân cận Von Neuman q (màu xanh) của điểm ảnh p (màu đỏ) 12
Hình 1-5:Minh họa các lân cận Moore q (màu xanh) của điểm ảnh p (màu đỏ) 12
Hình 1-6: Người dùng định nghĩa seed pixel Màu đỏ(object), màu xanh (Bg) 13
Hình 1-7: Nhãn được xác định dựa trên định nghĩa của người dùng Màu trắng là nhãn Object, màu đen là nhãn Bg, màu xám là nhãn vùng unknown cần được xử lý 14
Hình 1-8: Minh họa quá trình tiến hóa của giải thuật: (a) bước 1, (b) bước 10, (c) bước 25, (d) bước 40, e bước 65 15
Hình 1-9: Sơ đồ khối giải thuật đề xuất bởi Elyor, K Gueesang Lee [12] 16
Hình 1-10: Quá trình phân vùng được đề xuất bởi [12] 16
Hình 1-11: Mô tả hệ thống background subtraction đề nghị trong đề tài 17
Hình 1-12: Sơ đồ khối hệ thống thực hiện giải thuật 18
Hình 2-1: Sơ đồ giải thuật tách cảnh nền đề nghị 20
Hình 2-2: Sơ đồ khối tổng quát thiết kế IP tách cảnh nền 24
Hình 2-3 Phương thức truyền dữ liệu trực tiếp của Video Avalon 26
Hình 2-4 Phương thức truyền dữ liệu trực tiếp của Video Avalon có backpressure 26
Hình 2-5 Phương thức truyền dữ liệu theo packet của Avalon Video 28
Hình 2-6 Vị trí của 4-bit định dạng kiểu trong một packet 29
Hình 2-7 Cấu trúc của video data packet truyền song song 30
Hình 2-8 Cấu trúc của video data packet truyền nối tiếp 31
Trang 14Hình 2-10 Cấu trúc của control data packet truyền song song 32
Hình 2-11: Sơ đồ khối tổng quát luồng dữ liệu của IP tách cảnh nền 34
Hình 2-12: Sơ đồ khối chi tiết cấu trúc IP tách cảnh nền 35
Hình 2-13: Sơ đồ khối Sink Control 38
Hình 2-14: Sơ đồ chi tiết khối Sink Control 38
Hình 2-15: Giản đồ xung trạng thái ngõ vào bộ sink control 40
Hình 2-16: Giản đồ xung ghi dữ liệu vào FIFO sink, (1) thời điểm ghi dữ liệu vào fifo, (2) thời điểm đọc dữ liệu từ fifo 40
Hình 2-17: Sơ đồ khối Source control 40
Hình 2-18: Sơ đồ khối chi tiết khối Source Control 41
Hình 2-19:Sơ đồ khối bộ đọc 42
Hình 2-20: Sơ đồ khối bộ ghi 42
Hình 2-21: Sơ đồ khối thiết kế khối data controller 45
Hình 2-22: sơ đồ tín hiệu khối data writer 47
Hình 2-23: Sơ đồ tín hiệu khối data reader 48
Hình 2-24: Sơ đồ khối tổng quát bộ core 50
Hình 2-25: Mô tả chi tiết các khối xử lý bên trong khối core 51
Hình 2-26: Sơ đồ chi tiết khối Update 52
Hình 2-27: Cấu trúc phần cứng thực hiện cập nhật giá trị trung bình 53
Hình 2-28: Cấu trúc phần cứng thực hiện cập nhật giá trị phương sai 54
Hình 2-29: Sơ đồ cấu trúc phần cứng thực hiện giải thuật Growcut 54
Hình 2-30: Cấu trúc phần cứng thực hiện bước cập nhật tham số 55
Hình 2-31: Chi tiết cấu trúc phần cứng xử lý cập nhật theo code1 56
Hình 3-1 Sơ đồ khối tổng quát của gói VIP 57
Trang 15Hình 3-2: Dữ liệu video ngõ vào dưới dạng txt file 60
Hình 3-3: Giao diện chương trình mô phỏng IP trên phần mềm Modelsim 60
Hình 3-4: Dữ liệu video ngõ ra dưới dạng text file 61
Hình 3-5: Dạng sóng khối sink control 62
Hình 3-6: Thời điểm nhận gói packet control 62
Hình 3-7: Yêu cầu đọc dữ liệu từ khối data controller 63
Hình 3-8: Dữ liệu trong FIFO bị trống, tín hiệu rdreq_sink sẽ xuống mức 1 63
Hình 3-9: Dạng sóng khối source control 64
Hình 3-10: Ghi dữ liệu vào bộ FIFO_src 64
Hình 3-11: Dạng sóng truyền packet control 65
Hình 3-12: Dạng sóng khi bộ FIFO bị tràn 65
Hình 3-13: Dạng sóng khối data writerr 66
Hình 3-14: Ghi dữ liệu vào bộ FIFO_write 66
Hình 3-15: Chốt tín hiệu control_write_go 66
Hình 3-16: Ghi dữ liệu mỗi burts 128 bit xuống bộ FIFO 67
Hình 3-17: Dạng sóng khối data reader 67
Hình 3-18: Chốt tín hiệu control_read_go 67
Hình 3-19: Dọc dữ liệu mỗi 128 bit từ bộ nhớ 68
Hình 3-20: Đọc dữ liệu từ FIFO_read 68
Hình 3-21: Dạng sóng mô phỏng khối Update 68
Hình 3-22: Số chu kỳ xung clock xử lý, 6clock 69
Hình 3-23: Dạng sóng khối sub 69
Hình 3-24: Khối tính toán ngưỡng 69
Hình 3-25:Khối ngưỡng 70
Hình 3-26: Khối update mean 70
Hình 3-27: Khối update mean zoom 70
Trang 16Hình 3-29: Tính toán các giá trị khối update var 71
Hình 3-30: Hình ảnh frame đầu vào để mô phỏng 72
Hình 3-31: Kết quả mô phỏng trên Matlab 72
Hình 3-32:Kết quả mô phỏng phần cứng 73
Hình 4-1: Sơ đồ tổng quan hệ thống tách cảnh nền 74
Hình 4-2: Video Processing Development Kit 75
Hình 4-3: Sơ đồ khối các thành phần của kit FPGA 76
Hình 4-4: Kit DVI sử dụng để giao tiếp vào, ra kênh video 77
Hình 4-5: Camera HDR-CX380 của hãng sony 77
Hình 4-6: Chèn các file thiết kế để đóng gói IP 78
Hình 4-7: Gán chức năng tín hiệu vào, ra của IP 79
Hình 4-8: Cài đặt chức năng tín hiệu clock ngõ vào 79
Hình 4-9: Cài đặt chức năng ngõ vào của bus Avalon ST sink 80
Hình 4-10: Cài đặt chức năng ngõ vào bus Avalon ST source 81
Hình 4-11: Cài đặt chức năng bus Avalon MM master read, sơ đồ tín hiệu 81
Hình 4-12: Cài đặt chức năng ngõ vào bus Avalon MM read, dạng song tín hiệu 82
Hình 4-13: Cài đặt chức năng ngõ vào bus Avalon MM write 82
Hình 4-14: Cài đặt các tham số mặc định cho IP 83
Hình 4-15: Sơ đồ kết nối các IP trong hệ thống SOPC 84
Hình 4-16: Cấu hình tham số IP Clock Video Input 84
Hình 4-17: Cấu hình tham số IP Scaler 85
Hình 4-18: Cấu hình tham số IP CSC 85
Hình 4-19: Cấu hình tham số IP background subtraction 86
Hình 4-20: Cấu hình tham số bộ DDR Control 87
Trang 17Hình 4-21: Cấu hình khối buffer ngõ vào 87
Hình 4-22: Cấu hình khối buffer ngõ ra 88
Hình 4-23: Cấu hình khối Up Scaler 88
Hình 4-24: Cấu hình tham số IP Clock Video Output 89
Hình 4-25: Nhấn nút Generate để tạo ra System 89
Hình 4-26: Các IP sử dụng trong SOPC 90
Hình 4-27: Ghép System sai khi đã Generate vào trong hệ thống thiết kế 90
Hình 4-28: Cấu hình tần số ngõ vào 125Mhz cho bộ PLL 91
Hình 4-29: Cấu hình tần số ngõ ra 148.5Mhz của bộ PLL 91
Hình 4-30:Kết nối vào ra của bộ PLL 92
Hình 4-31: Kết nối System với các tín hiệu của DDR bot 92
Hình 4-32: Kết nối ngõ ra video của System kết nối vào kit DVI 92
Hình 4-33: Kết nối system với các tín hiệu DDR TOP 93
Hình 4-34: Kết nối các tín hiệu ngõ vào video của kit DVI với System 93
Hình 4-35: Kết quả tổng hợp hệ thống 94
Hình 4-36: Netlist RTL view trong quartus của IP thiết kế 94
Hình 4-37: Netlist RTL view trong quartus 95
Hình 4-38: Hệ thống hiện thực giải thuật trên kit FPGA 97
Hình 4-39: Hình nền được lưu vào mô hình 97
Hình 4-40: Kết quả phát hiện đối tượng 98
Hình 4-41: Kết quả trừ nền một số khung hình liên tiếp 98
Hình 4-42: Hình nền chụp từ camera 99
Hình 4-43: Hình ảnh mô hình nền được khởi tạo tại thời điểm ban đầu 99
Hình 4-44: Một số khung ảnh xử lý 100
Hình 4-45: Kết quả xử lý với mô hình nền Hình 4-43 100
Hình 4-46: Thông tin video ngõ ra của cổng DVI 102
Trang 19HVTH: Trương Văn Cương 1
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Giới thiệu về giải thuật tách cảnh nền
Phương pháp tách cảnh nền (background subtraction) hay có thể gọi phương pháp phát hiện tiền cảnh (foreground detection) là một kỹ thuật trong lĩnh vực xử lý ảnh và thị giác máy tính Tách cảnh nền là một quá trình tách đối tượng từ một mô hình nền, đối tượng được phát hiện bằng cách tính sự khác biệt giữa khung hình hiện tại với mô hình nền [1] Ngày nay, tách cảnh nền là một khái niệm được ứng dụng rộng rãi để phát hiện đối tượng chuyển động trong các video được quay từ các camera tĩnh, và một số được mở rộng đối với các video được quay từ các camera di chuyển Trong thập kỷ qua, một số thuật toán được phát triển cho giải thuật tách cảnh nền, và được
sử dụng cho nhiều ứng dụng quan trọng khác nhau như các hệ thống giám sát hình ảnh (visual surveillance), phân tích video thể thao, chụp ảnh chuyển động, vv
Hình 1-1: Sơ đồ khối hệ thống theo dõi đối tượng trong hệ thống giám sát phương tiện giao thông Dựa vào thuật toán tách cảnh nền, các phương tiện giao thông được tách khỏi nền và sử
dụng thuật toán tracking để theo dõi phương tiện
Trong ứng dụng về hệ thống giám sát hình ảnh, tách cảnh nền trong một khung hình đóng một vai trò quan trọng để phân vùng và nhận dạng đối tượng để giám sát Hình 1-1 mô tả hệ thống thống phát hiện và theo dõi (tracking) phương tiện giao thông di chuyển trong lĩnh vực giám sát
Trang 20HVTH: Trương Văn Cương 2
(foreground) là các phương tiện tham gia giao thông sẽ được được tách ra khỏi khung hình để đưa vào khâu xử lý, nhận dạng vv
Trong lĩnh vực truyền hình, tách cảnh nền được ứng dụng rộng rãi trong ứng dụng phim trường
ảo Phim trường ảo giúp cho các nhà sản xuất rất nhiều thuận lợi như không tốn thời gian chi phí dựng cảnh thật, diện tích phim trường không cần phải lớn, tạo cho người xem một cảm giác mới
lạ, sống động Người làm chương trình có thể đổi cách thể hiện nhanh chóng mà không cần phụ thuộc vào những yếu tố khách quan bên ngoài như thời gian, môi trường Ở đây người diễn viên không cần đứng trong một khung cảnh thật mà đứng trong một phim trường được sơn toàn bộ bằng một màu xanh thuần túy (xanh dương hoặc xanh lá cây) Lúc này diễn viên sẽ không cần đứng trong một khung cảnh thật mà đước trước một màn hình xanh thuần túy Cảnh nền lúc này chính
là màn hình xanh Sau đó, diễn viên sẽ được tách ra khỏi cảnh nền để trộn với hình ảnh đồ họa trên máy tính, để người xem sẽ thấy trên màn hình là người diễn viên đang diễn xuất trên nền hình ảnh
đồ họa được tạo từ máy tính chứ không phải là nền xanh nữa[Hình 1-2].Thiết bị thực hiện chức năng này được gọi là thiết bị KEY
Hình 1-2: Mô tả ứng dụng thiết bị key, (a) Diễn viên quay trước một màn hình xanh dương,
(b): Diễn viên được tách khỏi cảnh nền và ghép vào ảnh mới
Các bước mô tả quá trình tách cảnh nền được mô tả ở Hình 1-3 Giải thuật tách cảnh nền tổng quát thường được chia làm bốn bước :
Background Subtraction: Là bước trừ khung hình hiện tại với mô hình nền để được đối
tượng thuộc tiền cảnh
Background modeling: là bước mô tả kiểu của mô hình được sử dụng để biểu diễn cảnh nền Background Update Process: l là bước cập nhật cảnh nền để điều chỉnh mô hình do sự biến
đổi của môi trường theo thời gian
Trang 21HVTH: Trương Văn Cương 3
Foreground detection: Sau khi có mô hình cảnh nền, tiền cảnh sẽ được phát hiện bằng cách
so sánh sự khác biệt giữa khung hình hiện tại và mô hình nền Đây là bước phân loại các điểm ảnh thuộc tiền cảnh hay cảnh nền, từ đó đối tượng sẽ được tách ra khỏi khung hình
Hình 1-3: Sơ đồ khối của quá trình tách cảnh nền
Những vấn đề khó khăn khi thực hiện giải thuật tách cảnh nền là ảnh hưởng về độ sáng của môi trường thay đổi, nhiễu do camera, chi phí tính toán, và dung lượng bộ nhớ yêu cầu xử lý Ngoài ra, đối tượng được tách ra khỏi cảnh nền thường cho kết quả không tốt, cần một phương pháp để có để giải quyết vấn đề này Phần giới thiệu về một số công trình liên quan sẽ phân tích khuyết điểm của từng phương pháp và cách giải quyết các khó khăn trên Dựa trên cơ sở nghiên cứu các công trình liên quan, Học viên đưa ra phương pháp tiếp cận để đề xuất một giải thuật tách nền và hiện thực giải thuật trên cấu trúc phần cứng FPGA
1.2 Các công trình nghiên cứu liên quan
1.2.1 Một số phương pháp mô hình nền
Có nhiều phương pháp mô hình nền được sử dụng cho giải thuật tách cảnh nền tùy thuộc vào từng ứng dụng khác nhau mà mỗi phương pháp đều có ưu điểm và giới hạn riêng Một số phương pháp được ứng dụng tốt đối với nền tĩnh, một số phương pháp thì được áp dụng tốt cho nền động Phương pháp đơn giản nhất là chụp một bức ảnh nền không bao gồm bất kỳ một đối tượng nào sử
Trang 22HVTH: Trương Văn Cương 4
luôn luôn thay đổi dưới nhiều điều kiện khác nhau như: độ sáng thay đổi, đối tượng xuất hiện và loại bỏ khỏi khung hình với tốc độ khác nhau Một số phương pháp mô hình nền được tìm hiểu trong đề tài:
- Mô hình nền cơ bản (Basic Background Modeling)
- Mô hình nền thống kê (Statistical Background Modeling)
- Mô hình nền dựa trên phương pháp phân cụm (Clustering Background Modeling)
1.2.1.1 Mô hình nền cơ bản
Các phương pháp mô hình nền cơ bản có thể được liệt kê: phương pháp Frame differencing, phương pháp trung bình (Average - Running Average), trung vị (Median - Approximated Median), histogram (Histogram over time), Frame differencing
Ưu điểm của các phương pháp này:
Giá trị ngưỡng được sử dụng cho tất cả các điểm ảnh
Do đo phương pháp này sẽ cho kết quả không tốt trong một số điều kiện:
- Nếu nền là hai mô hình
- Cảnh nền bao gồm nhiều đố itương di chuyển chậm
- Điều kiện độ sáng thay đổi theo thời gian
Trong phương pháp Frame differencing, đối tượng có thể được tách ra bằng cách trừ khung ảnh hiện tại với khung ảnh trước đó hoặc với khung ảnh trung bình của một số khung Phương pháp này chỉ làm việc tốt ở một số điều kiện của chuyển động đối tượng và khung hình cụ thể, và rất nhạy với ngưỡng Các điểm ảnh thuộc đối tượng nếu thỏa mãn phương trình (1):
|𝐼𝑖(𝑥, 𝑦) − 𝐼𝑖−1(𝑥, 𝑦)| > 𝑇 (1)
Trong đó:
𝐼𝑖(𝑥, 𝑦): là giá trị điểm ảnh của khung hình hiện tại ở vị trí (x,y), 𝐼𝑖−1(𝑥, 𝑦) là giá trị điểm ảnh của khung hình trước đó tại vị trí (x,y), và T là giá trị nguõng
Trang 23HVTH: Trương Văn Cương 5
Trong phương pháp trung bình [2], trung vị [3] thì sử dụng trung bình hoặc trung vị của N khung hình trước đó như là mô hình nền, Bg Tuy nhiên phương pháp này yêu cầu rất tốn bộ nhớ Giá trị Bg có thể được tính bởi công thức (2)
ta có thể tách được cảnh nền ra khỏi ảnh cần xử lý
1.2.1.2 Phương pháp thống kê
Cách đầu tiên để biểu diễn một cách thống kê mô hình nền là giả sử rằng lịch sử giá trị cường
độ của điểm ảnh theo thời gian có thể được mô hình bởi một Gaussian đơn (single Gaussiaan) [5] Tuy nhiên, mô hình đơn này không thể xử lý được những cảnh nền động (dynamic backgrounds) khi có sự thay đổi của cây cối, gợn sóng nước Để giải quyết vấn đề này, mô hình hỗ hợp Gaussian (Mixture of Gaussian - MoG) được sử dụng để mô hình một cảnh nền động [6] Mô hình này có một vài nhược điểm, cảnh nền có các biến thay đổi nhanh không thể mô hình chính xác với số Gaussian từ 3 đến 5 Vì vậy, kỹ thuật Non-parametric được phát triển để đánh giá xác xuất tại mỗi điểm ảnh từ nhiều mẫu hiện tại theo thời gian sử dụng KDE (Kernel density estimation), nhưng phương pháp này tốn thời gian Một số phương pháp sẽ được mô tả chi tiết ở phần dưới đây:
Trang 24HVTH: Trương Văn Cương 6
Tác giả Wren và cộng sự đề xuất phương pháp để mô hình cảnh nền tại mỗi vị trí điểm ảnh (i,j) [5] Mô hình này dựa trên ý tưởng xây dựng một hàm mật độ Gaussian (probability density function - pdf) trên giá trị của n điểm ảnh cuối cùng Để có thể cập nhật mô hình này theo thời gian tại mỗi khung hình tiếp theo, giá trị trung bình và phương sai được cập nhật Các điểm ảnh sẽ được phân loại là thuộc cảnh nền hay đối tượng dựa theo công thức (4):
Đ𝑖ể𝑚 ả𝑛ℎ 𝑡ℎ𝑢ộ𝑐 {𝐵𝑎𝑐𝑘𝑔𝑟𝑜𝑢𝑛𝑑 𝑛ế𝑢| 𝜇𝑡+1− 𝑋𝑡+1| < 𝑘𝜎𝑡+1
Trong đó:
µt+1: Giá trị trung bình của điểm ảnh tại khung hình t+1
Xt+1: Giá trị của điểm ảnh tại khung hình t+1
𝜎𝑡+1: Phương sai tại khung hình t+1
Cập nhật mô hình nền:
Các giá trị trung bình và phương sai của mô hình nền được cập nhật theo phương trình (5), ( 6) Giá trị trung bình của mô hình nền:
Giá trị phương sai của mô hình nền:
Thay vì sử dụng không gian màu RGB của tác giả Wren, tác giả Medioni và các cộng sự đề xuất xử lý trên không gian màu HSV [7] Mô hình màu HSV ổn định hơn mô hình màu RGB khi
có sự thay đổi về cường độ ánh sáng bởi vì nó tách riêng thông tin cường độ sáng (V-value) với thông tin màu sắc (H-Hue, Satuation-S) Zhao và các cộng sự [8] cũng sử dụng không gian màu HSV nhưng nhận thấy rằng sự phân bố của H và S khác nhau một cách tự nhiên, trong khi đó phân
bố của V là ổn định nhất Vì vậy các thành phần của H và S chỉ được sử dụng khi chúng ổn định Kết quả cho thấy rằng, phương pháp sử dụng không gian màu HSV sẽ cho kết quả tốt hơn khi có
sự thay đổi về ánh sáng (illumination Changes) và những nơi ánh sáng kém (shadows)
Phương pháp SG phù hợp với môi trường trong nhà, và những nơi có điều kiện ánh sáng ít thay đổi
( 6)
𝛿𝑡+12 = (1 − 𝛼)𝛿𝑡2+ 𝛼 (𝑋𝑡+1− 𝜇𝑡+1)2
Trang 25HVTH: Trương Văn Cương 7
từ việc huấn luyện dữ liệu sử dụng thuật toán lặp cực đại hóa kỳ vọng (Expectation Maximization – EM) hoặc tối đa hậu nghiệm (Maximum A Posteriori – MAP)
Một mô hình GMM là tổng thành phần của k thành phần mật độ Gaussian được cho bởi công thức (7):
Trong đó: 𝜇𝑖, 𝜎𝑖2 là trung bình và độ lệch chuẩn của lớp thứ i
Thực hiện mô hình GMM ở hai bước:
Xây dựng và cập nhật mô hình
Một mô hình hỗn hợp K phân phối Gaussian được sử dụng để mô hình chuỗi thời gian của các giá trị quan sát tại một điểm ảnh cụ thể (X1…, Xt) Xác suất xuất hiện của các giá trị điểm ảnh hiện tại được cho bởi công thức (9):
Trang 26HVTH: Trương Văn Cương 8
𝜔𝑖,𝑡 : Trọng số đánh giá của Gaussian thứ i trong mô hình hỗn hợp tại thời điểm t
𝜇𝑖,𝑡 : Trung bình của Gaussian thứ i trong mô hình hỗn hợp tại thời điểm t
∑i,t: Ma trận hiệp phương sai của Gaussian thứ i trong mô hình hỗ hợp tại thời điểm t η: Hàm mật độ phân phối Gaussian, được cho bởi công thức (10):
𝜂(𝑋𝑡, 𝜇, Σ) = 1
(2𝜋)𝑛2 |Σ|
1 2
Nếu không có phân phối nào Match với giá trị điểm ảnh hiện tại, phân phối có khả năng xảy
ra ít nhất được thay thế với một phân phối với giá trị hiện tại bằng với giá trị trung bình của nó, một khởi tạo một phương sai cao và hệ số tiên nghiệm thấp (low prior weight)
Hệ số tiên nghiệm của phân phối K tại thời điểm t được điều chỉnh bởi phương trình (12)
Trong đó, α là bình phương tốc độ học (learning rate), Mk,t = 1 trong trường hợp mô hình matched, bằng 0 trong trường hợp còn lại Sau bước xấp xỉ này, các trọng số sẽ được chuẩn hóa lại
Trang 27HVTH: Trương Văn Cương 9
Các tham số µ và σ không đổi trong trường hợp Unmatched Trong trường hợp Match, các tham số của phân phối được cập nhật theo phương trình (13) và (14)
độ lệch chuẩn thấp và nó Match trong nhiều khoảng thời gian Khi các Gaussian được sắp xếp theo thứ tự xếp hạng giảm dần của hệ số chuẩn hóa w/ σ, giá trị trị đầu tiên sẽ giống cảnh nền nhất và được tính bởi công thức (16)
1.2.1.3 Thuật toán phân cụm K-means
Thuật toán K-means được sử dụng lần đầu tiên năm 1967 bởi James MacQueen, dựa trên ý tưởng của Hugo Steinhaus năm 1957 Đây là phương pháp của vector quantization, phổ biến cho
kỹ thuật phân tích cụm trong cực tiểu hóa dữ liệu Phân cụm K-means nhằm mục đích chia tập dữ liệu gồm n quan sát vào k cụm khác nhau, trong đó mỗi quan sát thuộc về cụm với trung bình gần nhất Giải thuật K-means được mô tả như sau:
Trang 28HVTH: Trương Văn Cương 10
means sẽ chia n quan sát trên vào tập s, k cụm ( k <= n) S= {S1,S2,…,Sk} theo công thức (17)
argmin
𝑠
∑ ∑ ||𝑥𝑗− 𝜇𝑗||2
𝑥𝑗∈𝑆𝑖𝑖=1
(17)
Trong đó: 𝜇𝑗 là giá trị trung bình của mỗi cụm
Ta có thể hiểu từ “K” nghĩa là chia dữ liệu thành K phần (vùng-cụm) “Mean” được hiểu tính giá trị trung bình của cụm Thuật toán chuẩn (standard algorithm) K-means sử dụng kỹ thuật vòng lặp đi lặp lại cho đến khi hội tụ xảy ra Do tính phổ biến của phương pháp này, thuật toán này
thường được gọi là thuật toán K-means (K-means algorithm) hoặc gọi là thuật toán LIoyd’s [9]
Giải thuật K-Mean ứng dụng trong kỹ thuật phân vùng ảnh được thực hiện như sau:
Chia bức ảnh thành k cụm ngẫu nhiên, m1(1), m2(1),m3(1).mk(1)là giá trị trung bình các cụm khởi tạo
Bước 1: Assignment step
Gán các điểm ảnh đến các cụm sao cho khoảng cách đến điểm đó đến cụm là nhỏ nhất Khoảng cách từ điểm ảnh đến các cụm được tính theo khoảng cách Euclidean Công thức (18) mô tả phép gán cho bước này:
𝑆𝑖(𝑡) = {𝑥𝑝: ‖𝑥𝑝− 𝑚𝑖(𝑡)‖2∀𝑗, 1 ≤ 𝑗 ≤ 𝑘} (18)
Xp: được gán đến cụm S(t)
Bước 2: Update step
Tính toán lại giá trị trung bình của mỗi cụm mới, giá trị trung bình được tính theo công thức:
1.2.2 Phân vùng ảnh dựa trên phương pháp GrowCut
Growcut là một phương pháp dựa trên Region growing Đây là phương pháp lặp đi lặp lại, được để xuất bởi tác giả V Vezhnevets, V Konouchine (2005) trong bài báo [10] Thuật toán này
sử dụng máy tự động (Cellular Automaton) như là một mô hình ảnh (image model) Máy tiến
Trang 29HVTH: Trương Văn Cương 11
hóa tự động mô hình quá trình phân vùng (segmentation process) Mỗi một tế bào của máy tự động
có vài nhãn (label- Trong trường hợp bi-segmentation: nhãn của tế bào sẽ là: ‘object’,
‘background’, ‘empty’) Trong quá trình tiến hóa tự động làm một số cell sẽ thu thập (capture) các lân cận của chúng, thay các nhãn này Trong thuật toán Growcut, người sử dụng đưa ra một số nét thuộc bên trong đối tượng quan tâm và một số nét thuộc bên ngoài đối tượng quan tâm Trong trường hợp đơn giản, một số nét là đủ để phân vùng Bài báo [10] đề xuất một chương trình tương tác người dùng trực quan – người dùng chỉ định các điểm ảnh nhất định (điểm ảnh hạt giống – seed pixel) thuộc đối tượng (object), có thể phân vùng với nhau Nhiệm vụ là ta phải gán nhãn cho tất cả các điểm ảnh một cách tự động, để đạt được kêt quả phân vùng tốt nhất Phương pháp này
sử dụng Celllar automaton để giải quyết vấn đề gán nhãn Đây là một phương pháp lặp, hồi tiếp
cho người dùng trong khi quá trình phân vùng được tính toán Phương pháp đề xuất cho phép (nhưng không yêu cầu) đầu vào của con người trong quá trình gán nhãn, cung cấp một vòng lặp động và hồi tiếp giữa người dùng và giải thuật Điều này cho phép điều chỉnh và hướng dẫn của các thuật toán với đầu vào người dùng trong các vùng mà quá trình phân vùng khó khăn trong việc tính toán, nhưng không yêu cầu người dùng bổ sung nỗ lực nơi mà quá trình phân vùng là tính toán tin cậy tự động Cellular automata được giới thiệu bởi Ulam và Von Neumann Được sử dụng
để mô hình nhiều hệ thống động trong nhiều ứng dụng khác nhau, bao gồm các ứng dụng như giảm nhiễu ảnh, phát hiện cạnh Cellular automaton là một thuật toán rời rạc ở cả hai miền không gian và thời gian, hoạt động trên mạng lưới các điểm p P Zn
Một Cellular automaton là một bộ ba tham số A = (S, N, σ) S là một tập hợp state set (cell
staet), N là hệ thống lân cận, σ= SN S, hàm truyền địa phương (rule) Hàm này định nghĩa luật tính toán trạng thái của cell tại thời điểm t+1, được cho trạng thái của các tế bào lân cận tại thời điểm t trước đó
Xác định hệ thống lân cận thường được sử dụng lân cận Von Neumann hoặc Moore
Lân cận Von Neumann
Lân cận Von Neumann được xác định bởi công thức (20) và Hình 1-4 mô tả các lân cận Von Neumann của điểm ảnh p
𝑁(𝑝) = {𝑞 ∈ 𝑍𝑛: ‖𝑝 − 𝑞‖1 = ∑ |𝑝𝑖− 𝑞𝑖
𝑛 𝑖=1
Trang 30HVTH: Trương Văn Cương 12
Hình 1-4: Minh họa các lân cận Von Neuman q (màu xanh) của điểm ảnh p (màu đỏ)
Hình 1-5:Minh họa các lân cận Moore q (màu xanh) của điểm ảnh p (màu đỏ)
Trạng thái của tế bào (cell state) Sp gồm 3 hệ số (𝑙𝑝, 𝜃𝑝𝐶⃗⃗⃗⃗ ) trong đó: 𝑝
𝑙𝑝 : Nhãn của tế bào hiện tại
𝜃𝑝: Độ tin cậy ‘strength’ của tế bào hiện tại, p [0:1]
𝐶𝑝
⃗⃗⃗⃗ : Vector định nghĩ bởi hình ảnh
Các bước thực hiện giải thuật được mô tả như sau:
Bước 1: Khởi tạo tham số
Trang 31HVTH: Trương Văn Cương 13
Không gian celluar space P được định nghĩa bởi tấm ảnh 2 chiều k x m, khởi tạo trạng thái cho
các điểm ảnh, ∀p∈P, và
𝑙𝑝 = 0, 𝜃𝑝 = 0, 𝐶⃗⃗⃗⃗ = 𝑅𝐺𝐵𝑝 𝑝 (22)
Trong đó: RGBp là một vector 3 chiều của điểm ảnh p trong không gian màu RGB
Mục tiêu cuối cùng của việc phân vùng này là gán mỗi điểm ảnh tới một trong K nhãn của ảnh
Bước 2: Khởi động quá trình phân vùng
Người dùng định nghĩa các điểm ảnh tin cậy (seed pixel), xác định đâu là đối tượng (object), đâu là cảnh nền (background) Bước này sẽ khởi tạo trạng thái của các Cellular automaton Hình 1-6 mô tả quá trình định nghĩa các điểm ảnh tin cậy: Các đường màu xanh khởi tạo các điểm ảnh tin cậy thuộc vùng nền, các đường màu đỏ khởi tạo các điểm ảnh tin cậy thuộc vùng đối tượng Sau khi khởi tạo các điểm ảnh tin cậy, nhãn của ảnh cũng sẽ được khởi tạo Hình 1-7 minh họa nhãn ban đầu được khởi tạo, màu trắng là nhãn đối tượng, màu đen là nhãn cảnh nền, màu xám là nhãn vùng chưa xác định (unknown) cần được xử lý
Hình 1-6: Người dùng định nghĩa seed pixel Màu đỏ(object), màu xanh (Bg)
Trang 32HVTH: Trương Văn Cương 14
Hình 1-7: Nhãn được xác định dựa trên định nghĩa của người dùng Màu trắng là nhãn Object,
màu đen là nhãn Bg, màu xám là nhãn vùng unknown cần được xử lý
Ban đầu giá trị độ tin cậy p = 0 trong trường hợp chưa xác định, p = 1 tại các điểm ảnh tin cậy
Bước 3: Cập nhật tham số
Tại vòng lặp t+1, nhãn của các tế bào lpt+1 và độ tin cậy pt+1 đươc cập nhật như sau:
// for each cell
Trang 33HVTH: Trương Văn Cương 15
(25)
1 + 𝑒𝑥𝑝 (𝛽𝑥𝛼)
Trang 34HVTH: Trương Văn Cương 16
Hình 1-9: Sơ đồ khối giải thuật đề xuất bởi Elyor, K Gueesang Lee [12]
Hình 1-10: Quá trình phân vùng được đề xuất bởi [12]
1.3 Phương pháp tiếp cận
Một thuật toán tách cảnh nền ổn định và hiệu quả có thể xử lý được tốt trong những điều kiện thay đổi ảnh sáng, và cảnh nền thay đổi thường xuyên Qua phần phân tích tổng quan cho thấy rằng, các phương pháp cơ bản đơn giản và dễ thực hiện Tuy nhiên kết quả thường phụ thuộc nhiều vào yếu tố môi trường bên ngoài và đòi hỏi dung lượng bộ nhớ lớn Phương pháp Gaussian Mixture Model là một phương pháp được sử dụng rông rãi trong nhiều ứng dụng Ưu điểm của phương pháp này là độ ổn định cao Tuy nhiên, phương pháp này chi phí thời gian xử lý rất cao Để có thể đáp ứng được xử lý thời gian thực, yêu cầu về băng thông bộ nhớ là rất lớn Phương pháp Single Gaussian yêu cầu về dung lương bộ nhớ thấp hơn phương pháp GMM, phù hợp với các ứng dụng
xử lý video trong nhà, môi trường điều kiện ánh sáng ít thay đổi
Với giới hạn trong đề tài luận văn xử lý dữ liệu video từ camera tĩnh trong môi trường trong nhà, và yêu cầu xử lý đáp ứng thời gian thực, phương pháp Single Gaussian được chọn là phù hợp nhất Tuy nhiên, nếu chỉ sử dụng phương pháp Signle Gaussian, thì kết quả tách đối tượng sẽ không được tốt Để cải thiện vấn đề này, giải thuật GrowCut cải tiến có thể thực hiện được trên cấu trúc phần cứng sẽ được áp dụng để nâng cao chất lượng xử lý Với ưu điểm ổn định và hiệu
Trang 35HVTH: Trương Văn Cương 17
quả, đề tài tập trung vào việc hiện thực giải thuật trên cấu trúc phần cứng FPGA và xử lý video đáp ứng thời gian thực
1.3.1 Hệ thống đề nghị
Đề tài xây dựng hệ thống hiện thực giải thuật tách cảnh nền ra khỏi cảnh video, chỉ giữ lại đối tượng di chuyển trong video Hình 1-11 mô tả hệ thống đề nghị, hình a, ảnh nền khi chưa có đối tượng, hình b: hình ảnh khi có đối tượng di chuyển c-f: các bước tách cảnh nền ra khỏi khung hình, kết quả (hình f) ta tách được đối tượng cần xử lý ra khỏi hình b
Sơ đồ giải thuật hệ thống được mô tả ở Hình 1-12 Video được lấy từ camera, đưa vào khối
xử lý, hệ thống sẽ tách ra được background và đối tượng và hiển thị kết quả ra màn hình
Thuật toán đề xuất được phát triển và mô phỏng bằng Matlab/C Sau khi mô phỏng giải thuật trên Matlab, khâu tiếp theo là thiết kế cấu trúc phần cứng của hệ thống sử dụng ngôn ngư Verilog Các khối này được mô phỏng, kiểm tra, và so sánh kết quả với kết quả mô phỏng trên matlab Chi tiết phần này được mô tả ở chương 3
Giải thuật được hiện thực trên kit phát triển Cyclone III Development, đây là kit được thiết kế chuyên dụng cho các ứng dụng xử lý hình ảnh và video Chi tiết về hiện thực giải thuật được mô
tả ở chương 4
Hình 1-11: Mô tả hệ thống background subtraction đề nghị trong đề tài
Trang 36HVTH: Trương Văn Cương 18
Background Subtraction
Moving object (foreground)
Hình 1-12: Sơ đồ khối hệ thống thực hiện giải thuật
1.4 Mục tiêu, nội dung luận văn
1.4.1 Mục tiêu
Tách cảnh nền được xem là một bước quan trong trong nhiều ứng dụng hiện nay và rất được quan tâm trong lĩnh vực thị giác máy tính, đặc biệt là khả năng xử lý hình ảnh độ phân giải cao, đáp ứng thời gian thực Đây chính là lý do để học viên chọn và nghiên cứu đề này “Tách cảnh nền thời gian thực sử dụng FPGA” Mục tiêu đề tài là hiện giải thuật tách cảnh nền có khả năng:
- Hiện thực giải thuật tách cảnh nền dựa trên phương pháp Single Gaussian kết hợp với giải thuật GrowCut
- Xử lý video đáp ứng thời gian thực
- Xử lý hình ảnh 1080P, tốc độ 60 hình/giây
- Hiện thực giải thuật trên cấu trúc phần cứng FPGA
1.4.2 Nội dung
Nội dung đề tài bao gồm các nội dung chính sau :
Nghiên cứu và mô phỏng các giải thuật tách cảnh nền và xây dựng mô hình cảnh nền
Đề xuất và phát triển giải thuật tách cảnh nền cho video đáp ứng thời gian thực
Thiết kế giải thuật trên cấu trúc phần cứng FPGA
o Xây dựng sơ đồ khối thiết kế
o Mô tả thiết kế giải thuật sử dụng ngôn ngữ mô tả phần cứng verilog
Mô phỏng cấu trúc giải thuật trên modelsim
o Xây dựng môi trường kiểm tra mô phỏng bằng ngôn ngữ verilog
o Sử dụng phần mềm mô phỏng modesim để kiểm tra giải thuật thiết kế
o So sánh đánh giá kết quả mô phỏng giải thuật trên phần cứng và phần mềm
Hiện thực giải thuật trên kit FPGA
o Hiện thực giải thuật trên kit FPGA
o Đánh giá kết quả và khả năng đáp ứng xử lý thời gian thực
Báo cáo và đánh giá kết quả đề tài
Trang 37HVTH: Trương Văn Cương 19
CHƯƠNG 2: THIẾT KẾ CẤU TRÚC PHẦN CỨNG CHO GIẢI THUẬT TÁCH CẢNH NỀN DỰA TRÊN PHƯƠNG PHÁP SINGLE GAUSSIAN
VÀ GIẢI THUẬT GROWCUT
2.1 Giải thuật tách cảnh nền dựa trên phương pháp Single Gaussin và
GROWCUT
Như đã phân tích ở phần tổng quan, có nhiều phương pháp để thực hiện giải thuật tách cảnh nền Mỗi phương pháp đều có ưu và khuyết điểm riêng, tùy vào từng ứng dụng cụ thể mà ta có thể chọn một phương pháp cho phù hợp Với giới hạn đề tài là hiện thực giải thuật tách cảnh nền thời gian thực trong môi trường ánh sáng thay đổi ít và camera tĩnh, thì phương pháp Single Gausion được chọn là phù hợp Phương pháp này chỉ sử dụng một phân phối Gassian để mô hình cảnh nền
Để cải thiện kết quả trừ nền, giải thuật GrowCut được áp dụng để cho kết quả tốt hơn tại các đường biên đối tượng Ưu điểm của phương pháp này là tốn ít dung lượng bộ nhớ, mà vẫn có khả năng
xử lý tốt ở các điều kiện trong nhà Mặt khác phương pháp này có khả năng hiện thực được trên KIT FPGA Cylone III Hình 2-1 mô tả sơ đồ giải thuật đề nghị để thực hiện giải thuật tách cảnh nền trên phần cứng FPGA
Trang 38HVTH: Trương Văn Cương 20
kiểm tra số đếm frame N thu thập ảnh
khởi tạo mô hình
Hình 2-1: Sơ đồ giải thuật tách cảnh nền đề nghị
Sau khi khởi động, hệ thống sẽ giao tiếp với camera thu thập ảnh để lưu vào bộ đệm ngõ vào
Hệ thống khởi tạo mô hình nền tại khung hình thứ 10 Sau đó giải thuật trừ nền và cập nhật tham
số mô hình nền được thực hiện Kết quả trừ nền sẽ được hiển thị ra màn hình
2.1.1 Mô hình nền
Như đã tìm hiểu ở phần tổng quan, trong phương pháp của tác giả Wren [5], mô hình nền bao gồm hai thành phần: giá trị trung bình (µ)và giá trị phương sai() của hình ảnh Trong đề tài này, video xám 8bit được sử dụng để xử lý Giá trị trung bình của mô hình của mô hình là giá trị độ xám của video
Khởi tạo mô hình nền
Khi hệ thống bắt đầu hoạt động, các giá trị trung bình và phương sai sẽ được khởi tạo giá trị ban đầu Giá trị trung bình của mô hình được lấy là khung ảnh thứ 10 sau khi hệ thống hoạt động Giá trị phương sai được khởi tạo là một ma trận h*w, có các giá trị bằng nhau và bằng 36 Giá trị trung bình và phương sai của mô hình có độ rộng 8 bit, và mô mình này sẽ được lưu xuống bộ nhớ ngoài DDR2 của hệ thống
Trang 39HVTH: Trương Văn Cương 21
2.1.2 Trừ nền dựa trên phương pháp Growcut
Ở bước này, thay vì sử dụng giải thuật trừ nền truyền thống được cho bởi công thức (26), sẽ cho kết quả không tốt tại điểm biên đối tượng Vì vậy, để kết quả tốt hơn, giải thuật trừ nền dựa trên phương pháp GrowCut được đề xuất để giải quyết vấn đề này Khâu trừ nền được chia làm hai bước chính: tạo mặt nạ bimap và áp dụng giải thuật GrowCut
2.1.2.1 Tạo mặt nạ bimap, gán nhãn đối tượng
Đây là bước so sánh khung hình hiện tại với mô hình nền Kết quả là một ma trận bimap bao gồm: các điểm ảnh thuộc vùng nền (background-điểm trắng) hay không không thuộc vùng nền (thuộc tiền cảnh foreground- điểm đen) và các điểm ảnh thuộc vùng unknown Bước này có thể được gọi là bước chọn “seed pixel” trong giải thuật phân vùng ảnh GrowCut Giá trị Bimap được tính toán bởi công thức (26)
It : giá trị điểm ảnh hiện tại
µi : giá trị trung bình của mô hình nền
: giá trị phương sai của mô hình nền
k_l, k_h: giá trị ngưỡng dưới và ngưỡng trên được chọn để phù hợp với từng mô trường
2.1.2.2 Giải thuật GrowCut
Sau khi có được ma trận bimap, giải thuật Growcut cải tiến được áp dụng với số vòng lặp bằng 3 được áp dụng để xử lý các giá trị thuộc vùng unknown Giải thuật được chia làm hai bước:
Bước 1: Khởi tạo tham số
Các cell state Sp trong trường hợp này bao gồm ba tham số (𝑙𝑝, 𝜃𝑝, 𝐶⃗⃗⃗⃗ ), trong đó nhãn l𝑝 p là nhãn của điểm ảnh hiện tại, θp là độ mạnh “strength” của điểm ảnh hiện tại, 𝐶⃗⃗⃗⃗ là giá trị điểm ảnh 𝑝hiện tại Các tham số được cập nhật như sau:
∀p∈P, ta có:
lp : được gán từ mặt trận trimap tính ở bước trước
(27)
Trang 40HVTH: Trương Văn Cương 22