Tải bản đầy đủ (.docx) (70 trang)

Nhận dạng cơ thể con người

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 70 trang )

LỜI CẢM ƠN

Trước hết em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Văn Cường, người đã
giúp đỡ em rất nhiều về định hướng nghiên cứu, chọn đề tài, hướng dẫn cho em trong
suốt thời gian thực hiện đề tài này. Đồ án này được hoàn thành theo đúng thời gian quy
định của nhà trường cũng như của khoa không chỉ là sự nỗ lực của em mà còn sự giúp
đỡ, chỉ bảo của thầy hướng dẫn, của quý thầy cô và các bạn sinh viên.
Em xin chân thành cảm ơn thầy cô đã giảng dạy chúng em, đặc biệt là các thầy cô
giáo trong khoa Điện tử - Viễn thông.
Mặc dù đã rất cố gắng hoàn thành đồ án này song cũng không tránh khỏi những
sai sót, mong thầy cô và các bạn đóng góp những ý kiến quí báu để đồ án được thành
công hơn.

Sinh viên thực hiện
Trần Văn Khánh


MỤC LỤC
CÁC TỪ VIẾT TẮT……………………………….….…………………………...3
MỞ ĐẦU…………………………………………………………………..………..4
CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH……………………………….….5
1.1 Giới thiệu chương ……………………………………………………………..5

1.2 Xử lý ảnh, các vấn đề cơ bản trong xử lý ảnh …..……….….…….…………5
1.2.1 Xử lý ảnh là gì? …………………………………………………….………...5
1.2.2 Các vấn đề cơ bản trong xử lý ảnh ……………...………………….………6
1.3 Thu nhận và biểu diễn ảnh …………………………...……………….………8
1.3.1 Thu nhận, các thiết bị thu nhận ảnh …...…………………………….…….8
1.3.2 Biểu diễn ảnh …...…………………………………………………….….…..9
1.4 Tổng quan về nhận dạng cơ thể con người……...……………………….….11
1.4.1 Đề xuất mô hình giải quyết ứng với từng khâu của bài toán nhận dạng cơ thể


người. …………………………………………………………………………12
1.5 Kết luận chương…...…………………………………………………….…...13
CHƯƠNG 2: CÁC THUẬT TOÁN NHẬN DẠNG CƠ THỂ CON NGƯỜI...14
2.1 Giới thiệu chương ……...……………………………….……...………….....14
2.2 Phương pháp xác định cơ thể con người…………………………….….......14
2.2.1 Giới thiệu mạng nơron.................................................................................14
2.2.2 Giới thiệu về PCA……………………………...…………………….……..21
2.3 Nhận dạng cơ thể con người dùng thuật toán PCA………………….……..22
2.3.1 Một số khái niệm toán học……………………...………………….………22
2.3.2 Quá trình nhận dạng ....................................................................................26
CHƯƠNG 3: DÒ TÌM VÀ XÁC ĐỊNH CƠ THỂ CON NGƯỜI TRONG
ẢNH..........................................................................................................................30
3.1 Giới thiệu chương...………………………….………………….…………….30
3.2 Đề xuất phương pháp ………….……………………….......………………..30


3.2.1 Các phương pháp đã được thực hiện..........................................................30
3.2.2 Phương pháp đề xuất trong báo cáo…………………………….…………35
3.3 Kết luận chương ………………..……….………...………………………….39
CHƯƠNG 4: CHƯƠNG TRÌNH MÔ PHỎNG…………………………...……40
4.1. Giới thiệu chương …………………………………….……...………………40
4.2 Giới thiệu chung về phần mềm Matlab………………………...……………40
4.2.1 Khái niệm về Matlab……………………...………………………………...40
4.2.2 Hệ thống Matlab……………………...……………………………………..41
4.3 Xử lý ảnh với Matlab………………………...……………………………….42
4.3.1 Xử lý ảnh………………………...…………………………………………..42
4.3.2 Các giai đoạn xử lý ảnh………………………...…………………………..42
4.3.3 Các hàm xử lý ảnh cơ bản trong Matlab…………………...……………..44
4.4 Sơ đồ khối và Code chương trình………………….…...……………………52
4.4.1 Sơ đồ khối……….…………………………………………...……………...52

4.4.2 Code chương trình…….………………………………………...………….52
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI………………………….….63
TÀI LIỆU THAM KHẢO………………………………...……………………...64


LIỆT KÊ HÌNH
Hình 1.1. Quá trình xử lý ảnh……………………………...………………………5
Hình 1.2. Các bước cơ bản trong một hệ thống xử lý ảnh………………...………5
Hình 1.3. Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB…..……10
Hình 1.4. Sự chuyển đổi giữa các mô hình biểu diễn ảnh………….……………10
Hình 1.5. Mô hình tổng quát của bài toán nhận dạng cơ thể người……….……12
Hình 2.1. Lan truyền ngược………………………………………………………17
Hình 2.2. Minh họa việc tính δj cho việc tính nút ẩn j………………...…………20
Hình 3.1. Hướng của véc tơ riêng…………………………………………...……30
Hình 3.2. Minh hoạ phát hiện vị trí tứ chi, mình, đầu trên cơ thể…………...…32
Hình 3.3. Minh hoạ kiểu kết hợp toàn cục và bộ phận…………………..………34
Hình 3.4. Sự phân phối dữ liệu trong không gian 3 chiều và các trục tương ứng của
PCA và ICA……….………………………………………………..…………36
Hình3.5. minh họa kiến trúc 1 trong mô hình ICA………………………………37
Hình3.6. Minh họa kiến trúc 2 trong mô hình ICA…………………...…………37
Hình3.7. Mô hình tổng hợp ảnh cho kiến trúc 2 của ICA trên pixel……,,,……38
Hình 4.1. Các bước cơ bản trong xử lý ảnh………………………………...……42
Hình 4.2. Sơ đồ khối tổng quát của chương trình……………………….………52


MỞ ĐẦU

Trong nhiều năm qua có rất nhiều nghiên cứu về bài toán nhận dạng cơ thể con
người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay. Các nghiên cứu đi từ bài
toán đơn giản, mỗi ảnh chỉ có một cơ thể con người nhìn thẳng vào thiết bị thu hình và cơ

thể con người thẳng đứng trong ảnh đen trắng. Cho đến ngày hôm nay bài toán mở rộng
cho ảnh màu, có nhiều cơ thể trong cùng một ảnh, có nhiều tư thế thay đổi trong ảnh.
Không những vậy mà còn mở rộng cả phạm vi từ môi trường xung quanh khá đơn giản
cho đến môi trường xung quanh rất phức tạp nhằm đáp ứng nhu cầu của con người.
Mục tiêu của đề tài “Nhận Dạng Cơ Thể Con Người” là thực hiện chương trình tìm
kiếm, phân biệt cơ thể con người trong một bức ảnh sử dụng thuật toán PCA.
Để tiện theo dõi tôi xin trình bày đề tài theo ba phần như sau:
- Phần đầu là giới thiệu về tổng quan của xử lý ảnh
- Phần tiếp theo là giới thiệu về thuật toán PCA là bài toán được sử dụng rất
-

nhiều trong viễn thông. Và đề tài này sử dụng thuật toán PCA.
Phần cuối cùng là giới thiệu giao diện chương trình và code matlab.

Do tài liệu tham khảo hạn chế, kinh nghiệm trong thực tiễn còn non kém, nên đề
tài không tránh khỏi những thiếu sót. Rất mong được nhận những ý kiến đóng góp, giúp
đỡ, quý báu của quý thầy cô cùng các bạn sinh viên.

Tp. Đà Nẵng, tháng 5 năm 2014
Người thực hiện đề tài


CHƯƠNG 1: TỔNG QUAN VỀ XỬ LÝ ẢNH
1.2 Giới thiệu chương

Chương này trình bày tổng quan về xử lý ảnh, các khái niệm cơ bản, sơ đồ tổng
quát của một hệ thống xử lý ảnh và các vấn đề cơ bản trong xử lý ảnh
1.2 Xử lý ảnh, các vấn đề cơ bản trong xử lý ảnh
1.2.1 Xử lý ảnh là gì?
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò

quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý
ảnh và đồ hoạ đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống.
Xử lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào
nhằm cho ra kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý
ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận.

Hình 1.1. Quá trình xử lý ảnh
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc
trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong
không gian và nó có thể xem như một hàm n biến P(c1, c2,..., cn). Do đó, ảnh trong xử lý
ảnh có thể xem như ảnh n chiều.
Sơ đồ tổng quát của một hệ thống xử lý ảnh:

Hình 1.2. Các bước cơ bản trong một hệ thống xử lý ảnh


1.2.2 Các vấn đề cơ bản trong xử lý ảnh
1.2.2.1 Một số khái niệm cơ bản
* Ảnh và điểm ảnh: Điểm ảnh được xem như là dấu hiệu hay cường độ sáng tại 1 toạ độ
trong không gian của đối tượng và ảnh được xem như là 1 tập hợp các điểm ảnh.
* Mức xám, màu: Là số các giá trị có thể có của các điểm ảnh của ảnh
1.2.2.2 Chỉnh mức xám
Nhằm khắc phục tính không đồng đều của hệ thống gây ra. Thông thường có 2
hướng tiếp cận:
• Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành
một bó. Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng. Ứng dụng:
In ảnh màu ra máy in đen trắng.
• Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật
nội suy. Kỹ thuật này nhằm tăng cường độ mịn cho ảnh

1.2.2.3 Trích chọn đặc điểm
Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong
quá trình xử lý ảnh. Có thể nêu ra một số đặc điểm của ảnh sau đây:


Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn

v.v..
• Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực hiện lọc
vùng (zonal filtering). Các bộ vùng được gọi là “mặt nạ đặc điểm” (feature mask)
thường là các khe hẹp với hình dạng khác nhau (chữ nhật, tam giác, cung tròn


v.v..)
Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và do
vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận
dạng đối tượng. Các đặc điểm này có thể được trích chọn nhờ toán tử gradient,
toán tử la bàn, toán tử Laplace, toán tử “chéo không” (zero crossing) v.v.. Việt
trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính
xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống.

1.2.2.4 Nhận dạng


Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân
nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trong nhiều
ngành khoa học khác nhau. Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì?
Watanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lại
với hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng
(vaguely defined) và có thể gán cho nó một tên gọi nào đó”. Ví dụ mẫu có thể là ảnh của

vân tay, ảnh của một vật nào đó được chụp, một chữ viết, cơ thể người hoặc một ký đồ
tín hiệu tiếng nói. Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫu đó có thể:


Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tích phân biệt
(discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần

của một lớp đã xác định.
• Hoặc phân loại không có mẫu (unsupervised classification hay clustering) trong
đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng
nào đó. Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định
danh.
Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn chủ yếu
sau đây:
1. Thu nhận dữ liệu và tiền xử lý.
2. Biểu diễn dữ liệu.
3. Nhận dạng, ra quyết định.
Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:
1. Đối sánh mẫu dựa trên các đặc trưng được trích chọn.
2. Phân loại thống kê.
3. Đối sánh cấu trúc.
4. Phân loại dựa trên mạng nơ-ron nhân tạo.
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ để
phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếp cận
khác nhau. Do vậy, các phương thức phân loại tổ hợp hay được sử dụng khi nhận dạng và


nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system)
bao gồm nhiều mô hình kết hợp.
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh trong

cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra những yêu cầu
về tốc độ tính toán. Đặc điểm chung của tất cả những ứng dụng đó là những đặc điểm đặc
trưng cần thiết thường là nhiều, không thể do chuyên gia đề xuất, mà phải được trích
chọn dựa trên các thủ tục phân tích dữ liệu.
1.2.2.5 Nén ảnh
Nhằm giảm thiểu không gian lưu trữ. Thường được tiến hành theo cả hai cách
khuynh hướng là nén có bảo toàn và không bảo toàn thông tin. Nén không bảo toàn thì
thường có khả năng nén cao hơn nhưng khả năng phục hồi thì kém hơn. Trên cơ sở hai
khuynh hướng, có 4 cách tiếp cận cơ bản trong nén ảnh:
• Nén ảnh thống kê: Kỹ thuật nén này dựa vào việc thống kê tần xuất xuất hiện
của giá trị các điểm ảnh, trên cơ sở đó mà có chiến lược mã hóa thích hợp. Một ví dụ điển
hình cho kỹ thuật mã hóa này là *.TIF
• Nén ảnh không gian: Kỹ thuật này dựa vào vị trí không gian của các điểm ảnh
để tiến hành mã hóa. Kỹ thuật lợi dụng sự giống nhau của các điểm ảnh trong các vùng
gần nhau. Ví dụ cho kỹ thuật này là mã nén *.PCX
• Nén ảnh sử dụng phép biến đổi: Đây là kỹ thuật tiếp cận theo hướng nén
không bảo toàn và do vậy, kỹ thuật thướng nến hiệu quả hơn. *.JPG chính là tiếp cận
theo kỹ thuật nén này.
• Nén ảnh Fractal: Sử dụng tính chất Fractal của các đối tượng ảnh, thể hiện sự
lặp lại của các chi tiết. Kỹ thuật nén sẽ tính toán để chỉ cần lưu trữ phần gốc ảnh và quy
luật sinh ra ảnh theo nguyên lý Fractal
1.3 Thu nhận và biểu diễn ảnh
1.3.1 Thu nhận, các thiết bị thu nhận ảnh
Các thiết bị thu nhận ảnh bao gồm camera, scanner các thiết bị thu nhận này có
thể cho ảnh đen trắng Các thiết bị thu nhận ảnh có 2 loại chính ứng với 2 loại ảnh


thông dụng Raster, Vector. Các thiết bị thu nhận ảnh thông thường Raster là camera các
thiết bị thu nhận ảnh thông thường Vector là sensor hoặc bàn số hoá Digitalizer hoặc
được chuyển đổi từ ảnh Raster.

Nhìn chung các hệ thống thu nhận ảnh thực hiện 1 quá trình:
• Cảm biến: biến đổi năng lượng quang học thành năng lượng điện
• Tổng hợp năng lượng điện thành ảnh
1.3.2 Biểu diễn ảnh
Ảnh trên máy tính là kết quả thu nhận theo các phương pháp số hoá được nhúng
trong các thiết bị kỹ thuật khác nhau. Quá trình lưu trữ ảnh nhằm 2 mục đích:
• Tiết kiệm bộ nhớ
• Giảm thời gian xử lý
Việc lưu trữ thông tin trong bộ nhớ có ảnh hưởng rất lớn đến việc hiển thị, in ấn và
xử lý ảnh được xem như là 1 tập hợp các điểm với cùng kích thước nếu sử dụng càng
nhiều điểm ảnh thì bức ảnh càng đẹp, càng mịn và càng thể hiện rõ hơn chi tiết của ảnh
người ta gọi đặc điểm này là độ phân giải. Việc lựa chọn độ phân giải thích hợp tuỳ
thuộc vào nhu cầu sử dụng và đặc trưng của mỗi ảnh cụ thể, trên cơ sở đó các ảnh thường
được biểu diễn theo 2 mô hình cơ bản
1.3.2.1 Mô hình Raster
Đây là cách biểu diễn ảnh thông dụng nhất hiện nay, ảnh được biểu diễn dưới
dạng ma trận các điểm (điểm ảnh). Thường thu nhận qua các thiết bị như camera,
scanner. Tuỳ theo yêu cầu thực thế mà mỗi điểm ảnh được biểu diễn qua 1 hay nhiều bít
Mô hình Raster thuận lợi cho hiển thị và in ấn. Ngày nay công nghệ
phần cứng cung cấp những thiết bị thu nhận ảnh Raster phù hợp với tốc độ nhanh và chất
lượng cao cho cả đầu vào và đầu ra. Một thuận lợi cho việc hiển thị trong môi trường
Windows là Microsoft đưa ra khuôn dạng ảnh DIB (Device Independent Bitmap) làm
trung gian. Hình 1.4 thể hình quy trình chung để hiển thị ảnh Raster thông qua DIB.
Một trong những hướng nghiên cứu cơ bản trên mô hình biểu diễn này là kỹ thuật
nén ảnh các kỹ thuật nén ảnh lại chia ra theo 2 khuynh hướng là nén bảo toàn và không


bảo toàn thông tin nén bảo toàn có khả năng phục hồi hoàn toàn dữ liệu ban đầu còn nếu
không bảo toàn chỉ có khả năng phục hồi độ sai số cho phép nào đó. Theo cách tiếp cận
này người ta đã đề ra nhiều quy cách khác nhau như BMP, TIF, GIF, PCX…

Hiện nay trên thế giới có trên 50 khuôn dạng ảnh thông dụng bao gồm cả trong đó
các kỹ thuật nén có khả năng phục hồi dữ liệu 100% và nén có khả năng phục hồi với độ
sai số nhận được.

Hình 1.3. Quá trình hiển thị và chỉnh sửa, lưu trữ ảnh thông qua DIB
1.3.2.2 Mô hình Vector
Biểu diễn ảnh ngoài mục đích tiết kiệm không gian lưu trữ dễ dàng cho hiển thị
và in ấn còn đảm bảo dễ dàng trong lựa chọn sao chép di chuyển tìm kiếm… Theo
những yêu cầu này kỹ thuật biểu diễn vector tỏ ra ưu việt hơn.
Trong mô hình vector người ta sử dụng hướng giữa các vector của điểm ảnh lân
cận để mã hoá và tái tạo hình ảnh ban đầu ảnh vector được thu nhận trực tiếp từ các thiết
bị số hoá như Digital hoặc được chuyển đổi từ ảnh Raster thông qua các chương trình số
hoá.
Công nghệ phần cứng cung cấp những thiết bị xử lý với tốc độ nhanh và chất
lượng cho cả đầu vào và ra nhưng lại chỉ hỗ trợ cho ảnh Raster. Do vậy, những nghiên
cứu về biểu diễn vectơ đều tập trung từ chuyển đổi từ ảnh Raster.

Hình 1.4. Sự chuyển đổi giữa các mô hình biểu diễn ảnh


1.4 Tổng quan về nhận dạng cơ thể con người
Có nhiều nghiên cứu tìm phương pháp xác định cơ thể con người, từ ảnh xám
đến ngày nay là ảnh màu. Ta sẽ trình bày một cách tổng quát nhất những hướng giải
quyết chính cho bài toán.
Dựa vào tính chất của các phương pháp xác định cơ thể con người trên ảnh. Các
phương pháp này được chia làm bốn hướng tiếp cận chính. Ngoài bốn hướng này, nhiều
nghiên cứu có khi liên quan đến không những một hướng tiếp cận mà có liên quan nhiều
hơn một hướng chính:



Hướng tiếp cận dựa trên tri thức: Mã hóa các hiểu biết của con người về cơ thể con
người thành các luật. Thông thường các luật mô tả quan hệ của các đặc trưng cơ thể con



người so với cơ thể các loài động vật khác.
Hướng tiếp cận dựa trên đặc trưng không thay đổi: Mục tiêu các thuật toán đi tìm các
đặc trưng mô tả cấu trúc cơ thể con người mà các đặc trưng này sẽ không thay đổi khi tư
thế hoạt động của cơ thể con người, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng

thay đổi.
• Hướng tiếp cận dựa trên so khớp mẫu: Dùng các mẫu chuẩn của cơ thể con người (các
mẫu này được chọn lựa và lưu trữ) để mô tả cho cơ thể con người hay các đặc trưng cơ
thể (các mẫu này phải chọn làm sao cho tách biệt nhau theo tiêu chuẩn mà các tác giả
định ra để so sánh). Các mối tương quan giữa dữ liệu ảnh đưa vào và các mẫu dùng để
xác định cơ thể con người.
• Hướng tiếp cận dựa trên diện mạo: Trái ngược hẳn với so khớp mẫu, các mô hình (hay
các mẫu) được học từ một tập ảnh huấn luyện trước đó. Sau đó hệ thống (mô hình) sẽ
xác định cơ thể con người. Hay một số tác giả còn gọi hướng tiếp cận này là hướng tiếp
cận theo phương pháp học.


1.4.1 Đề xuất mô hình giải quyết ứng với từng khâu của bài toán nhận dạng cơ thể
người.
Mô hình tổng quát của bài toán nhận dạng cơ thể người:

Hình 1.5. Mô hình tổng quát của bài toán nhận dạng cơ thể người
Bài toán nhận dạng cơ thể con người cần xác định bốn vấn đề chính:
+ Dùng phương pháp nào để xác định cơ thể con người nằm tại vị trí nào trong
ảnh

+ Dùng đặc trưng nào trên cơ thể con người để rút trích đặc trưng cho cơ thể:
chân, tay, đầu, mình,.. hay kết hợp tất cả các đặc trưng trên.
+ Áp dụng phương pháp nào để rút trích đặc trưng.
+ Dùng phương pháp nào để huấn luyện cho máy nhận dạng khi đã có tập đặc


trưng của cơ thể.
1.5 Kết luận chương
Chương một đã chỉ ra những khó khăn đề ra trong việc nhận dạng cơ thể con
người. Đó là những biến đổi quá lớn của cơ thể con người trong bức ảnh cần nhận dạng.
Gồm trạng thái cơ thể như đứng, ngồi, ánh sáng, vị trí của camera quan sát (bên trái ,
phải, trên xuống, dưới lên). Giới hạn về số ảnh cần thiết cho việc huấn luyện, tập các ảnh
cơ thể huấn luyện không thể bao quát được tất cả các biến đổi có thể có trên cơ thể của
một bức ảnh cần nhận dạng trong thế giới thực. Giúp ta có cái nhìn tổng quan hơn về mặt
hạn chế và hướng khắc phục cho bài toán nhận dạng.


