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

Hệ thống camera nhận dạng khuôn mặt(hệ trục 2 servo)

42 1,1K 3

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

Nội dung

Trí tuệ nhân tạo là một lĩnh vực của khoa hoc công nghệ làm cho các hệ thống điện tử, thông tin, các hệ máy nhúng xử lý thông tin và đáp ứng có khả năng giống như con người : Biết suy ng

Trang 1

KHOA ĐIỆN - ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Khoa Điện -Điện Tử Độc lập - Tự do - Hạnh phúc

Bộ Môn Điện Tử Viễn Thông 

 Tp Hồ Chí Minh, ngày … tháng năm 2014 Phiếu Đánh Giá Đồ Án Môn Học 2 (KMT) (Hướng Điện tử, tin học: Phần cứng có giao tiếp máy tính) Họ và tên sinh viên:……….… MSSV:……… ……….

Họ và tên sinh viên:……….… MSSV:……… ……….

Nhóm:……… ……….……….………

Tên đề tài:……… ………

GVHD:……… ………

1.

STT

2 Hạng mục đánh giá 3 Th

an g điể m (tối đa)

4 Điểm đánh giá của giáo viên chấ m

5 Ghi chú

6. 7 Đánh giá của GVHD

8 (Chiếm 30%)

9 30

đ

10.

11. 12 Điểm GVHD chấm (theo thang 10) được nhân

3.

13.

14. 15 Phần cứng, phần

mềm kèm theo mô

phỏng (nếu có)

16 (Chiếm 35%)

17 35 đ

18.

19. • Mô hình mạng và phần mềm (nếu có) đi kèm

hoạt động và sinh viên hiểu tốt thì SV đạt 35đ.

• Nếu phạm vi đề tài là mô phỏng và SV thực hiện

mô phỏng tốt thì vẫn được tối đa 35đ.

• Tuỳ theo mức độ thực hiện tương ứng với số lượng SV trong 1 đề tài và lĩnh vực nghiên cứu, tính sáng tạo, tổ chấm có thể nâng phần đánh giá này lên tối đa 50đ (Thưởng SV 15đ).

Trang 3

• Trường hợp khác, Tổ chấm quyết định (tùy đề tài).

28. 29 Tùy mức độ trình bày của sinh viên theo mẫu

có sẵn.

30 ĐAMH cần phải có các mục sau:

• Cơ sở lý thuyết cần thiết.

• Sơ đồ khối, phân tích, thiết kế, sơ đồ mạng (Phần cứng).

• Sơ đồ khối, phân tích, giải thuật mô phỏng, kết quả mô phỏng, nhận xét (Phần mềm).

35. 36 Sinh viên trả lời các câu hỏi của Tổ chấm

Trang 6

CHƯƠNG 1 GIỚI THIỆU

1.1 Tổng quan

Lĩnh vực trí tuệ nhân tạo (AI – Artificial Intelligence) mang nghĩa rất rộng

lớn trong xã hội thời đại công nghệ ngày nay Trí tuệ nhân tạo là một lĩnh vực

của khoa hoc công nghệ làm cho các hệ thống điện tử, thông tin, các hệ máy

nhúng xử lý thông tin và đáp ứng có khả năng giống như con người : Biết suy

nghĩ và lập luận để từ đó đưa ra quyết định một vấn đề , giao tiếp ngôn ngữ hình

thức riêng do con người thiết kế , biết học và thích nghi môi trường,…

Bellman (1978) đã đưa ra khái niệm : Trí tuệ nhân tạo là tự động hóa các

hoạt động phù hợp với suy nghĩ con người, giống như cách giải quyết của con

người chẳng hạn các hoạt động quyết định , giải toán,…

Winston (1992) đã bổ sung : Trí tuệ nhân tạo là lĩnh vực nghiên cứu các

tính toán để máy có thể nhận thức, lập luận và tác động , xử lý các thông tin môi

trường xung quanh

Nắm bắt được vấn đề công nghệ ngày nay ,tìm hiểu về các công nghệphát triển của các nước tiên tiến trên thế giới, Nhóm thực hiện đồ án đã chọn lựa

đề tài nằm trong lĩnh vực trí tuệ nhân tạo liên quan đến thị giác máy tính (CV –

Computer Vision) Đề tài sẽ thiết kế một hệ thống camera được gắn trên hệ trục

