1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          【H5最強攻略】百度人臉情緒實時識別

          來源:互聯網轉載 時間:2024-01-29 08:08:55

          最近看的各位大佬都在體驗百度大腦2019年全新上線的24項AI能力!

          (我也按耐不住了,趕緊走一波~ 哈哈)

          接下來要介紹的就是H5端的人臉檢測攻略。

          附帶詳細的介紹,代碼,以及演示體驗等

          歡迎提出各種建議~

          什么是人臉檢測呢?
          人臉檢測就是檢測圖中的人臉,并為人臉標記出邊框。檢測出人臉后,可對人臉進行分析,獲得眼、口、鼻輪廓等150個關鍵點定位,

          準確識別多種人臉屬性,如性別,年齡,表情等信息。該技術可適應大角度側臉,遮擋,模糊,表情變化等各種實際環境。

          人臉檢測接口V3版本接口能力:

          • 人臉檢測:檢測圖片中的人臉并標記出位置信息;
          • 人臉關鍵點:展示人臉的核心關鍵點信息,及150個關鍵點信息。
          • 人臉屬性值:展示人臉屬性信息,如年齡、性別等。
          • 人臉質量信息:返回人臉各部分的遮擋、光照、模糊、完整度、置信度等信息。

          本次用到了人臉屬性值,包含有情緒識別、人種、雙眼狀態等等

          利用人臉檢測接口實現在線實時數據檢測(區別于一般的上傳圖片檢測的體驗,本帖最后提供體驗的訪問地址)

          【Java + H5的框架技術實現】

          我希望能夠盡量的給大家描述的簡單一點,畢竟我之前也看到有些小伙伴們都在問H5如何實現人臉識別。

          獲取 access_token
          要調用百度 AI API 的接口,需要創建對應的應用并獲取 access_token.

          第一步是創建應用,登錄百度賬號,進入人臉識別控制臺,創建好具體的應用。

          第二步是拿到clientId,clientSecret放到如下代碼中,生成access_token。

           public static String getAuth(String ak, String sk) {        // 獲取token地址        String authHost = "https://aip.baidubce.com/oauth/2.0/token?";        String getAccessTokenUrl = authHost                // 1. grant_type為固定參數                + "grant_type=client_credentials"                // 2. 官網獲取的 API Key                + "&client_&client_secret=" + sk;        try {            URL realUrl = new URL(getAccessTokenUrl);            // 打開和URL之間的連接            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();            connection.setRequestMethod("GET");            connection.connect();            // 獲取所有響應頭字段            Map> map = connection.getHeaderFields();            // 遍歷所有的響應頭字段            for (String key : map.keySet()) {                System.err.println(key + "--->" + map.get(key));            }            // 定義 BufferedReader輸入流來讀取URL的響應            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));            String result = "";            String line;            while ((line = in.readLine()) != null) {                result += line;            }            /**             * 返回結果示例             */            System.err.println("result:" + result);            JSONObject jsonObject = new JSONObject(result);            String access_token = jsonObject.getString("access_token");            return access_token;        } catch (Exception e) {            System.err.printf("獲取token失敗!");            e.printStackTrace(System.err);        }        return null;    }

          前端H5的視頻采集

          //判斷瀏覽器是否支持HTML5 Canvaswindow.onload = function () {try {//動態創建一個canvas元 ,并獲取他2Dcontext。如果出現異常則表示不支持 document.createElement("canvas").getContext("2d");// document.getElementById("support").innerHTML = "瀏覽器支持HTML5 CANVAS";}catch (e) {// document.getElementByIdx("support").innerHTML = "瀏覽器不支持HTML5 CANVAS";}};//這段代 主要是獲取攝像頭的視頻流并顯示在Video 簽中window.addEventListener("DOMContentLoaded", function () {var canvas = document.getElementById("canvas"),context = canvas.getContext("2d"),video = document.getElementById("video"),videoObj = { "video": true },errBack = function (error) {console.log("Video capture error: ", error.code);};var i =0;//拍照每秒一次setInterval(function(){i++;if(i<10){context.drawImage(video, 0, 0, 330, 250)CatchCode();}else{$("#tishi").html("溫馨提示:體驗次數已經用完啦,請刷新頁面重新使用~");}},1000);//navigator.getUserMedia這個寫法在Opera中好像是navigator.getUserMedianow//更新兼容火狐瀏覽器if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {    navigator.getUserMedia=navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;    navigator.getUserMedia(videoObj, function (stream) {video.srcObject  = stream;video.play();}, errBack);}}, false);

          得到圖片數據,調用百度接口

          @RequestMapping(value = "/save.do")@ResponseBodypublic Map queryService(@RequestParam("the_file") MultipartFile file) {Map modelMap = new HashMap();try {//將數據轉為流InputStream content = file.getInputStream();ByteArrayOutputStream swapStream = new ByteArrayOutputStream();          byte[] buff = new byte[100];          int rc = 0;          while ((rc = content.read(buff, 0, 100)) > 0) {              swapStream.write(buff, 0, rc);          }          //獲得二進制數組        byte[] in2b = swapStream.toByteArray();         //調用人臉檢測的方法        FaceDetectBean  faceDetectBean = FaceDetect.detect(in2b);        Result result = faceDetectBean.getResult();// 獲取人臉的數據result集合        List facelists = result.getFace_list();            for (Face_list face_list : facelists) {            modelMap.put("age", face_list.getAge());//年齡            modelMap.put("beauty", face_list.getBeauty());;//顏值分數            modelMap.put("expression", face_list.getExpression().getType());//表情識別            modelMap.put("faceShape", face_list.getFace_shape().getType());;//臉型            modelMap.put("gender", face_list.getGender().getType());//性別            modelMap.put("glasses", face_list.getGlasses().getType());//是否帶眼鏡            modelMap.put("leftEye", face_list.getEye_status().getLeft_eye());//左眼            modelMap.put("rightEye", face_list.getEye_status().getRight_eye());//左眼            modelMap.put("emotion", face_list.getEmotion().getType());//情緒識別            modelMap.put("race", face_list.getRace().getType());//人種            }modelMap.put("success", true);} catch (Exception e) {modelMap.put("success", false);modelMap.put("data", e.getMessage());}return modelMap;}
            public static FaceDetectBean detect(byte[] imagebinary) {        // 請求url        String url = "https://aip.baidubce.com/rest/2.0/face/v3/detect";        try {            Map map = new HashMap<>();            String base64ImageData = Base64Util.encode(imagebinary);            map.put("image", base64ImageData);            map.put("face_field", "age,beauty,expression,face_shape,gender,glasses,landmark,race,eye_status,emotion");//            map.put("image_type", "BASE64");            String param = GsonUtils.toJson(map);            // 注意這里僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行緩存,過期后重新獲取。            String accessToken = "----你獲取的accessToken--";            String result = HttpUtil.post(url, accessToken, "application/json", param);            System.out.println(result);                        JSON json = JSON.parseobject(result);            FaceDetectBean faceDetectBean = JSONObject.toJavaObject(json, FaceDetectBean.class);// json轉java對象                   return faceDetectBean;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }

          拿到百度的數據后轉化Java實體類,這是一個非常方便的操作。

          String result = HttpUtil.post(url, accessToken, "application/json", param);JSON json = JSON.parseObject(result);FaceDetectBean faceDetectBean = JSONObject.toJavaObject(json, FaceDetectBean.class);// json轉java對象

          基本上整個就完成了,快來看看實際的效果把。

          整體的測試效果

          然后大概的測試效果就是醬紫的啦,我設置啦10秒鐘的使用時間,防止你們把我服務搞崩潰啦咋辦。

          作者:黎英明

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          ipad第5代是哪年生產?2017年第五代ipad問世,2017年3月21日發布,2017年3月24日上市。第五代ipad采用鋁鎂合金一體式結構;前框為白色或黑色;有銀色、金色和深灰色可選。第五代ipad的屏幕尺寸為9.7英寸,機身高度為240毫米(9.4英寸),寬度為169.5毫米(6.6英寸),厚度為7.5毫米(0.29英寸)。WLAN型號重469克(1.03磅),WLAN蜂窩網絡型號重478...

          日本NHK的紅白歌會是一場什么樣的演唱會?大家都應該了解紅白歌會。日本人的全稱是紅白松戰爭。這是一個代表日本最高水平的歌唱晚會。所有參加的歌手在日本歌壇都很有實力,很受歡迎。根據性別,女歌手組成紅隊,男歌手組成白隊。PK在兩個團隊之間依次進行。日本的紅白歌節相當于中國春節聯歡晚會的存在。什么是紅白演唱會???紅白什么意思???日本紅白歌曲節是NHK電視臺一年一度的男女歌手比賽。所謂紅白兩色是男女群體的...

          1268次列車經過哪些站?K1268列車時刻表一直停:福州-重慶北各站到達和離開里程(公里)1福州起點10:37 02南昌西16:11 16:26 5473廬山17:34 17:38 6634黃石19 : 1419 : 177975武昌20:37 21:00 9096宜昌東00:04(第二天)00:42(第二天)12147萬州05:18(次日)05:24(次日)15918達州08:07(第二天)0...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>