1. 程式人生 > >樹莓派實現人臉打卡機

樹莓派實現人臉打卡機

之前用樹莓派開發一套簡易的視訊監控平臺,正好週日有時間,這次用樹莓派實現了人臉打卡機。 樹莓派相關文章: 1. [樹莓派搭建nexus2.x私服](https://www.cnblogs.com/itqn/p/raspi_nexus2.html) 2. [樹莓派搭建視訊監控平臺](https://www.cnblogs.com/itqn/p/13268916.html) 3. [樹莓派視訊監控平臺實現錄製歸檔](https://www.cnblogs.com/itqn/p/13281792.html) 4. 樹莓派實現人臉打卡機 (本文) ### 1. 功能設計 樹莓派人臉打卡機,主要包括兩個大方向的功能要求: a. 人臉採集存檔 b. 人臉識別簽到 這兩個功能配合使用就能實現人臉打卡了, 通過人臉採集將人臉資訊預存檔在系統中,簽到的時候,當人靠近攝像頭時實時採集人臉,然後比對現有人臉,如果資訊匹配則認為簽到成功。 下面是簽到的效果: 當人臉簽到成功後,程式介面底部會顯示簽到時間和簽到人的工號。 ![raspi-face-sign-in](https://img2020.cnblogs.com/blog/2083963/202007/2083963-20200712184535458-1245940355.png) ### 2. 開發人臉採集模組 人臉採集模組主要的工作就是從攝像頭採集視訊幀,然後交給介面回顯,這裡使用的是JavaCV中的opencv模組。 頻繁採集視訊幀是一個很耗CPU的過程,我在這裡做了一些優化處理,即:當檢測到沒有人臉的時候,程式休眠更長的時間(1秒),而當檢測到人臉時,採集間隔調整為180毫秒。 下面是完整的程式碼: ```java /** * @author itqn */ public class FaceCapture implements Runnable { private VideoCapture capture; private CascadeClassifier classifier; private OpenCVFrameConverter.ToMat matConvert; private JavaFXFrameConverter converter; private Bi