日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

java人脸识别_Python 实现在 App 端的人脸识别!手机解锁人脸识别

發布時間:2025/4/5 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java人脸识别_Python 实现在 App 端的人脸识别!手机解锁人脸识别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近閑來無事,研究研究在安卓上跑 Python,想起以前玩過的 kivy 技術,kivy 是一個跨平臺的 UI 框架,當然對我們最有用的是,kivy 可以把 Python 代碼打包成安卓應用。

但是由于安卓打包的工具鏈很長,包括 Android Sdk 打包 Java 代碼、NDK 編譯 Python、 編譯各種 Python 依賴包,經常花一整天從入門到放棄。

私信小編01 領取全套教程!

這次使出認真研究的心態,終于找到一個解決方案,于是有了這篇文章。

  • 只要會 Python 就能寫安卓 App,無需安卓開發基礎,無需編譯
  • 手機上也有交互式 Python 解釋器,直接調試 Python 代碼
  • 可以使用各種 Python 庫,包括 numpy/opencv 等機器學習包
  • 可以與安卓接口交互,使用手機硬件,比如攝像頭

那么我們就以人臉識別 App 為例,看看如何簡單幾步搞定,先看看成品的效果。

1、安裝 airport.apk

AirPort 是我編譯好的一個安卓 App,里面包含了 Python 解釋器和一些常用的依賴庫。

2、連接手機的 Python 解釋器

啟動手機上的 AirPort 應用,就會運行 Python 解釋器,為了調試的方便,應用內置了一個 ssh 服務器,啟動的時候會顯示手機的 IP 地址。

在電腦上使用 ssh 命令,就可以連接到手機。

ps: 注意:確保你的手機和電腦在同一局域網中。

# 在電腦上連接手機,注意這里ip需要替換成AirPort顯示的ipssh -p 8000 admin@192.168.31.101# 輸入密碼,這里密碼是固定為:meteorixmeteorix

然后你就可以在手機上盡情使用 Python 了。

3、攝像頭的 App

在 kivy 的官方文檔中,我們可以找到這樣一個攝像頭的 example

代碼非常簡單,Builder.load_string 函數加載了一段配置,這是 kivy 提供的 UI 定義語言 kivy language。

點擊 UI 上創建的 Capture 按鈕,回調 CameraClick.capture() 函數,用 Python 實現函數功能。

from kivy.app import Appfrom kivy.lang import Builderfrom kivy.uix.boxlayout import BoxLayoutimport timeBuilder.load_string(''': orientation: 'vertical' Camera: id: camera resolution: (640, 480) play: False ToggleButton: text: 'Play' on_press: camera.play = not camera.play size_hint_y: None height: '48dp' Button: text: 'Capture' size_hint_y: None height: '48dp' on_press: root.capture()''')class CameraClick(BoxLayout):def capture(self):''' Function to capture the images and give them the names according to their captured time and date. ''' camera = self.ids['camera'] timestr = time.strftime("%Y%m%d_%H%M%S") camera.export_to_png("IMG_{}.png".format(timestr)) print("Captured")class TestCamera(App):def build(self):return CameraClick()TestCamera().run()

將這段代碼保存為 kvmain.py 文件,我們可以直接在電腦上運行,如果你的電腦有攝像頭,就可以看到攝像頭 App 的效果。

4、推送代碼到安卓手機

這一步需要做的就是,把這個攝像頭 App 推送到安卓手機上,然后啟動 AirPort 應用,將 kvmain.py 推送到手機 /sdcard/kv/kvmain.py 路徑,然后啟動 AirPort 應用,就會加載這個路徑下的 Python 代碼。

adb shell mkdir -p /sdcard/kvadb push kvmain.py /sdcard/kv/kvmain.py

重新啟動手機上的 AirPort 應用,即可看到我們的攝像頭 App 運行在手機上了。

5、增加人臉識別功能

這一步,我們主要用到了 opencv 的人臉識別接口。

import cv2detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')img = cv2.imread('faces.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces = detector.detectMultiScale(gray, 1.3, 5)print(faces)

最后修改 App 代碼,讀取攝像頭的圖片,調用 opencv 人臉識別接口,將識別出來的人臉坐標,畫到手機屏幕的對應位置上。

bbox = BoundingBox(name=face_name, size_hint=(None, None))...for loc in faces:# calculate position of the face x, y, w, h = loc t = int(anchor_t - y*sh) b = int(anchor_t - (y+h)*sh) r = int(anchor_l + x*sw) l = int(anchor_l + (x+w)*sw)# update bounding box bbox.pos = (int(l), int(b)) bbox.size = (int(r-l), int(t-b)) ...

當然,我們還需要針對安卓手機進行一些調試,我們再次推送代碼到手機上。

adb push src/* /sdcard/kv/

重啟應用就可以看到上文展示的 GIF 效果了。

總結

以上是生活随笔為你收集整理的java人脸识别_Python 实现在 App 端的人脸识别!手机解锁人脸识别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。