Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

scanner.py 3.8 KB

You have to be logged in to leave a comment. Sign In
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  1. """
  2. Description::
  3. """
  4. import cv2
  5. from detectors_adapt import FaceDetector
  6. import os
  7. import sys
  8. import pca
  9. import pandas as pd
  10. import time
  11. import classifier_nn
  12. #import confusion_matrix as cm
  13. import components
  14. import learning_curve as lc
  15. #import plot_precision as pp
  16. def set_trace():
  17. """A Poor mans break point"""
  18. # without this in iPython debugger can generate strange characters.
  19. from IPython.core.debugger import Pdb
  20. Pdb().set_trace(sys._getframe().f_back)
  21. def combine_class_arrays(list1, list2):
  22. df1 = pd.DataFrame(list1)
  23. df2 = pd.DataFrame(list2)
  24. df = pd.concat([df1, df2])
  25. return df
  26. def main():
  27. st = time.time()
  28. sample1 = []
  29. labels1 = []
  30. sample2 = []
  31. labels2 = []
  32. for filename in os.listdir('C:\Thesis111217\CriminalClassifier\static\\Men_crim_300'):
  33. image = cv2.imread(
  34. 'C:\Thesis111217\CriminalClassifier\static\\Men_crim_300\\' + filename)
  35. try:
  36. grey_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  37. except:
  38. set_trace()
  39. # cv2.imwrite('bad2_grey.png', grey_image)
  40. face_casc = 'haarcascade_frontalface_default.xml'
  41. left_eye_casc = 'haarcascade_lefteye_2splits.xml'
  42. right_eye_casc = 'haarcascade_righteye_2splits.xml'
  43. faces = FaceDetector(face_casc, left_eye_casc, right_eye_casc)
  44. success1, frame, head = faces.detect(image)
  45. if success1:
  46. success2, head = faces.align_head(head)
  47. if success2:
  48. sample1.append(head.flatten())
  49. # labels1.append('criminal')
  50. labels1.append(1)
  51. else:
  52. pass
  53. else:
  54. pass
  55. counter = 0
  56. for filename in os.listdir('C:\Thesis111217\CriminalClassifier\static\\Women_non_300'):
  57. counter += 1
  58. image = cv2.imread('C:\Thesis111217\CriminalClassifier\static\\Women_non_300\\' + filename)
  59. grey_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  60. # cv2.imwrite('bad2_grey.png', grey_image)
  61. face_casc = 'haarcascade_frontalface_default.xml'
  62. left_eye_casc = 'haarcascade_lefteye_2splits.xml'
  63. right_eye_casc = 'haarcascade_righteye_2splits.xml'
  64. faces = FaceDetector(face_casc, left_eye_casc, right_eye_casc)
  65. success1, frame, head = faces.detect(image)
  66. if success1:
  67. success2, head = faces.align_head(head)
  68. if success2:
  69. sample2.append(head.flatten())
  70. # labels2.append('Non-criminal')
  71. labels2.append(0)
  72. else:
  73. pass
  74. else:
  75. pass
  76. df1 = combine_class_arrays(sample1, sample2)
  77. print 'length (Criminals): ', len(sample1)
  78. print 'length (Non-Criminals): ', len(sample2)
  79. y = combine_class_arrays(labels1, labels2)
  80. y = y.rename(columns={0: 'Class'})
  81. # pca_opt = components.graph_pca(df1)
  82. pca_opt = 300
  83. x_reduced = pca.perform_pca(df1, pca_opt)
  84. x_reduced = pd.DataFrame(x_reduced)
  85. y = y.reset_index(drop=True)
  86. full = pd.concat([x_reduced, y], axis=1)
  87. x, y, validation = classifier_nn.get_traintest_validation_split(full)
  88. set_trace()
  89. classifier_nn.manual_ann2(x, y, validation, pca_opt)
  90. # lc.get_learning_curve(x, y)
  91. # cm.svm_classifier(x, y, validation)
  92. #classifier_nn.perform_logistic_regression(x, y)
  93. # classifier_nn.ann_k_fold_validation(x, y)
  94. # classifier_nn.ann_with_dropout(x, y)
  95. #confusion_matrix.confusion_matrix(df)
  96. # pp.plot_precision_curve(x, y)
  97. #learning_curve.plot_learning_curve(df1, x)
  98. print ('Process execution took {0} seconds'.format(round(time.time() - st),0))
  99. if __name__ == "__main__":
  100. main()
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...