Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. import pyodbc
  2. from neuro import Neuro
  3. from frame import Frame
  4.  
  5. server = '10.0.0.43'
  6. database = 'mb'
  7. username = 'usrMB'
  8. password = 'asdqaz'
  9.  
  10.  
  11. class Processing(object):
  12. def __init__(self, save_path, sqr_percent):
  13. self.save_path = save_path
  14.  
  15. self.sqr_percent = sqr_percent
  16.  
  17. self.conn = pyodbc.connect('DSN=MSSQL;UID=usrMB;PWD=asdqaz')
  18.  
  19. self.cam_zone_command = "SELECT id_cam, id_type_zone, sensitivity, x1, y1 ,x2, y2, x3, y3, x4, y4 " \
  20. "FROM CamZones WHERE id_cam = %s AND id_type_zone IN (SELECT id_type_zone FROM TypesProcessingZone WHERE id_type_proces$
  21.  
  22. self.sql_command = 'SELECT id, id_video, shopNo, date_add, id_cam, id_type_processing, data_processing, alarm ' \
  23. 'FROM TasksForAnalisis WHERE id_type_processing = 1'
  24.  
  25. self.update_task_alarm = "UPDATE TasksForAnalisis SET alarm = %s WHERE id = %s"
  26.  
  27. self.insert_to_detected = "INSERT INTO DetectedObjects(ID_task_for_analisis,ID_type_object,X1,Y1,X2,Y2) " \
  28. "VALUES (%s,%s,%s,%s,%s,%s)"
  29.  
  30. self.times_for_video = "SELECT link_download FROM times_for_video WHERE id = %s"
  31.  
  32. def close_connection(self):
  33. self.conn.close()
  34.  
  35. def get_db_version(self):
  36. cursor = self.conn.cursor()
  37. cursor.execute("SELECT @@version;")
  38. row = cursor.fetchone()
  39. while row:
  40. print(row)
  41. break
  42.  
  43. def get_thresh_interest_zones(self, cursor, sql_str):
  44. interest_zones = []
  45. yolo_threshs = []
  46. yolo_thresh = 0.13
  47. cursor.execute(sql_str)
  48. for row in cursor.fetchall():
  49. print('SUBQUERY:', row)
  50. yolo_threshs.append(row[2])
  51. zone = []
  52.  
  53. zone.append(row[3])
  54. zone.append(row[4])
  55. zone.append(row[5])
  56. zone.append(row[6])
  57.  
  58. zone.append(row[7])
  59. zone.append(row[8])
  60. zone.append(row[9])
  61. zone.append(row[10])
  62. interest_zones.append(zone)
  63. print("ZONES_INTEREST:", interest_zones)
  64. if len(yolo_threshs) > 0:
  65. yolo_thresh = min([float(t) for t in yolo_threshs])
  66. return yolo_thresh, interest_zones
  67.  
  68.  
  69. def process(self):
  70. self.neuro_network = Neuro()
  71.  
  72. cursor = self.conn.cursor()
  73. cursor.execute(self.sql_command)
  74. results = cursor.fetchall()
  75. for result in results:
  76. print("MAIN:", result)
  77. id_task, id_video = result[0], result[1]
  78. # по иден?^?и?^?ика?^?о?^??^? видео в?^??^?а?^?им ?^??^??^?лк?^? на ?^?ка?^?ивание
  79. cursor.execute(self.times_for_video % id_video)
  80. link_for_download = cursor.fetchone()[0]
  81. print('Link for download', link_for_download)
  82. if link_for_download is None or link_for_download == '':
  83. print('Not valid link, continue')
  84. continue
  85. # е?^?ли ?^??^??^?лка на ?^?ка?^?ивание не п?^??^??^?а, ?^?ка?^?аем ?^?айл
  86. file_name = 'temp.jpg'
  87. if not Frame.download_frame(link_for_download, file_name):
  88. print('Image not downloaded, continue')
  89. continue
  90. # в?^??^?а?^?им из ?^?абли?^??^? CamZones ин?^?о?^?ма?^?и?^? о по?^?оге и зона?^? ин?^?е?^?е?^?а
  91. id_cam, id_type_processing = result[4], result[5]
  92. print("id_cam", id_cam, " id_type_processing", id_type_processing)
  93. sql_cam_zones = self.cam_zone_command % (id_cam)
  94. yolo_thresh, interest_zones = self.get_thresh_interest_zones(cursor, sql_cam_zones)
  95. print("yolo_thresh", yolo_thresh)
  96. print("interest_zones", interest_zones)
  97. import os
  98. images, frames = Frame.image_treatment(os.getcwd()+'/'+file_name, self.save_path, interest_zones, yolo_thresh,
  99. self.sqr_percent)
  100. print("images", images)
  101. print('frames', frames)
  102. alarm = 0
  103. for i in range(len(images)):
  104. p = self.neuro_network.predict(images[i])
  105. print('predict:', p, self.neuro_network.get_real_class_name_by_number(p))
  106. if self.neuro_network.is_alarm_class(p):
  107. alarm = 1
  108. id_type_object = self.neuro_network.our_class_db_mapper(p)
  109. insert = self.insert_to_detected % (id_task, id_type_object, frames[i][0], frames[i][1], frames[i][2], frames[i][3])
  110. cursor.execute(insert)
  111. self.conn.commit()
  112. cursor.execute(self.update_task_alarm % (alarm, id_task))
  113. self.conn.commit()
  114. print("end of processing")
  115.  
  116. if __name__ == '__main__':
  117. p = Processing('/home/user1/', 40)
  118. p.get_db_version()
  119. p.process()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement