Exemplo n.º 1
0
 def apply_processor(self, data_chunks):
     image_np = data_chunks[0].data[0].value
     data_chunk = GeneralDataChunk(self.name,
                                   self.type,
                                   self.config.parameters,
                                   hidden=self.config.hidden)
     if not self.config.is_valid():
         status = ProcessorStatus(100)
         data_chunk.add_status(status)
         logging.warning('Processor ' + self.name + ' (' + self.type +
                         '): no execution, invalid configuration')
         return data_chunk
     batched_image_np = tf.expand_dims(image_np, axis=0)
     try:
         value = self.tf_model.predict(batched_image_np).flatten().tolist()
         status = ProcessorStatus(0)
         data_type = 'diverse'
         data_chunk.add_status(status)
         data_chunk.add_data(
             DataChunkValue('inference_result', value, data_type))
         logging.info('Processor ' + self.name + ' (' + self.type +
                      '): execution successful')
     except Exception:
         status = ProcessorStatus(99)
         data_chunk.add_status(status)
         logging.warning('Processor ' + self.name + ' (' + self.type +
                         '): error during execution')
     return [data_chunk]
Exemplo n.º 2
0
 def apply_processor(self, chunks: list):
     result_chunks = []
     for chunk in chunks:
         if chunk.chunk_type in [
                 'local_camera_cv2', 'baumer_camera_neoapi', 'image_resize',
                 'image_crop'
         ]:
             new_name = chunk.name + '_' + self.name
             data_chunk = GeneralDataChunk(new_name,
                                           self.type,
                                           self.config.parameters,
                                           hidden=self.config.hidden)
             if not self.config.is_valid():
                 status = ProcessorStatus(100)
                 data_chunk.add_status(status)
                 logging.warning('Processor ' + self.name + ' (' +
                                 self.type +
                                 '): no execution, invalid configuration')
                 continue
             width = int(self.width)
             height = int(self.height)
             dim = (width, height)
             cv2_interpolation = eval(f'cv2.{self.interpolation}')
             try:
                 image_np = chunk.data[0].value
                 value = cv2.resize(image_np,
                                    dim,
                                    interpolation=cv2_interpolation)
                 status = ProcessorStatus(0)
                 data_type = 'image'
                 data_chunk.add_status(status)
                 data_chunk.add_data(
                     DataChunkImage('frame', value, data_type))
                 logging.info('Processor ' + self.name + ' (' + self.type +
                              '): execution successful')
             except Exception:
                 status = ProcessorStatus(99)
                 data_chunk.add_status(status)
                 logging.warning('Processor ' + self.name + ' (' +
                                 self.type + '): error during execution')
             result_chunks.append(data_chunk)
         else:
             result_chunks.append(chunk)
     return result_chunks
Exemplo n.º 3
0
    def parse_data_chunks(self, json):
        data_chunks = []

        for data_chunk_name, data_chunk_content in json.items():
            name = data_chunk_content['name']
            chunk_type = data_chunk_content['type']
            parameters = data_chunk_content['parameters']
            data_chunk = GeneralDataChunk(name,
                                          chunk_type,
                                          parameters,
                                          hidden=self.config.hidden)
            [
                data_chunk.add_data(data_chunk_data)
                for data_chunk_data in self.parse_data(data_chunk_content)
            ]

            data_chunks.append(data_chunk)

        return data_chunks
Exemplo n.º 4
0
    def apply_processor(self, chunks):
        result_chunks = []
        for chunk in chunks:
            if chunk.chunk_type in [
                    'local_camera_cv2', 'baumer_camera_neoapi', 'image_resize',
                    'image_crop'
            ]:
                new_name = chunk.name + '_' + self.name
                data_chunk = GeneralDataChunk(new_name,
                                              self.type,
                                              self.config.parameters,
                                              hidden=self.config.hidden)
                if not self.config.is_valid():
                    status = ProcessorStatus(100)
                    data_chunk.add_status(status)
                    logging.warning('Processor ' + self.name + ' (' +
                                    self.type +
                                    '): no execution, invalid configuration')
                    continue
                x_end = int(self.x_init + self.x_diff)
                y_end = int(self.y_init + self.y_diff)

                try:
                    image_np = chunk.data[0].value
                    value = image_np[self.x_init:x_end, self.y_init:y_end, :]
                    status = ProcessorStatus(0)
                    data_type = 'image'
                    data_chunk.add_status(status)
                    data_chunk.add_data(
                        DataChunkImage('frame', value, data_type))
                    logging.info('Processor ' + self.name + ' (' + self.type +
                                 '): execution successful')
                except Exception:
                    status = ProcessorStatus(99)
                    data_chunk.add_status(status)
                    logging.warning('Processor ' + self.name + ' (' +
                                    self.type + '): error during execution')
                result_chunks.append(data_chunk)
            else:
                result_chunks.append(chunk)
        return result_chunks
 def retrieve_data(self):
     data_chunk = GeneralDataChunk(self.name,
                                   self.type,
                                   self.config.parameters,
                                   hidden=self.config.hidden)
     data_type = 'diverse'
     data_chunk.add_data(
         DataChunkValue('static_value', self.config.parameters['value'],
                        data_type))
     for metadata_variable, metadata_value in self.config.metadata.items():
         data_chunk.add_metadata(
             MetadataChunkData(metadata_variable, metadata_value))
     return [data_chunk]
Exemplo n.º 6
0
    def retrieve_data(self):
        data_chunk = GeneralDataChunk(self.name,
                                      self.type,
                                      self.config.parameters,
                                      hidden=self.config.hidden)

        if self.config.is_valid():
            value = self.poll_node()
            data_type = 'diverse'
            if value is None:
                status = OPCUAReadStatus(99)
                data_chunk.add_status(status)
            else:
                status = OPCUAReadStatus(0)
                data_chunk.add_status(status)
                data_chunk.add_data(
                    DataChunkValue('opcua_value', value, data_type))
        else:
            status = OPCUAReadStatus(100)
            data_chunk.add_status(status)
            print('Step %s : No execution due to invalid configuration' %
                  self.name)

        for metadata_variable, metadata_value in self.config.metadata.items():
            data_chunk.add_metadata(
                MetadataChunkData(metadata_variable, metadata_value))
        return [data_chunk]
    def retrieve_data(self):
        data_chunk = GeneralDataChunk(self.name,
                                      self.type,
                                      self.config.parameters,
                                      hidden=self.config.hidden)

        if not self.config.is_valid():
            status = CapturingStatus(100)
            data_chunk.add_status(status)
            print('Step %s : No execution due to invalid configuration' %
                  self.name)
            return [data_chunk]

        if not self.camera_status.initialised:
            self.connect()

        timestamp = MetadataChunkData('timestamp', get_timestamp())
        data_chunk.add_metadata(timestamp)

        if not self.camera_status.initialised:
            status = CapturingStatus(1)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]

        if self.camera_status.capturing:
            status = CapturingStatus(2)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]

        self.camera_status.capturing = True
        if DEBUG:
            print('Connect')
            self.camera_status.initialised = True
            frame_raw = True
            frame_np = np.random.rand(640, 480, 3)
        else:
            frame_raw = self.camera_object.GetImage(GET_IMAGE_TIMEOUT)
            frame_shape = frame_raw.shape
            frame_colormap = 'BGR'
            frame_np = frame_raw.GetNPArray()

        self.camera_status.capturing = False

        if frame_raw is not None:
            data_chunk.add_data(DataChunkImage('frame', frame_np,
                                               'base64_png'))

            status = CapturingStatus(0)
            data_chunk.add_status(status)
            logging.warning(status.get_message())

            data_chunk.add_metadata(MetadataChunkData('colormap', 'BGR'))
            data_chunk.add_metadata(MetadataChunkData('shape', frame_np.shape))
            for metadata_variable, metadata_value in self.config.metadata.items(
            ):
                data_chunk.add_metadata(
                    MetadataChunkData(metadata_variable, metadata_value))
            return [data_chunk]
        else:
            status = CapturingStatus(99)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]
Exemplo n.º 8
0
    def retrieve_data(self):
        data_chunk = GeneralDataChunk(self.name,
                                      self.type,
                                      self.config.parameters,
                                      hidden=self.config.hidden)

        if not self.config.is_valid():
            status = CapturingStatus(100)
            data_chunk.add_status(status)
            print('Step %s : No execution due to invalid configuration' %
                  self.name)
            return [data_chunk]

        if not self.camera_status.initialised:
            self.connect()

        timestamp = MetadataChunkData('timestamp', get_timestamp())
        data_chunk.add_metadata(timestamp)

        if not self.camera_status.initialised:
            status = CapturingStatus(1)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]

        if self.camera_status.capturing:
            status = CapturingStatus(2)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]

        self.camera_status.capturing = True
        captured, frame_np = self.camera_object.read()
        self.camera_status.capturing = False

        if captured:
            data_chunk.add_data(DataChunkImage('frame', frame_np,
                                               'base64_png'))

            status = CapturingStatus(0)
            data_chunk.add_status(status)
            logging.warning(status.get_message())

            data_chunk.add_metadata(MetadataChunkData('colormap', 'BGR'))
            data_chunk.add_metadata(MetadataChunkData('shape', frame_np.shape))
            for metadata_variable, metadata_value in self.config.metadata.items(
            ):
                data_chunk.add_metadata(
                    MetadataChunkData(metadata_variable, metadata_value))
            return [data_chunk]
        else:
            status = CapturingStatus(99)
            data_chunk.add_status(status)
            logging.warning(status.get_message())
            self.camera_status.initialised = False
            return [data_chunk]