CHƯƠNG 2: CÁC THUẬT TOÁN NHẬN DẠNG CƠ THỂ CON NGƯỜI
2.1 Giới thiệu chương
Chương này giúp ta định nghĩa bài toán xác định cơ thể con người (Body
Detection) sử dụng các kỹ thuật máy tính để xác định các vị trí và các kích thước của cơ
thể con người trong các ảnh bất kỳ (ảnh kỹ thuật số). Kỹ thuật này nhận biết các đặc
trưng của cơ thể và bỏ qua những thứ khác, như: tòa nhà, cây cối, động vật…Trong
chương này cũng đưa ra các phương pháp biểu diễn ảnh cơ thể thành véc tơ đặc trưng mà
vẫn giữ lại được những thành phần quan trọng của ảnh.
2.2 Phương pháp xác định cơ thể con người
2.2.1 Giới thiệu mạng nơron
Có thể nói, hiện nay, không có một định nghĩa chính thức nào cho mạng nơron.
Tuy nhiên phần lớn mọi người đều đồng tình rằng mạng nơron là một mạng bao gồm rất
nhiều bộ xử lý đơn giản (gọi là các unit), mỗi unit có vùng nhớ riêng của mình. Các unit

được kết nối với nhau thông qua kênh thông tin (gọi là các connection), thường mang dữ
liệu số (không phải là các ký hiệu), và được mã hóa theo một cách nào đấy. Các unit chỉ
xử lý trên bộ dữ liệu của riêng nó và trên các đầu vào được đưa tới thông qua các liên kết.
hạn chế của các phép xử lý cục bộ này là nó thường ở trạng thái nghỉ trong suốt quá trình
học.
Một số mạng nơron là các mô hình mạng nơron sinh học, một số thì không, nhưng
từ trước tới nay, thì tất cả các lĩnh vực của mạng nơron đều được nghiên cứu xây dựng
xuất phát từ các yêu cầu xây dựng các hệ thống nhận tạo rất phức tạp, hay các phép xử lý
“thông minh”, và những gì tuơng tự như bộ não con người.
Hầu hết các mạng nơron đều có một vài quy tắc học nào đó mà thông qua đó các
trọng số của các liên két được điều chỉnh dựa trên dữ liệu. Nói cách khác, các mạng
nơron “học” và các ví dụ và dựa trên các dữ liệu đó thì nó có khả năng tổng quát tri thức
và đưa ra “nhận thức của mình”.
Mạng nơron là mô hình mạng ứng dụng các phương pháp xử lý song song và các
thành phần mạng xử lý hoàn toàn đợc lập với nhau. Một vài nguời xem khả năng xử lý


song song số lượng lớn và tính liên kết cao của mạng nơron là các tính chất đặc trưng của
nó. Tuy nhiên với những yêu cầu như thế thì lại không có những mô hình đơn giản, ví dụ
như mô hình hồi quy tuyến tính đơn giản, một mô hình được ứng dụng rất rộng rãi của
mạng nơron.
Mạng nơron có thể được áp dụng trong mọi trường hợp khi tồn tại một mối liên hệ
giữa các biến độc lập (inputs) và các biến phụ thuộc (outputs), thậm chí là ngay cả khi
mối quan hệ đó phức tạp. Một số lĩnh vực mà mạng nơron đã được áp dụng thành công
như dự đoán triệu chứng y học, dự đoán thị trường chứng khoán, đánh giá độ tin cậy tài
chính, điều chỉnh điều kiện của cơ cấu máy móc.
2.2.1.1 Thuật toán lan truyền ngược
Chúng ta sẽ tập trung nghiên cứu một kĩ thuật rất phổ biến của mạng nơron nhiều
tầng. Chúng ta sẽ xem xét cách mà một mạng học một ánh xạ từ một tập dữ liệu cho
trước.

Chúng ta đã biết việc học dựa trên định nghĩa của hàm lỗi, hàm lỗi này sau đó sẽ
được tối thiểu hoá dựa vào các trọng số và các trọng ngưỡng trong mạng.
Trước tiên ta sẽ xem xét trường hợp mạng sử dụng hàm ngưỡng. Vấn đề cần bàn ở
đây chính là cách để khởi tạo các trọng số cho mạng như thế nào. Công việc này thường
được gọi là ‘credit assignment problem’. nếu một nút đầu ra tạo ra một đáp số sai lệch thì
chúng ta phải quyết định xem liệu nút ẩn nào phải chịu trách nhiệm cho sự sai lệch đó,
cũng chính là việc quyết định trọng số nào cần phải điều chỉnh và điều chỉnh là bao
nhiêu.
Để giải quyết vấn đề gán trọng số này, chúng ta hãy xem xét một mạng với các
hàm truyền phân biệt ,do đó giá trị tổng trọng của các nút xuất sẽ trở thành một hàm phân
biệt của các biến nhập và của trọng số và trọng ngưỡng. Nếu ta coi hàm lỗi, ví dụ có dạng
sai số trung bình bình phương, là một hàm riêng biệt cho các giá trị xuất của mạng thì
bản thân nó cũng chính là một hàm phân biệt của các trọng số.


