'--device', '-d', type=int, required=False, help='Camera device. 0 for /dev/video0', default=0) parser.add_argument( '--fps', '-f', type=int, required=False, help='FPS', default=10) parser.add_argument( '--uri', '-u', type=str, required=False, help='broker_uri', default='amqp://localhost:5672') args = parser.parse_args() device = args.device fps = args.fps broker_uri = args.uri cap = VideoCapture(device) if cap.isOpened(): log.info('Connected to device: /dev/video{}'.format(device)) else: log.error('Coudn\'t find device: /dev/video{}'.format(device)) exit() log.info('Camera FPS set to {}'.format(fps)) cap.set(CAP_PROP_FPS, fps) channel = StreamChannel(broker_uri) log.info('Connected to broker {}', broker_uri) log.info('Starting to capture') while True: ret, frame = cap.read() msg = Message() msg.topic = 'CameraGateway.{}.Frame'.format(args.id)
from is_wire.core import Channel, Subscription, Message, Logger from is_msgs.common_pb2 import Position import os from sys import argv, exit log = Logger(name="client") uri = os.environ[ "BROKER_URI"] if "BROKER_URI" in os.environ else "amqp://10.10.2.20:30000" log.info("uri={}", uri) if len(argv) != 3: log.error("Usage: python navigate.py <X> <Y>") exit(-1) channel = Channel(uri) subscription = Subscription(channel) position = Position() position.x = float(argv[1]) position.y = float(argv[2]) channel.publish(message=Message(content=position, reply_to=subscription), topic="RobotGateway.0.NavigateTo") reply = channel.consume(timeout=1.0) log.info("status={}", reply.status)
import os import json from subprocess import Popen, PIPE, STDOUT from is_wire.core import Logger log = Logger(name="SplitSamples") if not os.path.exists("samples"): log.critical("'samples' folder not found") if not os.path.exists("samples/spots.json"): log.critical("'samples/spots.json' file not found") with open("samples/spots.json", 'r') as f: spots = json.load(f) ffmpeg_command = "ffmpeg -y -i gestures.MOV -ss {ss:.2f} -t {t:.2f} -an samples/{gesture:02d}.MOV" for spot in spots: g_id = int(spot['gesture']) command = ffmpeg_command.format(ss=spot['ss'], t=spot['t'], gesture=g_id) process = Popen(command.split(), stdout=PIPE, stderr=STDOUT) log.info("{}", command) if process.wait() == 0: log.info("{} | {:.2f} + {:.2f}", g_id, spot['ss'], spot['t']) else: log.error("Failed to split video gesture: {}", g_id)
log = Logger(name="Capture") # get folder to store the collected data if exp == "emotions": folder = op.folder_emotions elif exp == "signals": folder = op.folder_signals elif exp == "gestures": folder = op.folder_gestures elif exp == "adl": folder = op.folder_adl elif exp == "falls": folder = op.folder_falls else: log.error("Invalid experiment!") sys.exit(-1) # add new folder if args.foldername is not None: folder = os.path.join(folder, args.foldername) # get folder from each possible label labels_folders = utils.get_label_folder(folder, labels) # create a folder to store timestamps timestamps_folder = os.path.join(labels_folders[label_id], "timestamps") if not os.path.exists(timestamps_folder): os.makedirs(timestamps_folder) sequence = "{:03d}".format(int(subject_id))