Raspberry Pi Thiên Lý Nhãn (Phần 2): Nhận diện khuôn mặt với OpenCV

Mô tả dự án: 

Bài này tui sẽ hướng dẫn các bạn dùng OpenCV khai thác sức mạnh tính toán của Raspberry Pi, cụ thể là trong việc nhận dạng khuôn mặt.

Giới thiệu OpenCV

OpenCV (Open Source Computer Vision) là một thư viện các hàm lập trình rất lợi hại chủ yếu nhắm vào thị giác máy tính (computer vision) theo thời gian thực, ban đầu được phát triển bởi Trung tâm nghiên cứu của Intel tại Nizhny Novgorod (Nga). Một số ứng dụng của OpenCV bao gồm:

  • Nhận dạng cử chỉ
  • Nhận dạng chuyển động
  • Nhận dạng khuôn mặt
  • Thực tế ảo

OpenCV được viết chủ yếu cho C++ nhưng hiện nay đã có cầu nối cho Pyhon, Java, Matlab. Việc cài đặt OpenCV trên Raspberry Pi là hết sức tốn thời gian (khoảng 5 tiếng đồng hồ). Rất may mắn là có 1 anh hùng đã cài và host 1 cái image đã có OpenCV, bạn chỉ việc download image cho nó nhanh. Tuy nhiên anh bạn này lại dùng 1 cái microSD 16GB nên các bạn nhớ dùng card cho đúng dung lượng nhé nhé!

https://drive.google.com/file/d/0B11p78NlrG-vZzdJLWYxcU5iMXM/view

Nếu bạn thiếu tiền mua card nhưng thừa thời gian thì có thể vào đây theo hướng dẫn để cài OpenCV:

http://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/

 

Code thoai

Tải package fswebcam để điều khiển chụp ảnh bằng webcam:

sudo apt-get install fswebcam

Chép đoạn code sau và lưu lại với tên telepresent_2.py:

#By MonsieurVechai
import numpy as np
import os
import cv2
os.system("fswebcam image.jpg")

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')


img = cv2.imread('/home/pi/Desktop/image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#print len(faces)
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
     
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Lưu ý

Các bạn có thể đếm số người có trong hình bằng cách uncomment đoạn code:

#print len(faces)
lên
16 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Điều khiển 8 đèn LED qua wifi, sử dụng Arduino và ESP8266

Với mục đích giúp các bạn tiếp cận với các thiết bị IOT gần hơn. Hôm nay mình sẽ hướng dẫn các bạn viết chương trình điều khiển 8 LED qua mạng wifi. Và hơn thế nữa, nếu kết hợp với VPN hoặc mở port thì chúng ta có thể làm hơn thế nữa!

lên
48 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Lồng tiếng robot cho Raspberry Pi

Raspberry Pi là một board rất thích hợp cho các dự án robot thông minh. Ta có thể làm cho dự án của mình thêm sống động bằng cách phát ra các câu trả lời đơn giản. Bài này tui giới thiệu với các bạn 2 chương trình text-to-speech (chuyển chữ thành phiên âm) điều khiển bởi Python.

lên
15 thành viên đã đánh giá bài viết này hữu ích.

Ngôn ngữ Wolfram - Học làm toán trên Raspberry Pi

Nếu các bạn học sinh cấp 3 từng đau đầu với các bài đạo hàm tích phân, vi phân thì có lẽ Wolfram trên Raspberry Pi sẽ là một công cụ hỗ trợ tuyệt vời. Ta hãy xem một số ứng dụng hay của ngôn ngữ này nha! Lưu ý là các bạn học sinh cấp 3 hay năm 1 đại học chỉ nên dùng Wolfram để kiểm tra kết quả thôi nha, đừng làm biếng làm bài tập. Tui hem chịu trách nhiệm về kết quả tương lai của các bạn được đâu!

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: