-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
108 lines (85 loc) · 2.37 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
WEB_FACE_RECOGNITION_DIR=$(PWD)
WEB_FACE_RECOGNITION_DOCKERFILE=$(WEB_FACE_RECOGNITION_DIR)/Dockerfile
WEB_FACE_RECOGNITION_IMAGE=web_face_recognition
DOCKER_BUILD_FLAGS=--rm
DATASETDIR := $(PWD)/dataset
TESTSETDIR := $(PWD)/testset
MODELSETDIR := $(PWD)/modelset
BACKUP_FILENAME := backup-$(shell date +"%Y-%m-%d").zip
TMPDIR := $${TMPDIR:-/dev/shm/web_face_recognition}
.PHONY: build run run-dev stop status stop clean rmi rmi-all train terminal
# All production environment tasks
all:
@make standard
@make encoding
@make train
@make run
# SVM training
all-svm:
@make standard
@make encoding
@make train-svm
@make run
all-dbscan:
@make standard
@make encoding-raw
@make clean-clusters
@make train-dbscan
@make clustering
@make encoding-clusters
@make pred-dbscan
# All development environment tasks
all-dev:
@make standard
@make encoding
@make train-svm
@make run-dev
# Run production environment
run: $(MODELSETDIR)/*.clf
@python3 src/app.py
# Remove files
clean-data:
@echo 'cleaning..'
rm -rf $(DATASETDIR)/*
rm -rf $(TESTSETDIR)/*
rm -rf $(MODELSETDIR)/*
# Backing up $DATASETDIR, $MODELSETDIR, $TESTSETDIR
backup:
@mkdir -p $(TMPDIR) ;\
cp -r dataset-raw $(DATASETDIR) $(MODELSETDIR) $(TESTSETDIR) $(TMPDIR) ;\
cd $(TMPDIR) ;\
zip -r $(BACKUP_FILENAME) * ;\
mv $(BACKUP_FILENAME) $${OLDPWD} ;\
cd $${OLDPWD};\
rm -rf $(TMPDIR)
# Extract face encodings from $DATASETDIR images and save it in encodings.csv
encoding:
@echo "Extracting faces encodings..."
@python3 src/encoding.py
# Train all the face recognition models
train: $(DATASETDIR)/encodings.csv
@python3 src/training_svm.py
@python3 src/training_knn.py
# Train the knn model
train-knn: $(DATASETDIR)/encodings.csv
@python3 src/training_knn.py
# Train the svm model
train-svm: $(DATASETDIR)/encodings.csv
@python3 src/training_svm.py
# standard => encoding-raw => train-dbscan => clustering => encoding-clusters
standard:
@bash standard.sh
clean-clusters:
@rm -rf ./dataset-clusters/*
encoding-raw: dataset-raw/*.jpeg
@python3 src/encoding.py raw
train-dbscan: dataset-raw/encodings.csv
@python3 src/training_dbscan.py
clustering: dataset-clusters/clusters.csv
@python3 src/clustering.py
encoding-clusters:
@python3 src/encoding.py clusters
test-clusters:
@make standard encoding-raw clean-clusters train-dbscan clustering encoding-clusters
pred-dbscan:
@python3 src/prediction_dbscan.py