This repository has been archived by the owner on May 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_classifier.py
58 lines (50 loc) · 1.88 KB
/
test_classifier.py
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
import bottle
import image_util
from nsfw_classifier import NsfwClassifier
from face_detector import FaceDetector
import classifier_webapi
import time
import webtest
class TestClassifier:
nsfw_classifier = NsfwClassifier()
face_detector = FaceDetector()
def _local(self, image):
t0 = time.time_ns() / 1000000
image = image_util.load_image(image)
t1 = time.time_ns() / 1000000
nsfw = self.nsfw_classifier.classify(image)[0]
t2 = time.time_ns() / 1000000
faces = self.face_detector.detect(image)[0]
t3 = time.time_ns() / 1000000
print("")
print("Image loaded in {:0.0f} ms".format(t1 - t0))
print("NSFW classified in {:0.0f} ms".format(t2 - t1))
print("Faces detected in {:0.0f} ms".format(t3 - t2))
print("NSFW: {}".format(nsfw))
print("Faces: {}".format(faces))
return nsfw, faces
def test_local_sfw_noface(self):
(nsfw, faces) = self._local('images/test1.jpg')
assert nsfw['sfw']
assert nsfw['sfw_definite']
assert len(faces) == 0
# def test_local_sfw_oneface(self):
# (nsfw, faces) = self._local('images/test2.jpg')
# assert nsfw['sfw']
# assert nsfw['sfw_definite']
# assert len(faces) == 1
# def test_local_sfw_twofaces(self):
# (nsfw, faces) = self._local('images/test3.jpg')
# assert nsfw['sfw']
# assert nsfw['sfw_definite']
# assert len(faces) == 2
def test_server(self):
app = classifier_webapi.get_app(self.nsfw_classifier, self.face_detector)
bottle.debug(True)
test_app = webtest.TestApp(app)
response = test_app.post("/ica/v1/classify", upload_files=[
('image', "images/test1.jpg")
])
assert response.json['sfw']
assert response.json['sfw_definite']
assert len(response.json['faces']) == 0