mirror of
https://github.com/serengil/deepface.git
synced 2025-06-10 13:27:08 +00:00
fixing statistical results
This commit is contained in:
parent
c1b350ab77
commit
7807470c57
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -5,6 +5,7 @@ import re
|
||||
from flask_restplus import Namespace, Resource
|
||||
import datetime
|
||||
import copy
|
||||
import math
|
||||
|
||||
api = Namespace('general', path='/', description='general information related to app')
|
||||
|
||||
@ -19,10 +20,10 @@ class AppInfo(Resource):
|
||||
"""
|
||||
app_info = {
|
||||
'developedBy': 'This app was developed by the Melbourne eResearch Group (www.eresearch.unimelb.edu.au) within the School of Computing and Information Systems (https://cis.unimelb.edu.au) at The University of Melbourne (www.unimelb.edu.au). ',
|
||||
'description': 'The app uses artificial intelligence (convolutional neural networks) that have been trained on dog/cat images to identify whether a dog/cat is in an image, and if so the species type (breed) and it\'s emotion.',
|
||||
'description': 'The app uses artificial intelligence (convolutional neural networks) to identify the age, gender, and emotion of the people.',
|
||||
'contact': 'https://eresearch.unimelb.edu.au',
|
||||
'developedByHTML': '<p>This app was developed by the Melbourne eResearch Group (<a href=\"www.eresearch.unimelb.edu.au\" target=\"_blank\">www.eresearch.unimelb.edu.au</a>) within the School of Computing and Information Systems (<a href=\"https://cis.unimelb.edu.au\" target=\"_blank\">https://cis.unimelb.edu.au</a>) at The University of Melbourne (<a href=\"www.unimelb.edu.au\" target=\"_blank\">www.unimelb.edu.au</a>).</p>',
|
||||
'descriptionHTML': '<p>The app uses artificial intelligence (convolutional neural networks) that have been trained on dog/cat images to identify whether a dog/cat is in an image, and if so the species type (breed) and it\'s emotion.</p>',
|
||||
'descriptionHTML': '<p>The app uses artificial intelligence (convolutional neural networks) to identify the age, gender, and emotion of the people.</p>',
|
||||
'contactHTML': '<p>Please contact us at: <a href=\"eresearch.unimelb.edu.au\" target=\"_blank\">eresearch.unimelb.edu.au</a></p>'
|
||||
}
|
||||
|
||||
@ -41,33 +42,19 @@ class StatisticalData(Resource):
|
||||
from models.prediction import Prediction
|
||||
from models.feedback import Feedback
|
||||
|
||||
total_cat_breed = []
|
||||
total_dog_breed = []
|
||||
prediction_collection = Prediction._get_collection()
|
||||
feedback_collection = Feedback._get_collection()
|
||||
statistical_data = copy.deepcopy(CONSTANTS['STATISTICAL_DATA'])
|
||||
|
||||
# initial statistical_data based on breed and alpha order
|
||||
f = open("model_data/pet_classes.txt", "r")
|
||||
for each_line in f:
|
||||
first_char = each_line[0]
|
||||
if first_char.isupper():
|
||||
total_cat_breed.append(re.sub(r"_", " ", each_line.rstrip(), flags=re.IGNORECASE).title())
|
||||
else:
|
||||
total_dog_breed.append(re.sub(r"_", " ", each_line.rstrip(), flags=re.IGNORECASE).title())
|
||||
f.close()
|
||||
total_cat_breed.sort()
|
||||
total_dog_breed.sort()
|
||||
# initial statistical_data based on age and ascending order
|
||||
total_age = []
|
||||
for i in range(21):
|
||||
total_age.append(str(i * 5) + '+')
|
||||
|
||||
for each_breed in total_cat_breed:
|
||||
statistical_data['Cat']['prediction_data']['breed'][each_breed] = 0
|
||||
statistical_data['Cat']['feedback_data']['breed']['wrong'][each_breed] = 0
|
||||
statistical_data['Cat']['feedback_data']['breed']['correct'][each_breed] = 0
|
||||
|
||||
for each_breed in total_dog_breed:
|
||||
statistical_data['Dog']['prediction_data']['breed'][each_breed] = 0
|
||||
statistical_data['Dog']['feedback_data']['breed']['wrong'][each_breed] = 0
|
||||
statistical_data['Dog']['feedback_data']['breed']['correct'][each_breed] = 0
|
||||
for each_age in total_age:
|
||||
statistical_data['prediction_data']['age'][each_age] = 0
|
||||
statistical_data['feedback_data']['age']['wrong'][each_age] = 0
|
||||
statistical_data['feedback_data']['age']['correct'][each_age] = 0
|
||||
|
||||
# photo by date
|
||||
today = datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
@ -90,65 +77,85 @@ class StatisticalData(Resource):
|
||||
|
||||
# prediction
|
||||
total_prediction = prediction_collection.find({})
|
||||
|
||||
for each_prediction in total_prediction:
|
||||
prediction_results = each_prediction['predictionResults']
|
||||
for each_result in prediction_results:
|
||||
statistical_data[each_result['type']]['prediction_number'] = statistical_data[each_result['type']].get(
|
||||
statistical_data['prediction_number'] = statistical_data.get(
|
||||
'prediction_number', 0) + 1
|
||||
statistical_data[each_result['type']]['prediction_data']['breed'][each_result['breed']] = \
|
||||
statistical_data[each_result['type']]['prediction_data']['breed'].get(each_result['breed'], 0) + 1
|
||||
statistical_data[each_result['type']]['prediction_data']['emotion'][each_result['emotion']] = \
|
||||
statistical_data[each_result['type']]['prediction_data']['emotion'].get(each_result['emotion'],
|
||||
0) + 1
|
||||
|
||||
# age, gender, emotion
|
||||
each_age = str(5*math.floor(each_result['age'] / 5)) + '+'
|
||||
|
||||
statistical_data['prediction_data']['age'][each_age] = \
|
||||
statistical_data['prediction_data']['age'].get(each_age, 0) + 1
|
||||
statistical_data['prediction_data']['gender'][each_result['gender']] = \
|
||||
statistical_data['prediction_data']['gender'].get(each_result['gender'], 0) + 1
|
||||
statistical_data['prediction_data']['emotion'][each_result['emotion']] = \
|
||||
statistical_data['prediction_data']['emotion'].get(each_result['emotion'], 0) + 1
|
||||
|
||||
# feedback
|
||||
total_feedback = feedback_collection.find({})
|
||||
|
||||
for each_feedback in total_feedback:
|
||||
feedback_content = each_feedback['content']
|
||||
for each_content in feedback_content:
|
||||
statistical_data[each_content['type']]['feedback_number'] = statistical_data[each_content['type']].get(
|
||||
statistical_data['feedback_number'] = statistical_data.get(
|
||||
'feedback_number', 0) + 1
|
||||
|
||||
if not each_content['breedCorrectness']:
|
||||
statistical_data[each_content['type']]['feedback_data']['breed']['wrong'][
|
||||
each_content['breedFeedback']] = \
|
||||
statistical_data[each_content['type']]['feedback_data']['breed'][
|
||||
'wrong'].get(each_content['breedFeedback'], 0) + 1
|
||||
# age
|
||||
if not each_content['ageCorrectness']:
|
||||
statistical_data['feedback_data']['age']['wrong'][
|
||||
each_content['ageFeedback']] = \
|
||||
statistical_data['feedback_data']['age'][
|
||||
'wrong'].get(each_content['ageFeedback'], 0) + 1
|
||||
else:
|
||||
statistical_data[each_content['type']]['feedback_data']['breed']['correct'][
|
||||
each_content['breedFeedback']] = \
|
||||
statistical_data[each_content['type']]['feedback_data']['breed']['correct'].get(
|
||||
each_content['breedFeedback'], 0) + 1
|
||||
statistical_data['feedback_data']['age']['correct'][
|
||||
each_content['ageFeedback']] = \
|
||||
statistical_data['feedback_data']['age']['correct'].get(
|
||||
each_content['ageFeedback'], 0) + 1
|
||||
|
||||
# gender
|
||||
if not each_content['genderCorrectness']:
|
||||
statistical_data['feedback_data']['gender']['wrong'][
|
||||
each_content['genderFeedback']] = \
|
||||
statistical_data['feedback_data']['gender'][
|
||||
'wrong'].get(each_content['genderFeedback'], 0) + 1
|
||||
else:
|
||||
statistical_data['feedback_data']['gender']['correct'][
|
||||
each_content['genderFeedback']] = \
|
||||
statistical_data['feedback_data']['gender']['correct'].get(
|
||||
each_content['genderFeedback'], 0) + 1
|
||||
|
||||
if not each_content['emotionCorrectness']:
|
||||
statistical_data[each_content['type']]['feedback_data']['emotion']['wrong'][
|
||||
statistical_data['feedback_data']['emotion']['wrong'][
|
||||
each_content['emotionFeedback']] = \
|
||||
statistical_data[each_content['type']]['feedback_data']['emotion']['wrong'].get(
|
||||
statistical_data['feedback_data']['emotion']['wrong'].get(
|
||||
each_content['emotionFeedback'], 0) + 1
|
||||
else:
|
||||
statistical_data[each_content['type']]['feedback_data']['emotion']['correct'][
|
||||
statistical_data['feedback_data']['emotion']['correct'][
|
||||
each_content['emotionFeedback']] = \
|
||||
statistical_data[each_content['type']]['feedback_data']['emotion']['correct'].get(
|
||||
statistical_data['feedback_data']['emotion']['correct'].get(
|
||||
each_content['emotionFeedback'], 0) + 1
|
||||
|
||||
result = {
|
||||
'totalNumberOfPhotoUploaded': prediction_collection.count_documents({}),
|
||||
'totalNumberOfCatPrediction': statistical_data['Cat']['prediction_number'],
|
||||
'totalNumberOfDogPrediction': statistical_data['Dog']['prediction_number'],
|
||||
'totalNumberOfCatFeedback': statistical_data['Cat']['feedback_number'],
|
||||
'totalNumberOfDogFeedback': statistical_data['Dog']['feedback_number'],
|
||||
'totalNumberOfDogBreedPrediction': statistical_data['Dog']['prediction_data']['breed'],
|
||||
'totalNumberOfDogBreedCorrectFeedback': statistical_data['Dog']['feedback_data']['breed']['correct'],
|
||||
'totalNumberOfDogBreedWrongFeedback': statistical_data['Dog']['feedback_data']['breed']['wrong'],
|
||||
'totalNumberOfDogEmotionPrediction': statistical_data['Dog']['prediction_data']['emotion'],
|
||||
'totalNumberOfDogEmotionCorrectFeedback': statistical_data['Dog']['feedback_data']['emotion']['correct'],
|
||||
'totalNumberOfDogEmotionWrongFeedback': statistical_data['Dog']['feedback_data']['emotion']['wrong'],
|
||||
'totalNumberOfCatBreedPrediction': statistical_data['Cat']['prediction_data']['breed'],
|
||||
'totalNumberOfCatBreedCorrectFeedback': statistical_data['Cat']['feedback_data']['breed']['correct'],
|
||||
'totalNumberOfCatBreedWrongFeedback': statistical_data['Cat']['feedback_data']['breed']['wrong'],
|
||||
'totalNumberOfCatEmotionPrediction': statistical_data['Cat']['prediction_data']['emotion'],
|
||||
'totalNumberOfCatEmotionCorrectFeedback': statistical_data['Cat']['feedback_data']['emotion']['correct'],
|
||||
'totalNumberOfCatEmotionWrongFeedback': statistical_data['Cat']['feedback_data']['emotion']['wrong'],
|
||||
|
||||
'totalNumberOfPrediction': statistical_data['prediction_number'],
|
||||
'totalNumberOfFeedback': statistical_data['feedback_number'],
|
||||
|
||||
'totalNumberOfAgePrediction': statistical_data['prediction_data']['age'],
|
||||
'totalNumberOfAgeCorrectFeedback': statistical_data['feedback_data']['age']['correct'],
|
||||
'totalNumberOfAgeWrongFeedback': statistical_data['feedback_data']['age']['wrong'],
|
||||
|
||||
'totalNumberOfGenderPrediction': statistical_data['prediction_data']['gender'],
|
||||
'totalNumberOfGenderCorrectFeedback': statistical_data['feedback_data']['gender']['correct'],
|
||||
'totalNumberOfGenderdWrongFeedback': statistical_data['feedback_data']['gender']['wrong'],
|
||||
|
||||
'totalNumberOfEmotionPrediction': statistical_data['prediction_data']['emotion'],
|
||||
'totalNumberOfEmotionCorrectFeedback': statistical_data['feedback_data']['emotion']['correct'],
|
||||
'totalNumberOfEmotionWrongFeedback': statistical_data['feedback_data']['emotion']['wrong'],
|
||||
|
||||
'numberOfPhotoByDate': total_number_of_photo_within_one_week
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,6 @@ class Prediction(Resource):
|
||||
|
||||
img, detections = deepface.analyze(image)
|
||||
|
||||
# TODO: handle outputs
|
||||
# encode image and jsonify detections
|
||||
buffered = io.BytesIO()
|
||||
img.save(buffered, format="JPEG")
|
||||
@ -61,13 +60,12 @@ class Prediction(Resource):
|
||||
'emotionScore': emotion_score
|
||||
})
|
||||
|
||||
# store to db?
|
||||
|
||||
# new_prediction = Prediction(**{
|
||||
# 'predictionResults': formatted_prediction_results,
|
||||
# 'rawPredictionResults': detections,
|
||||
# 'date': datetime.datetime.now(),
|
||||
# })
|
||||
# new_prediction.save()
|
||||
# store results to db
|
||||
new_prediction = Prediction(**{
|
||||
'predictionResults': formatted_prediction_results,
|
||||
'rawPredictionResults': detections,
|
||||
'date': datetime.datetime.now(),
|
||||
})
|
||||
new_prediction.save()
|
||||
|
||||
return send_json_response(result, 200)
|
||||
|
Binary file not shown.
@ -1,82 +1,59 @@
|
||||
CONSTANTS = {
|
||||
'ANIMAL_TYPE': ['cat', 'dog'],
|
||||
'EMOTION': {
|
||||
'HAPPY': 'Happy',
|
||||
'NEUTRAL': 'Neutral',
|
||||
'ANXIOUS': 'Anxious',
|
||||
'SAD': 'Sad',
|
||||
'UNSETTLED': 'Unsettled'
|
||||
'angry': 'Angry',
|
||||
'disgust': 'Disgust',
|
||||
'fear': 'Fear',
|
||||
'happy': 'Happy',
|
||||
'sad': 'Sad',
|
||||
'surprise': 'Surprise',
|
||||
'neutral': 'Neutral'
|
||||
},
|
||||
'STATISTICAL_DATA': {
|
||||
"Cat": {
|
||||
"feedback_number": 0,
|
||||
"prediction_number": 0,
|
||||
"prediction_data": {
|
||||
"breed": {},
|
||||
"emotion": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
}
|
||||
"feedback_number": 0,
|
||||
"prediction_number": 0,
|
||||
"prediction_data": {
|
||||
"age": {},
|
||||
"gender": {
|
||||
"Man": 0,
|
||||
"Woman": 0
|
||||
},
|
||||
"feedback_data": {
|
||||
"breed": {
|
||||
"wrong": {},
|
||||
"correct": {}
|
||||
},
|
||||
"emotion": {
|
||||
"wrong": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
},
|
||||
"correct": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
}
|
||||
}
|
||||
"emotion": {
|
||||
"Angry": 0,
|
||||
"Disgust": 0,
|
||||
"Fear": 0,
|
||||
"Happy": 0,
|
||||
"Sad": 0,
|
||||
"Surprise": 0,
|
||||
"Neutral": 0
|
||||
}
|
||||
},
|
||||
"Dog": {
|
||||
"feedback_number": 0,
|
||||
"prediction_number": 0,
|
||||
"prediction_data": {
|
||||
"breed": {},
|
||||
"emotion": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
}
|
||||
"feedback_data": {
|
||||
"age": {
|
||||
"wrong": {},
|
||||
"correct": {}
|
||||
},
|
||||
"feedback_data": {
|
||||
"breed": {
|
||||
"wrong": {},
|
||||
"correct": {}
|
||||
"gender": {
|
||||
"wrong": {},
|
||||
"correct": {}
|
||||
},
|
||||
"emotion": {
|
||||
"wrong": {
|
||||
"Angry": 0,
|
||||
"Disgust": 0,
|
||||
"Fear": 0,
|
||||
"Happy": 0,
|
||||
"Sad": 0,
|
||||
"Surprise": 0,
|
||||
"Neutral": 0
|
||||
},
|
||||
"emotion": {
|
||||
"wrong": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
},
|
||||
"correct": {
|
||||
"Happy": 0,
|
||||
"Neutral": 0,
|
||||
"Anxious": 0,
|
||||
"Sad": 0,
|
||||
"Unsettled": 0
|
||||
}
|
||||
"correct": {
|
||||
"Angry": 0,
|
||||
"Disgust": 0,
|
||||
"Fear": 0,
|
||||
"Happy": 0,
|
||||
"Sad": 0,
|
||||
"Surprise": 0,
|
||||
"Neutral": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
@ -2,9 +2,12 @@ from config import db
|
||||
|
||||
|
||||
class FeedbackContent(db.EmbeddedDocument):
|
||||
|
||||
type = db.StringField(required=True)
|
||||
breedFeedback = db.StringField(required=True)
|
||||
breedCorrectness = db.BooleanField(required=True)
|
||||
ageFeedback = db.StringField(required=True)
|
||||
ageCorrectness = db.BooleanField(required=True)
|
||||
genderFeedback = db.StringField(required=True)
|
||||
genderCorrectness = db.BooleanField(required=True)
|
||||
emotionFeedback = db.StringField(required=True)
|
||||
emotionCorrectness = db.BooleanField(required=True)
|
||||
|
||||
|
@ -68,9 +68,17 @@
|
||||
$("#div_prediction").fadeIn(1500);
|
||||
if (response['status'] === 'success') {
|
||||
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 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>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 addedId = `<div style=\"border: 1px dashed darkgrey\"><ul><li><strong>ID: </strong>${response['results'][i].id}</li>`
|
||||
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><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
|
||||
resultArea.innerHTML += addedHtml
|
||||
}
|
||||
|
@ -16,25 +16,25 @@
|
||||
<canvas id="numberOfPhotoByDate" width="8" height="5"></canvas>
|
||||
</div>
|
||||
<br/>
|
||||
<h1>Cat: </h1>
|
||||
<h1>Age: </h1>
|
||||
<div style="width: 800px; margin: 5px auto">
|
||||
<canvas id="numberOfCatBreedPredictionChart" width="8" height="5"></canvas>
|
||||
<canvas id="numberOfAgePredictionChart" width="8" height="5"></canvas>
|
||||
</div>
|
||||
<br/>
|
||||
<div style="width: 800px; margin: 5px auto">
|
||||
<canvas id="numberOfCatBreedFeedbackChart" width="8" height="5"></canvas>
|
||||
<canvas id="numberOfAgeFeedbackChart" width="8" height="5"></canvas>
|
||||
</div>
|
||||
<br/>
|
||||
<h1>Dog: </h1>
|
||||
<h1>Gender: </h1>
|
||||
<div style="overflow-x: auto">
|
||||
<div style="width: 1300px; margin: 5px auto; overflow-x: auto">
|
||||
<canvas id="numberOfDogBreedPredictionChart" width="9" height="5"></canvas>
|
||||
<canvas id="numberOfGenderPredictionChart" width="9" height="5"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div style="overflow-x: auto">
|
||||
<div style="width: 1300px; margin: 5px auto; overflow-x: auto">
|
||||
<canvas id="numberOfDogBreedFeedbackChart" width="9" height="5"></canvas>
|
||||
<canvas id="numberOfGenderFeedbackChart" width="9" height="5"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
@ -42,7 +42,7 @@
|
||||
<div style="width: 800px; margin: 5px auto;">
|
||||
<canvas id="numberOfEmotionPredictionChart" width="9" height="5"></canvas>
|
||||
</div>
|
||||
<br/>
|
||||
<!-- <br/>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-sm-12" style="width: 800px; margin: 5px auto;">
|
||||
<canvas id="catEmotionFeedbackChart" width="9" height="5"></canvas>
|
||||
@ -50,7 +50,12 @@
|
||||
<div class="col-lg-6 col-sm-12" style="width: 800px; margin: 5px auto;">
|
||||
<canvas id="dogEmotionFeedbackChart" width="9" height="5"></canvas>
|
||||
</div>
|
||||
</div> -->
|
||||
<br/>
|
||||
<div style="width: 800px; margin: 5px auto;">
|
||||
<canvas id="numberOfEmotionFeedbackChart" width="9" height="5"></canvas>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
function generalBackgroundColor(number) {
|
||||
@ -208,53 +213,53 @@
|
||||
{#total prediction number#}
|
||||
let ctxForTotalPredictionNumber = document.getElementById('numberOfTotalPrediction').getContext('2d');
|
||||
let totalPredictionNumberData = {
|
||||
"Cat": response['totalNumberOfCatPrediction'],
|
||||
"Dog": response['totalNumberOfDogPrediction']
|
||||
"Total": response['totalNumberOfPrediction'],
|
||||
}
|
||||
let totalPredictionCount = response['totalNumberOfCatPrediction'] + response['totalNumberOfDogPrediction']
|
||||
|
||||
let totalPredictionCount = response['totalNumberOfPrediction']
|
||||
let totalNumberOfPhotoUploaded = response['totalNumberOfPhotoUploaded']
|
||||
drawDoughunt(ctxForTotalPredictionNumber, totalPredictionNumberData, `Total prediction number: ${totalPredictionCount} pets / ${totalNumberOfPhotoUploaded} photos`)
|
||||
drawDoughunt(ctxForTotalPredictionNumber, totalPredictionNumberData, `Total prediction number: ${totalPredictionCount} faces / ${totalNumberOfPhotoUploaded} photos`)
|
||||
|
||||
{#total feedback number#}
|
||||
let ctxForTotalFeedbackNumber = document.getElementById('numberOfTotalFeedback').getContext('2d');
|
||||
let totalFeedbackNumberData = {
|
||||
"Cat": response['totalNumberOfCatFeedback'],
|
||||
"Dog": response['totalNumberOfDogFeedback']
|
||||
"Total": response['totalNumberOfFeedback'],
|
||||
}
|
||||
let totalFeedbackCount = response['totalNumberOfCatFeedback'] + response['totalNumberOfDogFeedback']
|
||||
|
||||
let totalFeedbackCount = response['totalNumberOfFeedback']
|
||||
drawDoughunt(ctxForTotalFeedbackNumber, totalFeedbackNumberData, `Total feedback number: ${totalFeedbackCount}`)
|
||||
|
||||
{#number of photo by date#}
|
||||
let ctxForNumberOfPhotoByDate = document.getElementById('numberOfPhotoByDate').getContext('2d');
|
||||
drawLine(ctxForNumberOfPhotoByDate, response['numberOfPhotoByDate'], 'Number of Photos within a week')
|
||||
|
||||
{#cat breed prediction#}
|
||||
let ctxForCatBreedPredictionNumber = document.getElementById('numberOfCatBreedPredictionChart').getContext('2d');
|
||||
drawVerticalBar(ctxForCatBreedPredictionNumber, response['totalNumberOfCatBreedPrediction'], "Cat breed prediction")
|
||||
{#age prediction#}
|
||||
let ctxForAgePredictionNumber = document.getElementById('numberOfAgedPredictionChart').getContext('2d');
|
||||
drawVerticalBar(ctxForAgePredictionNumber, response['totalNumberOfAgePrediction'], "Age prediction")
|
||||
|
||||
{#cat breed feedback#}
|
||||
let ctxForCatBreedFeedback = document.getElementById('numberOfCatBreedFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForCatBreedFeedback, response['totalNumberOfCatBreedCorrectFeedback'], response['totalNumberOfCatBreedWrongFeedback'], "Cat breed feedback", ['Correct', 'Wrong'])
|
||||
{#age feedback#}
|
||||
let ctxForAgeFeedback = document.getElementById('numberOfAgeFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForAgeFeedback, response['totalNumberOfAgeCorrectFeedback'], response['totalNumberOfAgeWrongFeedback'], "Age feedback", ['Correct', 'Wrong'])
|
||||
|
||||
{#dog breed prediction#}
|
||||
let ctxForDogBreedPredictionNumber = document.getElementById('numberOfDogBreedPredictionChart').getContext('2d');
|
||||
drawVerticalBar(ctxForDogBreedPredictionNumber, response['totalNumberOfDogBreedPrediction'], "Dog breed prediction")
|
||||
{#gender prediction#}
|
||||
let ctxForGenderPredictionNumber = document.getElementById('numberOfGenderPredictionChart').getContext('2d');
|
||||
drawVerticalBar(ctxForGenderPredictionNumber, response['totalNumberOfGenderPrediction'], "Gender prediction")
|
||||
|
||||
{#dog breed feedback#}
|
||||
let ctxForDogBreedFeedback = document.getElementById('numberOfDogBreedFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForDogBreedFeedback, response['totalNumberOfDogBreedCorrectFeedback'], response['totalNumberOfDogBreedWrongFeedback'], "Dog breed feedback", ['Correct', 'Wrong'])
|
||||
{#gender feedback#}
|
||||
let ctxForGenderFeedback = document.getElementById('numberOfGenderFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForGenderFeedback, response['totalNumberOfGenderCorrectFeedback'], response['totalNumberOfGenderWrongFeedback'], "Gender feedback", ['Correct', 'Wrong'])
|
||||
|
||||
{#emotion prediction#}
|
||||
let ctxForEmotionPredictionNumber = document.getElementById('numberOfEmotionPredictionChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForEmotionPredictionNumber, response['totalNumberOfCatEmotionPrediction'], response['totalNumberOfDogEmotionPrediction'], "Emotion prediction", ['Cat', 'Dog'])
|
||||
// drawVerticalStackBar(ctxForEmotionPredictionNumber, response['totalNumberOfEmotionPrediction'], response['totalNumberOfEmotionPrediction'], "Emotion prediction", ['Cat', 'Dog'])
|
||||
|
||||
{#cat emotion feedback#}
|
||||
let ctxForCatEmotionFeedback = document.getElementById('catEmotionFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForCatEmotionFeedback, response['totalNumberOfCatEmotionCorrectFeedback'], response['totalNumberOfCatEmotionWrongFeedback'], "Emotion feedback for cat", ['Correct', 'Wrong'])
|
||||
// {#cat emotion feedback#}
|
||||
// let ctxForCatEmotionFeedback = document.getElementById('catEmotionFeedbackChart').getContext('2d');
|
||||
// drawVerticalStackBar(ctxForCatEmotionFeedback, response['totalNumberOfCatEmotionCorrectFeedback'], response['totalNumberOfCatEmotionWrongFeedback'], "Emotion feedback for cat", ['Correct', 'Wrong'])
|
||||
|
||||
{#dog emotion feedback#}
|
||||
let ctxForDogEmotionFeedback = document.getElementById('dogEmotionFeedbackChart').getContext('2d');
|
||||
drawVerticalStackBar(ctxForDogEmotionFeedback, response['totalNumberOfDogEmotionCorrectFeedback'], response['totalNumberOfDogEmotionWrongFeedback'], "Emotion feedback for dog", ['Correct', 'Wrong'])
|
||||
// {#dog emotion feedback#}
|
||||
// let ctxForDogEmotionFeedback = document.getElementById('dogEmotionFeedbackChart').getContext('2d');
|
||||
// drawVerticalStackBar(ctxForDogEmotionFeedback, response['totalNumberOfDogEmotionCorrectFeedback'], response['totalNumberOfDogEmotionWrongFeedback'], "Emotion feedback for dog", ['Correct', 'Wrong'])
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user