update face comparison
This commit is contained in:
parent
1817771d88
commit
982db2b6c8
23
assets/FaceComparisonAsset.php
Normal file
23
assets/FaceComparisonAsset.php
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\assets;
|
||||||
|
|
||||||
|
use yii\web\AssetBundle;
|
||||||
|
|
||||||
|
class FaceComparisonAsset extends AssetBundle {
|
||||||
|
|
||||||
|
public $basePath = '@webroot';
|
||||||
|
public $baseUrl = '@web';
|
||||||
|
public $css = [
|
||||||
|
];
|
||||||
|
public $js = [
|
||||||
|
'js/face-comparison.js'
|
||||||
|
];
|
||||||
|
public $depends = [
|
||||||
|
'yii\web\YiiAsset',
|
||||||
|
'app\assets\AppAsset',
|
||||||
|
'yii\jui\JuiAsset',
|
||||||
|
'yii\bootstrap\BootstrapAsset',
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
|
@ -149,6 +149,7 @@ class ApiController extends Controller {
|
||||||
}
|
}
|
||||||
$allFeatures[] = [
|
$allFeatures[] = [
|
||||||
"id" => $value->id,
|
"id" => $value->id,
|
||||||
|
"object_id" => $value->staff_id,
|
||||||
"name" => $this->convert_vi_to_en($value->name),
|
"name" => $this->convert_vi_to_en($value->name),
|
||||||
"feature1" => $feature1,
|
"feature1" => $feature1,
|
||||||
"feature2" => $feature2
|
"feature2" => $feature2
|
||||||
|
|
|
@ -120,6 +120,7 @@ class ControlLogsController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $listManagement->id,
|
"id" => $listManagement->id,
|
||||||
|
"object_id" => $listManagement->staff_id,
|
||||||
"name" => common::convert_vi_to_en($listManagement->name),
|
"name" => common::convert_vi_to_en($listManagement->name),
|
||||||
"features" => $listManagement->allFeatures
|
"features" => $listManagement->allFeatures
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -175,6 +175,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $listManagement->id,
|
"id" => $listManagement->id,
|
||||||
|
"object_id" => $listManagement->staff_id,
|
||||||
"name" => common::convert_vi_to_en($listManagement->name),
|
"name" => common::convert_vi_to_en($listManagement->name),
|
||||||
"features" => $listManagement->allFeatures
|
"features" => $listManagement->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -282,6 +283,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -300,6 +302,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "delete",
|
"cmd" => "delete",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => []
|
"features" => []
|
||||||
]);
|
]);
|
||||||
|
@ -326,6 +329,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -356,6 +360,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "delete",
|
"cmd" => "delete",
|
||||||
"id" => $staff->id,
|
"id" => $staff->id,
|
||||||
|
"object_id" => $staff->staff_id,
|
||||||
"name" => common::convert_vi_to_en($staff->name),
|
"name" => common::convert_vi_to_en($staff->name),
|
||||||
"features" => []
|
"features" => []
|
||||||
]);
|
]);
|
||||||
|
@ -565,6 +570,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -597,6 +603,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "create",
|
"cmd" => "create",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -653,6 +660,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "update",
|
"cmd" => "update",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -673,6 +681,7 @@ class ListManagementController extends Controller {
|
||||||
common::updateFeature([
|
common::updateFeature([
|
||||||
"cmd" => "create",
|
"cmd" => "create",
|
||||||
"id" => $model->id,
|
"id" => $model->id,
|
||||||
|
"object_id" => $model->staff_id,
|
||||||
"name" => common::convert_vi_to_en($model->name),
|
"name" => common::convert_vi_to_en($model->name),
|
||||||
"features" => $model->allFeatures
|
"features" => $model->allFeatures
|
||||||
]);
|
]);
|
||||||
|
@ -918,4 +927,39 @@ class ListManagementController extends Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function actionFaceComparison() {
|
||||||
|
if (Yii::$app->request->post()) {
|
||||||
|
$post = Yii::$app->request->post();
|
||||||
|
Yii::$app->response->format = "json";
|
||||||
|
$results = json_decode(file_get_contents("http://192.168.1.43:2305/compare", false, stream_context_create([
|
||||||
|
'http' => [
|
||||||
|
'header' => "Content-Type: application/json",
|
||||||
|
'method' => "POST",
|
||||||
|
'content' => json_encode([
|
||||||
|
"type" => "base64",
|
||||||
|
"img0" => base64_encode(file_get_contents("/var/www/html/BiFace_Server_Lite/web" . $post['face1'])),
|
||||||
|
"img1" => base64_encode(file_get_contents("/var/www/html/BiFace_Server_Lite/web" . $post['face2']))
|
||||||
|
])
|
||||||
|
]
|
||||||
|
])), true);
|
||||||
|
return [
|
||||||
|
"type1" => number_format($results['type1']['percent'] * 100, 2),
|
||||||
|
"type2" => number_format($results['type2']['percent'] * 100, 2)
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$this->view->title = Yii::t("app", "SO_SANH_MAT");
|
||||||
|
return $this->render('face-comparison', [
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function actionUploadFace() {
|
||||||
|
if (Yii::$app->request->post()) {
|
||||||
|
$post = Yii::$app->request->post();
|
||||||
|
$model = new \app\models\UploadForm();
|
||||||
|
$url = $model->UploadGlobal("image" . $post['imageIndex'], ["PNG", "JPG", "JPEG", "GIF"], "comparison");
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,5 +156,6 @@ return [
|
||||||
"SUA_LICH_TRINH" => "Edit schedule",
|
"SUA_LICH_TRINH" => "Edit schedule",
|
||||||
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Apply to all selected objects",
|
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Apply to all selected objects",
|
||||||
"XOA_LICH_TRINH" => "Delete schedule",
|
"XOA_LICH_TRINH" => "Delete schedule",
|
||||||
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Are you sure you want to delete this schedule?"
|
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Are you sure you want to delete this schedule?",
|
||||||
|
"SO_SANH_MAT" => "Face comparison"
|
||||||
];
|
];
|
||||||
|
|
|
@ -156,5 +156,6 @@ return [
|
||||||
"SUA_LICH_TRINH" => "スケジュールを編集",
|
"SUA_LICH_TRINH" => "スケジュールを編集",
|
||||||
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "選択したすべてのオブジェクトに適用",
|
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "選択したすべてのオブジェクトに適用",
|
||||||
"XOA_LICH_TRINH" => "スケジュールを削除",
|
"XOA_LICH_TRINH" => "スケジュールを削除",
|
||||||
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "このスケジュールを削除してもよろしいですか?"
|
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "このスケジュールを削除してもよろしいですか?",
|
||||||
|
"SO_SANH_MAT" => "顔比較"
|
||||||
];
|
];
|
||||||
|
|
|
@ -156,5 +156,6 @@ return [
|
||||||
"SUA_LICH_TRINH" => "Sửa lịch trình",
|
"SUA_LICH_TRINH" => "Sửa lịch trình",
|
||||||
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Áp dụng cho tất cả đối tượng đã chọn",
|
"AP_DUNG_CHO_TAT_CA_DOI_TUONG_DA_CHON" => "Áp dụng cho tất cả đối tượng đã chọn",
|
||||||
"XOA_LICH_TRINH" => "Xóa lịch trình",
|
"XOA_LICH_TRINH" => "Xóa lịch trình",
|
||||||
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Bạn có chắc chắn muốn xóa lịch trình này không?"
|
"BAN_CO_CHAC_CHAN_MUON_XOA_LICH_TRINH_NAY_KHONG" => "Bạn có chắc chắn muốn xóa lịch trình này không?",
|
||||||
|
"SO_SANH_MAT" => "So sánh mặt"
|
||||||
];
|
];
|
||||||
|
|
27
views/list-management/face-comparison.tpl
Normal file
27
views/list-management/face-comparison.tpl
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{extends file=$smarty.current_dir|cat:'/../extends.tpl'}
|
||||||
|
{use class="yii\helpers\Url"}
|
||||||
|
{use class="app\assets\FaceComparisonAsset"}
|
||||||
|
{FaceComparisonAsset::register($this)|void}
|
||||||
|
{block name='content'}<br>
|
||||||
|
<input type="hidden" name="url_upload_face" value="{Url::to(['/list-management/upload-face'])}">
|
||||||
|
<input type="hidden" name="url_face_comparison" value="{Url::to(['/list-management/face-comparison'])}">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3 col-md-push-2 text-center">
|
||||||
|
<img src="/images/user2-160x160.jpg" class="img-thumbnail" id="face1" style="width: 70%;cursor: pointer;" onclick="$('#image1').trigger('click');">
|
||||||
|
<div class="hidden">
|
||||||
|
<input type="file" name="image1" id="image1">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2 col-md-push-2 text-center">
|
||||||
|
<div style="padding-top: 100px;">
|
||||||
|
<b class="text-red" style="font-size: 40px;" id="percent">0.00%</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 col-md-push-2 text-center">
|
||||||
|
<img src="/images/user2-160x160.jpg" class="img-thumbnail" id="face2" style="width: 70%;cursor: pointer;" onclick="$('#image2').trigger('click');">
|
||||||
|
<div class="hidden">
|
||||||
|
<input type="file" name="image2" id="image2">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/block}
|
|
@ -124,6 +124,9 @@
|
||||||
])}
|
])}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2" style="padding-right: 30px;">
|
<div class="col-md-2" style="padding-right: 30px;">
|
||||||
|
<div class="pull-right" style="margin-top: 10px;">
|
||||||
|
<a class="btn btn-primary btn-xs" href="{Url::to(['/list-management/face-comparison'])}">{Yii::t("app", "SO_SANH_MAT")}</a>
|
||||||
|
</div>
|
||||||
<h4>{Yii::t("app", "TIM_KIEM_DU_LIEU")}</h4>
|
<h4>{Yii::t("app", "TIM_KIEM_DU_LIEU")}</h4>
|
||||||
{*<div class="form-group">
|
{*<div class="form-group">
|
||||||
<label class="control-label">Từ</label>
|
<label class="control-label">Từ</label>
|
||||||
|
|
53
web/js/face-comparison.js
Normal file
53
web/js/face-comparison.js
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
$(function () {
|
||||||
|
btnFace("1");
|
||||||
|
btnFace("2");
|
||||||
|
});
|
||||||
|
|
||||||
|
function btnFace(imageIndex) {
|
||||||
|
var fData = {
|
||||||
|
UploadImage: true,
|
||||||
|
imageIndex: imageIndex
|
||||||
|
};
|
||||||
|
fData[common.csrfParam] = common.csrf;
|
||||||
|
new afuButton({
|
||||||
|
uploadURI: $("input[name='url_upload_face']").val(),
|
||||||
|
formData: fData,
|
||||||
|
wrap: {
|
||||||
|
tagName: 'div',
|
||||||
|
classes: ''
|
||||||
|
},
|
||||||
|
fileExtension: '.png,.jpg,.jpeg,.gif',
|
||||||
|
fileSizeLimit: 1,
|
||||||
|
classes: 'btn btn-default',
|
||||||
|
fakeInputContent: '<span class=\'fa fa-file-image-o\'></span> Chọn hình ảnh',
|
||||||
|
onUploaded: function (data) {
|
||||||
|
$("#face" + imageIndex).attr("src", "/data/uploads" + data);
|
||||||
|
common.uploadBlock(false);
|
||||||
|
compareFace();
|
||||||
|
}
|
||||||
|
}).addInstance('image' + imageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
function compareFace() {
|
||||||
|
var face1 = $("#face1").attr("src");
|
||||||
|
var face2 = $("#face2").attr("src");
|
||||||
|
if (face1 == "/images/user2-160x160.jpg" || face2 == "/images/user2-160x160.jpg")
|
||||||
|
return;
|
||||||
|
common.modalBlock(true);
|
||||||
|
$.ajax({
|
||||||
|
url: $("input[name='url_face_comparison']").val(),
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
face1: face1,
|
||||||
|
face2: face2
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
common.modalBlock(false);
|
||||||
|
$("#percent").html(data.type1 + "%<br>[" + data.type2 + "%]");
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
common.modalBlock(false);
|
||||||
|
common.ajaxError();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user