def run(self, device): if not get_property_value(self, "file_path"): raise RuntimeError(f"No file path specified in {self.name} node!") self.cap = cv2.VideoCapture(get_property_value(self, "file_path")) while self._running and self.cap.isOpened(): read_correctly, frame = self.cap.read() if read_correctly: print("sending video frame...") self.send("frame", frame) print("video frame sent...") time.sleep(0.01)
def run(self, device): if not get_property_value(self, "dir_path"): raise RuntimeError( f"No directory path specified in {self.name} node!") Path(get_property_value(self, "dir_path")).mkdir(parents=True, exist_ok=True) while self._running: in_data = self.queue.get() if in_data is not None: cv2.imwrite( f'{get_property_value(self, "dir_path")}/{int(time.time() * 10000)}.png', in_data['data'])
def run(self, device): if not get_property_value(self, "file_path"): raise RuntimeError(f"No file path specified in {self.name} node!") with open(get_property_value(self, "file_path"), get_property_value(self, "file_mode")) as file: while self._running: in_data = self.queue.get() if in_data is not None: if hasattr(in_data, 'getData'): data = in_data['data'].getData() else: data = in_data['data'] data.tofile(file)
def build_pipeline(self, pipeline): import depthai cam = pipeline.createColorCamera() w = get_property_value(self, "prev_width") h = get_property_value(self, "prev_height") if None not in (w, h) and w > 0 and h > 0: cam.setPreviewSize(w, h) cam.setResolution(getattr( depthai.ColorCameraProperties.SensorResolution, get_property_value(self, "resolution", "THE_1080_P") )) cam.setInterleaved(get_property_value(self, "interleaved")) cam.setCamId(self.getId()) self.connection_map["preview"] = cam.preview self.connection_map["video"] = cam.video
def run(self, device): color_map = getattr(cv2, get_property_value(self, 'color_map'), cv2.COLORMAP_JET) while self._running: in_data = self.queue.get() if in_data is None: continue self.send("result", cv2.applyColorMap(in_data['data'], color_map))
def build_pipeline(self, pipeline): import depthai cam = pipeline.createMonoCamera() cam.setResolution( getattr(depthai.MonoCameraProperties.SensorResolution, get_property_value(self, "resolution", "THE_720_P"))) cam.setCamId(self.getId()) self.connection_map["out"] = cam.out
def build_pipeline(self, pipeline): detection_nn = pipeline.createNeuralNetwork() path = get_property_value(self, "blob") if path is None or len(path) == 0: raise RuntimeError( f"Blob file path must be set in the {self.name} node") detection_nn.setBlobPath(str(Path(path).resolve().absolute())) self.connection_map["out"] = detection_nn.out self.connection_map["in"] = detection_nn.input
def run(self, device): while self._running: in_data = self.queue.get() if in_data is not None: data = in_data['data'] arr = np.array(data.getFirstLayerFp16()) arr = arr[:np.where(arr == -1)[0][0]] arr = arr.reshape((arr.size // 7, 7)) arr = arr[arr[:, 2] > get_property_value(self, "threshold")][:, 3:7] self.send("bbox", arr) if DEBUG: print(f"{self.name} updated.")
def build_pipeline(self, pipeline): import depthai encoder = pipeline.createVideoEncoder() if not get_property_value(self, "width"): raise RuntimeError( f"Encoder frame width is not specified in {self.name} node!") if not get_property_value(self, "height"): raise RuntimeError( f"Encoder frame height is not specified in {self.name} node!") if not get_property_value(self, "fps"): raise RuntimeError( f"Encoder FPS is not specified in {self.name} node!") encoder.setDefaultProfilePreset( get_property_value(self, "width"), get_property_value(self, "height"), get_property_value(self, "fps"), getattr(depthai.VideoEncoderProperties.Profile, get_property_value(self, "profile", "H264_MAIN"))) self.connection_map["input"] = encoder.input self.connection_map["bitstream"] = encoder.bitstream
def run(self, device): color = hex_to_rgb(get_property_value(self, "color_hex")) bboxes = [] frame = None while self._running: in_data = self.queue.get() if in_data is None: continue if in_data['name'] == "frame": frame = in_data['data'] elif in_data['name'] == "bbox": bboxes = in_data['data'] if frame is None: continue frame = frame.copy() for raw_bbox in bboxes: bbox = frame_norm(frame, raw_bbox) cv2.rectangle(frame, (bbox[0], bbox[1]), (bbox[2], bbox[3]), color, 2) self.send("result", frame)
def build_pipeline(self, pipeline): xout = pipeline.createXLinkOut() xout.setStreamName(get_property_value(self, "streamName")) self.connection_map["input"] = xout.input
python_filename = sys.argv[0] print('python_filename') print(python_filename) environment = sys.argv[1] print('environment') print(environment) import common common.check_environment(environment) properties_file_name = common.get_properties_file_name(environment) print('properties_file_name') print(properties_file_name) log_folder = common.get_property_value(properties_file_name, 'log_folder') print('log_folder') print(log_folder) common.find_folder_name(log_folder) logging_filename = common.get_logging_filename(python_filename, log_folder) print('logging_filename') print(logging_filename) # set up logging to file import logging import datetime as dt class MyFormatter(logging.Formatter): converter = dt.datetime.fromtimestamp
def run(self, device): while self._running: data = get_property_value(self, "data") self.send("out", eval(data))
environment = sys.argv[1] print('environment') print(environment) report = sys.argv[2] print('report') print(report) import common common.check_environment(environment) common.check_report(report) properties_file_name = common.get_properties_file_name(environment) print('properties_file_name') print(properties_file_name) log_folder = common.get_property_value(properties_file_name,'log_folder') print('log_folder') print(log_folder) common.find_folder_name(log_folder) logging_filename = common.get_logging_filename(python_filename,log_folder) print('logging_filename') print(logging_filename) # set up logging to file import logging import datetime as dt class MyFormatter(logging.Formatter): converter=dt.datetime.fromtimestamp def formatTime(self, record, datefmt=None):
def build_pipeline(self, pipeline): xin = pipeline.createXLinkIn() xin.setStreamName(get_property_value(self, "streamName")) self.connection_map["out"] = xin.out