Do đó chúng ta có thể tính toán được đạo hàm hàm lỗi theo các trọng số, và giá trị
đạo hàm này lại có thể dùng để làm cực tiểu hoá hàm lỗi bằng cách sử dụng phương pháp
giảm gradient (gradient descent) hoặc các phương pháp tối ưu hoá khác.
Giải thuật ước lượng đạo hàm hàm lỗi được biết đến với tên gọi lan truyền ngược,
nó tương đương với việc lan truyền ngược lỗi trong mạng. Kĩ thuật về lan truyền ngược
được biết đến rất rộng rãi và chi tiết qua các bài báo cũng như các cuốn sách của
Rumelhart, Hinton và Williams (1986). Tuy nhiên gần đây một số ý tưởng tương tự cũng
được một số nhà ngiên cứu phát triển bao gồm Werbos (1974) và Parker (1985).
Để làm rõ hơn về thuật ngữ này chúng ta cần xem xét quá trình luyện mạng một
cách kĩ càng. Phần lớn các giải thuật luyện mạng đều liên quan đến một thủ tục được lặp
đi lặp lại nhằm làm tối thiểu hàm lỗi, bằng cách điều chỉnh trọng số trong một chuỗi các
bước.
Tại mối bước như vậy, chúng ta có thể chia thành hai bước phân biệt.
• Tại bước thứ nhất, cần phải tính đạo hàm hàm lỗi theo các trọng số. Chúng
ta đã biết rằng một đóng góp rất quan trọng của kĩ thuật lan truyền ngược

đó là việc cung cấp một phương pháp hết sức hiệu quả về mặt tính toán
trong việc đánh giá các đạo hàm. Vì tại bước này lỗi sẽ được lan truyền
ngược trở lại mạng nên chúng ta sẽ sử dụng khái niệm lan truyền ngược để
đặc trưng riêng cho việc đánh giá đạo hàm này.
• Tại bước thứ hai, các đạo hàm sẽ được sử dụng trong việc tính toán sự điều
chỉnh đối với trọng số. Và kĩ thuật đơn giản nhất được sử dụng ở đây là kĩ
thuật gradient descent, kĩ thuật này được Rumelhart et al. (1986) đưa ra lần
đầu tiên.
Một điều hết sức quan trọng là phải nhận thức được rằng hai bước này là phân biệt
với nhau. Do đó, quá trình xử lý đầu tiên , được biết đến là quá trình lan truyền ngược các
lỗi vào trong mạng để đánh giá đạo hàm, có thể được áp dụng đối với rất nhiều laọi mạng
khác nhau chứ không chỉ đối với riêng mạng perceptron nhiều tầng. Nó cũng có thể được


áp dụng với các loại hàm lỗi khác chứ không chỉ là hàm tính sai số bình phương cực tiểu,
và để đánh giá các đạo hàm khác này có thể sử dụng các phương pháp khác như phương
pháp ma trận Jacobian và Hessian mà chúng ta sẽ xem xét ở phần sau. Và cũng tương tự
như vậy thì tại bước thứ hai, việc điều chỉnh trọng số sử dụng các đạo hàm đã được tính
trước đó có thể thực hiện với nhiều phương pháp tối ưu hoá khác nhau, và rất nhiều trong
số các phương pháp đó cho kết quả tốt hơn phương pháp gradient descend.
2.2.1.2 Lan truyền ngược

Hình 2.1. Lan truyền ngược
Bây giờ chúng ta sẽ áp dụng giải thuật lan truyền ngược cho bất kì một mạng
neural có cấu hình lan truyền tiến tuỳ ý, sử dụng các hàm truyền phi tuyến tuỳ ý, và cả
hàm lỗi có dạng tuỳ ý. Để minh hoạ chúng ta sẽ dùng một mạng có cấu trúc một tầng nút
ẩn dạng sigmoid và hàm lỗi là hàm tính theo sai số trung bình bình phương.
Trong các mạng lan truyền tiến nói chung mỗi nút đều tình tổng trọng hoá các đầu
vào của nó theo công thức:


a j = ∑ w ji z i
i

(I.1)

Với zi là giá trị nhập hoặc là giá trị xuất của một nút có cung kết nối với nút j và
wji chính là trọng số của cung kết nối đó. Giá trị tổng này được tính trên tất cả các nút có
kết nối trực tiếp với nút j. Chúng ta biết rằng, trọng ngưỡng của nút cũng được đưa vào
trong tổng bằng cách tạo ra thêm một giá trị nhập cố định = 1. Tổng trong (I.1) lại được


biến đổi thông qua một hàm truyền phi tuyến g(.) để đưa ra được gía trị xuất z i của nút j
theo công thức:

zi = g ( a j )

(I.2)

Bây giờ chúng ta cần phải xác định giá trị của các trọng số trong mạng thông qua
việc tối thiểu hoá hàm lỗi.
ở đây ta sẽ coi cá hàm lỗi được viết như một tổng của tất cả các lỗi tại mỗi mẫu
riêng biệt.Tổng này sẽ được tính trên tất cả các mẫu của tập huấn luyện

E = ∑En
n

(I.3)

Với n là nhãn của từng mẫu.
Chúng ta cũng giả định rằng lỗi E n có thể được thể hiện như một hàm riêng của

các biến đầu ra, có nghĩa là
En = En(yc, …, yc)

