欧美a级理论片_国产一区三区三区_性欧美xxxx视频在线观看_日韩国产欧美精品一区二区三区_四虎久久免费_亚洲免费视频观看_亚洲国产天堂_91成人在线观看国产_婷婷激情图片久久_自拍偷拍欧美精品_97视频免费观看_亚洲天堂手机

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

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

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


(資料圖片)

歡迎訪問我的GitHub

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

本篇概覽

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

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

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

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

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

標(biāo)簽:

返回頂部
亚洲中文字幕久久精品无码喷水 | 成人教育av| 亚洲欧洲性图库| 西游记1978| 亚洲在线久久| 91国内在线视频| 欧美大片免费观看网址| 欧美精品久久久久久久多人混战| 天天影视色香欲综合网天天录日日录| 激情图区综合网| 精品一区二区久久久久久久网站| 国产在线观看91一区二区三区 | 国产精品麻豆一区二区| 国产911在线观看| 日韩精品电影一区亚洲| 99久久99久久| 一区二区蜜桃| 999视频在线免费观看| 久久亚洲影视| 91精品久久久久久久久| jizzjizz欧美69巨大| 琪琪第一精品导航| 日韩av网址大全| 欧美在线激情网| 欧美欧美黄在线二区| 欧美伊久线香蕉线新在线| 99香蕉久久| 日本sm极度另类视频| 日韩影视在线观看| 国产精品久久久久久久午夜| 成人免费看片39| 亚洲free性xxxx护士hd| 欧美午夜在线| 九九九九九九精品| 日韩av在线免费观看不卡| 色噜噜狠狠一区二区三区| 成人黄18免费网站| 免费在线观看av| 日韩一级二级三级精品视频| 免费在线观看av| 日韩一区二区视频在线观看| 国模私拍视频在线播放| 一区二区三区黄色| 国产视频网站一区二区三区| 欧美亚洲激情在线| 天堂综合网久久| 国产精品美乳在线观看| 在线国产一区| 欧美成人免费在线| 美女一区二区久久| 国产黄色一级网站| 1024国产精品| 国产高清免费在线播放| 亚洲国产精品999| 高清一区二区三区av| 2024亚洲男人天堂| 欧美日韩一区二区高清| 亚洲欧洲一区二区在线观看| 91麻豆视频网站| 蜜臀在线观看| 日韩精品最新网址| 久久影视精品| 国产欧美精品va在线观看| 国产欧美激情| 隔壁人妻偷人bd中字| 久久综合av免费| 中文字幕大看焦在线看| 日韩电影视频免费| 国产乱码精品一区二区亚洲| 鲁丝一区二区三区免费| 99精品国产热久久91蜜凸| 欧美另类极限扩张| 日韩精品视频中文在线观看 | 看亚洲a级一级毛片| 国产精品视频大全| 秋霞午夜鲁丝一区二区老狼| www黄色在线| 欧美日韩午夜精品| 精品国产亚洲日本| 精品视频在线观看| 国产精品三级视频| 青青草原av在线| 欧美最猛性xxxxx免费| 久久亚洲美女| 1234区在线观看视频免费| 精品日韩在线观看| 亚洲桃色综合影院| 中文字幕第一页亚洲| 天天综合日日夜夜精品| 久久婷婷五月综合色丁香| caoporn国产精品免费公开| 成人91在线观看| 黄色网址视频在线观看| 国产成人精品久久二区二区91| 激情av综合网| eeuss影院www在线播放| 97色在线观看| 夫妻av一区二区| 麻豆影院在线观看| 国产91在线高潮白浆在线观看| 青青草国产精品97视觉盛宴| 天海翼一区二区三区四区在线观看| 一区二区在线视频| 亚洲欧美日韩国产| 在线资源免费观看| 欧美精品videos| 国产精品影视天天线| 老司机午夜在线| 国产美女久久精品香蕉69| 久久综合九色综合97婷婷女人 | 久久91精品久久久久久秒播| 久久午夜剧场| 久久久精品欧美| 日本在线不卡一区| av在线天堂| 成人在线中文字幕| 亚洲精品国产视频| 中文字幕区一区二区三| 国产青草视频在线观看| 日韩午夜激情电影| 亚洲福利精品| 亚洲校园欧美国产另类| 国产99久久久欧美黑人| 国产精品女同互慰在线看| 国产成人精品一区二区三区免费 | 成人看的视频| 尤物国产在线观看| 欧美成人免费在线观看| 成人动漫精品一区二区| 亚洲淫成人影院| 伊人色综合影院| 欧美第一区第二区| 亚洲欧美日韩国产| 免费在线午夜视频| 精品欧美一区二区久久久伦| 欧美亚洲国产一区二区三区va | 啄木系列成人av电影| mm1313亚洲国产精品无码试看| 中文字幕亚洲无线码a| 国产黄色精品网站| 91在线成人| 91国视频在线| 欧美激情网友自拍| 17c精品麻豆一区二区免费| av日韩在线播放| 成人在线电影网| 国产精品av网站| 黑人巨大精品欧美一区免费视频| 夜夜躁狠狠躁日日躁2021日韩| 超碰成人福利网| 欧美在线一级va免费观看| 亚洲色图19p| 久久亚洲精品中文字幕蜜潮电影| 伪装者在线观看完整版免费| 亚洲精品免费一区二区三区| 91黄色在线观看| 久久视频一区| 日本免费久久| 不要播放器的av网站| 8090成年在线看片午夜| 亚洲超丰满肉感bbw| 欧美日韩99| 久草在线新免费首页资源站| 青青青在线观看视频| 色综合91久久精品中文字幕| 一区二区三区在线观看动漫| 亚洲欧美综合| 男人av在线播放| 免费黄色一级网站| 91精品久久久久久久| 91国偷自产一区二区开放时间| 噜噜噜91成人网| 国产精品第一| 国内精品卡一卡二卡三新区| 久久av免费一区| 在线性视频日韩欧美| 亚洲视频免费观看| 欧美三级网页| 吞精囗交69激情欧美| 97高清视频| 欧美日韩精品一区| www.日韩系列| 一本一本大道香蕉久在线精品| 青青草成人在线观看| 无码国模国产在线观看| 三级毛片在线免费看| 欧美性猛交内射兽交老熟妇| 午夜伦理精品一区| 欧美精品 国产精品| 国产成人午夜视频| 欧美日韩性在线观看| av手机免费在线观看| 黄网视频在线观看| 秋霞久久久久久一区二区| xx视频.9999.com| 91久久精品国产91性色tv| eeuss国产一区二区三区| 亚洲一区 二区 三区| 韩国精品视频在线观看| 国产爆初菊在线观看免费视频网站|