人臉識別API-人臉檢測(java例子)
阿新 • • 發佈:2018-12-12
檢測人臉圖片
HTTP傳送類
package engine.demo; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import com.alibaba.fastjson.JSONObject; public class HttpClientUtil { public static String sendPostRequestByJava(String reqURL, String sendData, int connectTimeout, int readTimeout) { HttpURLConnection httpURLConnection = null; OutputStream out = null; InputStream in = null; int httpStatusCode = 0; try { URL sendUrl = new URL(reqURL); httpURLConnection = (HttpURLConnection) sendUrl.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.setConnectTimeout(connectTimeout); httpURLConnection.setReadTimeout(readTimeout); httpURLConnection.setRequestProperty("Content-Type", "application/json"); out = httpURLConnection.getOutputStream(); out.write(sendData.getBytes()); out.flush(); httpStatusCode = httpURLConnection.getResponseCode(); in = httpURLConnection.getInputStream(); byte[] by = new byte[1024]; ByteArrayOutputStream bos = new ByteArrayOutputStream(); int len = -1; while ((len = in.read(by)) != -1) { bos.write(by, 0, len); } return bos.toString("utf-8"); } catch (Exception e) { JSONObject json = new JSONObject(); json.put("result", -10000); json.put("info", "http error"); json.put("httpStatusCode", httpStatusCode); return json.toString(); } finally { if (out != null) { try { out.close(); } catch (Exception e) { } } if (in != null) { try { in.close(); } catch (Exception e) { } } if (httpURLConnection != null) { httpURLConnection.disconnect(); httpURLConnection = null; } } } public static String sendPostRequestByJava(String reqURL, String sendData) { return sendPostRequestByJava(reqURL, sendData, 30000, 30000); } }
人臉檢測API封裝類
package engine.demo; import com.alibaba.fastjson.JSONObject; public class FaceDetect { public static int Process(String url,byte[] image ) { JSONObject json = new JSONObject(); json.put("app_id", "system"); json.put("app_secret", "12345"); json.put("img", image); json.put("mode", true); String response=HttpClientUtil.sendPostRequestByJava(url, json.toString()); System.out.println(response);; return 0; } }
傳送請求給伺服器
package engine.demo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class App { public static void main( String[] args ) { //讀取一個本地jpg檔案 byte[] image=readFile("g:/1.jpg"); //向伺服器傳送請求 FaceDetect.Process("http://192.168.10.25:7100/face/tool/detect", image); } public static byte[] readFile(String path){ File filePic = new File(path); if(filePic.exists()){ FileInputStream is=null; try { is = new FileInputStream(filePic); int i = is.available(); byte data[] = new byte[i]; is.read(data); is.close(); return data; } catch (Exception e) { if (is!=null){ try { is.close(); } catch (IOException e1) { } } return null; } }else{ return null; } } }
返回結果
{
"debugInfo": {
"elapse": 29,
"path": "/face/tool/detect"
},
"faces": [{
"height": 92,
"img": "/9j/4AApQ+rz9ne7seVS........2Q==",
"width": 92,
"x": 66,
"y": 52
}, {
"height": 91,
"img": "/9j/4AAQSkZJRgABAQ.......AAAQABA6sVY/9k=",
"width": 91,
"x": 246,
"y": 51
}],
"info": "success",
"result": 0,
"seq": "4674d205288445119430a9da63d446ed"
}
faces是json陣列,裡面包含了圖片中所有人臉資訊及人臉摳圖