def kafkastream(): c = Consumer({ 'group.id': args.groupid, 'default.topic.config': { 'auto.offset.reset': 'earliest', 'enable.auto.commit': 'false' } }) # c.subscribe(['/user/mapr/nextgenDLapp/rawvideostream:topic1']) c.subscribe([args.stream + ':' + args.topic]) running = True while running: msg = c.poll(timeout=0.2) if msg is None: continue if not msg.error(): nparr = np.fromstring(msg.value(), np.uint8) image = cv2.imdecode(nparr, 1) ret, jpeg = cv2.imencode('.png', image) bytecode = jpeg.tobytes() time.sleep(args.timeout) yield (b'--frame\r\n' b'Content-Type: image/png\r\n\r\n' + bytecode + b'\r\n\r\n') elif msg.error().code() != KafkaError._PARTITION_EOF: print(msg.error()) running = False c.close()
def kafkastream(): c = Consumer({ 'group.id': 'consumer1', 'default.topic.config': { 'auto.offset.reset': 'earliest', 'enable.auto.commit': 'false' } }) c.subscribe(['/tmp/rawvideostream:topic1']) running = True while running: msg = c.poll(timeout=1.0) if msg is None: continue if not msg.error(): nparr = np.fromstring(msg.value(), np.uint8) image = cv2.imdecode(nparr, 1) frame = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) ret, jpeg = cv2.imencode('.png', frame) bytecode = jpeg.tobytes() yield (b'--frame\r\n' b'Content-Type: image/png\r\n\r\n' + bytecode + b'\r\n\r\n') elif msg.error().code() != KafkaError._PARTITION_EOF: print(msg.error()) running = False c.close()
def kafkastream(): c = Consumer({ 'group.id': 'consumer2', 'default.topic.config': { 'auto.offset.reset': 'earliest', 'enable.auto.commit': 'false' } }) # c.subscribe(['/user/mapr/nextgenDLapp/rawvideostream:topic1']) c.subscribe(['/tmp/rawvideostream:topic1']) running = True while running: msg = c.poll(timeout=0.2) if msg is None: continue if not msg.error(): nparr = np.fromstring(msg.value(), np.uint8) bytecode = detect(nparr) yield (b'--frame\r\n' b'Content-Type: image/png\r\n\r\n' + bytecode + b'\r\n\r\n') elif msg.error().code() != KafkaError._PARTITION_EOF: print(msg.error()) running = False c.close()
dets = dets[keep, :] print("video position (ms): "+msg.key()) print(dets.shape[0]) toc = time.time() img_final = img_orig.copy() # color = cv2.cvtColor(img_orig, cv2.COLOR_RGB2BGR) print("time cost is:{}s".format(toc-tic)) embedding_vector = [] bbox_vector = [] for i in range(dets.shape[0]): bbox = dets[i, :4] roundfunc = lambda t: int(round(t/scale)) vfunc = np.vectorize(roundfunc) bbox = vfunc(bbox) # cv2.rectangle(color, (int(round(bbox[0]/scale)), int(round(bbox[1]/scale))), f_temp, img_orig_temp = model.get_feature(img_orig, bbox, None) embedding_vector.append(f_temp) bbox_vector.append(bbox) cv2.rectangle(img_final, (int(round(bbox[0])), int(round(bbox[1]))), (int(round(bbox[2])), int(round(bbox[3]))), (0, 255, 0), 2) img_final = cv2.cvtColor(img_final, cv2.COLOR_RGB2BGR) ret, jpeg = cv2.imencode('.png', img_final) # p.produce(args.writetopic2, jpeg.tostring()) p_orig.produce(args.writetopic1, pickle.dumps([msg.value(), bbox_vector, embedding_vector]), msg.key()) elif msg.error().code() != KafkaError._PARTITION_EOF: print(msg.error()) running = False c.close() p.flush()
def kafkastream(): if args.gpuid >= 0: ctx = mx.gpu(args.gpuid) else: ctx = mx.cpu() _, arg_params, aux_params = mx.model.load_checkpoint('mxnet-face-fr50', 0) arg_params, aux_params = ch_dev(arg_params, aux_params, ctx) sym = resnet_50(num_class=2) model = face_embedding.FaceModel(args.gpuid) f1T = get_face_embedding(args.filename, arg_params, aux_params, sym, model, ctx) c = Consumer({ 'group.id': args.groupid, 'default.topic.config': { 'auto.offset.reset': 'earliest', 'enable.auto.commit': 'false' } }) c.subscribe([args.readstream + ':' + args.readtopic]) running = True p = Producer({'streams.producer.default.stream': args.writestream}) while running: msg = c.poll(timeout=0) if msg is None: continue if not msg.error(): pickle_vector = pickle.loads(msg.value()) nparr = np.fromstring(pickle_vector[0], np.uint8) img_orig = cv2.imdecode(nparr, 1) bbox_vector = pickle_vector[1] print(len(bbox_vector)) embedding_vector = pickle_vector[2] if len(embedding_vector) > 0: sim_vector = [np.dot(f, f1T) for f in embedding_vector] idx = sim_vector.index(max(sim_vector)) bbox = bbox_vector[idx] sim = sim_vector[idx] if sim > args.threshold: img = cv2.cvtColor(img_orig, cv2.COLOR_RGB2BGR) cv2.rectangle(img, (int(round(bbox[0])), int(round(bbox[1]))), (int(round(bbox[2])), int(round(bbox[3]))), (0, 255, 0), 2) ret, jpeg = cv2.imencode('.png', img) bytecode = jpeg.tobytes() time.sleep(args.timeout) yield (b'--frame\r\n' b'Content-Type: image/png\r\n\r\n' + bytecode + b'\r\n\r\n') if args.writetostream: p.produce(args.writetopic, jpeg.tostring()) print(args.writetopic) elif msg.error().code() != KafkaError._PARTITION_EOF: print(msg.error()) running = False c.close() p.flush()