TỔNG QUAN VỀ THIẾT BỊ XỬ LÝ ẢNH THỜI GIAN THỰC
Thiết bị xử lý ảnh bắt bám mục tiêu Video Tracker 8200 – EOImaging (Mỹ)
Thiết bị ủược thiết kế chuyờn dụng cho mục ủớch bắt bỏm mục tiờu Cú khả năng bắt bỏm theo nhiều ủặc trưng khỏc nhau như mức xỏm (intensity), ủường bao (edge), so khớp tương ủồng (correlation), vv… Do ủú, phự hợp với nhiều bài toỏn bắt bỏm khỏc nhau, trong từng ủiều kiện mụi trường, với từng ủối tượng cụ thể
Hình 1 1: Thiết bị xử lý ảnh Video Tracker 8200
Một ủặc ủiểm vượt trội của sản phẩm này là cú băng thụng ủầu vào lớn, cú thể xử lý với tối ủộ bitrate ủầu vào lờn ủến 3Gbps (tương ứng với ủộ phõn giải 1080p, tốc ủộ 60 hỡnh/giõy), ủồng thời cú thể xử lý với cả ủầu vào video dạng tương tự (PAL/NTSC) hoặc dạng số 3G-SDI
Các thành phần xử lý chính của sản phẩm là chip DSP mã TMS320C6455 của Texas Instruments ðồng thời ủể xử lý dữ liệu ủầu vào tốc ủộ cao, một module FPGA (Spartan 6 XC6SLX100) ủược sử dụng ủể thực hiện ủọc và tiền xử lý dữ liệu trước khi ủưa vào xử lý tinh trong DSP Module FPGA này cũng làm nhiệm vụ ủiều khiển việc xuất dữ liệu ra những chuẩn tương tự, số, tương ứng với ủầu vào Trong khi xử lý với tốc ủộ rất cao thỡ kớch thước của thiết bị chỉ bằng 114x127 (mm), và cụng suất tiêu thụ chỉ vào khoảng 12W.
KIT phát triển xử lý ảnh và streaming video Z3-DM8169-VI-RPS (Mỹ)
Hình 1 2: KIT phát triển xử lý ảnh và streaming video của Z3 Technology
KIT phát triển Z3-DM8169-VI-RPS có kiến trúc gồm 2 chip xử lý chính là DSP DM8168 và FPGA Spartan 6
Sản phẩm hỗ trợ cỏc ủầu vào video: Component, HDMI, 3G-SDI, ủầu ra HDMI, 3G-SDI
Khối xử lý gồm 1 lừi ARM cortex A8 tốc ủộ 1.2 GHz và 1 lừi DSP C674x tốc ủộ
Về tính năng, ngoài các tính năng xử lý ảnh mà thư viện TI hỗ trợ, KIT còn cho phộp cỏc tớnh năng mó húa H.264 và MPEG-2 Xử lý với ủộ phõn giải 1080p/i 60fps
Kích thước bo mạch là 218x90 (mm)
YÊU CẦU VÀ THIẾT KẾ CHI TIẾT PHẦN CỨNG HỆ THỐNG
Khối ủầu vào video
Chỳng ta biết rằng, tớn hiệu video ủược chia thành 2 loại chớnh phõn theo mục ủớch: video quảng bỏ, phục vụ truyền hỡnh, giải trớ (broadcast) và video ủồ họa, phục vụ các ứng dụng hình ảnh trên PC, thiết bị chuyên dụng (graphics)
Cú rất nhiều cỏc ủịnh dạng video tương tự và số khỏc nhau cựng tồn tại song song hiện nay
Việc thiết kế khối video input phải tuõn theo một số nguyờn tắc nhất ủịnh như phõn tớch dưới ủõy
- Tớn hiệu video tương tự ủược chia thành 3 chuẩn giao tiếp cơ bản: Composite hay CVBS (1 dây); S-Video (2 dây) và Component (3 dây)
Composite Connector S Connector Component Connector
Hình 2 1: Các chuẩn video tương tự
- Dạng sóng của các tín hiệu video tương tự như sau:
Hình 2 2: Dạng sóng của tín hiệu video tương tự
Việc biến ủổi ủể tớn hiệu tương tự ủể cho ra cỏc ủịnh dạng khỏc nhau ủược minh họa như hình sau:
Hỡnh 2 3: Minh họa biến ủổi tớn hiệu video gốc sang composite video
- Việc thu nhận tớn hiệu video tương tự ủược thực hiện bằng cỏch sử dụng cỏc ADC chuyên dụng (như TVP5150AM của Texas Intrusment; MAX9526 của Maxim Integrated hay ADV7403 của Analog Device)
- Cỏc ADC này sẽ thực hiện quỏ trỡnh lấy mẫu, lượng tử và mó húa tớn hiệu ủể cho ra ủầu ra số của tớn hiệu tương tự
- Ngoài ra, ủối với tớn hiệu video núi chung, cần chỳ ý ủến việc hiển thị ra màn hình Và một trong những tham số quan trọng là tần số quét tín hiệu (fv) Tần số fv càng lớn, bức ảnh hiển thị ra càng mịn
Ví dụ: Ta xét một bức ảnh có kích thước N H xN V như hình sau:
- N H là tổng số ủiểm ảnh (pixel) theo chiều ngang
- N V là tổng số ủiểm ảnh theo chiều dọc
- T p là thời gian quột qua 1 ủiểm ảnh
- T v là thời gian quét tổng của bức ảnh
Hỡnh 2 4: Minh họa bức ảnh ủen trắng kớch thước N H xN V
Khi ủú, thời gian quột cho một pixel ủược tớnh như sau:
Do ủú, nếu coi một chu kỳ ủầy ủủ mất 2 lần thời gian Tp (quột qua 2 pixel), thỡ tần số quột cho một pixel tối ủa (tần số pixel) sẽ là:
(2) Với 1/ , là tần số quét mành (fresh-rate)
Bảng 2 2: Mối liờn hệ giữa ủộ phõn giải ảnh, tần số quột mành và tần số pixel tối ủa
Kích thước (pixel) ðộ phân giải thực (pixel)
Tần số quét mành (Hz)
Tần số pixel tối ủa (Hz)
Tần số pixel tối ủa (MHz)
Như vậy, bảng trờn cho ta thấy, với mỗi chuẩn (ủộ phõn giải) và tần số quột mành khỏc nhau thỡ cho ta tần số video tối ủa khỏc nhau Cỏc IC ủọc video ủầu vào phổ biến thường hoạt ủộng ở cỏc tần số pixel tối ủa phổ biến là: 13.5MHz, 27.0MHz, 75MHz và 125MHz
Ta xột nguyờn lý khối ủầu thu tớn hiệu video tương tự như sau:
Hỡnh 2 5: Nguyờn lý khối ủọc ủầu vào tương tự composite
Theo ủú, tớn hiệu video tương tự từ ủầu vào CVBSOUT1&CVBSOUT2 sẽ ủược ủưa vào chip ADC; Tại ủõy, thực hiện quỏ trỡnh lấy mẫu Dữ liệu ủầu ra là dữ liệu ủó ủược chuyển ủổi kờnh màu (mó húa) Dữ liệu này ủược ủẩy ra trờn một bus song song 8/16/24 bit Tùy thuộc vào cấu tạo của các chip ADC Trong trường hợp này là 8 bit (YOUT0 ủến YOUT7) IC này hoạt ủộng với thạch anh ngoài tần số 14.31818MHz và bộ nhõn tần (PLL) sẽ tạo ra tần số pixel 27MHz cung cấp cho quỏ trỡnh ủọc dữ liệu
1.2 ðầu vào số ðầu vào video số ủược bao gồm cỏc chuẩn phổ biến sau:
HDMI SDI USB 3.0 IP/GigE Camera
Hình 2 6: Các chuẩn video số
Bo mạch Apollo17 hỗ trợ cỏc ủầu vào: HDMI và IP
Trong hình 3.4 là nguyên lý khối thu tín hiệu HDMI sử dụng chip của hãng Analog Devices (ADV7611)
Tớn hiệu HDMI từ ủầu vào jack 19 chõn (J16) ủược ủưa vào chip nhận (HDMI receiver), thực hiện quỏ trỡnh lấy mẫu và biến ủổi khụng gian màu Dữ liệu ủầu ra gồm 24bit YCrCb ủược chuyển sang khối nhận ủầu vào video 0 trờn DSP (VIN0_D0 ủến VIN0_D23)
Hỡnh 2 7: Nguyờn lý khối ủọc ủầu vào số HDMI
Khối xử lý
Ngày nay, cùng với sự phát triển của công nghệ bán dẫn và kỹ thuật chế tạo vật liệu, linh kiện bỏn dẫn Cỏc cụng ty sản xuất chip ủó cho ra ủời rất nhiều cỏc dũng chip mạnh mẽ, hiệu năng cao
Tuy nhiên, mỗi nền tảng xử lý có một thế mạnh khác nhau Trong khi FPGA cho phộp tớnh toỏn ủồng thời nhiều dữ liệu ủộc lập như cỏc phộp tớnh trờn ma trận, xử lý lấy mẫu tốc ủộ cao, song song thỡ DSP lại cho phộp tối ưu cỏc tớnh toỏn số học, logic, cỏc vũng lặp Cũn ARM sẽ cho phộp việc dễ dạng porting cỏc hệ ủiều hành nhõn Linux lờn ủú và triển khai cỏc ứng dụng dựa trờn hệ ủiều hành rất thuận tiện và nhanh chúng Do ủú, cỏch tiếp cận dựa trờn mụ hỡnh thiết kế kết hợp thế mạnh xử lý của cỏc nền tảng sẽ cho phộp giải quyết ủược một lớp cỏc bài toỏn xử lý ảnh ủũi hỏi khụng chỉ tốc ủộ và ủộ phức tạp tớnh toỏn cao mà cũn linh hoạt trong ủiều khiển cơ cấu chấp hành
Qua nghiờn cứu, phõn tớch tỏc giả ủề xuất lựa chọn khối xử lý kết hợp giữa ARM và DSP Cỏc phần tớnh toỏn phức tạp sẽ ủược thực thi trờn lừi DSP, cỏc phần giao diện, ủiều khiển sẽ ủược thực thi trờn lừi ARM Việc lựa chọn 1 chip với cỏc lừi xử lý lai ghép như vậy sẽ giúp tiết kiệm chi phí và giảm kích thước của bo mạch phần cứng
Hỡnh 2 8: Biểu ủồ ủỏnh giỏ thế mạnh của cỏc nền tảng
• DSP: Phần xử lý chớnh của thuật toỏn sẽ ủược thực hiện ở ủõy bao gồm cỏc thao tác tính toán phức tạp, các phép tính số học, logic, các vòng lặp và cấu trỳc ủiều khiển rẽ nhỏnh của thuật toỏn Trong quỏ trỡnh hoạt ủộng, DSP và ARM luụn cú sự tương tỏc trao ủổi dữ liệu thụng qua cỏc bus giao tiếp và cỏc ủường tớn hiệu ủiều khiển thụng qua kỹ thuật giao tiếp giữa cỏc quỏ trỡnh (Inter Process Communication) Kết quả trả về là luồng video ủó ủược xử lý sẽ ủược ủẩy ra ngoài ủể hiển thị hoặc truyền ủi xa Ớ ARM: đóng vai trò ựiều khiển hoạt ựộng chung của toàn hệ thống, cung cấp giao diện ứng dụng, giao diện với cỏc ngoại vi trờn mụi trường hệ ủiều hành Linux thân thiện với người dùng
Bảng 2 3: So sánh giữa các dòng chip của hãng Texas Instrument
Tiêu chí so sánh DM8148 DM8168 DM3730
Giỏ ủơn chiếc 48.75 ủụ la/1 chip
661.26 ủụ la /1 chip Ứng dụng (Applications)
Video Security Thin Client Video Conferencing Video Phones)
Video Security Thin Client Video Conferencing Video Phones)
Audio Automotive Communications and Telecom Computers and Peripherals Consumer Electronics Energy Industrial Medical Security
Avionics and Defense Communications and Telecom Consumer Electronics Industrial Medical Security Space Video and Imaging
Hệ ủiều hành (Operating Systems)
Android DSP/BIOS Neutrino ntegrity Windows Embedded CE Linux
SYS/BIOS Linux VxWorks Integrity
Tần số lõi xử lý ARM (Max.)
Lõi xử lý DSP 1 C674x 1 C674x 1 C64x 8 C66x Tần số lõi xử lý DSP(Max.)
Bộ tăng tốc video (Video Acceleration)
Ngõ vào/ra video (Video Port
2 Output 2 Input 2 SD DACs 1 HDMI
Output 3 HD DACs 4 SD DACs
PCI/PCIe PCIe 1 2-lane x 2 PCIe Gen2
Bộ nhớ nội (On-Chip L2 Cache)
Dải nhiệt ủộ hoạt ủộng (Operating Temperature Range)
Linux EZ Software Development Kit (EZSDK) for
Linux EZ Software Development Kit (EZSDK) for
Linux Digital Video Software Development Kit (DVSDK) for DM3730/3725 Digital Media Processors
Multicore Video Infrastructure Demo for Multicore Software Development Kit (MCSDK)
KIT tham khảo http://z3techno logy.com/uplo ad/DOC- MKT-0015- 03_Z3- DM8148- RPS_Data_She et.pdf http://z3techno logy.com/uplo ad/DOC- MKT-0001- 05_Z3- DM8169-VI- RPS_Data_She et.pdf https://www.isee. biz/products/igep- processor- boards/igepv2- dm3730 http://www.ti.com/to ol/evmk2h
Ghi chú: (*) C = Commercial – chuẩn thương mại; (**) I = Industrial – chuẩn công nghiệp
Chip xử lý ủược chọn là TMS320DM8168 của hóng Texas Instrument – Mỹ với giỏ cả phù hợp và các thông số kỹ thuật nổi trội như trong bảng so sánh trên
Hình 3.6 là kiến trúc phần cứng của chip TMS320DM8168 với tên gọi kiến trúc Davinci
Hình 2 9: Kiến trúc chip xử lý TMS320DM8168
Hình 2 10: Bố trí chân của chip TMS320DM8168
(gồm 1031 chân dạng cầu, khoảng cách các chân 0.65mm)
Lừi xử lý ARM ủược thiết kế sử dụng kiến trỳc ARM Cortex-A8 Lừi xử lý này cú thể ủược dựng ủể ủiều khiển việc trao ủổi dữ liệu giữa ARM-DSP, ủiều khiển hoạt ủộng của cỏc ngoại vi và bộ nhớ ngoài (bộ nhớ DDR3)
Hình 2 11: Kiến trúc lõi xử lý ARM
Lõi xử lý ARM bao gồm các tài nguyên sau:
- Nhân xử lý ARM Cortex-A8 kiến trúc RISC
- Khối theo dõi các module (ETM)
- Bộ ủiều khiển ngắt (AINTC)
- Bộ nhớ ủệm nội 64KB
- Bộ nhớ nội chỉ ủọc 48KB
Lõi xử lý DSP bao gồm các tài nguyên:
- Khối xử lý tính toán C674x
- 32KB bộ nhớ chương trình L1P với mã phát hiện lỗi (EDC)
- 32KB bộ nhớ dữ liệu L1D
- 256KB bộ nhớ ủệm L2 với mó sửa lỗi (ECC)
- Kết nối trực tiếp ủến khối HDVICP2
Hình 2 12: Kiến trúc lõi xử lý DSP
Bộ nóo của lừi xử lý DSP là khối xử lý trung tõm C674x CPU này bao gồm 8 ủơn vị chức năng, hai tệp thanh ghi, hai ủường dẫn dữ liệu như thể hiện trong hỡnh 3.10 Hai tập thanh ghi chức năng chung (A và B) mỗi thanh chứa 32 thanh ghi 32 bit
Tạo nên tổng 64 thanh ghi chứa dữ liệu hoặc con trỏ dữ liệu trong quá trình xử lý tính toán của CPU
Tỏm ủơn vị chức năng gồm (.M1, L1, D1, S1, M2, L2, D2 và S2) ủều cú khả năng thực hiện một chỉ lệnh trong một chu kỳ xung nhịp (clock cycle) ðơn vị chức năng M thực hiện toàn bộ cỏc phộp tớnh nhõn Cỏc ủơn vị S và L thực hiện một tập các phép tính số học, lô-gic và rẽ nhánh ðơn vị chức năng D chủ yếu thực hiện việc tải dữ liệu từ bộ nhớ ủến cỏc thanh ghi và lưu kết quả từ thanh ghi vào bộ nhớ ðiều ủặc biệt là mỗi ủơn vị M của CPU C674x cú khả năng thực hiện trong 1 chu kỳ xung nhịp: một phép nhân 32x32 bit, một phép nhân 16x32 bit, hai phép nhõn 16x16 bit, 4 phộp nhõn 8x8 bit… Ưu thế này ủược tận dụng ủể tối ưu cỏc thuật toỏn xử lý ảnh giỳp cho việc tớnh toỏn giảm ủi rất nhiều lần
Bộ nhớ
Bộ nhớ sử dụng trong thiết kế của Apollo17 gồm 2 loại sau:
Bộ nhớ lưu trữ bao gồm IC nhớ Flash cấu trỳc SPI ủược dựng ủể lưu trữ chương trỡnh u-boot và thẻ nhớ ủể lưu trữ nhõn linux ủó ủược biờn dịch cộng với cỏc file hệ thống (root file system)
Hỡnh 2 14: Nguyờn lý kết nối ủến bộ nhớ SPI Flash
Lừi xử lý ARM sẽ giao tiếp với bộ nhớ flash thụng qua giao thức SPI Quỏ trỡnh khởi ủộng sẽ gồm 2 bước:
- Bước 1: Hệ thống sẽ gọi ủến chương trỡnh u-boot trờn bộ nhớ SPI Cấu hỡnh cỏc lừi xử lý và các ngoại vi cần thiết Bước này gọi là “first stage boot”
- Bước 2: Sau khi ủó khởi tạo thành cụng, hệ thống gọi ủến nhõn linux Lỳc này nhõn linux ủược copy vào bộ nhớ ủệm DDR3 ủể thực thi và tiếp tục gọi ủến cỏc driver cũn lại cũng như giao diện hệ ủiều hành Bước này gọi là “second stage boot”
Ngoài ra, cũng cú thể sử dụng 1 thẻ nhớ microSD duy nhất ủể lưu trữ cả chương trỡnh u-boot và nhân Linux cộng với các file hệ thống
Quỏ trỡnh khởi ủộng cũng vẫn gồm 2 bước như trờn
Thời gian khởi ủộng tựy thuộc vào kớch thước của cỏc file hệ thống và số driver ủược cài ủặt Thụng thường thời gian khởi ủộng từ 15 ủến 30 giõy
Bộ nhớ ủệm ủược sử dụng trong thiết kế này là bộ nhớ DDR3 (Double Data Rate Type
3) Là một loại bộ nhớ truy cập ngẫu nhiờn ủộng, cú tốc ủộ truy cập dữ liệu cao
Chip TMS320DM8168 bao gồm 2 khối ủiều khiển bộ nhớ ủệm với ủộ rộng dữ liệu trao ủổi tối ủa là 32 bit
Hình 2 15: Mô hình kết nối DDR3 8 bit
Như vậy, nếu dựng DDR3 loại 8 bit thỡ phải cần kết nối 4 DDR3 vào 1 bộ ủiều khiển EMIF trên chip xử lý
Trong trường hợp dùng DDR3 loại 16 bit thì ta chỉ cần kết nối 2 DDR3 cho một bộ ủiều khiển
Ngoài ra, việc thiết kế layout khối DDR3 khá phức tạp và cần tuân thủ những nguyờn tắc khắt khe về ủộ dài cỏc ủường tớn hiệu (xung nhịp, dữ liệu và ủịa chỉ), khoảng cách giữa các IC và việc bố trí các tụ lọc
Tham khảo các kỹ thuật layout cho DDR3 trong tài liệu [4] - “DDR3 point-to- point design support” của Micron.
ðầu ra video
Video sau khi xử lý ủược truyền ra ngoài theo 2 cỏch Một là, hiển thị ra màn hình thông qua giao diện HDMI Hai là, ủược nộn và truyền ra ngoài thụng qua giao diện IP
Chip TMS320DM8168 hỗ trợ 1 ủầu ra HDMI trực tiếp Do vậy, việc xuất dữ liệu ra màn hỡnh HDMI khỏ ủơn giản Trong thiết kế chỉ cần sử dụng thờm một IC ủệm mức tớn hiệu kết nối với jack HDMI chuẩn là ủạt yờu cầu
Khối truyền thụng Ethernet trờn chip TMS320DM8168 hỗ trợ tốc ủộ truyền tối ủa 1Gbps
Hình 2 16: Nguyên lý kết nối IC giao tiếp Ethernet
Thiết kế khối ủầu ra IP sử dụng 1 IC chuyờn dụng giỳp truyền tải tớn hiệu mạng ở tầng vật lý.
Khối cấp nguồn
Nguồn cấp với ủầu vào dải rộng 5V ~ 36V@3A cung cấp nguồn tới cỏc mạch nguồn thứ cấp 3,3V, 1,8V, 1,2V, 1,0V cấp cho các chipset trên mạch
Số lượng cỏc nguồn thứ cấp ủược liệt kờ trong bảng sau:
Bảng 2 4: Danh sách nguồn cấp cho chip DSP
TT ðiện áp (Volt) Sử dụng
1 5 Nguồn nuôi thứ cấp tổng Cung cấp cho các IC nguồn thứ cấp thấp hơn
2 3,3 Cung cấp cho DSP, khối HDMI, cung cấp cho các IC nguồn thứ cấp thấp hơn
4 1,5 Cung cấp cho DSP, DDR3
Thứ tự khởi ủộng của cỏc nguồn cấp dưới 3.3V phải tuõn thủ như hỡnh sau:
Hỡnh 2 17: Thứ tự khởi ủộng của cỏc nguồn cấp cho DSP ðiện Áp (V)
Gia công chế tạo
Sản phẩm ủó hoàn thiện phiờn bản 1.0 và ủược gia cụng chế tạo thử nghiệm tại một nhà máy ở Hàn Quốc
Hình 2 18: Bản vẽ gia công bo mạch thử nghiệm
Hình 2 19: Bản vẽ lắp ráp linh kiện mặt trên
Hình 2 20: Bản vẽ lắp ráp linh kiện mặt dưới
ðÁNH GIÁ HỆ THỐNG VỚI THUẬT TOÁN MẪU
Giới thiệu thuật toán
Phỏt hiện ủối tượng chuyển ủộng trong chuỗi hỡnh ảnh là một trong những bước ủầu tiờn của bài toỏn giỏm sỏt ủối tượng, nhằm ủưa ra cỏc thụng tin về vựng chứa ủối tượng chuyển ủộng, số lượng và mật ủộ ủối tượng
Phỏt hiện chuyển ủộng cung cấp ủầu vào cho quỏ trỡnh theo dừi ủối tượng
Hỡnh 3 1: Minh họa phỏt hiện chuyển ủộng
Trong ủề tài này, xem xột ngữ cảnh video sử dụng thử nghiệm là cỏc video ủược quay từ cỏc camera lắp cố ủịnh theo dừi một vựng khung cảnh tĩnh, tức ảnh nền trong video thu ủược là ảnh nền tĩnh khụng thay ủổi Khi ủú cỏc ủối tượng chuyển ủộng cú thể phỏt hiện bằng cỏch so sỏnh frame hiện tại với 1 ảnh nền (background) ủể tỏch nền ra khỏi ảnh hiện tại Phương pháp này gọi chung là background subtraction Sau khi tỏch nền, một loạt cỏc phộp hậu xử lý sẽ ủược ỏp dụng ủể khoanh vựng ủối tượng
Cỏc thuật toỏn phỏt hiện chuyển ủộng khi ủưa xuống triển khai trờn nền tảng nhỳng ủược ủỏnh giỏ dựa trờn cỏc yếu tố sau: ðộ phức tạp về thời gian tính toán Yờu cầu về bộ nhớ ủể lưu trữ cỏc tham số thuật toỏn Hiệu quả phỏt hiện chuyển ủộng
Như ủó giới thiệu ở phần trước, ủối với video cú ảnh nền tĩnh (static scene), cỏc ủối tượng chuyển ủộng cú thể phỏt hiện bằng cỏch so sỏnh frame hiện tại với 1 ảnh nền (background) Mô hình chung cho thuật toán Background Subtraction như sau:
Phộp tỏch nền ủể tỡm ảnh foreground ủược thực hiện nhờ một background model
Background model ủược xõy dựng, cập nhật và sử dụng trong từng frame ảnh Tại mỗi thời ủiểm, frame ảnh hiện tại ủược ủem ủối sỏnh với mụ hỡnh background, pixel nào cú giỏ trị mức xỏm chờnh lệch vượt quỏ 1 ngưỡng T theo một ủộ ủo thỡ ủược coi là foreground pixel Sau ủú một loạt phộp hậu xử lý (post-processing) ủược ỏp dụng ủể hiệu chỉnh lại cỏc foreground pixel và ủưa ra tọa ủộ vựng chứa ủối tượng chuyển ủộng thực sự trong ảnh
Một số mô hình background phổ biến :
- Difference frame : Tại frame hiện tại, sử dụng frame trước ủú như là background
- Adaptive Median Filtering (AMF) (hoặc Running Average) : Background ủược tớnh dựa trờn trung bỡnh cú trọng số của cỏc frame trước ủú (cỏc frame gần thời ủiểm hiện tại thỡ cú trọng số cao hơn)
- Mixture Of Gaussian (MOG) : Giỏ trị mỗi pixel ủược mụ hỡnh húa bởi K phõn bố Gaussian, cho phộp giải quyết trường hợp tại một pixel cú nhiều giỏ trị ủược coi là background
- Running Gaussian Average (RGA): Trường hợp riêng của MOG, chỉ sử dụng 1 phân phối Gaussian cho mỗi pixel
- Visual Background Extractor (VIBE) : Khụng sử dụng mụ hỡnh thống kờ ủể ủại diện cho phõn bố của pixel mà sử dụng tập cỏc giỏ trị pixel ở N frame trước ủú
Việc cập nhật mô hình dựa trên phương pháp chọn lọc ngẫu nhiên
Hình 3 2: Mô hình của các thuật toán Background subtraction
Thuật toán Runing Gaussian Average coi mỗi pixel của nền có giá trị mức xám biến ủộng theo một phõn phối Gaussian Khi ủối tượng chuyển ủộng ủi qua nền, giỏ trị mức xỏm của pixel sẽ thay ủổi ủột ngột, nằm ngoài phõn bố Gaussian của pixel Thuật toỏn RGA ủạt ủược ủộ chớnh xỏc tốt với nền ớt ủộng, với tốc ủộ tớnh toỏn cao, dễ triển khai trên nền tảng nhúng
1.3 Nội dung và lưu ủồ xử lý thuật toỏn
Module xử lý chính (Foreground Detection)
Mỗi pixel tại 1 vị trớ nào ủú ủược ủặc trưng bởi một phõn phối Gaussian sau:
P x : là xỏc suất tại thời ủiểm t, quan sỏt ủược pixel này cú giỏ trị mức xỏm là x t à t : là giỏ trị trung bỡnh của phõn phối Gaussian tại thời ủiểm t
Hỡnh 3 3: Sơ ủồ thuật toỏn phỏt hiện chuyển ủộng σ t : là ủộ lệch chuẩn của phõn phối Gaussian tại thời ủiểm t
2 t σ t I Σ = : là ma trận hiệp phương sai của phõn phối Gaussian tại thời ủiểm t Tại thời ủiểm t + 1, khi pixel cú một giỏ trị mức xỏm mới, giỏ trị này sẽ ủược ủối sánh xem có thuộc về phân bố Gaussian không nào dựa trên khoảng cách Euclidean giữa giá trị pixel hiện tại và giá trị trung bình Nếu pixel thuộc phân phối Gaussian (matching) thỡ pixel này ủược coi là background, ngược lại pixel ủược coi là foreground Dưới ủõy là cỏc bước xõy dựng mụ hỡnh thống kờ của thuật toỏn
Sử dụng N frame ủầu tiờn trong chuỗi ảnh ủể khởi tạo mụ hỡnh Gaussian cho mỗi pixel Với mỗi pixel, ta sẽ khởi tạo:
∑ − ∑ (2) x i : là giá trị mức xám của pixel này trong frame thứ i của N frame khởi tạo
Khi N = 1, ta cúà 0 =x 0 và σ 0 =m ủược chọn sẵn dựa trờn ủỏnh giỏ về sai khỏc giữa pixel background và foreground (thường lấy m từ 5 ủến 20)
Giả sử ta cú tham sốà t − 1 ,σ t − 1 của phõn phối Gaussian tại thời ủiểm t-1 Tại thời ủiểm t hiện tại, pixel cú giỏ trị mức xỏm mới là x t Cỏc tham số ủược cập nhật như sau:
Trong ủú: α : là learning rate, biểu thị tốc ủộ cập nhật background, ủược chọn cố ủịnh
- α lớn: ủặc trưng cho sự cập nhật nhanh (quick update), thớch hợp cho phỏt hiện chuyển ủộng nhanh (α > 0.02)
- α nhỏ : ủặc trưng cho sự ổn ủịnh (stability), thớch hợp cho phỏt hiện chuyển ủộng chậm (α < 0.02) d : là khoảng cách Euclidean giữa giá trị trung bình của phân phối và giá trị pixel hiện tại
• Phân loại background/foreground: t t t t t t x k foreground pixel x k background pixel à σ à σ
Trong ủú k là ngưỡng chỉ mức ủộ dao ủộng cho phộp của giỏ trị pixel background so với giá trị trung bình của phân phối (k thường chọn là 2.5)
- k lớn : thỡ cho phộp giỏ trị mức xỏm của pixel biến ủộng mạnh, ủối tượng chuyển ủộng cần cú mức xỏm chờnh lệch lớn so với nền loại ủược nhiều nhiễu, thường áp dụng cho khung cảnh video rõ nét
- k nhỏ: biểu thị nền ớt biến ủộng, phỏt hiện tốt cỏc
- biến ủộng nhỏ, thớch hợp cho phỏt hiện ủối tượng nhỏ, mờ, tuy nhiờn gõy ra rất nhiều nhiễu
Khi một pixel là foreground thì giá trị của nó không tuân theo phân phối, vì vậy khụng nờn sử dụng giỏ trị này ủể cập nhật mụ hỡnh Gaussian Ta chỉ cập nhật giỏ trị trung bỡnh của phõn phối ủối với pixel ủược phõn loại là background
1 (1 )( (1 ) 1) t M t M x t t à = à − + − α + −α à − (5) Với M = 1 nếu pixel là foreground, M = 0 nếu pixel là background
Module hậu xử lý (Post-Processing)
Thuật toỏn hậu xử lý phõn tớch ảnh foreground, khoanh vựng ủưa ra tọa ủộ cỏc ủối tượng chuyển ủộng
Do tỏc ủộng của nhiễu, ảnh nền thường khụng ổn ủịnh hoàn toàn mà cú sự dời chỗ nhỏ hoặc cú cỏc chuyển ủộng nhỏ khụng mong muốn, khi ủú một số vấn ủề sau sẽ nảy sinh:
- Nhiều foreground pixel khụng thuộc ủối tượng chuyển ủộng thực tế
- ðối tượng chuyển ủộng bị chia mảnh do xuất hiện cỏc vựng ủen (background pixel) giữa vựng trắng (ủối tượng chuyển ủộng)
- ðối tượng kích thước lớn bị chia mảnh làm nhiều vùng trắng riêng biệt
- Xuất hiện cỏc vựng trắng do cỏc chuyển ủộng nhỏ, tạm thời gõy ra
Thuật toán hậu xử lý sẽ lọc các vùng trắng trong ảnh, giảm xác suất phát hiện nhầm
Mục ủớch : loại bỏ cỏc foreground pixel sinh ra bởi nhiễu
Triển khai thuật toán
Thuật toỏn phỏt hiện mục tiờu chuyển ủộng (RGA) ủó ủược viết trờn ngụn ngữ C++ và triển khai trên nền tảng DSP của thiết bị Apollo17
Kết quả ủỏnh giỏ cụ thể như sau:
Bảng 3 1: Kết quả ủỏnh giỏ thuật toỏn phỏt hiện chuyển ủộng
STT Chỉ tiêu, tính năng Thông số ðơn vị
1 Xỏc suất phỏt hiện ủối tượng trong ủiều kiện thường 94,2 %
2 Xỏc suất phỏt hiện ủối tượng trong ủiều kiện ỏnh sáng yếu < 15 lux 92,8 %
3 Xỏc suất phỏt hiện ủối tượng với camera nhiệt 96,0 %
4 Kớch thước ủối tượng nhỏ nhất cú thể phỏt hiện 8x10 Pixel
5 Xỏc suất phất hiện nhầm ủối tượng 4,5 %
6 Số lượng ủối tượng chuyển ủộng cú thể phỏt hiện ủồng thời 30 ðối tượng
7 ðộ nhạy thuật toán theo mức xám 20/255 Mức
8 Tốc ủộ xử lý trung bỡnh 100 Hỡnh/giõy
Một số hình ảnh thử nghiệm
Hỡnh 3 4: Phỏt hiện trong ủiều kiện thiếu sỏng
Hình 3 5: Phát hiện với ảnh nhiệt