Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
map-parent
Commits
23e1ef10
Commit
23e1ef10
authored
Apr 01, 2021
by
YANGYANG
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
人像比对(他是谁接口)暂使用云天静态接口
parent
78754e4b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
672 additions
and
0 deletions
+672
-0
common/common_utils/src/main/java/com/founder/commonutils/peopleEntity/FaceJtSearchParam.java
+258
-0
common/common_utils/src/main/java/com/founder/commonutils/peopleEntity/FaceJtSearchResult.java
+237
-0
serviceapi/imageapi/src/main/java/com/founder/imageapi/controller/ImageController.java
+14
-0
serviceapi/imageapi/src/main/java/com/founder/imageapi/service/ImageService.java
+4
-0
serviceapi/imageapi/src/main/java/com/founder/imageapi/service/impl/ImageServiceImpl.java
+159
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/peopleEntity/FaceJtSearchParam.java
0 → 100644
View file @
23e1ef10
package
com
.
founder
.
commonutils
.
peopleEntity
;
import
java.util.List
;
/**
* 人脸检索参数
* @Author yangyang
* @Date 2021/04/01
*/
public
class
FaceJtSearchParam
{
//节点类型 district(分局), area(派出所)
private
List
<
String
>
cameraIds
;
//排序方式 score 相似度,time 时间,camera 摄像机,calendar 日历
private
String
displayType
;
//0:重点人员库;
//1:布控抓拍人脸库;
//2:警局内非布控抓拍
//3:户籍库人员搜索;
//4:居住库人员搜索;
// 人脸库默认值 1
private
Integer
type
=
3
;
//图片来源类型 100表示图片上传 当上传多个图片时,多个100用逗号拼接
private
String
dataType
=
"100"
;
//人脸id
private
String
faceId
=
""
;
//人脸id多个时,用英文逗号拼接
private
String
ids
=
""
;
private
Integer
mergeType
=
0
;
//相似度 默认0.92
private
double
scoreThreshold
=
0.92
;
//开始时间 格式 2019-12-07 00:00:00
private
String
starttime
=
""
;
//结束时间 格式 2020-03-06 23:59:59
private
String
endtime
=
""
;
private
String
dayStartTime
=
"00:00:00"
;
private
String
dayEndTime
=
"23:59:59"
;
private
String
weekDay
=
"0"
;
private
String
quality
=
"0"
;
//性别 性别不限 男 女
private
String
gender
=
""
;
private
Integer
genderConfidence
=
1
;
//种族
private
String
race
=
""
;
private
Integer
raceConfidence
=
1
;
//年龄
private
String
age
=
""
;
//帽子 戴帽子 不戴帽子
private
String
hat
=
""
;
// 1-低,3-中,5-高
private
Integer
hatConfidence
=
1
;
//眼镜 眼镜不限 不戴眼镜 戴普通眼镜
private
String
glasses
=
""
;
private
Integer
glassesConfidence
=
1
;
//口罩
private
String
mask
=
""
;
private
Integer
maskConfidence
=
1
;
public
List
<
String
>
getCameraIds
()
{
return
cameraIds
;
}
public
void
setCameraIds
(
List
<
String
>
cameraIds
)
{
this
.
cameraIds
=
cameraIds
;
}
public
String
getDisplayType
()
{
return
displayType
;
}
public
void
setDisplayType
(
String
displayType
)
{
this
.
displayType
=
displayType
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getDataType
()
{
return
dataType
;
}
public
void
setDataType
(
String
dataType
)
{
this
.
dataType
=
dataType
;
}
public
String
getFaceId
()
{
return
faceId
;
}
public
void
setFaceId
(
String
faceId
)
{
this
.
faceId
=
faceId
;
}
public
String
getIds
()
{
return
ids
;
}
public
void
setIds
(
String
ids
)
{
this
.
ids
=
ids
;
}
public
Integer
getMergeType
()
{
return
mergeType
;
}
public
void
setMergeType
(
Integer
mergeType
)
{
this
.
mergeType
=
mergeType
;
}
public
double
getScoreThreshold
()
{
return
scoreThreshold
;
}
public
void
setScoreThreshold
(
double
scoreThreshold
)
{
this
.
scoreThreshold
=
scoreThreshold
;
}
public
String
getStarttime
()
{
return
starttime
;
}
public
void
setStarttime
(
String
starttime
)
{
this
.
starttime
=
starttime
;
}
public
String
getEndtime
()
{
return
endtime
;
}
public
void
setEndtime
(
String
endtime
)
{
this
.
endtime
=
endtime
;
}
public
String
getDayStartTime
()
{
return
dayStartTime
;
}
public
void
setDayStartTime
(
String
dayStartTime
)
{
this
.
dayStartTime
=
dayStartTime
;
}
public
String
getDayEndTime
()
{
return
dayEndTime
;
}
public
void
setDayEndTime
(
String
dayEndTime
)
{
this
.
dayEndTime
=
dayEndTime
;
}
public
String
getWeekDay
()
{
return
weekDay
;
}
public
void
setWeekDay
(
String
weekDay
)
{
this
.
weekDay
=
weekDay
;
}
public
String
getQuality
()
{
return
quality
;
}
public
void
setQuality
(
String
quality
)
{
this
.
quality
=
quality
;
}
public
String
getGender
()
{
return
gender
;
}
public
void
setGender
(
String
gender
)
{
this
.
gender
=
gender
;
}
public
Integer
getGenderConfidence
()
{
return
genderConfidence
;
}
public
void
setGenderConfidence
(
Integer
genderConfidence
)
{
this
.
genderConfidence
=
genderConfidence
;
}
public
String
getRace
()
{
return
race
;
}
public
void
setRace
(
String
race
)
{
this
.
race
=
race
;
}
public
Integer
getRaceConfidence
()
{
return
raceConfidence
;
}
public
void
setRaceConfidence
(
Integer
raceConfidence
)
{
this
.
raceConfidence
=
raceConfidence
;
}
public
String
getAge
()
{
return
age
;
}
public
void
setAge
(
String
age
)
{
this
.
age
=
age
;
}
public
String
getHat
()
{
return
hat
;
}
public
void
setHat
(
String
hat
)
{
this
.
hat
=
hat
;
}
public
Integer
getHatConfidence
()
{
return
hatConfidence
;
}
public
void
setHatConfidence
(
Integer
hatConfidence
)
{
this
.
hatConfidence
=
hatConfidence
;
}
public
String
getGlasses
()
{
return
glasses
;
}
public
void
setGlasses
(
String
glasses
)
{
this
.
glasses
=
glasses
;
}
public
Integer
getGlassesConfidence
()
{
return
glassesConfidence
;
}
public
void
setGlassesConfidence
(
Integer
glassesConfidence
)
{
this
.
glassesConfidence
=
glassesConfidence
;
}
public
String
getMask
()
{
return
mask
;
}
public
void
setMask
(
String
mask
)
{
this
.
mask
=
mask
;
}
public
Integer
getMaskConfidence
()
{
return
maskConfidence
;
}
public
void
setMaskConfidence
(
Integer
maskConfidence
)
{
this
.
maskConfidence
=
maskConfidence
;
}
}
common/common_utils/src/main/java/com/founder/commonutils/peopleEntity/FaceJtSearchResult.java
0 → 100644
View file @
23e1ef10
package
com
.
founder
.
commonutils
.
peopleEntity
;
/**
* 人脸检索结果人像比对暂使用静态检索接口
* @Author yangyang
* @Date 2020/4/2119:29
*/
public
class
FaceJtSearchResult
{
private
String
id
;
//人脸id (faceId)
private
String
cameraId
;
//摄像头id
private
String
cameraName
;
//摄像头名称
private
String
file
;
//图片路径
private
String
imageUrl
;
//大图路径
private
String
time
;
//拍摄时间
private
String
score
;
//相似度
private
String
gender
;
//性别
private
String
race
;
//种族
private
String
age
;
//年龄段
private
String
hat
;
//帽子
private
String
glass
;
//眼镜
private
String
mask
;
//口罩
private
String
hair
;
//发型
private
String
xm
;
// 姓名
private
String
address
;
//摄像头地址
private
String
x
;
//摄像头经度
private
String
y
;
//摄像头纬度
private
String
cameraType
;
//摄像头类型
private
String
districtCode
;
//刑专标准的行政区划code
private
String
districtCodeName
;
//
private
String
areaCode
;
private
String
areaCodeName
;
private
double
scoreThreshold
;
private
Integer
type
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getCameraId
()
{
return
cameraId
;
}
public
void
setCameraId
(
String
cameraId
)
{
this
.
cameraId
=
cameraId
;
}
public
String
getCameraName
()
{
return
cameraName
;
}
public
void
setCameraName
(
String
cameraName
)
{
this
.
cameraName
=
cameraName
;
}
public
String
getFile
()
{
return
file
;
}
public
void
setFile
(
String
file
)
{
this
.
file
=
file
;
}
public
String
getImageUrl
()
{
return
imageUrl
;
}
public
void
setImageUrl
(
String
imageUrl
)
{
this
.
imageUrl
=
imageUrl
;
}
public
String
getTime
()
{
return
time
;
}
public
void
setTime
(
String
time
)
{
this
.
time
=
time
;
}
public
String
getScore
()
{
return
score
;
}
public
void
setScore
(
String
score
)
{
this
.
score
=
score
;
}
public
String
getGender
()
{
return
gender
;
}
public
void
setGender
(
String
gender
)
{
this
.
gender
=
gender
;
}
public
String
getRace
()
{
return
race
;
}
public
void
setRace
(
String
race
)
{
this
.
race
=
race
;
}
public
String
getAge
()
{
return
age
;
}
public
void
setAge
(
String
age
)
{
this
.
age
=
age
;
}
public
String
getHat
()
{
return
hat
;
}
public
void
setHat
(
String
hat
)
{
this
.
hat
=
hat
;
}
public
String
getGlass
()
{
return
glass
;
}
public
void
setGlass
(
String
glass
)
{
this
.
glass
=
glass
;
}
public
String
getMask
()
{
return
mask
;
}
public
void
setMask
(
String
mask
)
{
this
.
mask
=
mask
;
}
public
String
getHair
()
{
return
hair
;
}
public
void
setHair
(
String
hair
)
{
this
.
hair
=
hair
;
}
public
String
getAddress
()
{
return
address
;
}
public
void
setAddress
(
String
address
)
{
this
.
address
=
address
;
}
public
String
getX
()
{
return
x
;
}
public
void
setX
(
String
x
)
{
this
.
x
=
x
;
}
public
String
getY
()
{
return
y
;
}
public
void
setY
(
String
y
)
{
this
.
y
=
y
;
}
public
String
getCameraType
()
{
return
cameraType
;
}
public
void
setCameraType
(
String
cameraType
)
{
this
.
cameraType
=
cameraType
;
}
public
String
getDistrictCode
()
{
return
districtCode
;
}
public
void
setDistrictCode
(
String
districtCode
)
{
this
.
districtCode
=
districtCode
;
}
public
String
getDistrictCodeName
()
{
return
districtCodeName
;
}
public
void
setDistrictCodeName
(
String
districtCodeName
)
{
this
.
districtCodeName
=
districtCodeName
;
}
public
String
getAreaCode
()
{
return
areaCode
;
}
public
void
setAreaCode
(
String
areaCode
)
{
this
.
areaCode
=
areaCode
;
}
public
String
getAreaCodeName
()
{
return
areaCodeName
;
}
public
void
setAreaCodeName
(
String
areaCodeName
)
{
this
.
areaCodeName
=
areaCodeName
;
}
public
double
getScoreThreshold
()
{
return
scoreThreshold
;
}
public
void
setScoreThreshold
(
double
scoreThreshold
)
{
this
.
scoreThreshold
=
scoreThreshold
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getXm
()
{
return
xm
;
}
public
void
setXm
(
String
xm
)
{
this
.
xm
=
xm
;
}
}
serviceapi/imageapi/src/main/java/com/founder/imageapi/controller/ImageController.java
View file @
23e1ef10
package
com
.
founder
.
imageapi
.
controller
;
import
com.founder.commonutils.peopleEntity.CameraFaceTask
;
import
com.founder.commonutils.peopleEntity.FaceJtSearchParam
;
import
com.founder.commonutils.peopleEntity.FaceSearchParam
;
import
com.founder.commonutils.publicEntity.MapRestResult
;
import
com.founder.commonutils.util.TokenUtils
;
...
...
@@ -79,5 +80,18 @@ public class ImageController {
@RequestParam
(
required
=
false
)
String
jswd
)
{
return
imageService
.
selectRxXx
(
qsjd
,
qswd
,
jsjd
,
jswd
);
}
// 人像比对接口(暂使用云天励飞静态检索接口)
@OperLog
(
message
=
"人像比对接口"
,
operation
=
OperationType
.
QUERY
)
@ApiOperation
(
value
=
"人像比对接口"
)
@PostMapping
(
value
=
"/getFaceImageByUploadImageJt"
,
consumes
=
"multipart/*"
,
headers
=
"content-type=multipart/form-data"
)
public
MapRestResult
getFaceIdsByUploadImage
(
@RequestParam
(
value
=
"files"
,
required
=
true
)
MultipartFile
files
,
FaceJtSearchParam
faceSearchParam
)
{
long
startTime
=
new
Date
().
getTime
();
MapRestResult
result
=
imageService
.
getFaceImageByUploadImageJt
(
files
,
faceSearchParam
);
long
endTime
=
new
Date
().
getTime
();
long
timeDiffer
=
endTime
-
startTime
;
System
.
out
.
println
(
"人像比对检索**请求时长**********"
+
timeDiffer
+
"毫秒"
);
return
result
;
}
}
serviceapi/imageapi/src/main/java/com/founder/imageapi/service/ImageService.java
View file @
23e1ef10
package
com
.
founder
.
imageapi
.
service
;
import
com.founder.commonutils.peopleEntity.CameraFaceTask
;
import
com.founder.commonutils.peopleEntity.FaceJtSearchParam
;
import
com.founder.commonutils.peopleEntity.FaceSearchParam
;
import
com.founder.commonutils.publicEntity.MapRestResult
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -25,4 +26,7 @@ public interface ImageService {
MapRestResult
sendTask
(
CameraFaceTask
cameraFaceTask
);
MapRestResult
selectRxXx
(
String
qsjd
,
String
qswd
,
String
jsjd
,
String
jswd
);
MapRestResult
getFaceImageByUploadImageJt
(
MultipartFile
files
,
FaceJtSearchParam
faceSearchParam
);
}
serviceapi/imageapi/src/main/java/com/founder/imageapi/service/impl/ImageServiceImpl.java
View file @
23e1ef10
...
...
@@ -519,5 +519,164 @@ public class ImageServiceImpl implements ImageService {
List
<
Camera
>
cameras
=
cameraInfoDao
.
getCameraInfoByQsJwd
(
qsjd
,
qswd
,
jsjd
,
jswd
);
return
MapRestResult
.
build
(
200
,
"获取人像信息"
,
null
,
cameras
);
}
/**
* 人像比对暂使用静态检索接口
* @param files
* @return
*/
/**
* 根据上传的图片获取人脸检索的结果,总共分为如下四步
* 1、根据上传的图片获取图片id,云天称该id为imageId,每张照片对应一个imageId
* 2、根据图片id(imageId)获取人像id(faceId),人像id可能为多个
* 6、通过人像id获取检索的照片结果(静态检索)
* 4、通过摄像头id获取摄像头经纬度以及基本信息
* 5、通过人脸id获取照片大图信息
* @return
*/
@Override
public
MapRestResult
getFaceImageByUploadImageJt
(
MultipartFile
files
,
FaceJtSearchParam
faceSearchParam
){
MapRestResult
result
=
null
;
Map
returnMap
=
new
HashMap
();
//前台传送的参数不为空,上传的照片不为空
try
{
if
(
null
!=
faceSearchParam
&&
null
!=
files
)
{
List
<
Map
<
String
,
String
>>
faceIdList
=
new
ArrayList
<>();
//判断文件格式
String
fileName
=
files
.
getOriginalFilename
();
if
(
fileName
.
indexOf
(
"."
)!=-
1
){
String
gs
=
fileName
.
substring
(
fileName
.
indexOf
(
"."
),
fileName
.
length
());
if
(!
gs
.
equalsIgnoreCase
(
".jpg"
)&&!
gs
.
equalsIgnoreCase
(
".jpeg"
)&&!
gs
.
equalsIgnoreCase
(
".png"
)&&!
gs
.
equalsIgnoreCase
(
".bmp"
)){
result
=
MapRestResult
.
build
(
1001
,
"支持jpg,jpeg,png,bmp格式的照片"
,
null
,
null
);
return
result
;
}
}
// 调用file文件二进制上传方式接口
String
imageId
=
getImageIdsByUploadImage
(
files
);
// 根据人像id获取人脸id
List
<
Map
<
String
,
String
>>
faceIds
=
getFaceIdsByImageId
(
imageId
);
faceIdList
.
addAll
(
faceIds
);
//获取到每张照片的人像id,放入集合中
if
(
null
!=
faceIdList
&&
faceIdList
.
size
()
>
1
)
{
//当有多个人像id时
List
<
String
>
faceIdss
=
new
ArrayList
<>();
for
(
Map
map:
faceIdList
){
faceIdss
.
add
(
map
.
get
(
"id"
).
toString
());
}
//将list中的元素拼接为以逗号分隔的字符串,末尾不带逗号
String
faceIdStr
=
StringUtils
.
join
(
faceIds
,
","
);
//faceId的个数需要与dataType的个数一一对应,所以这里也需要拼接
List
<
String
>
dataType
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
faceIds
.
size
();
i
++)
{
dataType
.
add
(
faceSearchParam
.
getDataType
());
//图片来源类型 默认为100
}
String
dataTypeStr
=
StringUtils
.
join
(
dataType
,
","
);
faceSearchParam
.
setIds
(
faceIdStr
);
faceSearchParam
.
setDataType
(
dataTypeStr
);
}
else
if
(
null
!=
faceIdList
&&
faceIdList
.
size
()
==
1
)
{
//当图片上有只有一个人脸时
faceSearchParam
.
setFaceId
(
faceIdList
.
get
(
0
).
get
(
"id"
));
}
if
(
null
!=
faceIdList
&
faceIdList
.
size
()>
0
)
{
//获取数据并翻译
//将实体类对象转换为json字符串
List
<
FaceJtSearchResult
>
resultList
=
getFaceSearchResultByFaceIdJt
(
JSONObject
.
toJSONString
(
faceSearchParam
));
returnMap
.
put
(
"data"
,
resultList
);
int
total
=
0
;
if
(
null
!=
resultList
&&
resultList
.
size
()>
0
){
total
=
resultList
.
size
();
}
returnMap
.
put
(
"total"
,
total
);
result
=
MapRestResult
.
build
(
200
,
"成功获取人像比对检索信息"
,
null
,
returnMap
);
}
else
{
result
=
MapRestResult
.
build
(
1001
,
"未检索到人像比对信息"
,
null
,
null
);
}
}
else
{
result
=
MapRestResult
.
build
(
1001
,
"请上传照片"
,
null
,
null
);
}
}
catch
(
Exception
e
){
result
=
MapRestResult
.
build
(
500
,
"获取人像比对检索信息失败"
,
null
,
null
);
e
.
printStackTrace
();
}
return
result
;
}
/**
*6、通过人像id获取检索的照片结果(静态检索)人像比对暂使用这个接口
*/
public
List
<
FaceJtSearchResult
>
getFaceSearchResultByFaceIdJt
(
String
jsonObjectStr
){
List
<
FaceJtSearchResult
>
faceSearchResults
=
new
ArrayList
<>();
String
token
=
TokenUtils
.
getYtgsToken
();
Map
herders
=
new
HashMap
();
//设置请求的header参数
herders
.
put
(
"Authorization"
,
"Bearer "
+
token
);
herders
.
put
(
"Content-Type"
,
"application/json"
);
//循环请求
Boolean
flag
=
true
;
int
page
=
1
;
int
pageSize
=
5000
;
int
currentPageTotal
=
0
;
//当前页返回的结果总数
try
{
while
(
flag
)
{
String
url
=
"http://26.3.12.56:8083/api/intellif/share/face/search/face/page/"
+
page
+
"/pagesize/"
+
pageSize
;
String
resultString
=
HttpClient
.
doPostJson
(
url
,
herders
,
jsonObjectStr
);
if
(
null
!=
resultString
)
{
//如果返回结果不为空
JSONObject
result
=
JSONObject
.
parseObject
(
resultString
);
if
(
result
.
containsKey
(
"data"
))
{
JSONArray
jsonArray
=
result
.
getJSONArray
(
"data"
);
//当前页返回的结果总数
if
(
null
!=
jsonArray
&&
jsonArray
.
size
()>
0
)
{
currentPageTotal
=
jsonArray
.
size
();
for
(
Object
object
:
jsonArray
)
{
FaceJtSearchResult
faceSearchResult
=
new
FaceJtSearchResult
();
JSONObject
jsonObject1
=
(
JSONObject
)
object
;
String
camera
=
jsonObject1
.
getString
(
"camera"
);
//摄像头id
String
file
=
jsonObject1
.
getString
(
"file"
);
// 图片地址
//如果图片不是以 http 开头的情况才会加上
if
(!
file
.
startsWith
(
"http"
)){
file
=
"http://26.3.12.73"
+
file
;
}
String
id
=
jsonObject1
.
getString
(
"id"
);
//人脸id(faceId)
String
xm
=
jsonObject1
.
getString
(
"xm"
);
//人脸姓名
long
time
=
jsonObject1
.
getLong
(
"time"
);
//时间戳格式
String
score
=
jsonObject1
.
getString
(
"score"
);
//相似度
String
gender
=
jsonObject1
.
getString
(
"gender"
);
//性别
String
race
=
jsonObject1
.
getString
(
"race"
);
//种族
String
accessories
=
jsonObject1
.
getString
(
"accessories"
);
//配饰
String
age
=
jsonObject1
.
getString
(
"age"
);
//年龄
Map
<
String
,
Object
>
map
=
commonService
.
accessoriesToValue
(
gender
,
race
,
accessories
,
age
);
faceSearchResult
.
setId
(
id
);
faceSearchResult
.
setXm
(
xm
);
faceSearchResult
.
setCameraId
(
camera
);
faceSearchResult
.
setFile
(
file
);
faceSearchResult
.
setTime
(
DataUtil
.
getDateString
(
time
));
faceSearchResult
.
setScore
(
score
);
faceSearchResult
.
setGender
(
map
.
get
(
"gender"
)+
""
);
faceSearchResult
.
setRace
(
map
.
get
(
"race"
)+
""
);
faceSearchResult
.
setAge
(
map
.
get
(
"age"
)+
""
);
faceSearchResult
.
setHat
(
map
.
get
(
"hat"
)+
""
);
faceSearchResult
.
setGlass
(
map
.
get
(
"glass"
)+
""
);
faceSearchResult
.
setMask
(
map
.
get
(
"mask"
)+
""
);
faceSearchResult
.
setHair
(
map
.
get
(
"hair"
)+
""
);
faceSearchResults
.
add
(
faceSearchResult
);
}
}
}
}
if
(
currentPageTotal
<
pageSize
||
currentPageTotal
>
pageSize
)
{
//每页的总数大于当前页返回的总数,退出循环,d当期页的总数大于分页数,说明其接口无分页
flag
=
false
;
}
else
if
(
currentPageTotal
==
pageSize
)
{
//当前页等于总页数,则循环请求
++
page
;
}
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
faceSearchResults
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment