谷雨信息科技gooyuit
第一次请求:caseId=0 case_init=true
第二次请求:caseId>0 case_init=false
百度文档说明:caseId是,任务ID(通过case_id区分不同视频流,自拟,不同序列间不可重复即可)
第二次请求开始,caseId必须是相同,代表的是同一个视频流。
package com.hz.action.wx.face;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.struts2.ServletActionContext;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.json.JSONArray;
import org.json.JSONObject;
import com.hz.action.wx.WxCommAction;
import com.hz.service.face.AuthService;
import com.hz.service.face.Base64Util;
import com.hz.service.face.HttpUtil;
import com.hz.service.face.VideoFrame2ImageUtil;
import com.hz.service.util.http.JsoupUtil;
import com.hz.vo.face.FaceBean;
import sun.misc.BASE64Decoder;
public class Face{
private static final long serialVersionUID = -7203036953794071188L;
private FaceBean faceBean;
private static int case_id = 0;
private static String BODY_TRACKING_URL="https://aip.baidubce.com/rest/2.0/image-classify/v1/body_tracking";
public void getCount() throws Exception{
String path = ServletActionContext.getServletContext().getRealPath("/wx/face/face_img");
Integer fnum = getFaceBean().getFileNum();
File file = new File(path+"/face_"+fnum+".jpg");
BufferedImage bi = ImageIO.read(file);
setCont(bi);
}
public static void main(String[] args) {
//预先保存图片
String videoPath = "E:\\workspace\\account\\web\\wx\\face\\face05.mp4";
VideoFrame2ImageUtil.saveVideoFramerImage(videoPath, "E:\\workspace\\account\\web\\wx\\face\\face_img");
}
private void setCont(BufferedImage bufferedImage) throws Exception {
String access_token = AuthService.getAuth();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", baos);
//转为base64
String case_init = null;
if(case_id == 0) {
case_init = "true";
case_id++;
}else {
case_init = "false";
}
String base64 = Base64Util.encode(baos.toByteArray());
String params = "show=true&dynamic=" + "true" + "&case_id=" + case_id + "&case_init=" + case_init + "&image=" + URLEncoder.encode(base64,"utf-8") + "&area=" + "1,250,850,250,850,479,1,479";
String result = HttpUtil.post(BODY_TRACKING_URL, access_token, params );
JSONObject obj = new JSONObject(result);
int person_num = obj.getInt("person_num");
System.out.println("num="+obj.getInt("person_num")+",in="
+obj.getJSONObject("person_count").getInt("in")
+",out="+
+obj.getJSONObject("person_count").getInt("out")+"\n");
printlnToClient(obj.toString());
//case_id++;
BASE64Decoder decoder = new BASE64Decoder();
String savePath = "E:\\workspace\\account\\web\\wx\\face\\face_after_img";
String imgStr = obj.getString("image");
if(null != imgStr && imgStr.length() > 0) {
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i
请登录后评论
TOP
切换版块
请问你的area是怎么设置的
可以参考,不过是python3 写的
https://ai.baidu.com/forum/topic/show/943751