Mục đích của chúng ta ở đây chính là phải tìm ra một hàm nhằm để tính được đạo
hàm của hàm lỗi theo các trọng số và trọng ngưỡng của mạng.
Đối với từng mẫu, ta sẽ coi như đã cung cấp một vector nhập tương ứng là đầu
vàovà đã tính được các giá trị xuất của các nút ẩn cũng như nút xuất theo các công thức
(I.1), (I.2). Quá trình này thường được gọi là quá trình lan truyền tiến trong mạng.
Bây giờ hãy xem xét việc tính đạo hàm của En theo cá trọng số wji. Giá trị xuất của
các nút sẽ phụ thuộc vào từng mẫu nhập n nào. Tuy nhiên để dễ nhìn, ta quy ước sẽ bỏ
qua việc viết kí tự n trên các biến nhập và xuất. Trước tiên ta cần chú ý rằng E n phụ thuộc
vào trọng số wji thông qua tổng giá trị nhập a i của nút j. Do đó ta có thể đưa ra công thức
tính các đạo hàm riêng như sau:


∂E n ∂E n ∂a j
=
*
∂w ji ∂a j ∂w ji

(I.4)

Từ (I.1) ta có:

∂a j
∂w ji

= zi
(I.5)


Như vậy suy ra:

∂E n
= δ j zi
∂w ji

Trong đó

(I.6)

∂E n
δj ≡
∂a j

Từ công thức (I.6) ta thấy rằng để tính được đạo hàm chúng ta chỉ cần tính giá trị
cho mỗi nút ẩn và nút xuất trong mạng và sau đó áp dụng công thức (I.6).
Với các nút xuất thì việc tính δk là hết sức đơn giản.
Ta có:

∂E n
∂E n
'
δk ≡
= g ( ak )
∂ak
∂yk

Để tính ra (I.7) ta cần tìm ra công thức tính g’(a) và

(I.7)


∂E n
∂y

.

Để tính được δ cho cá nút ẩn, ta cần sử dụng công thức tính đạo hàm riêng:


∂E n
∂E n ∂a k
δj ≡
=∑
∂a j
k ∂a k ∂a j

(I.8)

Trong đó giá trị tổng được tính trên các nút k mà nút j kết nối đến. Việc sắp xếp
các nút cũng như các trọng số được minh hoạ trong Hình 2.2.

Hình 2.2. Minh họa việc tính δj cho việc tính nút ẩn j
Chú ý rằng các nút có nhãn k này có thể bao gồm cả nút nhập và nút xuất.
Bây giờ chúng ta có công thức lan truyền ngược như sau:

δ j ≡ g ' ( a j ) ∑ wkj δ k
k

(I.9)


Công thức này nói lên rằng giá trị của δ đối với một nút ẩn có thể đựơc tính từ việc
lan truyền ngược các giá trị δ của các nút ẩn cao hơn trong mạng, như được minh hoạ
trong hình 2.2. Bởi vì chúng ta đã biết đựơc các giá trị δ của các nút xuất nên ta có thể áp
dụng (I.9) một cách đệ quy nhằm tính ra các giá trị δ cho tất cả các nút ẩn trong mạng, mà
không quan tâm đến cấu hình của nó.
Chúng ta có thể tổng kết lại giải thuật lan truyền ngược nhằm tính đạo hàm hàm lỗi E n
theo các trọng số trong 4 bước:




Đưa vector nhập xn vào mạng và lan truyền tiến nó trong mạng sử dụng và

để tìm ra giá trị xuất cho tất cả các nút ẩn cũng như nút xuất.


Tính δ cho tất cả các nút xuất sử dụng công thức



Lan truyền ngựơc các d bằng công thức để thu được δ cho mỗi nút ẩn trong

mạng.



áp dụng

∂E n
= δ j zi

∂w ji

để tính các đạo hàm.

Đạo hàm của lỗi tổng E có thể thu được bằng cách lặp đi lặp lại các bước trên đối
với trừng mẫu trong tập huấn luyện và sau đó tính tổng trên tất cả các lỗi.
Trong quá trình tính đạo hàm trên chúng ta đã giả định rằng mỗi nút ẩn cũng như
xuất đếu có chung một hàm truyền g(.). Tuy nhiên điều này hoàn toàn có thể tính được
với trường hợp mỗi nút khác nhau đếu có các hàm truyền riêng, đơn giản bằng cách đánh
dấu dạng của hàm g(.) ứng với từng nút.
2.2.2 Giới thiệu về PCA
Phần này giúp ta hiểu được phép phân tích thành phần chính PCA (Principal
Componens Analysis). PCA là một kỹ thuật hữu ích trong các ứng dụng nhận dạng cơ thể
và nén ảnh, và là một kỹ thuật phổ biến để tìm mẫu trong các dữ liệu nhiều chiều.
Kohonen đã đưa ra phương pháp dùng vector riêng để nhận dạng cơ thể, ông
dùng một mạng nơron đơn giản để chứng tỏ khả năng của phương pháp này trên các ảnh
đã được chuẩn hóa. Mạng nơron tính một mô tả của cơ thể bằng cách xấp xỉ các vector
riêng của ma trận tương quan của ảnh. Các vector riêng sau này được biết đến với cái tên
Eigenface. Kirby và Sirovich chứng tỏ các ảnh có các cơ thể có thể được mã hóa tuyến
tính bằng một số lượng vừa phải các ảnh cơ sở. Tính chất này dựa trên biến đổi
Karhunen-Lòeve, mà còn được gọi dưới một cái tên khác là PCA và biến đổi Hotelling.
Ý tưởng này được xem là của Pearson trình bày đầu tiên vào năm 1901và sau đó là


Hotelling vào năm 1933. Cho một tập các ảnh huấn luyện có kích thước n x m được mô
tả bởi các vector có kích thước m x m, các vector cở sở cho một không gian con tối ưu
được xác định thông qua lỗi bình phương trung bình khi chiếu các ảnh huấn luyện vào
không gian con này. Các tác giả gọi tập các vector cơ sở tối ưu này là ảnh riêng sau đó
gọi cho đơn giản là vector riêng của ma trận hiệp phương sai được tính từ các ảnh cơ thể
đã vector hóa trong tập huấn luyện. Nếu cho 100 ảnh, mà mỗi cơ thể có kích thước

