歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼杰标,涉及Java、Docker毅臊、Kubernetes琼牧、DevOPS等验懊;
本篇概覽
檢測照片中的人臉,用Java可以實(shí)現(xiàn)嗎?
當(dāng)然可以攀痊,今天咱們用最少的時(shí)間、最簡單的操作來體驗(yàn)這個(gè)實(shí)用的功能拄显,當(dāng)您提交一張帶有人臉的照片后苟径,會看到下圖效果,所有人臉都被識別到并被框選出來了:
- 本篇以體驗(yàn)為主躬审,不涉及具體的開發(fā)棘街,后面還會有文章介紹完整的開發(fā)過程(包括源碼)
風(fēng)險(xiǎn)提前告知
為了簡化操作,接下來會用到docker承边,對應(yīng)的鏡像體積巨大遭殉,達(dá)到了恐怖的<font color="red">4.69G</font>,建議您為自己的docker做好加速配置博助,可以減少下載等待時(shí)間险污;
由于opencv體積龐大,再加上javacv的依賴庫也不小富岳,這才導(dǎo)致超大鏡像的出現(xiàn)蛔糯,還望您多多海涵,標(biāo)題中的《三分鐘極速體驗(yàn)》是要去掉鏡像的等待時(shí)間的城瞎,您要是覺得欣宸的標(biāo)題起得很無恥渤闷,我覺得您是對的...
環(huán)境信息
- 為了簡化體驗(yàn)過程,接下來會用到docker脖镀,推薦的環(huán)境信息如下:
- 操作系統(tǒng):Ubuntu 16.04.1 LTS 服務(wù)器版(MacBook Pro也可以飒箭,版本是11.2.3狼电,macOS Big Sur)
- docker:20.10.2 Community
- 為了加快docker鏡像的下載速度,建議您提前做好docker加速配置
- 文章標(biāo)題號稱三分鐘極速體驗(yàn)弦蹂,沒時(shí)間說太多肩碟,準(zhǔn)備好環(huán)境就火速動手啦
部署
- 新建名為<font color="red">images</font>的目錄,用于存儲處理后的文件凸椿,我這里完整路徑是<font color="blue">/root/temp/202107/17/images</font>
- 新建名為<font color="red">model</font>的目錄削祈,用于存儲稍后要下載的模型文件,我這里完整路徑是<font color="blue">/root/temp/202107/17/model</font>
- 下載訓(xùn)練好的模型文件脑漫,我準(zhǔn)備了兩個(gè)下載地址髓抑,您任選一個(gè)即可,一個(gè)是csdn的(無需積分):
- https://download.csdn.net/download/boling_cavalry/20352221优幸,另一個(gè)是
- https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/haarcascade_frontalface_default.zip
上述文件下載下來是個(gè)壓縮包吨拍,請先解壓,再將文件<font color="blue">haarcascade_frontalface_default.xml</font>放入<font color="red">model</font>目錄(model里放的必須是解壓后的文件)
執(zhí)行以下命令网杆,會先下載docker鏡像文件再創(chuàng)建容器:
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
- 部署完成羹饰,開始體驗(yàn)
體驗(yàn)
- 瀏覽器訪問<font color="red">http://localhost:18080</font>,這里的localhost請改成docker宿主機(jī)IP(要關(guān)閉防火墻L既础)队秩,可以見到操作頁面,如下圖(欣宸的前端開發(fā)水平渣到令人發(fā)指昼浦,果然不是空穴來風(fēng)):
找一張有人臉的圖片(我在百度圖片隨機(jī)找的)馍资,點(diǎn)擊上圖的<font color="red">選取圖片</font>按鈕進(jìn)行上傳,至于<font color="blue">周圍檢測數(shù)量</font>那里先保持默認(rèn)值32不要動
點(diǎn)擊<font color="blue">提交</font>按鈕后座柱,頁面會顯示檢測結(jié)果迷帜,如下圖,人臉被準(zhǔn)確的框選出來了:
- 再試試多人的色洞,如下圖戏锹,居然一個(gè)人臉都沒有檢測到:
- 把<font color="blue">周圍檢測數(shù)量</font>的值調(diào)低些,改成<font color="red">4</font>再試火诸,如下圖锦针,這次成功了,八張人臉全部檢測到:
至此置蜀,Java版人臉檢測的體驗(yàn)已經(jīng)完成奈搜,一分鐘概覽,一分鐘部署盯荤,一分鐘體驗(yàn)馋吗,咱們足夠高效(下載超大鏡像的時(shí)間不能算,不敢算...)
此刻您應(yīng)該能感受到Java在人臉識別領(lǐng)域的魅力了秋秤,聰明的您當(dāng)然會有很多疑問宏粤,例如:
- 用了啥框架脚翘?
- 寫了啥代碼?
- 運(yùn)行環(huán)境好不好配置绍哎?只要jar依賴嗎来农?還需要其他操作嗎?
- 這些疑問在下面這兩篇文章中完全揭秘崇堰,然后您也能輕易做出集成了人臉識別的SpringBoot應(yīng)用了:
- 順便劇透一下:設(shè)置運(yùn)行環(huán)境很麻煩沃于,所幸欣宸已解決此問題,并成功封裝為基礎(chǔ)鏡像海诲,咱們可以專注的開發(fā)應(yīng)用繁莹,對運(yùn)行環(huán)境再也無需處理了
你不孤單,欣宸原創(chuàng)一路相伴
歡迎關(guān)注公眾號:程序員欣宸
微信搜索「程序員欣宸」饿肺,我是欣宸蒋困,期待與您一同暢游Java世界...
https://github.com/zq2599/blog_demos