mirror of
https://github.com/serengil/deepface.git
synced 2025-06-08 12:35:22 +00:00
fix UI
This commit is contained in:
parent
5af2071aa0
commit
c1b350ab77
Binary file not shown.
Binary file not shown.
@ -9,41 +9,6 @@ import copy
|
|||||||
api = Namespace('general', path='/', description='general information related to app')
|
api = Namespace('general', path='/', description='general information related to app')
|
||||||
|
|
||||||
|
|
||||||
# @api.route('/get-breed-info')
|
|
||||||
# class BreedList(Resource):
|
|
||||||
# @api.doc('get breed information from csv')
|
|
||||||
# def get(self):
|
|
||||||
# """
|
|
||||||
# return the breed information, which gets from wikipedia
|
|
||||||
# :return: list of breed information
|
|
||||||
# """
|
|
||||||
# breed_info = {}
|
|
||||||
# for animal_type in CONSTANTS['ANIMAL_TYPE']:
|
|
||||||
# with open('wikiFile/' + animal_type + '.csv') as csv_file:
|
|
||||||
# csv_reader = csv.reader(csv_file, delimiter=',')
|
|
||||||
# line_count = 0
|
|
||||||
# json_title = []
|
|
||||||
# animal_list = []
|
|
||||||
# for row in csv_reader:
|
|
||||||
# if line_count == 0:
|
|
||||||
# json_title = row
|
|
||||||
# line_count += 1
|
|
||||||
# else:
|
|
||||||
# info_obj = {
|
|
||||||
# json_title[0]: row[0],
|
|
||||||
# json_title[1]: row[1],
|
|
||||||
# json_title[2]: row[2],
|
|
||||||
# json_title[3]: row[3],
|
|
||||||
# json_title[4]: row[4],
|
|
||||||
# }
|
|
||||||
# animal_list.append(info_obj)
|
|
||||||
# line_count += 1
|
|
||||||
# csv_file.close()
|
|
||||||
# breed_info[animal_type] = animal_list
|
|
||||||
|
|
||||||
# return send_json_response(breed_info, 200)
|
|
||||||
|
|
||||||
|
|
||||||
@api.route('/get-app-info')
|
@api.route('/get-app-info')
|
||||||
class AppInfo(Resource):
|
class AppInfo(Resource):
|
||||||
@api.doc('return the app developer information')
|
@api.doc('return the app developer information')
|
||||||
|
@ -60,19 +60,24 @@ class DeepFaceLite(object):
|
|||||||
|
|
||||||
sum_of_predictions = emotion_predictions.sum()
|
sum_of_predictions = emotion_predictions.sum()
|
||||||
|
|
||||||
all_emotions = {}
|
all_emotions = []
|
||||||
|
|
||||||
for j in range(0, len(emotion_labels)):
|
for j in range(0, len(emotion_labels)):
|
||||||
emotion_label = emotion_labels[j]
|
emotion_label = emotion_labels[j]
|
||||||
emotion_prediction = 100 * emotion_predictions[j] / sum_of_predictions
|
emotion_prediction = 100 * emotion_predictions[j] / sum_of_predictions
|
||||||
all_emotions[emotion_label] = emotion_prediction
|
# all_emotions[emotion_label] = '{:.4f}'.format(emotion_prediction)
|
||||||
|
max_score = 100 * np.max(emotion_predictions) / sum_of_predictions
|
||||||
|
|
||||||
|
all_emotions.append('{}: {:.4f}'.format(emotion_label, emotion_prediction))
|
||||||
|
|
||||||
emotion = {
|
emotion = {
|
||||||
'all': all_emotions,
|
'all': all_emotions,
|
||||||
'dominant': emotion_labels[np.argmax(emotion_predictions)],
|
'dominant': emotion_labels[np.argmax(emotion_predictions)],
|
||||||
'dominant_score': np.max(emotion_predictions)
|
'dominant_score': '{:.4f}'.format(max_score)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print(emotion)
|
||||||
|
|
||||||
# --- age ---
|
# --- age ---
|
||||||
age_predictions = self.age_model.predict(imgs_224[i])[0,:]
|
age_predictions = self.age_model.predict(imgs_224[i])[0,:]
|
||||||
apparent_age = Age.findApparentAge(age_predictions)
|
apparent_age = Age.findApparentAge(age_predictions)
|
||||||
@ -88,7 +93,8 @@ class DeepFaceLite(object):
|
|||||||
# resp_obj = json.loads(resp_obj)
|
# resp_obj = json.loads(resp_obj)
|
||||||
|
|
||||||
resp_obj = {
|
resp_obj = {
|
||||||
'age': apparent_age,
|
'id': i,
|
||||||
|
'age': np.round(apparent_age),
|
||||||
'gender': gender,
|
'gender': gender,
|
||||||
'emotion': emotion
|
'emotion': emotion
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
src/models/__pycache__/__init__.cpython-38.pyc
Normal file
BIN
src/models/__pycache__/__init__.cpython-38.pyc
Normal file
Binary file not shown.
BIN
src/models/__pycache__/feedback.cpython-38.pyc
Normal file
BIN
src/models/__pycache__/feedback.cpython-38.pyc
Normal file
Binary file not shown.
BIN
src/models/__pycache__/prediction.cpython-38.pyc
Normal file
BIN
src/models/__pycache__/prediction.cpython-38.pyc
Normal file
Binary file not shown.
@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Pet Smile</title>
|
<title>HappyPeople</title>
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
|
||||||
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
||||||
<link href="/static/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css"/>
|
<link href="/static/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css"/>
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="background-color: #e3f2fd; margin-bottom: 30px; width: 100%">
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="background-color: #e3f2fd; margin-bottom: 30px; width: 100%">
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<div style="font-size: 45px; margin-left: 30px">
|
<div style="font-size: 45px; margin-left: 30px">
|
||||||
<span style="font-weight: bold">Happy</span>Pet
|
<span style="font-weight: bold">Happy</span>People
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
|
||||||
@ -33,7 +33,6 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
||||||
<div class="navbar-nav">
|
<div class="navbar-nav">
|
||||||
<a class="nav-item nav-link active" href="/">Home</a>
|
<a class="nav-item nav-link active" href="/">Home</a>
|
||||||
<a class="nav-item nav-link" href="/breed-list">Breed Info</a>
|
|
||||||
<a class="nav-item nav-link" href="/statistical-data">Statistical Results</a>
|
<a class="nav-item nav-link" href="/statistical-data">Statistical Results</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
{% extends 'base.html' %}
|
|
||||||
{% block mainContent %}
|
|
||||||
<div id="breed-table-area" style="margin-left: 50px; margin-right: 50px;">
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
function getBreedList() {
|
|
||||||
$.get("/api/get-breed-info", function(response) {
|
|
||||||
let breedTableArea = document.getElementById('breed-table-area')
|
|
||||||
breedTableArea.innerHTML = ''
|
|
||||||
let htmlContent = ''
|
|
||||||
|
|
||||||
for (let animalType in response) {
|
|
||||||
htmlContent += '<h2 style="text-align: center">' + animalType + '</h2>' + '<table class="table table-striped"><thead><tr><th scope="col">Breed</th><th scope="col">Image</th><th scope="col">Description</th><th scope="col">URL</th></tr></thead><tbody>'
|
|
||||||
|
|
||||||
response[animalType].forEach(eachBreed => {
|
|
||||||
htmlContent += '<tr>'
|
|
||||||
htmlContent += '<td>' + eachBreed['breed'] + '</td>'
|
|
||||||
htmlContent += `<td><img src=${eachBreed['image']} alt=${eachBreed['image']} style="height: 100px; width: 100px"></td>`
|
|
||||||
htmlContent += '<td>' + eachBreed['description'] + '</td>'
|
|
||||||
htmlContent += `<td><a href=${eachBreed['link']} target="_blank">wikipedia link</a></td></tr>`
|
|
||||||
})
|
|
||||||
|
|
||||||
htmlContent += '</tbody></table>'
|
|
||||||
}
|
|
||||||
|
|
||||||
htmlContent += '<p style="text-align: end">(all results are downloaded from wikipedia)</p>'
|
|
||||||
breedTableArea.innerHTML = htmlContent;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
getBreedList();
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
@ -69,8 +69,8 @@
|
|||||||
if (response['status'] === 'success') {
|
if (response['status'] === 'success') {
|
||||||
for (let i=0; i<response['results'].length; i++) {
|
for (let i=0; i<response['results'].length; i++) {
|
||||||
const addedId = `<div style=\"border: 1px dashed darkgrey\"><ul><li><strong>ID: </strong>${response['results'][i].id}`
|
const addedId = `<div style=\"border: 1px dashed darkgrey\"><ul><li><strong>ID: </strong>${response['results'][i].id}`
|
||||||
const emotionList = `<div style=\"margin: 10px 30px; font-weight: lighter;\"><ul><li>${response['results'][i].emotion['allEmotions'][0]}</li><li>${response['results'][i].emotion['allEmotions'][1]}</li><li>${response['results'][i].emotion['allEmotions'][2]}</li><li>${response['results'][i].emotion['allEmotions'][3]}</li><li>${response['results'][i].emotion['allEmotions'][4]}</li></ul></div>`
|
const emotionList = `<div style=\"margin: 10px 30px; font-weight: lighter;\"><ul><li>${response['results'][i].emotion['all'][0]}</li><li>${response['results'][i].emotion['all'][1]}</li><li>${response['results'][i].emotion['all'][2]}</li><li>${response['results'][i].emotion['all'][3]}</li><li>${response['results'][i].emotion['all'][4]}</li><li>${response['results'][i].emotion['all'][5]}</li><li>${response['results'][i].emotion['all'][6]}</li></ul></div>`
|
||||||
const otherInfo = `</li><li><strong>Type: </strong>${response['results'][i].pet}</li><li><strong>Breed: </strong>${response['results'][i].breed}</li><li><strong>Emotion: </strong>${response['results'][i].emotion['mostLikely']}</li></ul>${emotionList}</div>`
|
const otherInfo = `</li><li><strong>Age: </strong>${response['results'][i].age}</li><li><strong>Gender: </strong>${response['results'][i].gender}</li><li><strong>Emotion: </strong>${response['results'][i].emotion['dominant']}</li></ul>${emotionList}</div>`
|
||||||
const addedHtml = response['isShowId'] !== 'false' ? addedId + otherInfo : otherInfo
|
const addedHtml = response['isShowId'] !== 'false' ? addedId + otherInfo : otherInfo
|
||||||
resultArea.innerHTML += addedHtml
|
resultArea.innerHTML += addedHtml
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -8,11 +8,6 @@ def render_homepage():
|
|||||||
return render_template("homePage.html")
|
return render_template("homePage.html")
|
||||||
|
|
||||||
|
|
||||||
@public_route_bp.route('/breed-list')
|
|
||||||
def render_breed_info_page():
|
|
||||||
return render_template('breedPage.html')
|
|
||||||
|
|
||||||
|
|
||||||
@public_route_bp.route('/statistical-data')
|
@public_route_bp.route('/statistical-data')
|
||||||
def render_statistical_page():
|
def render_statistical_page():
|
||||||
return render_template('statisticalPage.html')
|
return render_template('statisticalPage.html')
|
Loading…
x
Reference in New Issue
Block a user