歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內容:所有原創文章分類匯總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;
本篇概覽
-
檢測照片中的人臉,用Java可以實現嗎?
-
當然可以,今天咱們用最少的時間、最簡單的操作來體驗這個實用的功能,當您提交一張帶有人臉的照片后,會看到下圖效果,所有人臉都被識別到並被框選出來了:
- 本篇以體驗為主,不涉及具體的開發,后面還會有文章介紹完整的開發過程(包括源碼)
風險提前告知
-
為了簡化操作,接下來會用到docker,對應的鏡像體積巨大,達到了恐怖的4.69G,建議您為自己的docker做好加速配置,可以減少下載等待時間;
-
由於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