CHƯƠNG 1. TỔNG QUAN kit Raspberry Pi. Nêu lên các phân tích, thiết kế về chương trình, sơ đồ khối của hệ thống, sơ đồ nguyên lý phần cứng. Chương 4: Thi công hệ thống Các bước xây dựng chương trình, tạo tập tin huấn luyện, các hàm, lưu đồ, chương trình được sử dụng.
Viết tài liệu hướng dẫn sử dụng, quy trình thao tác. Chương 5: Kết quả, Nhận xét và Đánh giá Nêu các kết quả đạt được khi thực thi chương trình, sau đó phân tích, nhận xét, đánh giá các kết quả thực thi được. Chương 6: Kết luận và hướng phát triển Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT CƠ SỞ LÝ THUYẾT 2. GIỚI THIỆU VỀ KIT RASPBERRY PI VÀ MODULE CAMERA PI Raspberry Pi–Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ Raspberry Pi vào tháng 12/2011. Chiếc máy tính này chỉ có kích cỡ bằng một chiếc thẻ tín dụng với đầy đủ các kết nối và tuỳ dung lượng RAM mà người mua lựa chọn. Trong một cuộc phỏng vấn mới đây, người đứng đầu của quỹ này là David Braben cho biết mặc dù có giá rẻ và kích cỡ nhỏ gọn nhưng máy tính của họ hoàn toàn có thể chơi những game như Quake III Arena hay chơi video độ phân giải Full-HD.1 Cấu tạo của Raspberry Pi 3 model B Trái tim của Pi là chip SOC (System-On-Chip) Broadcom BCM2837 chạy ở tốc độ 1.
Chip này tương đương với nhiều loại được sử dụng trong smartphone phổ thông hiện nay, và có thể chạy được hệ điều hành Linux. Tích hợp trên chip này là nhân đồ họa (GPU) Broadcom VideoCore IV. GPU này đủ mạnh để có thể chơi 1 số game phổ thông và phát video chuẩn full HD. 40 chân GPIO (General Purpose Input Output): đúng như tên gọi của nó, từ đây có thể kết nối và điều khiển rất nhiều thiết bị điện tử/cơ khí khác.
Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ cổng HDMI. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Ngõ RCA Video (analog): khi thiết kế Pi người ta cũng tính đến trường hợp người sử dụng ở các nước đang phát triển không có điều kiện sắm một chiếc tivi đời mới tích hợp cổng HDMI. Vì vậy cổng video analog này được thêm vào, giúp bạn có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng.5mm: kết nối dễ dàng với loa ngoài hay headphone.
Đối với tivi có cổng HDMI, ngõ âm thanh được tích hợp theo đường tín hiệu HDMI nên không cần sử dụng ngõ audio này. Cổng USB: một điểm mạnh nữa của Pi là tích hợp 4 cổng USB 2. Bạn có thể kết nối với bàn phím, chuột hay webcam, bộ thu GPS,… qua đó có thể mở rộng phạm vi ứng dụng. Vì Pi chạy Linux nên hầu hết thiết bị chỉ cần cắm-và-chạy (Plug-n-Play) mà không cần cài driver phức tạp.
Cổng Ethernet: cho phép kết nối Internet dễ dàng. Cắm dây mạng vào Pi, kết nối với màn hình máy tính hay tivi và bàn phím, chuột là bạn có thể lướt web dễ dàng. Khe cắm thẻ SD: Pi không tích hợp ổ cứng. Thay vào đó nó dùng thẻ SD để lưu trữ dữ liệu.
Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32 GB. Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động. Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này mà bạn có thể tận dụng hầu hết các sạc điện thoại di động trên thị trường để cấp nguồn điện cho Pi. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT Hình 2.2 Các chân GPIO của Raspberry Pi 3 model B Đề tài sử dụng module camera làm thiết bị chụp ảnh đầu vào. Module camera có kích thước 25mm x 20mm x 9mm và nặng 3g. Nó được kết nối trực tiếp vào cổng CSI (Camera Serial Interface) trên kit Raspberry PI thông qua cáp tín hiệu. Module sử dụng cảm biến hình ảnh CMOS QSXGA 5 Mpixel với công nghệ OmniBSI do hãng OmniVision chế tạo, có tiêu cự cố định.
Nó hỗ trợ quay video với độ phân giải full HD tốc độ 30 fps, độ phân giải HD là 60 fps và VGA là 60/90 fps BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.4 Cách kết nối module camera với kit raspberry PI. GIỚI THIỆU VỀ THƯ VIỆN OPENCV OpenCV (Open Computer Vision library) hoàn thiện thành phiên bản 1. Phiên bản mới nhất hiện nay là 3.
Thư viện OpenCV lúc đầu được viết bằng ngôn ngữ lập trình C, về sau đã được mở rộng sang các ngôn ngữ khác như Python, C++ và tương thích với các hệ điều hành Windows, Linux, Mac OS. Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực CV. Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định. Các bộ công cụ thương mại như Matlab, Simulink, Halcon, v.
lại có giá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn. Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rộng ứng dụng. OpenCV là công cụ hữu ích cho việc nghiên cứu, ứng dụng CV vì các ưu điểm sau: OpenCV là công cụ chuyên dụng: Được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn. OpenCV thích hợp để phát triển nhanh ứng dụng.
OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí (với BSD license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình, thuật toán. Cấu trúc thư viện OpenCV [3] : BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CV MLL HighGUI Các hàm về xử lý Các thuật toán học Các hàm và thủ tục ảnh và giải thuật về máy, bao gồm các làm việc với file thị giác máy tính bộ phân cụm, phân ảnh và file video loại thống kê CXCORE Các cấu trúc dữ liệu cơ bản, cấu trúc XML, các hàm về đồ họa … Hình 2.5 Cấu trúc cơ bản của OpenCV Ban đầu, phiên bản OpenCV 1.0 được viết bằng ngôn ngữ C, dữ liệu ảnh được lưu trữ trên RAM sử dụng cấu trúc C được gọi là lplImage. Điều này đem lại một bất tiện là chúng ta phải tự giải phóng vùng nhớ lưu trữ dữ liệu ảnh sau khi sử dụng.0 ra đời, kế thừa những ưu điểm đã có từ phiên bản 1.0, sử dụng ngôn ngữ C++ và toán tử cv::Mat ra đời.
Kể từ đây, tất cả các kiểu dữ liệu ảnh, các ma trận đều được lưu dưới dạng cv::Mat. Từ đây việc giải phóng vùng nhớ sau khi sử dụng được thực hiện một cách tự động. Về cơ bản, Mat là một lớp gồm 2 phần dữ liệu: hằng số header ma trận (chứa các thông tin như kích thước ma trận, phương thức sử dụng để lưu trữ và địa chỉ lưu trữ ma trận …) và con trỏ ma trận chứa giá trị các pixel.6 Minh họa kiểu dữ liệu của toán tử mat BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 do an CHƯƠNG 2. ĐẶC TRƯNG HAAR-LIKE Viola và Jones dùng 4 đặc trưng cơ bản để xác định khuôn mặt người.
Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau [5]: Hình 2.7 Bốn đặt trưng Haar-like cơ bản Để áp dụng các đặt trưng này vào việc bài toán xác định mặt người, 4 đặt 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: 1. Đặc trưng cạnh (edge features) 2. Đặc trưng đường (line features) 3. Đặc trưng xung quanh tâm (center-surround features) Hình 2.8 Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở 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 [5]: f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel) (2.1) Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng Haar-like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặt người), do đó sẽ làm cho bộ phân loại dễ hơn. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh. Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time.
Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image để tính toán nhanh cho khác feature cơ bản. Sau này, Lienhart kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra thêm khái niệm RSAT – Rotated Summed Area Table dùng để tính toán nhanh cho các đặc trưng xoay 1 góc 450. Integral Image là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh [5].9 Cách tính Integral Image của ảnh Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh của vùng D như trong hình 2.3) Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1.