truyền động có khả năng giám sát và bám theo một đối tượng nhất định , vận

hành độc lập và không thông qua sự điều khiển của con người dựa trên giải

thuật xử lý các đặc trưng Haar-Like

Trang 7

1.2 Mục đích của đề tài

Hình 1.1 Hệ camera Pan-Til An ninh

Đề tài phát triển xây dựng hệ thống camera có khả năng nhận dạng đối tượng

dựa trên phương pháp xử lý ảnh Haar-like , và điều chỉnh góc quay hệ thống bám theo

đối tượng đã biết trước.Trong đề tài này thì nhóm thực hiện chọn đối tượng được nhận

dạng là mặt người

Hệ thống gồm các phần chính là bộ phận thu nhận thông tin và bộ phận xử lý thông tin

thông qua quá trình truyền nhận dữ liệu giao tiếp máy tính giữa MCU và PC

Hình 1.2 Nhận dạng khuôn mặt

Trang 8

• Độ đáp ứng camera so với tốc độ của đối tượng được tracking chưa đáp ứng

nhanh

Trang 9

CHƯƠNG 2 NGHIÊN CỨU LÝ THUYẾT

2.1 Hệ thống pantilt camera

Pantil camera là hệ thống camera có thể xoay thay thế cho loại camera cố

định góc quay truyền thống.Với hệ thống pantil camera thì góc quay của camera

sẽ rộng hơn ,có thể tự do điều khiển bẳng tay hoặc auto zoom focuc vào mục

tiêu đối tượng cụ thể nào đó

Tìm hiểu về hệ thống truyền động Pan-Tilt Z của camera an ninh , được

lắp thêm động cơ có thể xoay chuyển camera theo nhiều góc độ và hướng khác

nhau Nhóm thực hiện đề tài chọn lựa giải pháp thiết kế hệ trục truyền động

gồm 2 Servo (1Servo MG946R và 1 Micro Servo SG90) 2 servo này sẽ là giải

pháp chọn lựa đáp ứng được yêu cần bài toán đặt ra về tốc độ, độ ổn định , tính

tháo lắp thuận lợi cũng như về mặt giá thành trong phạm vi đề tài đặt ra

2.2 Servo

Servo điều khiển và động cơ đều được cấp nguồn DC (thường từ 4.8 – 7.2

V)

Để quay động cơ, tín hiệu số được gới tới mạch điều khiển Tín hiệu này

khởi động động cơ, thông qua chuỗi bánh răng, nối với vôn kế Vị trí của trục vôn

kế cho biết vị trí trục ra của servo Khi vôn kế đạt được vị trí mong muốn, mạch

điều khiển sẽ tắt động cơ

Như ta dự đoán, động cơ servo được thiết kế để quay có giới hạn chứ

không phải quay liên tục như động cơ DC hay động cơ bước Mặc dù ta có thể

chỉnh động cơ servo R/C quay liên tục (sẽ trình bày sau) nhưng công dụng chính

của động cơ servo là đạt được góc quay chính xác(tùy vào loại servo mà giới hạn

góc quya sẽ khác nhau) Việc điều khiển này có thể ứng dụng để lái robot, di

chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng…

Trang 10

2.3 Kit Arduino UNO R3

2.3.1 Tổng quan

Hình 2.1 ARDUINO UNO R3

Arduino UNO có thể sử dụng 3 vi điều khiển 8bit họ AVR là ATmega8,

ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều

khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo

nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,

Sử dụng chip AVR ATmega328 của ATmel Mạch arduino được lắp ráp từ các

linh kiện dễ tìm và hướng đến đối tượng người dùng đa dạng Đừng lo nếu bạn là dân

nghiệp dư vì arduino có một hệ thống thư viện phong phú, cộng đồng người dùng

arduino đông đảo sẵn sàng chia sẻ kiến thức và mã nguốn sẽ giúp bạn tạo nên những

dự án thiết thực

Trang 11

Bảng 1.Thông số kỹ thuật của Arduino UNO R3

Trang 12

2.3.2 Sơ đồ chân

Hình 2.2 Sơ đồ chân Arduino UNO R3

GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các

thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với

nhau

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương

của nguồn với chân này và cực âm của nguồn với chân GND

IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở

chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ

chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với

việc chân RESET được nối với GND qua 1 điện trở 10KΩ

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –

RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2

chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây

Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết

Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân

giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói

Trang 13

một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến

5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác

Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức

năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với

các thiết bị khác

LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút

Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi

chân này được người dùng sử dụng, LED sẽ sáng

Bộ nhớ của Arduino UNO R3

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ

nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được

dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu

2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai

báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ

RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn

phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất

EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như

một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không

phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM

2.3.3 Lập trình cho Arduino IDE

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng Ngôn

ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói Và Wiring lại là một

biến thể của C/C++ Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C+

+

Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát

triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino

được gọi là Arduino IDE (Intergrated Development Environment)

Trang 14

Hình 2.3 Chương trình lập trình cho Arduino UNO R3

2.4 Phương pháp xử lý ảnh

2.4.1 Đặc trưng Haar-like

Mục đích của việc sử dụng các đặc trưng Haar-like là thay vì sử dụng

giá trị của những điểm ảnh thô thì việc sử dụng các đặc trưng Haar-like để

làm các giá trị đầu vào cho thuật toán máy học nhằm làm giảm số lớp đầu

vào và tăng giá trị của các lớp đầu ra nhằm làm cho việc phân loại dễ dàng

hơn Mỗi một đặc trưng Haar-like bao gồm 2 hoặc 3 khối hình màu trắng và

đen liên kết nhau

Trang 15

Hình 2.4 Đặc trưng Haar-like cơ bản

Để áp dụng các đặc trưng này vào việc bài toán xác định mặt người, 4 đặc trưng

Haar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:

Hình 2.5 Đặc trưng cạnh (edge features)

Hình 2.6 Đặc trưng đường (line features)

Hình 2.7 Đặc trưng xung quanh tâm (center-surround features)

Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đối tượng

trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà

bản thân từng điểm ảnh không diễn đạt được Để tính giá trị các đặc trưng haar-like, ta

tính sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như

trong công thức sau:

f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel)

Trang 16

Hình 2.8 Ví dụ về sử dụng đặc trưng Haar-likeHình 11 cho ta thấy cách áp dụng các đặc trưng Haar-like để nhận dạng mắt trên

khuôn mặt một người

2.4.2 Phương pháp Cascade of Boosted Classifiers

Ta thấy quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặc trưng

của các mẫu trong tập training Việc này tốn rất nhiều thời gian Tuy nhiên, trong các

mẫu đưa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu

background rất dễ nhận ra (ta gọi đây là những mẫu background đơn giản) Đối với

những mẫu này, ta chỉ cần xét một hay vài đặc trưng đơn giản là có thể nhận diện được

chứ không cần xét tất cả các đặc trưng Nhưng đối với các bộ phân loại thông thường

thì cho dù mẫu cần nhận dạng là dễ hay khó thì nó vẫn sẽ xét tất cả các đặc trưng mà

nó rút ra được trong quá trình học Do đó, chúng tốn thời gian xử lý một cách không

cần thiết

Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử lý,

giảm thiểu false alarm cho bộ phân loại Cascade of classifier gồm nhiều stage, mỗi

Trang 17

h h h

hitrate = hNfalsealarms = fNInput pattern classified as a non-object

luyện bằng những mẫu negative mà stage classifier trước nó nhận dạng sai, tức là nó sẽ

tập trung học từ các mẫu background khó hơn, do đó sự kết hợp các stage classifiers

này lại sẽ giúp bộ phân loại có false alarm thấp Với cấu trúc này, những mẫu

background dễ nhận diện sẽ bị loại ngay từ những stages đầu tiên, giúp đáp ứng tốt

nhất đối với độ phức tạp gia tăng của các mẫu đưa vào, đồng thời giúp rút ngắn thời

gian xử lý

Thuật toán Cascade training:

Hình 2.9 Sơ đồ nguyên lý phương pháp cacade of classifier

Minh họa sự huấn luyện của một cascade gồm N stages Ở mỗi stage, weak

classifier tương ứng sẽ được huấn luyện sao cho độ chính xác của nó là h và false

alarm bằng f.

2.4.3 Phương pháp Adaboost

AdaBoost ( Adaptive Boost ) là một bộ phân loại mạnh phi tuyến phức dựa trên

hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995 Adaboost hoạt

động trên nguyên tắc kết hợp tuyến tính các weak classifier dựa trên các đặc trưng

Haar- Line để hình thành một strong classifier

Viola và Jones đã sử dụng rất thành công cascade of boosting classifiers cho bài

toán nhận dạng mặt người Với tập huấn luyện gồm 4196 hình mặt người được đưa về

ảnh grayscale kích thước 24x24 và 9500 hình background, hai ôngđã xây dựng cấu

Trang 18

mẫu background (không phải mặt người) và có độ chính xác là d = 100% Classifier ở

stage thứ 2 sử dụng 10 đặc trưng loại được 80% mẫu background với độ chính xác vẫn

là 100% Hệ thống này được so sánh với hệ thống của Rowley-Baluja-Kanade (sử dụng

mạng neural), Schneiderman-Kanade (sử dụng phương pháp thống kê), và cho thấy tỉ

lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến

15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thống của

Schneiderman-Kanade

AdaBoost (Adaptive Boost) được Freund và Schapire đề xuất trong những năm

1995 là một bộ phân loại mạnh phi tuyến Adaboost hoạt động trên nguyên tắc kết hợp

tuyến tính các phân lớp yếu (weak classifier) Nghiên cứu của Viola và

Jones [16] xây dựng Adaboost dựa trên dữ liệu đầu vào là các đặc trưng Haar- Like để

hình thành một phân lớp mạnh hơn (strong classifier) theo nguyên tắc của boosting

[19]: “tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được

nhận dạng đúng bởi phân lớp yếu (weak classifier) vừa xây dựng” Ý tưởng chính của

Boosting là thực hiện lặp lại nhiều lần quá trình học của bộ phân lớp yếu, nghĩa là tập

trung học lại các phần tửbịphân lớp sai Tại mỗi giai đoạn (stages) của Cascades of

Boosted Classifiers được huấn luyện là một Adaboost

Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng số (weight)

để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak

classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho

việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bị nhận dạng sai và

giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa xây dựng

Bằng cách này, các weak classifier sau có thể tập trung vào các mẫu mà các weak

classifier trước đó chưa thực hiện tốt Sau cùng các weak classifier sẽ được kết hợp tùy

theo mức độ ‘tốt’ của chúng để tạo nên một strong classifier

Các weak classifiers hk(x) là các bộ phân loại yếu, được biểu diễn như sau:

Trang 19

pk: hệ số quyết định chiều của bất phương trình

Công thức trên có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu cho bởi hàm

đánh giá của bộ phân loại vượt qua một ngưỡng cho trước thì mẫu đấy là khuôn mặt

( gọi là object : đối tượng cần nhận dạng ), ngược lại thì mẫu là background ( không

phải là đối tượng )

Lý do mà cấu trúc cascade đạt tốc độ nhận dạng nhanh chính là nhờ nó sớm loại bỏ

được các mẫu background đơn giản (thường có số lượng lớn hơn nhiều so với các mẫu

chứa object – các mẫu chưa khuôn mặt cần tiến hành nhận dạng) Bên cạnh đó, hệ

thống của Viola và Jones cũng đạt được độ chính xác khá cao nhờ vào thuật toán

cascade training, các bộ nhận dạng được huấn luyện bằng AdaBoost với đặc trưng

Haar-like mô tả tốt thông tin đối tượng, cùng với cách Integral Image tính nhanh các

đặc trưng, không làm giảm tốc độ nhận dạng của hệ thống Như vậy, mô hình Cascade

of Boosted Classifiers thật sự là một cách tiếp cận tốt cả về tốc độ lẫn khả năng nhận

dạng, rất phù hợp với bài nhận dạng mặt người

Trang 20

Bắt đầu huấn luyện

Xác định các đặc trưng trong từng mẫu, xây dựng các bộ phân loại yếu tương ứng Đặc trưng haar-like

Tính toán giá trị lỗi cho mỗi đặc trưng (false alarm)

Đúng

Hình 2.10 Lưu đồ giải thuật cách tạo ra bộ phân loại bằng phương pháp cascade boost

of classifier

Trang 21

CHƯƠNG 3 TÍNH TOÀN THIẾT KẾ

Ngày đăng: 20/07/2015, 17:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w