Mục lục:

Nhận dạng khuôn mặt Opencv: 4 bước
Nhận dạng khuôn mặt Opencv: 4 bước

Video: Nhận dạng khuôn mặt Opencv: 4 bước

Video: Nhận dạng khuôn mặt Opencv: 4 bước
Video: Bài 8 :Nhận dạng khuôn mặt full code Hướng dẫn giải thích - opencv python 2024, Tháng bảy
Anonim
Nhận dạng khuôn mặt Opencv
Nhận dạng khuôn mặt Opencv

Ngày nay, nhận dạng khuôn mặt là một điều khá phổ biến, trong nhiều ứng dụng như điện thoại thông minh, nhiều thiết bị điện tử. Loại công nghệ này liên quan đến rất nhiều thuật toán và công cụ, v.v. thư viện như OpenCV, bây giờ bạn có thể thêm nhận dạng khuôn mặt vào các ứng dụng của riêng bạn như hệ thống bảo mật.

Trong dự án này, tôi sẽ cho bạn biết cách tạo tính năng nhận dạng khuôn mặt bằng cách sử dụng Raspberry Pi và chúng tôi đã sử dụng arduino + Lcd để hiển thị tên của người đó..

Bước 1: Những thứ bạn cần

Những thứ bạn cần
Những thứ bạn cần

1. RASPBERRY PI

2. ARDUINO UNO / NANO

MÀN HÌNH LCD 3,16x2 lCD

4. RASPI-CAMERA / WEBcam (tôi thích webcam để có kết quả tốt hơn)

Bước 2: Opencv-Intro và Cài đặt

Opencv-Intro và Cài đặt
Opencv-Intro và Cài đặt

OpenCV (thư viện thị giác máy tính mã nguồn mở) là một thư viện rất hữu ích - nó cung cấp nhiều tính năng hữu ích như nhận dạng văn bản, nhận dạng khuôn mặt, phát hiện đối tượng, tạo bản đồ độ sâu và học máy.

Bài viết này sẽ hướng dẫn bạn cách cài đặt Opencv và các thư viện khác trên Raspberry Pi sẽ rất hữu ích khi thực hiện phát hiện đối tượng và các dự án khác. Từ đó, chúng ta sẽ học cách thực hiện các hoạt động hình ảnh và video bằng cách thực hiện một dự án học máy và nhận dạng đối tượng. Cụ thể, chúng tôi sẽ viết một đoạn mã đơn giản để phát hiện khuôn mặt trong một hình ảnh.

OpenCV là gì?

OpenCV là một thư viện phần mềm máy tính và thị giác máy tính mã nguồn mở. OpenCV được phát hành theo giấy phép BSD, miễn phí cho cả mục đích học thuật và thương mại. Nó có giao diện C ++, Python và Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android. OpenCV được thiết kế cho hiệu quả tính toán và tập trung mạnh vào các ứng dụng thời gian thực.

Làm thế nào để cài đặt OpenCV trên Raspberry Pi?

Để cài đặt OpenCV, chúng ta cần cài đặt Python. Vì Raspberry Pis được tải sẵn Python nên chúng ta có thể cài đặt OpenCV trực tiếp.

Nhập các lệnh bên dưới để đảm bảo rằng Raspberry Pi của bạn được cập nhật và cập nhật các gói đã cài đặt trên Raspberry Pi của bạn lên phiên bản mới nhất.

sudo apt-get updateudo apt-get nâng cấp

Nhập các lệnh sau vào thiết bị đầu cuối để cài đặt các gói cần thiết cho OpenCV trên Raspberry Pi của bạn.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqttc4-test libqttc4-test

Nhập lệnh sau để cài đặt OpenCV 3 cho Python 3 trên Raspberry Pi của bạn, pip3 cho chúng tôi biết rằng OpenCV sẽ được cài đặt cho Python 3.

sudo pip3 cài đặt opencv-Contrib-python libwebp6

Bây giờ, OpenCV sẽ được cài đặt.

(nếu có bất kỳ lỗi nào xảy ra: bạn vẫn có thể làm điều đó bằng cách nhấp vào liên kết bên dưới

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Bây giờ đừng vội, chúng ta cần kiểm tra xem nó đã được cài đặt đúng cách hay chưa

Kiểm tra opencv của bạn bằng cách:

1. đi đến thiết bị đầu cuối của bạn và nhập "python"

2. sau đó nhập "nhập cv2".

3. sau đó nhập "cv2._ phiên bản_".

sau đó cài đặt các thư viện này

pip3 cài đặt python-numpy

pip3 cài đặt python-matplotlib

Mã kiểm tra để phát hiện khuôn mặt trong hình ảnh:

nhập cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

image = cv2.imread ('your file name') #example cv2.imread ('home / pi / Desktop / filename.jpg')

bạn sẽ nhận được kết quả giống như một hộp vuông được tạo thành trên khuôn mặt của những người trong hình.

Bước 3: Phát hiện và nhận dạng khuôn mặt trong video thời gian thực

nhập cv2

nhập numpy dưới dạng np

nhập hệ điều hành

nhập nối tiếp

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 có thể thay đổi trong trường hợp của bạn, tùy thuộc vào arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

Recogzer = cv2.face.createLBPHFaceRecognizer ()

hình ảnh =

nhãn =

cho tên tệp trong os.listdir ('Tập dữ liệu'):

im = cv2.imread ('Dataset /' + filename, 0)

images.append (im)

label.append (int (filename.split ('.') [0] [0]))

#print tên tệp

names_file = open ('label.txt')

names = names_file.read (). split ('\ n')

Recogzer.train (hình ảnh, np.array (nhãn))

print 'Huấn luyện xong… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # thiết bị video của bạn

lastRes = '' count = 0

trong khi (1):

_, frame = cap.read ()

xám = cv2.cvtColor (khung, cv2. COLOR_BGR2GRAY)

face = faceCascade.detectMultiScale (xám, 1.3, 5)

đếm + = 1

for (x, y, w, h) in the face:

cv2.rectangle (frame, (x, y), (x + w, y + h), (255, 0, 0), 2)

nếu số lượng> 20: res = names [Recogzer.p Dự đoán (xám [y: y + h, x: x + w]) - 1]

nếu res! = lastRes:

lastRes = res

in lastRes

ser.write (lastRes)

đếm = 0

nghỉ

cv2.imshow ('frame', frame)

k = 0xFF & cv2.waitKey (10)

nếu k == 27:

nghỉ

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Bước 4: Chạy mã

Chạy mã
Chạy mã

1. Tải xuống các tệp đính kèm ở bước trước

2. sao chép ảnh xám của bạn (6 ảnh / mẫu…..) vào thư mục tập dữ liệu của bạn

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (số hình ảnh tập dữ liệu để mở thêm thư mục tập dữ liệu)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Người sắt4_1, 4_2, 4_3, 4_4, 4_5, 4_6

như ở trên, bạn có thể thêm nhãn cho những người tương ứng,

vì vậy nếu số pi phát hiện bất kỳ khuôn mặt nào trong số 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 thì nó được gắn nhãn là Tom Cruise, vì vậy hãy cẩn thận khi tải ảnh lên ……………….

và sau đó kết nối arduino với raspberry Pi của bạn và thực hiện các thay đổi trong main.py Codeer = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. nhập tất cả các tệp đã tải xuống (main.py, thư mục tập dữ liệu, haarcascade_frontalface_default.xml trong một thư mục.)

3. Bây giờ mở Raspi-terminal chạy mã của bạn bằng cách "sudo python main.py"

Đề xuất: