Mục lục:
- Bước 1: Những thứ được sử dụng trong dự án này
- Bước 2: Kết nối phần cứng
- Bước 3: Lập trình phần mềm
- Bước 4: Xong
Video: Khóa thông minh nhận dạng khuôn mặt với LTE Pi HAT: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Nhận dạng khuôn mặt ngày càng được sử dụng rộng rãi, chúng ta có thể sử dụng nó để làm khóa thông minh.
Bước 1: Những thứ được sử dụng trong dự án này
Các thành phần phần cứng
- Raspberry Pi 3 Mô hình B
- Mô-đun máy ảnh Raspberry Pi V2
- Grove - Tiếp sức
- LTE Cat 1 Pi HAT (Châu Âu)
- Màn hình LCD IPS 10.1 inch 1200x1980 HDMI
Ứng dụng phần mềm và dịch vụ trực tuyến
- WinSCP
- Notepad ++
Bước 2: Kết nối phần cứng
Trong dự án này, chúng tôi dự định chụp ảnh bằng picamera và nhận dạng khuôn mặt trong đó, sau đó hiển thị kết quả nhận dạng trên màn hình. Nếu biết khuôn mặt, hãy mở cửa và gửi người đã mở cửa đến số điện thoại được chỉ định qua SMS.
Vì vậy, bạn cần kết nối máy ảnh với giao diện máy ảnh của Raspberry Pi, đồng thời cài đặt ăng-ten và mũ Grove - Relay to LTE Pi, sau đó cắm HAT vào Pi của bạn. Màn hình có thể được kết nối với Raspberry Pi thông qua cáp HDMI, đừng quên kết nối nguồn cho màn hình và Pi của bạn.
Bước 3: Lập trình phần mềm
Nhận dạng khuôn mặt
Cảm ơn Adam Geitgey và dự án Nhận dạng khuôn mặt của anh ấy, chúng tôi có thể sử dụng thư viện nhận dạng khuôn mặt đơn giản nhất thế giới trên Raspberry Pi. Các bước sau đây sẽ hướng dẫn bạn cách thiết lập nhận dạng khuôn mặt trên Pi.
Bước 1. Sử dụng raspi-config để cấu hình camera và bộ nhớ GPU.
sudo raspi-config
Chọn Tùy chọn giao diện - Máy ảnh để bật picamera, sau đó chọn Tùy chọn nâng cao - Tách bộ nhớ để đặt bộ nhớ GPU, nó sẽ được thay đổi thành 64. Sau khi hoàn tất, hãy khởi động lại Raspberry Pi của bạn.
Bước 2. Cài đặt các thư viện cần thiết.
sudo apt-get cập nhật
sudo apt-get nâng cấp sudo apt-get install build-essential / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean
Bước 3. Tạo mảng hỗ trợ picamerea.
sudo pip3 install - nâng cấp picamera [mảng]
Bước 4. Cài đặt dlib và nhận dạng khuôn mặt.
sudo pip3 cài đặt dlib
sudo pip3 cài đặt face_recognition
Bước 5. Tải xuống và chạy ví dụ nhận dạng khuôn mặt
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
LƯU Ý: Nếu bạn nhận được ImportError: libatlas.so.3: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy, hãy chạy lệnh sau để khắc phục.
Chuyển tiếp
Khi nhận dạng khuôn mặt đã sẵn sàng, chúng tôi có thể tiếp tục thêm các tính năng bổ sung. Chúng tôi đã kết nối Grove - Relay với LTE Cat 1 Pi HAT, nhưng nó sử dụng cổng kỹ thuật số thay vì cổng I2C.
Đây là chân cắm cho Raspberry Pi 3B, chúng ta có thể thấy chân SDA và chân SCL nằm ở chân 3 và chân 5 của bo mạch.
Vì vậy, chúng tôi có thể điều khiển rơ le bằng cách xuất tín hiệu kỹ thuật số đến chân 5. Chạy theo chương trình python xuống trên Raspberry Pi của bạn, nếu không có gì sai, bạn sẽ nghe thấy tiếng Ti-Ta từ rơ le.
nhập RPi. GPIO dưới dạng GPIO
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)
Vì vậy, đây là ý tưởng, chúng tôi tải các khuôn mặt đã biết từ một thư mục, nhận dạng khuôn mặt được chụp bởi picamera, nếu khuôn mặt trong thư mục, điều khiển rơle để mở khóa cửa. Chúng ta có thể đóng gói chúng thành một lớp, ở đây là phương thức load_known_faces () và phương thức unlock (), chương trình đã hoàn thành có thể được tải xuống ở phần cuối của bài viết này.
def load_known_faces (self):
known_faces = os.listdir (self._ known_faces_path) cho known_face trong known_faces: self._ known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self._ath + known_faces) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): if self._ match.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Cửa đã mở') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count + = 1 print ('Vui lòng thử lại… { } '. format (self._ retry_count)) trả về False
Hãy suy nghĩ một cách siêu việt, chúng ta có thể hiển thị bức tranh mà ai đã nhận ra, thư viện PIL và matplotlib có thể hữu ích, trong số đó, matplotlib cần được cài đặt theo cách thủ công, hãy chạy lệnh này trong thiết bị đầu cuối Raspberry Pi của bạn.
sudo pip3 cài đặt matplotlib
Nhập chúng vào mã của bạn và thay đổi if block trong phương thức unlock () như sau:
img = Image.open ('{} / {}. jpg'.format (self._ known_faces_path, self._ known_faces_name [0]))
plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Cửa đã mở') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True
Bây giờ, nếu một khuôn mặt được nhận dạng, ảnh trong thư mục sẽ được hiển thị trên màn hình.
tin nhắn
Đôi khi chúng tôi muốn biết ai đang ở trong phòng của mình và bây giờ có một nơi cho LTE Cat 1 Pi HAT. Cắm thẻ SIM vào nó và làm theo các bước sau để kiểm tra xem nó có hoạt động hay không.
Bước 1. Bật UART0 trong Raspberry Pi
Sử dụng nano để chỉnh sửa config.txt trong / boot
sudo nano /boot/config.txt
thêm dtoverlay = pi3-disable-bt vào cuối trang và tắt dịch vụ hciuart
sudo systemctl vô hiệu hóa hciuart
sau đó xóa console = serial0, 115200 trong cmdline.txt trong / boot
sudo nano /boot/cmdline.txt
Sau khi mọi thứ hoàn tất, bạn nên khởi động lại Raspberry Pi của mình.
Bước 2. Tải xuống ví dụ và chạy nó.
Mở một thiết bị đầu cuối trên Raspberry Pi của bạn, gõ từng dòng lệnh này vào nó.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py install cd test sudo python test01.py
Nếu bạn thấy các đầu ra này trong thiết bị đầu cuối của mình, LTE Cat 1 Pi HAT hoạt động tốt.
Đã phát hiện tiêu đề GPIO 40 chân
Bật CTS0 và RTS0 trên cts GPIO 16 và 17 rts khi thức dậy… tên mô-đun: LARA-R211 RSSI: 3
Bây giờ chúng ta đã biết HAT hoạt động tốt, làm thế nào để sử dụng nó để gửi SMS? Điều đầu tiên bạn cần biết là Raspberry Pi giao tiếp với HAT thông qua lệnh send AT của UART. Bạn có thể gửi lệnh AT tới LTE HAT bằng cách chạy mã này trong python
từ ublox_lara_r2 nhập *
u = Ublox_lara_r2 () u.initialize () u.reset_power () # Đóng xoa bóp gỡ lỗi u.debug = False u.sendAT ('')
Lệnh AT để gửi SMS như sau
AT + CMGF = 1
AT + CMGS =
vì vậy đây là phương thức _send_sms ():
def _send_sms (bản thân):
if self._ phonenum == Không: trả về False cho người mở khóa._ Recogse_face_names (): if self._ ublox.sendAT ('AT + CMGF = 1 / r / n'): print (self._ ublox.response) nếu self. _ublox.sendAT ('AT + CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) nếu tự._ ublox.sendAT (' {} vào phòng. / x1a'.format (trình mở khóa)): in (tự._ ublox.response)
LƯU Ý: Thư viện của LTE Cat 1 Pi HAT được viết bởi python2, không tương thích lắm với python3, nếu bạn muốn sử dụng nó với tính năng nhận dạng khuôn mặt, vui lòng tải xuống từ liên kết ở cuối bài viết này.
Đề xuất:
Abellcadabra (Hệ thống khóa cửa nhận dạng khuôn mặt): 9 bước
Abellcadabra (Hệ thống khóa cửa nhận dạng khuôn mặt): Nằm quanh quẩn trong thời gian cách ly, tôi cố gắng tìm cách giết thời gian bằng cách xây dựng tính năng nhận dạng khuôn mặt cho cửa nhà. Tôi đặt tên nó là Abellcadabra - là sự kết hợp giữa Abracadabra, một cụm từ ma thuật với chuông cửa mà tôi chỉ lấy chuông. CƯỜI LỚN
Gương nhận dạng khuôn mặt với ngăn bí mật: 15 bước (có hình ảnh)
Gương nhận dạng khuôn mặt có ngăn bí mật: Tôi luôn bị hấp dẫn bởi những ngăn bí mật luôn sáng tạo được sử dụng trong truyện, phim và những thứ tương tự. Vì vậy, khi tôi xem Cuộc thi Ngăn chứa Bí mật, tôi đã quyết định tự mình thử nghiệm ý tưởng và làm một chiếc gương soi bình thường có thể mở ra
Khóa cửa nhận dạng khuôn mặt: 8 bước
Khóa cửa nhận dạng khuôn mặt: Khoảng một tháng trong quá trình sản xuất, tôi giới thiệu khóa cửa nhận dạng khuôn mặt! Tôi đã cố gắng làm cho nó trông gọn gàng nhất có thể, nhưng tôi chỉ có thể làm được như vậy khi mới 13 tuổi. Khóa cửa nhận dạng khuôn mặt này được chạy bởi Raspberry Pi 4, với một chiếc dùi cui di động đặc biệt
Nhận dạng và Nhận dạng khuôn mặt - Arduino Face ID sử dụng OpenCV Python và Arduino.: 6 bước
Nhận dạng và Nhận dạng khuôn mặt | Arduino Face ID Sử dụng OpenCV Python và Arduino: Nhận dạng khuôn mặt ID khuôn mặt AKA là một trong những tính năng quan trọng nhất trên điện thoại di động hiện nay. Vì vậy, tôi đã có một câu hỏi " liệu tôi có thể có id khuôn mặt cho dự án Arduino của mình không " và câu trả lời là có … Hành trình của tôi bắt đầu như sau: Bước 1: Truy cập vào chúng tôi
Hệ thống bảo mật nhận dạng khuôn mặt cho tủ lạnh với Raspberry Pi: 7 bước (có hình ảnh)
Hệ thống bảo mật nhận dạng khuôn mặt cho tủ lạnh với Raspberry Pi: Duyệt qua internet, tôi đã phát hiện ra rằng giá cho các hệ thống bảo mật thay đổi từ 150 đô la đến 600 đô la trở lên, nhưng không phải tất cả các giải pháp (ngay cả những giải pháp rất đắt tiền) đều có thể được tích hợp với các giải pháp khác công cụ thông minh tại nhà của bạn! Ví dụ: bạn không thể đặt