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]
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
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
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]
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]
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]