toi uu xu ly dong bo du lieu tu may chu

This commit is contained in:
2020-12-29 13:33:29 +07:00
parent ddcf67ba9c
commit c9d0c24218
5 changed files with 78 additions and 42 deletions

View File

@@ -410,57 +410,86 @@ class ListManagementController extends Controller {
}
}
public function getCurrentTime() {
$time = microtime();
$time = explode(' ', $time);
return $time[1] + $time[0];
}
public function actionSyncFeature() {
if (Yii::$app->request->post()) {
Yii::$app->response->format = "json";
$processTime = [];
$totalStart = $this->getCurrentTime();
$totals = intval(Yii::$app->request->post("totals"));
$server_ip = \app\models\SyncUrl::findOne(['key_config' => 'server_api']);
$ip = "dev-dc.beetai.com";
if ($server_ip)
$ip = $server_ip->data;
$device_id = \app\models\SyncUrl::findOne(['key_config' => 'device_id']);
$id_camera = 209;
if ($device_id)
$id_camera = intval($device_id->data);
$res = json_decode(file_get_contents("https://" . $ip . "/api/oem/get_all_image", false, stream_context_create([
'http' => [
'header' => "Content-Type: application/json",
'method' => "POST",
'content' => json_encode([
"id_camera" => $id_camera,
"ids_staff" => [strval(Yii::$app->request->post("id"))]
])
]
])), true);
$data = $res['data'][0];
// $server_ip = \app\models\SyncUrl::findOne(['key_config' => 'server_api']);
// $ip = "dev-dc.beetai.com";
// if ($server_ip)
// $ip = $server_ip->data;
// $device_id = \app\models\SyncUrl::findOne(['key_config' => 'device_id']);
// $id_camera = 209;
// if ($device_id)
// $id_camera = intval($device_id->data);
// $start = $this->getCurrentTime();
// $res = json_decode(file_get_contents("https://" . $ip . "/api/oem/get_all_image", false, stream_context_create([
// 'http' => [
// 'header' => "Content-Type: application/json",
// 'method' => "POST",
// 'content' => json_encode([
// "id_camera" => $id_camera,
// "ids_staff" => [strval(Yii::$app->request->post("id"))]
// ])
// ]
// ])), true);
// $finish = $this->getCurrentTime();
// $processTime["requestToAPI"] = round(($finish - $start), 4);
$data = Yii::$app->request->post("id"); //$res['data'][0];
$ft = [];
$RootFolder = Yii::getAlias('@webroot') . "/data/uploads";
$targetPath = $RootFolder . "/face";
FileHelper::createDirectory($targetPath, 0777);
foreach ($data['images'] as $key => $value) {
if ($key < Yii::$app->params['maxPicture']) {
$fileName = "face_" . common::generateRandomString() . "_" . time() . ".png";
$img = file_get_contents($value);
if ($img !== "null") {
$fileTarget = $targetPath . "/" . $fileName;
if (!$this->resizeImg($img, $fileTarget)) {
file_put_contents($fileTarget, $img);
$extractFeature = [];
if (isset($data['images'])) {
foreach ($data['images'] as $key => $value) {
if ($key < Yii::$app->params['maxPicture']) {
$fileName = "face_" . common::generateRandomString() . "_" . time() . ".png";
$start = $this->getCurrentTime();
$img = file_get_contents($value);
$finish = $this->getCurrentTime();
$temp["getIMG"] = round(($finish - $start), 4);
if ($img !== "null") {
$fileTarget = $targetPath . "/" . $fileName;
$start = $this->getCurrentTime();
if (!$this->resizeImg($img, $fileTarget)) {
file_put_contents($fileTarget, $img);
}
$finish = $this->getCurrentTime();
$temp["saveIMG"] = round(($finish - $start), 4);
$start = $this->getCurrentTime();
$features = json_decode(common::requestToEngine("/get-feature", [
"image_paths" => [
["url" => "/var/www/html/BiFace_Server_Lite/web/data/uploads/face/" . $fileName, "type" => "raw"]
]
]), true);
$finish = $this->getCurrentTime();
$temp["extract"] = round(($finish - $start), 4);
$ft[] = [
"url" => $fileName,
"urlOld" => $fileName,
"features" => $features['results'][0]['feature'],
"features512" => isset($features['results'][0]['feature512']) ? $features['results'][0]['feature512'] : []
];
}
$features = json_decode(common::requestToEngine("/get-feature", [
"image_paths" => [
["url" => "/var/www/html/BiFace_Server_Lite/web/data/uploads/face/" . $fileName, "type" => "raw"]
]
]), true);
$ft[] = [
"url" => $fileName,
"urlOld" => $fileName,
"features" => $features['results'][0]['feature'],
"features512" => isset($features['results'][0]['feature512']) ? $features['results'][0]['feature512'] : []
];
$extractFeature[] = $temp;
}
}
}
$processTime["extractFeature"] = $extractFeature;
$start = $this->getCurrentTime();
$model = ListManagement::findOne(['code' => $data['idStaff']]);
$finish = $this->getCurrentTime();
$processTime["getLM"] = round(($finish - $start), 4);
if ($model) {
$model->name = $data['name'];
$model->address = $data['department'];
@@ -475,6 +504,7 @@ class ListManagementController extends Controller {
"features" => $model->allFeatures
]);
} else {
$start = $this->getCurrentTime();
$model = new ListManagement();
$model->create([
'code' => strval($data['idStaff']),
@@ -486,6 +516,8 @@ class ListManagementController extends Controller {
'telephone' => "",
'address' => $data['department']
]);
$finish = $this->getCurrentTime();
$processTime["insertDB"] = round(($finish - $start), 4);
if ($totals <= 10)
common::updateFeature([
"cmd" => "create",
@@ -494,7 +526,9 @@ class ListManagementController extends Controller {
"features" => $model->allFeatures
]);
}
return ["status" => true];
$totalFinish = $this->getCurrentTime();
$processTime["total"] = round(($totalFinish - $totalStart), 4);
return $processTime; //["status" => true];
}
}