三分鐘極速體驗:Java版人臉檢測
阿新 • • 發佈:2021-10-25
歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;
本篇概覽
-
檢測照片中的人臉,用Java可以實現嗎?
-
當然可以,今天咱們用最少的時間、最簡單的操作來體驗這個實用的功能,當您提交一張帶有人臉的照片後,會看到下圖效果,所有人臉都被識別到並被框選出來了:
- 本篇以體驗為主,不涉及具體的開發,後面還會有文章介紹完整的開發過程(包括原始碼)
風險提前告知
-
為了簡化操作,接下來會用到docker,對應的映象體積巨大,達到了恐怖的4.69G
-
由於opencv體積龐大,再加上javacv的依賴庫也不小,這才導致超大映象的出現,還望您多多海涵,標題中的《三分鐘極速體驗》是要去掉映象的等待時間的,您要是覺得欣宸的標題起得很無恥,我覺得您是對的...
環境資訊
- 為了簡化體驗過程,接下來會用到docker,推薦的環境資訊如下:
- 作業系統:Ubuntu 16.04.1 LTS 伺服器版(MacBook Pro也可以,版本是11.2.3,macOS Big Sur)
- docker:20.10.2 Community
- 為了加快docker映象的下載速度,建議您提前做好docker加速配置
- 文章標題號稱三分鐘極速體驗,沒時間說太多,準備好環境就火速動手啦
部署
- 新建名為images的目錄,用於儲存處理後的檔案,我這裡完整路徑是/root/temp/202107/17/images
- 新建名為model的目錄,用於儲存稍後要下載的模型檔案,我這裡完整路徑是/root/temp/202107/17/model
- 下載訓練好的模型檔案,我準備了兩個下載地址,您任選一個即可,一個是csdn的(無需積分):
- https://download.csdn.net/download/boling_cavalry/20352221,另一個是
- https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/haarcascade_frontalface_default.zip
-
上述檔案下載下來是個壓縮包,請先解壓,再將檔案haarcascade_frontalface_default.xml放入model目錄(model裡放的必須是解壓後的檔案)
-
執行以下命令,會先下載docker映象檔案再建立容器:
docker run \
--rm \
-p 18080:8080 \
-v /root/temp/202107/17/images:/app/images \
-v /root/temp/202107/17/model:/app/model \
bolingcavalry/facedetect:0.0.1
- 部署完成,開始體驗
體驗
- 瀏覽器訪問http://localhost:18080,這裡的localhost請改成docker宿主機IP(要關閉防火牆!),可以見到操作頁面,如下圖(欣宸的前端開發水平渣到令人髮指,果然不是空穴來風):
-
找一張有人臉的圖片(我在百度圖片隨機找的),點選上圖的選取圖片按鈕進行上傳,至於周圍檢測數量那裡先保持預設值32不要動
-
點選提交按鈕後,頁面會顯示檢測結果,如下圖,人臉被準確的框選出來了:
- 再試試多人的,如下圖,居然一個人臉都沒有檢測到:
- 把周圍檢測數量的值調低些,改成4再試,如下圖,這次成功了,八張人臉全部檢測到:
-
至此,Java版人臉檢測的體驗已經完成,一分鐘概覽,一分鐘部署,一分鐘體驗,咱們足夠高效(下載超大映象的時間不能算,不敢算...)
-
此刻您應該能感受到Java在人臉識別領域的魅力了,聰明的您當然會有很多疑問,例如:
- 用了啥框架?
- 寫了啥程式碼?
- 執行環境好不好配置?只要jar依賴嗎?還需要其他操作嗎?
- 這些疑問在下面這兩篇文章中完全揭祕,然後您也能輕易做出集成了人臉識別的SpringBoot應用了:
- 順便劇透一下:設定執行環境很麻煩,所幸欣宸已解決此問題,併成功封裝為基礎映象,咱們可以專注的開發應用,對執行環境再也無需處理了
你不孤單,欣宸原創一路相伴
歡迎關注公眾號:程式設計師欣宸
微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos