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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Arduino hậu tiền chế - Làm xong code rồi thì làm gì ?

Giả sử bạn chế tạo thành công hệ thống bật tắt đèn vơi Arduino và relay và bây giờ bạn muốn ứng dụng chúng trong môi trường sống của mình. Bạn muốn mọi người trầm trồ với điều kỳ diệu của vi điều khiển Arduino, nhưng ngặt nỗi họ không hề biết lập trình. Vấn đề của bạn bây giờ là làm sao để dự án của bạn dễ sử dụng với càng nhiều người càng tốt. Nói cách khác đi là bạn đã đưa dự án của mình qua giai đoạn mới, từ hậu-kết (back-end) với code và phần cứng, bây giờ bạn chuyển sang tiền-kết (front-end). Dự án của bạn có cất cánh hay không là ở giai đoạn này, vì vậy bạn nên dành thời gian suy nghĩ vấn đề này một chút sau khi bạn đã thành công với việc viết code.

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

(Phòng chống) Nghệ thuật hắc ám với ESP8266 - Phần 5: Bầu ơi thương lấy Bí cùng với ESP32

Bài trước tui đã hướng dẫn các bạn hô biến chiếc Casio huyền thoại thành thiết bị nhận phao wifi từ xa để thủ khoa đại học. Thể theo truyền thống "Bầu ơi thương lấy Bí cùng" của người Việt Nam chúng ta, các bạn sau khi chắc chắn 100% thủ khoa thì cũng nên ra tay nghĩa hiệp giúp đỡ các đồng môn trong thi trường hoàn thành bài thi đại học. Vì vậy, trong bài này, tui sẽ hướng dẫn các bạn làm một bộ đàm Casio để liên lạc thả thính trong phòng thi. Lưu ý là các bạn nên chế cháo cẩn thận, chớ nên buôn bán thiết bị nếu không muốn bị Công An gõ cửa hỏi thăm.

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