三分鐘極速體驗(yàn):Java版人臉檢測(cè)

歡迎訪問(wèn)我的GitHub

https://github.com/zq2599/blog_demos

內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;

本篇概覽

  • 檢測(cè)照片中的人臉,用Java可以實(shí)現(xiàn)嗎?

  • 當(dāng)然可以,今天咱們用最少的時(shí)間、最簡(jiǎn)單的操作來(lái)體驗(yàn)這個(gè)實(shí)用的功能,當(dāng)您提交一張帶有人臉的照片后,會(huì)看到下圖效果,所有人臉都被識(shí)別到并被框選出來(lái)了:

在這里插入圖片描述
  • 本篇以體驗(yàn)為主,不涉及具體的開(kāi)發(fā),后面還會(huì)有文章介紹完整的開(kāi)發(fā)過(guò)程(包括源碼)

風(fēng)險(xiǎn)提前告知

  • 為了簡(jiǎn)化操作,接下來(lái)會(huì)用到docker,對(duì)應(yīng)的鏡像體積巨大,達(dá)到了恐怖的<font color="red">4.69G</font>,建議您為自己的docker做好加速配置,可以減少下載等待時(shí)間;

  • 由于opencv體積龐大,再加上javacv的依賴庫(kù)也不小,這才導(dǎo)致超大鏡像的出現(xiàn),還望您多多海涵,標(biāo)題中的《三分鐘極速體驗(yàn)》是要去掉鏡像的等待時(shí)間的,您要是覺(jué)得欣宸的標(biāo)題起得很無(wú)恥,我覺(jué)得您是對(duì)的...

環(huán)境信息

  • 為了簡(jiǎn)化體驗(yàn)過(guò)程,接下來(lái)會(huì)用到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)題號(hào)稱三分鐘極速體驗(yàn),沒(méi)時(shí)間說(shuō)太多,準(zhǔn)備好環(huán)境就火速動(dòng)手啦

部署

  • 新建名為<font color="red">images</font>的目錄,用于存儲(chǔ)處理后的文件,我這里完整路徑是<font color="blue">/root/temp/202107/17/images</font>
  • 新建名為<font color="red">model</font>的目錄,用于存儲(chǔ)稍后要下載的模型文件,我這里完整路徑是<font color="blue">/root/temp/202107/17/model</font>
  • 下載訓(xùn)練好的模型文件,我準(zhǔn)備了兩個(gè)下載地址,您任選一個(gè)即可,一個(gè)是csdn的(無(wú)需積分):
  1. https://download.csdn.net/download/boling_cavalry/20352221,另一個(gè)是
  2. https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/haarcascade_frontalface_default.zip
  • 上述文件下載下來(lái)是個(gè)壓縮包,請(qǐng)先解壓,再將文件<font color="blue">haarcascade_frontalface_default.xml</font>放入<font color="red">model</font>目錄(model里放的必須是解壓后的文件)

  • 執(zhí)行以下命令,會(huì)先下載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
  • 部署完成,開(kāi)始體驗(yàn)

體驗(yàn)

  • 瀏覽器訪問(wèn)<font color="red">http://localhost:18080</font>,這里的localhost請(qǐng)改成docker宿主機(jī)IP(要關(guān)閉防火墻?。?,可以見(jiàn)到操作頁(yè)面,如下圖(欣宸的前端開(kāi)發(fā)水平渣到令人發(fā)指,果然不是空穴來(lái)風(fēng)):
在這里插入圖片描述
  • 找一張有人臉的圖片(我在百度圖片隨機(jī)找的),點(diǎn)擊上圖的<font color="red">選取圖片</font>按鈕進(jìn)行上傳,至于<font color="blue">周圍檢測(cè)數(shù)量</font>那里先保持默認(rèn)值32不要?jiǎng)?/p>

  • 點(diǎn)擊<font color="blue">提交</font>按鈕后,頁(yè)面會(huì)顯示檢測(cè)結(jié)果,如下圖,人臉被準(zhǔn)確的框選出來(lái)了:

在這里插入圖片描述
  • 再試試多人的,如下圖,居然一個(gè)人臉都沒(méi)有檢測(cè)到:
在這里插入圖片描述
  • 把<font color="blue">周圍檢測(cè)數(shù)量</font>的值調(diào)低些,改成<font color="red">4</font>再試,如下圖,這次成功了,八張人臉全部檢測(cè)到:
在這里插入圖片描述
  • 至此,Java版人臉檢測(cè)的體驗(yàn)已經(jīng)完成,一分鐘概覽,一分鐘部署,一分鐘體驗(yàn),咱們足夠高效(下載超大鏡像的時(shí)間不能算,不敢算...)

  • 此刻您應(yīng)該能感受到Java在人臉識(shí)別領(lǐng)域的魅力了,聰明的您當(dāng)然會(huì)有很多疑問(wèn),例如:

  1. 用了啥框架?
  2. 寫了啥代碼?
  3. 運(yùn)行環(huán)境好不好配置?只要jar依賴嗎?還需要其他操作嗎?
  • 這些疑問(wèn)在下面這兩篇文章中完全揭秘,然后您也能輕易做出集成了人臉識(shí)別的SpringBoot應(yīng)用了:
  1. Java版人臉檢測(cè)詳解上篇:運(yùn)行環(huán)境的Docker鏡像(CentOS+JDK+OpenCV)
  2. Java版人臉檢測(cè)詳解下篇:編碼
  • 順便劇透一下:設(shè)置運(yùn)行環(huán)境很麻煩,所幸欣宸已解決此問(wèn)題,并成功封裝為基礎(chǔ)鏡像,咱們可以專注的開(kāi)發(fā)應(yīng)用,對(duì)運(yùn)行環(huán)境再也無(wú)需處理了

你不孤單,欣宸原創(chuàng)一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 數(shù)據(jù)庫(kù)+中間件系列
  6. DevOps系列

歡迎關(guān)注公眾號(hào):程序員欣宸

微信搜索「程序員欣宸」,我是欣宸,期待與您一同暢游Java世界...
https://github.com/zq2599/blog_demos

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容