Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
wangquyuan
/
ygydserver
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 0e70ac17
authored
Sep 29, 2022
by
wangquyuan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add by wqy
1 parent
9466c72f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
9 deletions
api.txt
src/src/do_request.cpp
api.txt
View file @
0e70ac1
...
...
@@ -37,7 +37,8 @@ Content-Type:"application/x-www-form-urlencoded"
code: 整数, 0:成功,其它失败
msg: 字符串,说明错误原因
data: 情绪是一个长度为7的浮点数组。原文档中有序列号,这是可以取消的,因为数组本来就是有序的。对于视频分析应答,可以大大减少应答包长度。 情绪结果,[平静、快乐、愤怒、惊讶、厌恶、悲伤、恐惧]
data: 情绪是一个长度为7的浮点数组。原文档中有序列号,这是可以取消的,因为数组本来就是有序的。对于视频分析应答,可以大大减少应答包长度。 情绪结果:["平静","愤怒","厌恶","恐惧","高兴","伤心","惊讶"]
示例:
...
...
@@ -123,7 +124,10 @@ Content-Type:"multipart/form-data"
"data": {
"resultData": {
"blinkNum": 0,
"heartRate": 74
"heartRate": 74,
"fps":20,
"frames":440,
"valid_frames":400
},
"userFaces": ["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"],
"srcData": [{
...
...
src/src/do_request.cpp
View file @
0e70ac1
...
...
@@ -908,8 +908,9 @@ void Rotate(const cv::Mat & src, cv::Mat &dst, int rotate)
warpAffine
(
src
,
dst
,
m
,
cv
::
Size
(
src
.
cols
,
src
.
rows
));
}
static
void
do_heart_rate
(
const
std
::
string
&
videofile
,
int
nrotate
,
int
*
rate
,
void
*
hearts
)
static
void
do_heart_rate
(
const
std
::
string
&
videofile
,
int
nrotate
,
int
*
rate
,
void
*
hearts
,
int
*
pfps
)
{
*
pfps
=
0
;
*
rate
=
0
;
std
::
vector
<
int
>
*
phearts
=
(
std
::
vector
<
int
>
*
)
hearts
;
phearts
->
clear
();
...
...
@@ -935,6 +936,7 @@ static void do_heart_rate( const std::string &videofile, int nrotate, int *rate,
int
fps
=
m_capture
->
get
(
cv
::
CAP_PROP_FPS
);
std
::
cout
<<
"do_heart fps:"
<<
fps
<<
std
::
endl
;
*
pfps
=
fps
;
if
(
fps
<
1
)
{
fps
=
20
;
...
...
@@ -1116,11 +1118,14 @@ static void do_video( const std::string &videofile, int frameNum, int nrotate, i
std
::
vector
<
std
::
vector
<
float
>>
&
face_poses
,
std
::
vector
<
std
::
vector
<
float
>>
&
face_actions
,
std
::
vector
<
std
::
vector
<
float
>>
&
face_emotions
,
std
::
vector
<
int
>
&
blink_eyes
std
::
vector
<
int
>
&
blink_eyes
,
unsigned
long
*
total_frames
,
unsigned
long
*
valid_frames
)
{
*
eyes
=
0
;
*
total_frames
=
0
;
*
valid_frames
=
0
;
cv
::
VideoCapture
*
m_capture
=
NULL
;
int
num
=
0
;
try
{
...
...
@@ -1148,7 +1153,7 @@ static void do_video( const std::string &videofile, int frameNum, int nrotate, i
//std::vector<double> rates;
cv
::
Mat
mat
;
//int nheartrate = 0;
int
num
=
0
;
//
int num = 0;
seeta
::
EyeStateDetector
::
EYE_STATE
m_leftstate
,
m_rightstate
;
m_leftstate
=
m_rightstate
=
seeta
::
EyeStateDetector
::
EYE_UNKNOWN
;
...
...
@@ -1182,6 +1187,7 @@ static void do_video( const std::string &videofile, int frameNum, int nrotate, i
continue
;
}
//cv::Mat mat2;
//cv::Size size (VIDEO_WIDTH, VIDEO_HEIGHT);
//cv::resize(mat, mat2, size, 0, 0, cv::INTER_CUBIC);
...
...
@@ -1204,7 +1210,7 @@ static void do_video( const std::string &videofile, int frameNum, int nrotate, i
img
.
data
=
mat
.
data
;
}
*
total_frames
=
(
*
total_frames
)
+
1
;
//SeetaImageData img;
//img.width = mat.cols;
//img.height = mat.rows;
...
...
@@ -1327,6 +1333,7 @@ static void do_video( const std::string &videofile, int frameNum, int nrotate, i
delete
m_capture
;
}
//*rate = nheartrate;
*
valid_frames
=
num
;
return
;
}
...
...
@@ -1610,6 +1617,10 @@ void on_http( httpserver *s, websocketpp::connection_hdl hdl )
int
hearts
=
0
;
int
eyes
=
0
;
int
fps
=
0
;
unsigned
long
total_frames
=
0
;
unsigned
long
valid_frames
=
0
;
std
::
vector
<
std
::
vector
<
float
>>
face_features
;
std
::
vector
<
std
::
vector
<
float
>>
face_poses
;
std
::
vector
<
std
::
vector
<
float
>>
face_actions
;
...
...
@@ -1622,9 +1633,9 @@ void on_http( httpserver *s, websocketpp::connection_hdl hdl )
int
nrotate
=
get_video_rotate
(
filename
);
nrotate
=
nrotate
*
-
1
;
std
::
thread
heartrate_thread
(
do_heart_rate
,
filename
,
nrotate
,
&
hearts
,
&
heart_beats
);
std
::
thread
heartrate_thread
(
do_heart_rate
,
filename
,
nrotate
,
&
hearts
,
&
heart_beats
,
&
fps
);
do_video
(
filename
,
frameNum
,
nrotate
,
&
eyes
,
face_features
,
face_poses
,
face_actions
,
face_emotions
,
blink_ey
es
);
face_poses
,
face_actions
,
face_emotions
,
blink_eyes
,
&
total_frames
,
&
valid_fram
es
);
heartrate_thread
.
join
();
...
...
@@ -1632,7 +1643,7 @@ void on_http( httpserver *s, websocketpp::connection_hdl hdl )
//remove( filename.c_str() );
strresponse
=
"{
\"
code
\"
:"
+
std
::
to_string
(
nret
)
+
",
\"
msg
\"
:
\"
"
+
GetError
(
nret
)
+
"
\"
,
\"
data
\"
:{"
;
strresponse
+=
"
\"
resultData
\"
:{
\"
blinkNum
\"
:"
+
std
::
to_string
(
eyes
)
+
",
\"
heartRate
\"
:"
+
std
::
to_string
(
hearts
)
+
"}"
;
strresponse
+=
"
\"
resultData
\"
:{
\"
blinkNum
\"
:"
+
std
::
to_string
(
eyes
)
+
",
\"
heartRate
\"
:"
+
std
::
to_string
(
hearts
)
+
"
,
\"
fps
\"
:"
+
std
::
to_string
(
fps
)
+
",
\"
frames
\"
:"
+
std
::
to_string
(
total_frames
)
+
",
\"
valid_frames
\"
:"
+
std
::
to_string
(
valid_frames
)
+
"
}"
;
strresponse
+=
",
\"
userFaces
\"
:["
;
for
(
int
i
=
0
;
i
<
face_features
.
size
();
i
++
)
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment