高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘

當(dāng)前位置: 首頁(yè) >頭條 > 正文

世界播報(bào):JavaCV的攝像頭實(shí)戰(zhàn)之十三:年齡檢測(cè)

2023-07-03 21:21:01 來源:博客園


(資料圖片)

歡迎訪問我的GitHub

這里分類和匯總了欣宸的全部原創(chuàng)(含配套源碼):https://github.com/zq2599/blog_demos

本篇概覽

本文是《JavaCV的攝像頭實(shí)戰(zhàn)》系列的第十三篇,前文《JavaCV的攝像頭實(shí)戰(zhàn)之十二:性別檢測(cè)》中,借助訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型開發(fā)出了識(shí)別性別的應(yīng)用,今天在前文基礎(chǔ)上做少量改動(dòng),實(shí)現(xiàn)年齡識(shí)別的功能,效果如下圖:

應(yīng)用主要功能如下圖所示:

如果您看過《JavaCV的攝像頭實(shí)戰(zhàn)》系列的其他文章,就會(huì)發(fā)現(xiàn)上圖中只有藍(lán)色部分是新增內(nèi)容,其余的步驟都是固定套路,《JavaCV的攝像頭實(shí)戰(zhàn)》系列的每一個(gè)應(yīng)用玩的都是相同套路:別看步驟挺多,其實(shí)都是同一個(gè)流程

關(guān)于性別和年齡檢測(cè)使用卷積神經(jīng)網(wǎng)絡(luò)推理性別和年齡的更多技術(shù)細(xì)節(jié),這里有更詳細(xì)的說明:https://talhassner.github.io/home/publication/2015_CVPR本篇會(huì)使用已訓(xùn)練好的Caffe 模型,訓(xùn)練該模型的數(shù)據(jù)來自Flickr相冊(cè),通過從 iPhone5(或更高版本)智能手機(jī)設(shè)備自動(dòng)上傳組裝而成,并由其作者根據(jù)知識(shí)共享 (CC) 許可向公眾發(fā)布,共有26580張照片,涉及2284人,這些人的年齡一共被標(biāo)識(shí)成八組:(0-2、4-6、8-13、15-20、25-32、38-43、48-53、60 -)關(guān)于數(shù)據(jù)源的更多詳細(xì),請(qǐng)參考:https://talhassner.github.io/home/projects/Adience/Adience-data.html論文地址:https://talhassner.github.io/home/projects/cnn_agegender/CVPR2015_CNN_AgeGenderEstimation.pdf源碼下載《JavaCV人臉識(shí)別三部曲》的完整源碼可在GitHub下載到,地址和鏈接信息如下表所示(https://github.com/zq2599/blog_demos):
名稱鏈接備注
項(xiàng)目主頁(yè)https://github.com/zq2599/blog_demos該項(xiàng)目在GitHub上的主頁(yè)
git倉(cāng)庫(kù)地址(https)https://github.com/zq2599/blog_demos.git該項(xiàng)目源碼的倉(cāng)庫(kù)地址,https協(xié)議
git倉(cāng)庫(kù)地址(ssh)git@github.com:zq2599/blog_demos.git該項(xiàng)目源碼的倉(cāng)庫(kù)地址,ssh協(xié)議
這個(gè)git項(xiàng)目中有多個(gè)文件夾,本篇的源碼在javacv-tutorials文件夾下,如下圖紅框所示:javacv-tutorials里面有多個(gè)子工程,《JavaCV的攝像頭實(shí)戰(zhàn)》系列的代碼在simple-grab-push工程下:準(zhǔn)備:文件下載本次實(shí)戰(zhàn)需要三個(gè)文件:人臉檢測(cè)的模型文件:https://raw.github.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml年齡識(shí)別的配置文件:https://raw.githubusercontent.com/GilLevi/AgeGenderDeepLearning/master/age_net_definitions/deploy.prototxt年齡識(shí)別的模型文件:https://raw.githubusercontent.com/GilLevi/AgeGenderDeepLearning/master/models/age_net.caffemodel我已將上述文件打包上傳到CSDN,您也可以在CSDN下載(無需積分):https://download.csdn.net/download/boling_cavalry/70730586準(zhǔn)備:代碼接口簡(jiǎn)介編碼前,先把涉及到的所有java文件說明一下:AbstractCameraApplication.java:主程序的抽象類,這里面定義了打開攝像頭、抓取每一幀、處理每一幀的基本框架,避免每個(gè)應(yīng)用都把這些事情重復(fù)做一遍PreviewCameraWithGenderAge.java:主程序,是AbstractCameraApplication的實(shí)現(xiàn)類,本次實(shí)戰(zhàn)的核心功能人臉檢測(cè)和年齡檢測(cè),都委托給它的成員變量detectService去完成DetectService.java:檢測(cè)服務(wù)的接口,里面定義了幾個(gè)重要的api,例如初始化、處理每一幀、釋放資源等AgeDetectService.java:前文GenderDetectService的子類,僅僅是處理推理結(jié)果的邏輯與前文的性別識(shí)別略有不同,其余功能完全繼承自性別識(shí)別以上代碼,咱們已經(jīng)在前文寫過一次了,今天當(dāng)然不需要重復(fù)再做一次,今天是在上述代碼基礎(chǔ)上做兩處小幅度修改,接下來就開始吧改動(dòng)一:主程序(PreviewCameraWithGenderAge.java)卷積神經(jīng)網(wǎng)絡(luò)所需的配置和模型文件,是在主程序的main方法內(nèi)設(shè)置的,上一章是性別檢測(cè),這里替換為年齡檢測(cè)的文件,如下所示,請(qǐng)您將路徑換為自己電腦上的文件路徑:
public static void main(String[] args) {        String base = "E:\\temp\\202112\\25\\opencv\\";                DetectService detectService = new AgeDetectService(                base + "haarcascade_frontalface_alt.xml",                base + "age\\deploy.prototxt",                base + "age\\age_net.caffemodel");        new PreviewCameraWithGenderAge(detectService).action(1000);    }
改動(dòng)二:檢測(cè)服務(wù)實(shí)現(xiàn)(GenderDetectService的子類)前文《性別檢測(cè)》的核心功能都集中在GenderDetectService.java中,今天要做的年齡檢測(cè),除了推理結(jié)果的處理邏輯略有不同,其余功能與《性別檢測(cè)》完全一致所以,實(shí)現(xiàn)年齡檢測(cè)的最簡(jiǎn)單方法就是寫一個(gè)子類繼承GenderDetectService,這個(gè)子類中只有神經(jīng)網(wǎng)絡(luò)推理結(jié)果的處理邏輯,完整代碼如下,注釋中已經(jīng)有了詳細(xì)說明,就不多贅述了:
package com.bolingcavalry.grabpush.extend;import lombok.extern.slf4j.Slf4j;import org.bytedeco.javacpp.DoublePointer;import org.bytedeco.opencv.opencv_core.Mat;import org.bytedeco.opencv.opencv_core.Point;import static org.bytedeco.opencv.global.opencv_core.minMaxLoc;/** * @author willzhao * @version 1.0 * @description 檢測(cè)年齡的服務(wù) * @date 2021/12/3 8:09 */@Slf4jpublic class AgeDetectService extends GenderDetectService {    /**     * 設(shè)置訓(xùn)練模型時(shí)劃分的年齡段,所以推理結(jié)果也是這樣的年齡段     */    private static final String[] AGES = new String[]{"0-2", "4-6", "8-13", "15-20", "25-32", "38-43", "48-53", "60-"};    /**     * 構(gòu)造方法,在此指定proto和模型文件的下載地址     *     * @param classifierModelFilePath     * @param cnnProtoFilePath     * @param cnnModelFilePath     */    public AgeDetectService(String classifierModelFilePath, String cnnProtoFilePath, String cnnModelFilePath) {        super(classifierModelFilePath, cnnProtoFilePath, cnnModelFilePath);    }    @Override    protected String getDescriptionFromPredictResult(Mat prob) {        DoublePointer pointer = new DoublePointer(new double[1]);        Point max = new Point();                // 把prob理解為一個(gè)數(shù)組,        // 第一個(gè)元素是"0-2"的置信度        // 第二個(gè)元素是"4-6"的置信度        // 第三個(gè)元素是"8-13"的置信度        // 第四個(gè)元素是"15-20"的置信度        // ...        // 第八個(gè)元素是"60-"的置信度        // minMaxLoc方法幫忙我們找出了置信度最高的元素,max是元素位置,pointer是這個(gè)元素的置信度        minMaxLoc(prob, null, pointer, null, max, null);        // 如果置信度太低,那就是"難以置信",就返回空字符串        if (pointer.get()<0.6d) {            return "";        } else {            // 如果置信度可信,就返回該元素對(duì)應(yīng)的年齡范圍            return AGES[max.x()];        }    }}
至此,編碼完成,按套路出牌讓咱們省下不少時(shí)間,接下來開始驗(yàn)證驗(yàn)證確保攝像頭工作正常,運(yùn)行PreviewCameraWithGenderAge類的main方法(再次提醒,main方法中文件的位置,注意是年齡檢測(cè)的模型文件,不是性別檢測(cè)的)天氣很冷,為了領(lǐng)到免費(fèi)盒飯,群眾演員早就等得不耐煩了,讓他站在攝像頭前,如下圖,年齡識(shí)別成功,且實(shí)時(shí)展示:至此,本地窗口預(yù)覽集成人臉檢測(cè)和年齡檢測(cè)的功能就完成了,得益于JavaCV的強(qiáng)大,整個(gè)過程是如此的輕松愉快,接下來請(qǐng)繼續(xù)關(guān)注欣宸原創(chuàng),《JavaCV的攝像頭實(shí)戰(zhàn)》系列還會(huì)呈現(xiàn)更多豐富的應(yīng)用;關(guān)于性別+年齡識(shí)別如果您關(guān)注過網(wǎng)上關(guān)于性別和年齡識(shí)別相關(guān)的技術(shù)文章,您會(huì)發(fā)現(xiàn)通常這些文章會(huì)將兩種識(shí)別集成在一起講,并且代碼的效果也是繼承了兩種識(shí)別的,如下圖:也行您會(huì)有疑問:欣宸為何不把兩種識(shí)別放在一篇文章和一個(gè)demo中,這樣內(nèi)容更完整demo也更強(qiáng)大?之所以分文兩篇,是因?yàn)槟挲g和性別識(shí)別的套路比較接近,如果在一篇文中講完,無非是多寫幾行代碼多打幾行字,不會(huì)對(duì)技術(shù)帶來提升,那還不如每篇只聚焦一個(gè)功能,把初始化、使用、資源釋放等技術(shù)點(diǎn)說清楚,至于單獨(dú)用還是組合用,留給聰明的讀者按自己的需求去自由組合即可歡迎關(guān)注博客園:程序員欣宸

學(xué)習(xí)路上,你不孤單,欣宸原創(chuàng)一路相伴...

標(biāo)簽:

返回頂部
高清视频在线观看免费播放器-伊人日本-色九月综合-18禁止看的免费污网站-免费观看性行为视频的网站-天天碰天天操-久久精品国产欧美日韩99热-中文字幕在线视频不卡-国产偷人妻精品一区二区在线-国内精品久-伊人影院在线看-密臀av一区-久久综合五月丁香久久激情-福利一区福利二区-gg国产精品国内免费观看-国产精品 高清 尿 小便 嘘嘘
  • <cite id="ecweg"><pre id="ecweg"></pre></cite>
    <rt id="ecweg"><acronym id="ecweg"></acronym></rt>
  • <rt id="ecweg"></rt>
    北条麻妃在线视频观看| 欧美三级午夜理伦三级| 中文字幕线观看| 啊啊啊国产视频| 青青在线视频免费| 国产免费视频传媒| 波多野结衣天堂| 狠狠热免费视频| 男女污污的视频| 污污的网站免费| 久久精品国产露脸对白| 欧洲xxxxx| 日本人妻伦在线中文字幕| 国产手机免费视频| 欧美日韩在线中文| 色婷婷成人在线| 五月天综合婷婷| 黄色一级在线视频| 日韩欧美在线免费观看视频| 高潮一区二区三区| 裸体裸乳免费看| www.av中文字幕| 黄色三级视频在线| 操bbb操bbb| 熟女人妇 成熟妇女系列视频| 亚洲一级免费观看| 免费看日本黄色| 欧美黑人又粗又大又爽免费| 特黄视频免费观看| 免费观看美女裸体网站| 亚洲天堂国产视频| 被灌满精子的波多野结衣| 不要播放器的av网站| 女同性恋一区二区| 男人添女人下面高潮视频| 天堂av8在线| 日本中文字幕网址| 亚洲欧美日本一区二区| 久久精品国产精品亚洲色婷婷| 男人天堂成人在线| 蜜臀av色欲a片无码精品一区| 污版视频在线观看| heyzo亚洲| av一区二区三区免费观看| 99热这里只有精品在线播放| 99在线观看视频免费| 91免费网站视频| 亚洲欧美在线精品| 成人免费在线小视频| 国产又粗又长又爽视频| 中文字幕66页| 999精品视频在线| 日韩少妇内射免费播放| 777久久精品一区二区三区无码| 免费激情视频在线观看| 欧美视频第一区| 黄色www网站| 被灌满精子的波多野结衣| 欧美一二三不卡| 干日本少妇视频| 国产精品中文久久久久久| gogogo高清免费观看在线视频| 久久国产乱子伦免费精品| 91猫先生在线| 欧美日韩在线一| 国产日产欧美视频| aaa毛片在线观看| 在线观看av日韩| 天堂av2020| 波多野结衣免费观看| 天天色天天干天天色| 五月天综合婷婷| 久久久久久久9| 亚洲不卡中文字幕无码| 黑人糟蹋人妻hd中文字幕| 黄色片久久久久| 欧美在线aaa| 国产经典久久久| 一二三在线视频| 精品少妇在线视频| 欧美日韩亚洲一| 色一情一区二区| 精品人妻大屁股白浆无码| 日韩少妇内射免费播放18禁裸乳| 国产精品秘入口18禁麻豆免会员| 久久综合久久色| 日本在线观看视频一区| 裸体裸乳免费看| 播放灌醉水嫩大学生国内精品| 亚洲 欧美 日韩系列| 国产一二三四五| 97成人在线观看视频| 国内av一区二区| 老太脱裤子让老头玩xxxxx| 久久久久免费精品| 日本a级片在线观看| 波多野结衣家庭教师视频| 亚洲一区二区在线视频观看| 阿v天堂2018| 亚洲综合av在线播放| 真人抽搐一进一出视频| 三级性生活视频| 国产精品丝袜久久久久久消防器材| 成人性生交免费看| 97超碰在线人人| 五月天婷婷在线观看视频| 日韩av黄色网址| 日本三日本三级少妇三级66| 中文字幕无码不卡免费视频| 免费观看中文字幕| 黄色三级视频片| 免费看一级大黄情大片| 米仓穗香在线观看| www.色就是色.com| 成人亚洲视频在线观看| 极品粉嫩国产18尤物| 国产一级大片免费看| 国产成人美女视频| 久久精品影视大全| 999精品网站| 欧美视频免费播放| 男人用嘴添女人下身免费视频| 17c丨国产丨精品视频| 亚洲精品乱码久久久久久动漫| 男人搞女人网站| 看欧美ab黄色大片视频免费| www.99热这里只有精品| 国产午夜大地久久| 欧美一区二区三区爽大粗免费| 黄色网在线视频| 9191国产视频| 国产免费裸体视频| 成人国产一区二区三区| 久久这里只有精品8| 一本久道高清无码视频| 日韩人妻无码精品久久久不卡| 国产女主播av| 国产在线播放观看| 国产女大学生av| 热久久精品免费视频| 一级片视频免费观看| 第一区免费在线观看| 一级全黄肉体裸体全过程| 日韩一二区视频| 人人妻人人澡人人爽欧美一区双 | 欧美日韩一区二区三区电影| 熟女视频一区二区三区| 黄色录像特级片| 91精品91久久久中77777老牛| av观看免费在线| 国产乱码一区二区三区四区| 男人日女人的bb| 白嫩少妇丰满一区二区| 国产乱叫456| 国产精彩视频一区二区| 日本激情综合网| 天堂av在线中文| 欧美视频免费播放| www.桃色.com| 日本免费不卡一区二区| 九九热99视频| 免费在线观看视频a| 国内自拍视频网| 国产精品国产亚洲精品看不卡| 少妇黄色一级片| 91动漫在线看| 日本黄色的视频| 无码专区aaaaaa免费视频| 毛片毛片毛片毛| 九色在线视频观看| 国产一级黄色录像片| 五月婷婷丁香色| 欧美aⅴ在线观看| 2022中文字幕| 亚洲av无日韩毛片久久| 亚洲人成色77777| av无码久久久久久不卡网站| 亚洲妇熟xx妇色黄蜜桃| 成人中文字幕av| 国产特级淫片高清视频| 公共露出暴露狂另类av| 亚洲欧美手机在线| 男人搞女人网站| 人妻丰满熟妇av无码区app| 国产亚洲精品久久久久久久| 97超碰成人在线| 美女黄色片视频| 日韩无套无码精品| 成人免费毛片网| 国产午夜伦鲁鲁| 亚洲国产精品久久久久婷蜜芽| av 日韩 人妻 黑人 综合 无码| www.国产福利| 国产精品av免费| 2021狠狠干| 黄色污污在线观看| 国产经典久久久| 日韩欧美不卡在线| 欧妇女乱妇女乱视频| 日韩欧美猛交xxxxx无码|