91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn duy trì được một khả năng giống
nhau hợp lý (giữ được 95% tính chất).
Ta dùng PCA trên tập huấn luyện ảnh các cơ thể để sinh các ảnh riêng, để tìm một
không gian con (không gian cơ thể) trong không gian ảnh. Các ảnh cơ thể được chiếu vào
không gian con này và được gom nhóm lại. Tương tự các ảnh không có cơ thể dùng để
huấn luyện cũng được chiếu vào cùng không gian con và gom nhóm lại. Các ảnh khi
chiếu vào không gian cơ thể thì không bị thay đổi tính chất cơ bản, trong khi chiếu các
ảnh không có cơ thể thì xuất hiện sự khác nhau cũng không ít. Xác định sự có mặt của
một cơ thể trong ảnh thông qua tất cả khoảng cách giữa các vị trí trong ảnh và không
gian ảnh. Khoảng cách này dùng để xem xét có hay không có cơ thể người, kết quả khi
tính toán các khoảng cách sẽ
cho ta một bản đồ về cơ thể. Có thể xác định được từ cực tiểu địa phương của bản đồ
này. Có nhiều nghiên cứu về xác định cơ thể, nhận dạng, và trích đặc trưng từ ý tưởng
vector riêng, phân rã, và gom nhóm.
Các bước cơ bản trong PCA:



Bước1: Lấy dữ liệu (Get data)
Bước2: Trừ trung bình mẫu.
Với mỗi chiều dữ liệu giả sử ở chiều x, ta đều có 1 trung bình mẫu, công việc
trong bước này là trừ tất cả giá trị trong chiều x cho trung bình mẫu x. Kết thúc
bước này ta sẽ có trung bình mẫu ở tất cả các chiều là 0.





Bước 3: Tính ma trận hiệp phương sai
Bước 4: Tính các vectơ riêng và giá trị riêng của ma trận hiệp phương sai.

Bước 5: Chọn các thành phần chính


Đây là bước cuối cùng trong PCA. Trong bước này, tùy thuộc vào số lượng thành
phần chính cần lấy, ta lấy lần lượt các thành phần (vectơ riêng) tương ứng với các
giá trị riêng cao nhất.
2.3 Nhận dạng cơ thể con người dùng thuật toán PCA
2.3.1 Một số khái niệm toán học
Trước khi đi vào tìm hiểu PCA, ta sẽ tìm hiểu về các khái niệm toán học sẽ được
sử dụng trong PCA. Các khái niệm đó bao gồm: Độ lệch chuẩn (Standard deviation),
phương sai (variance), hiệp phương sai (covariance), vec tơ riêng (eigenvector), giá trị
riêng (eigenvalue).
2.3.1.1 Độ lệch chuẩn
Để hiểu độ lệch chuẩn, chúng ta cần một tập dữ liệu. Giả sử ta có tập
X = [1 2 4 6 12 15 25 45 68 67 65 98]
X là ký hiệu đại diện cho tập số, mỗi số riêng biệt được ký hiệu Xi (Ví dụ
X3 = 4). Phần tử đầu tiên là X 1 và n là số lượng phần tử của tập hợp. Khi đó trung bình
của mẫu có công thức:

Là ký hiệu trung bình của mẫu, tuy nhiên trung bình mẫu không nói lên được
nhiều điều ngoại trừ cho ta biết nó là một điểm giữa. Ví dụ với 2 tập dữ liệu
[0 8 12 20] và [8 9 11 12]
có trung bình mẫu bằng nhau nhưng lại khá khác nhau. Sự khác biệt ở đây chính là
khoảng cách của dữ liệu. Và độ lệch chuẩn là đại lượng để đo khoảng cách này. Ta có thể
hiêu độ lệch chuẩn là khoảng cách trung bình từ trung bình mẫu đến các điểm của dữ
liệu. Ta có công thức:


Tập hợp 1


Tập hợp 2

Ta có thể dễ dàng nhận thấy tập dữ liệu 1 có độ lệch chuẩn lớn hơn có khoảng
cách lớn hơn tập dữ liệu 2.
2.3.1.2 Phương sai

Phương sai là một đại lượng khác dùng để đo khoảng cách
của dữ liệu. Ta có công thức:

Dễ thấy phương sai chính là bình phương độ lệch chuẩn.
2.3.1.3 Hiệp phương sai
Ta thấy rằng 2 đại lượng độ lệch chuẩn và phương sai chỉ sử dụng được trong 1
chiều. Trong thực tế dữ liệu có thể có rất nhiều chiều. Một ví dụ đơn giản ta có dữ liệu về
cân nặng và điểm số của toàn bộ sinh viên trong lớp 11ĐTLT. Đối với dữ liệu này, độ
lệch chuẩn và phương sai chỉ tính được trên từng chiều riêng biệt và ta không thấy được
mối liên hệ giữa 2 chiều này.
Tương tự phương sai, hiệp phương sai là đại lượng đo sự biến thiên giữa 2 chiều.
Nếu tính hiệp phương sai giữa 1 chiều với chính nó ta được phương sai của chiều đó. Nếu
tập dữ liệu có 3 chiều x, y, z ta có thể tính hiệp phương sai của từng cặp chiều (x, y), (y,


×