偶然发现了学校一个系统的漏洞,可以不鉴别考生的照片。所以我通过Java代码将这些照片下载到了电脑上。当我看到这些照片时,又想到了另一个主意。就是利用现在的面部识别技术给这些照片打分。

人脸识别

人脸识别

人脸识别

操作程序

注册百度智能云账号:构建自己的应用程序,打开产品服务/人脸识别、官方文档。根据步骤操作,用自己的替换代码中的APP_ID、API_KEY和SECRET_KEY非常重要。这在第二阶段成功。完成以上三个步骤后,即可开始测试。一般来说,测试的照片需要切换到base64编码,因此此时可以使用Java的IO方法读取硬盘上的照片和Java基本方法BASE64Encoder来编码图片。程序执行过程

开始

浏览文件夹中的图片

读取文件和编码Base64

人脸识别

接收面部识别信息

删除垃圾

在Txt文件中存储信息

你要横移吗?

结束

yes

读取硬盘图片并转换为base64编码的代码:

public string getimg base64(string file path){

byte[]data=null;

Try {

inputstream in=new file inputstream(文件路径);

data=new byte[in . available()];

in . read(data);

in . close();

} catch (IOException e) {

e . printstacktrace();

}

base64 encoder encoder=new base64 encoder();

//sy(数据);

return encoder . encode(data);

}

面部识别数据记录在txt中。

Public void append JSON (string str,string file path) {

BufferedWriter bw=null

Try {

bw=new buffered writer(new output stream writer(new file output stream(file path,true)));

bw . write(str ' r n ');

} catch (Exception e) {

e . printstacktrace();

} finally {

Try {

bw . flush();

bw . close();

} catch (IOException e) {

e . printstacktrace();

}

}

}

计划的主体:

//设置APPID/AK/SK

public static final String APP _ ID=' APP ID '

public static final string Api Key=' Api Key '

public static final string Secret _ Key='您的Secret Key '

public static void main(string[]args){

feceserverimplfaceserver=new feceserverimpl();

//初始化一个AipFace

AIP face client=new AIP face(app _ id、API _ key、secret _ key);

Mapstring、objectmsg=new hashmapstring、object();

//可选:设置网络连接参数

client . setconnectiontimeoutinmillis(2000);

client . setsockettimeoutinmillis(60000);

//可选:设置代理服务器地址,不设置http和套接字中的一个或两个。

//client . sethttpproxy(' proxy _ host 'proxy _ port);//http代理设置

//client . setsocketproxy(' proxy _ host 'proxy _ port);//套接字代理设置

//通过指定的文件夹

string path=' e : download img '

File File=new File(path);

file[]files=();

For(文件f:文件){

If(!f . is directory(){

//呼叫接口

string image=();

//指定贴花类型

String imageType=' BASE64

//接收可选参数调用接口

Hashmapstring,stringoptions=new hashmapstring,string();

//这是指定服务器返回的参数。其中age表示将检测年龄。Beauty是检测安置

O('face_field '' age,beauty ');

O('max_face_num '' 1 ');

O('face_type '' CERT ');

//人脸检测

JSON objectres=client . detect(image、imagetype、options);

//为了便于操作,将服务器返回的数据转换为map

Mapstring,object stringobjectmap=RES . tomap();

//删除不必要的数据

(' log _ id ');

(' error _ msg ');

(' cached ');

(' error _ code ');

(' timestamp ');

//将照片的名称添加到地图中,以便于知道与此数据相对应的照片

('照片'f . tostring());

市(1);

将分数数据写入//txt文件

(),' e: imgJ);

//QPS防止溢出,延迟

Try {

t()。休眠(500);//毫秒

} catch (Exception e) {

e . printstacktrace();

}

//break;

}

}

}

服务器返回的JSON数据:

{

Result' {

face _ num ' 1、

Face _ list' [

维蒂' 67.85,

' Angle' {

卷'-2.2,

《法奇》: 9.88,

喂'-2.92

},

face _ token ' ' e 5605d 71d 9122 dab 83 aa 8d '

位置' {

“top”: 232.71,

左边' 146.96,

Rotation' 0 0、

宽度' 257,

海特' 246

},

Face_probability' 1、

《时代》: 22

}]

},

Log_id' 1、

Error_msg' 'SUCCESS '

Karcher ' 0,

Error_code' 0、

Timestamp' 1561809237

}

整理数据

把代码中存储的硬盘txt文本数据复制到Excel中,借用排序工具整理一下,就知道哪幅画的颜料最高了。最终整理的数据如下图所示。

最终数据

相关推荐