Ejemplo n.º 1
0
 def __init__(self):
     
     self.Helpers = Helpers()
     self.Logging = Logging()
     
     self._confs  = self.Helpers.loadConfigs()
     self.LogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"]+"Client/")
Ejemplo n.º 2
0
class Receiver():
    def __init__(self):

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Local")

        self.OpenCV = OpenCV()

        self.configureSocket()

    def configureSocket(self):

        ###############################################################
        #
        # Configures the socket we will stream the frames to
        #
        ###############################################################

        context = zmq.Context()
        self.tassSocket = context.socket(zmq.SUB)
        self.tassSocket.bind("tcp://*:" + str(self._confs["Socket"]["port"]))
        self.tassSocket.setsockopt_string(zmq.SUBSCRIBE, np.unicode(''))

        self.Helpers.logMessage(
            self.LogFile, "TASS", "INFO",
            "Connected To Socket: tcp://" + self._confs["Socket"]["host"] +
            ":" + str(self._confs["Socket"]["port"]))
Ejemplo n.º 3
0
    def __init__(self):

        self._configs = {}
        self.movidius = None
        self.jumpwayClient = None
        self.cameraStream = None
        self.imagePath = None

        self.mean = 128
        self.std = 1/128

        self.categories = []
        self.graphfile = None
        self.graph = None
        self.reqsize = None

        self.extensions = [
            ".jpg",
            ".png"
        ]

        self.CheckDevices()
        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()
        self.startMQTT()

        print("")
        print("-- Classifier Initiated")
        print("")
Ejemplo n.º 4
0
    def __init__(self):

        self._configs = {}
        self.movidius = None
        self.jumpwayClient = None
        self.OpenCVCapture = None

        self.graphfile = None
        self.graph = None

        self.CheckDevices()
        self.Helpers = Helpers()
        self.OpenCVHelpers = OpenCVHelpers()
        self.FacenetHelpers = FacenetHelpers()
        self._configs = self.Helpers.loadConfigs()
        self.loadRequirements()
        self.startMQTT()

        self.detector = dlib.get_frontal_face_detector()
        self.predictor = dlib.shape_predictor(
            self._configs["ClassifierSettings"]["Dlib"])

        print("")
        print("-- Classifier Initiated")
        print("")
Ejemplo n.º 5
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        # - Helpers: Useful global functions
        # - JumpWay/jumpWayClient: iotJumpWay class and connection
        # - Logging: Logging class
        #
        ###############################################################

        self.isTraining = False
        self.ner = None

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()

        self.user = {}

        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "NLU/")
        self.ChatLogFile = self.Helpers.setLogFile(
            self._confs["aiCore"]["Logs"] + "Chat/")

        self.jumpWay = JumpWay()
        self.jumpWayClient = self.jumpWay.startMQTT()

        self.jumpWayClient.subscribeToDeviceChannel(
            self._confs["iotJumpWay"]["Channels"]["Commands"])
        self.jumpWayClient.deviceCommandsCallback = self.commandsCallback
Ejemplo n.º 6
0
    def __init__(self):

        self.Helpers = Helpers()
        self._confs  = self.Helpers.loadConfigs()

        self.mysqlDbConn = None
        self.mysqlDbCur  = None

        self.mysqlConnect()
Ejemplo n.º 7
0
    def __init__(self):

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Local")

        self.OpenCV = OpenCV()

        self.configureSocket()
Ejemplo n.º 8
0
 def __init__(self):
     
     self.Helpers      = Helpers()
     self.Logging      = Logging()
     self.JumpWayREST  = JumpWayREST()
     
     self._confs       = self.Helpers.loadConfigs()
     self.LogFile      = self.Logging.setLogFile(self._confs["AI"]["Logs"]+"Client/")
     
     self.Logging.logMessage(
         self.LogFile,
         "CLIENT",
         "INFO",
         "GeniSys AI JumpWay REST Client Ready")
Ejemplo n.º 9
0
    def __init__(self, user):

        self.Helpers = Helpers()
        self.Logging = Logging()

        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"] +
                                               "Client/")

        self.apiUrl = self._confs["AI"]["FQDN"] + "/communicate/infer/" + user
        self.headers = {"content-type": 'application/json'}

        self.Logging.logMessage(self.LogFile, "CLIENT", "INFO",
                                "GeniSys AI Client Ready")
Ejemplo n.º 10
0
    def __init__(self):

        self.Helpers = Helpers()
        self.Logging = Logging()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"] +
                                               "NLU/")
        self.ChatLogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"] +
                                                   "Chat/")

        self.Logging.logMessage(self.LogFile, "NLU", "INFO",
                                "NLU Classifier LogFile Set")

        self.startMQTT()
Ejemplo n.º 11
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Foscam")

        self.OpenCV = OpenCV()
Ejemplo n.º 12
0
    def __init__(self):

        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()

        self.addr = "http://"+self._configs["Cameras"][0]["Stream"]+':'+str(self._configs["Cameras"][0]["StreamPort"])
        self.TASSapiUrl = self.addr + '/api/TASS/infer'

        self.content_type = 'image/jpeg'
        self.headers = {'content-type': self.content_type}

        print("-- Client Initiated")

        self.testTASS()
Ejemplo n.º 13
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements
        #
        # - Helpers: Useful global functions
        # - Data: Data functions
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()

        self.Data = Data()
Ejemplo n.º 14
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements
        #
        # - Helpers: Useful global functions
        # - LancasterStemmer: Word stemmer
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()

        self.stemmer = LancasterStemmer()
Ejemplo n.º 15
0
    def __init__(self, jumpWay):

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "Train/")

        self.jumpwayCl = jumpWay

        self.intentMap = {}
        self.words = []
        self.classes = []
        self.dataCorpus = []

        self.Model = Model()
        self.Data = Data()
Ejemplo n.º 16
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        # - Helpers: Useful global functions
        # - Logging: Logging class
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "GeniSys/")
Ejemplo n.º 17
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Local")

        self.MySql = MySql()

        self.OpenCV = OpenCV()
        self.OCVframe = None
        self.font = cv2.FONT_HERSHEY_SIMPLEX
        self.fontColor = (255, 255, 255)
        self.fontScale = 1
        self.lineType = 1
        self.identified = 0

        self.Facenet = Facenet()

        self.movidius, self.devices, self.device = self.Facenet.CheckDevices()
        self.fgraph, self.fgraphfile = self.Facenet.loadGraph(
            "Facenet", self.movidius)

        self.validDir = self._confs["Classifier"]["NetworkPath"] + self._confs[
            "Classifier"]["ValidPath"]
        self.testingDir = self._confs["Classifier"][
            "NetworkPath"] + self._confs["Classifier"]["TestingPath"]

        self.detector = dlib.get_frontal_face_detector()
        self.predictor = dlib.shape_predictor(
            self._confs["Classifier"]["Dlib"])

        self.connectToCamera()

        self.tassSocket = None
        self.configureSocket()

        self.JumpWay = JumpWay()
        self.JumpWayCL = self.JumpWay.startMQTT()

        self.Helpers.logMessage(self.LogFile, "TASS", "INFO", "TASS Ready")
Ejemplo n.º 18
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Foscam")

        self.OpenCV = OpenCV()
        self.OpenCVCapture = None

        self.configureSocket()
Ejemplo n.º 19
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders 
        # needed for the MySql connection. 
        #
        # - Helpers: Useful global functions
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs  = self.Helpers.loadConfigs()

        self.mysqlDbConn = None
        self.mysqlDbCur  = None

        self.mysqlConnect()
Ejemplo n.º 20
0
    def __init__(self):

        self._configs = {}
        self.movidius = None
        self.jumpwayClient = None

        self.graphfile = None
        self.graph = None

        self.CheckDevices()
        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()
        self.loadRequirements()
        self.startMQTT()

        print("")
        print("-- Classifier Initiated")
        print("")
Ejemplo n.º 21
0
    def __init__(self):

        self._configs = {}
        self.movidius = None
        self.cameraStream = None
        self.imagePath = None

        self.mean = 128
        self.std = 1 / 128

        self.categories = []
        self.fgraphfile = None
        self.fgraph = None
        self.reqsize = None

        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()

        print("-- Server Initiated")
Ejemplo n.º 22
0
class Humans():
    
    def __init__(self):
        
        self.Helpers      = Helpers()
        self.Logging      = Logging()
        self.JumpWayREST  = JumpWayREST()
        
        self._confs       = self.Helpers.loadConfigs()
        self.LogFile      = self.Logging.setLogFile(self._confs["AI"]["Logs"]+"Client/")
        
        self.Logging.logMessage(
            self.LogFile,
            "CLIENT",
            "INFO",
            "GeniSys AI JumpWay REST Client Ready")
        
    def getHumanByFace(self, response):

        data          = {}
        headers       = {'content-type': 'application/json'}
        cameraEnpoint = self._confs["iotJumpWay"]["API"]["REST"] + "/TASS/0_1_0/checkCamera"
        
        self.Logging.logMessage(
            self.LogFile,
            "HUMANS",
            "INFO",
            "Checking Camera...")
            
        response = self.JumpWayREST.apiCall(
                                        cameraEnpoint, 
                                        data, 
                                        headers)
                            
        self.Logging.logMessage(
            self.LogFile,
            "CLIENT",
            "OK",
            "Response: "+str(response)) 

        if response["Response"] == "OK":
            
            responseLength = len(response["ResponseData"])

            if responseLength == 1:
                message = "I detected " + str(responseLength) + " human, " + response["ResponseData"][0]["userid"]
            else:
                message = "I detected " + str(responseLength) + " humans, "

            return message

        else:
            
            return response["ResponseMessage"]
Ejemplo n.º 23
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        # - Helpers: Useful global functions
        # - Logging: Logging class
        # - LancasterStemmer: Word stemmer
        #
        ###############################################################

        self.ignore = [',', '.', '!', '?']

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "JumpWay/")

        self.LancasterStemmer = LancasterStemmer()
Ejemplo n.º 24
0
    def __init__(self, jumpWay):

        self.Helpers = Helpers()
        self.Logging = Logging()
        self.jumpwayCl = jumpWay

        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"] +
                                               "Train/")

        self.Logging.logMessage(self.LogFile, "LogFile", "INFO",
                                "NLU Trainer LogFile Set")

        self.Model = Model()
        self.Data = Data(self.Logging, self.LogFile)
        self.intentMap = {}
        self.words = []
        self.classes = []
        self.dataCorpus = []

        self.setupData()
        self.setupEntities()
Ejemplo n.º 25
0
class Receiver():
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Foscam")

        self.OpenCV = OpenCV()
        self.OpenCVCapture = None

        self.configureSocket()

    def configureSocket(self):

        ###############################################################
        #
        # Configures and connects to the socket.
        #
        ###############################################################

        context = zmq.Context()
        self.tassSocket = context.socket(zmq.SUB)
        self.tassSocket.bind("tcp://*:" + str(self._confs["Socket"]["port"]))
        self.tassSocket.setsockopt_string(zmq.SUBSCRIBE, np.unicode(''))

        self.Helpers.logMessage(
            self.LogFile, "Streamer", "INFO",
            "Connected To Socket: tcp://" + self._confs["Socket"]["host"] +
            ":" + str(self._confs["Socket"]["port"]))
Ejemplo n.º 26
0
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        # needed for the NLU engine to run.
        #
        # - Helpers: Useful global functions
        # - JumpWay/jumpWayClient: iotJumpWay class and connection
        # - Logging: Logging class
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()

        self.JumpWay = JumpWay()

        self.MySql = MySql()
        self.MySql.setMysqlCursorRows()

        self.Logging = Logging()
        self.LogFile = self.Logging.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "Client/")
Ejemplo n.º 27
0
class Server():
    def __init__(self):

        self._configs = {}
        self.movidius = None
        self.cameraStream = None
        self.imagePath = None

        self.mean = 128
        self.std = 1 / 128

        self.categories = []
        self.fgraphfile = None
        self.fgraph = None
        self.reqsize = None

        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()

        print("-- Server Initiated")

    def CheckDevices(self):

        #mvnc.SetGlobalOption(mvnc.GlobalOption.LOGLEVEL, 2)
        devices = mvnc.EnumerateDevices()
        if len(devices) == 0:
            print('!! WARNING! No Movidius Devices Found !!')
            quit()

        self.movidius = mvnc.Device(devices[0])
        self.movidius.OpenDevice()

        print("-- Movidius Connected")

    def allocateGraph(self, graphfile, graphID):

        self.fgraph = self.movidius.AllocateGraph(graphfile)

    def loadRequirements(self, graphID):

        with open(self._configs["ClassifierSettings"]["NetworkPath"] +
                  self._configs["ClassifierSettings"]["Graph"],
                  mode='rb') as f:

            self.fgraphfile = f.read()

        self.allocateGraph(self.fgraphfile, "TASS")
        print("-- Allocated TASS Graph OK")
Ejemplo n.º 28
0
class JumpWayREST():
    
    def __init__(self):
        
        self.Helpers = Helpers()
        self.Logging = Logging()
        
        self._confs  = self.Helpers.loadConfigs()
        self.LogFile = self.Logging.setLogFile(self._confs["AI"]["Logs"]+"Client/")

    def createHashMac(self, secret, data):
        
        return hmac.new(bytearray(secret.encode("utf-8")), data.encode("utf-8"), digestmod=hashlib.sha256).hexdigest()

    def apiCall(self, apiUrl, data, headers): 
        
        self.Logging.logMessage(
            self.LogFile,
            "JUMPWAY",
            "INFO",
            "Sending JumpWay REST Request")

        response = requests.post(
                        apiUrl, 
                        data=json.dumps(data), 
                        headers=headers, 
                        auth=HTTPBasicAuth(
                                    self._confs["iotJumpWay"]["App"], 
                                    self.createHashMac(
                                                self._confs["iotJumpWay"]["API"]["Secret"],
                                                self._confs["iotJumpWay"]["API"]["Secret"]))) 

        output = json.loads(response.content)
        
        self.Logging.logMessage(
            self.LogFile,
            "JUMPWAY",
            "INFO",
            "JumpWay REST Response Received: " + str(output))

        return output
Ejemplo n.º 29
0
class Client():

    def __init__(self):

        self.Helpers = Helpers()
        self._configs = self.Helpers.loadConfigs()

        self.addr = "http://"+self._configs["Cameras"][0]["Stream"]+':'+str(self._configs["Cameras"][0]["StreamPort"])
        self.TASSapiUrl = self.addr + '/api/TASS/infer'

        self.content_type = 'image/jpeg'
        self.headers = {'content-type': self.content_type}

        print("-- Client Initiated")

        self.testTASS()

    def testTASS(self): 

        print("-- Using TASS Facenet Classification")
        print("")

        testingDir  = self._configs["ClassifierSettings"]["NetworkPath"] + self._configs["ClassifierSettings"]["TestingPath"]

        for test in os.listdir(testingDir):

            print("-- Testing Dir: "+testingDir)
            
            if test.endswith('.jpg') or test.endswith('.jpeg') or test.endswith('.png') or test.endswith('.gif'):
                
                print("-- Sending "+testingDir+test)
                self.sendImage(testingDir+test,"TASS")
                print("")
                    
    def sendImage(self, image, model):

        img = cv2.imread(image)
        _, img_encoded = cv2.imencode('.png', img)
        response = requests.post(self.TASSapiUrl, data=img_encoded.tostring(), headers=self.headers)

        print(json.loads(response.text))
Ejemplo n.º 30
0
class Streamer():
    def __init__(self):

        ###############################################################
        #
        # Sets up all default requirements and placeholders
        #
        ###############################################################

        self.Helpers = Helpers()
        self._confs = self.Helpers.loadConfigs()
        self.LogFile = self.Helpers.setLogFile(self._confs["aiCore"]["Logs"] +
                                               "/Local")

        self.MySql = MySql()

        self.OpenCV = OpenCV()
        self.OCVframe = None
        self.font = cv2.FONT_HERSHEY_SIMPLEX
        self.fontColor = (255, 255, 255)
        self.fontScale = 1
        self.lineType = 1
        self.identified = 0

        self.Facenet = Facenet()

        self.movidius, self.devices, self.device = self.Facenet.CheckDevices()
        self.fgraph, self.fgraphfile = self.Facenet.loadGraph(
            "Facenet", self.movidius)

        self.validDir = self._confs["Classifier"]["NetworkPath"] + self._confs[
            "Classifier"]["ValidPath"]
        self.testingDir = self._confs["Classifier"][
            "NetworkPath"] + self._confs["Classifier"]["TestingPath"]

        self.detector = dlib.get_frontal_face_detector()
        self.predictor = dlib.shape_predictor(
            self._confs["Classifier"]["Dlib"])

        self.connectToCamera()

        self.tassSocket = None
        self.configureSocket()

        self.JumpWay = JumpWay()
        self.JumpWayCL = self.JumpWay.startMQTT()

        self.Helpers.logMessage(self.LogFile, "TASS", "INFO", "TASS Ready")

    def connectToCamera(self):

        ###############################################################
        #
        # Connects to the Foscam device using the configs in
        # required/confs.json
        #
        ###############################################################

        self.OCVframe = cv2.VideoCapture(0)

        self.Helpers.logMessage(self.LogFile, "TASS", "INFO",
                                "Connected To Camera")

    def configureSocket(self):

        ###############################################################
        #
        # Configures the socket we will stream the frames to
        #
        ###############################################################

        self.tassSocket = zmq.Context().socket(zmq.PUB)
        self.tassSocket.connect("tcp://" + self._confs["Socket"]["host"] +
                                ":" + str(self._confs["Socket"]["port"]))

        self.Helpers.logMessage(
            self.LogFile, "TASS", "INFO",
            "Connected To Socket: tcp://" + self._confs["Socket"]["host"] +
            ":" + str(self._confs["Socket"]["port"]))