def __init__(self, number_people_max=-1, min_size=-1, openpose_rendering=False, face_detection=False, frt=0.4, hand_detection=False, debug=False): """ openpose_rendering : if True, rendering is made by original Openpose library. Otherwise rendering is to the responsability of the user (~0.2 fps faster) """ self.openpose_rendering = openpose_rendering self.min_size = min_size self.debug = debug self.face_detection = face_detection self.hand_detection = hand_detection self.frt = frt params = dict() params["model_folder"] = MODEL_FOLDER params["model_pose"] = "BODY_25" params["number_people_max"] = number_people_max if not self.openpose_rendering: params["render_pose"] = 0 if self.face_detection: params["face"] = True params["face_render_threshold"] = self.frt # if self.hand_detection: params["hand"] = True # Starting OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() self.datum = op.Datum()
def start_openpose(): try: # Import Openpose (Windows/Ubuntu/OSX) dir_path = os.path.dirname(os.path.realpath(__file__)) try: # Windows Import if platform == "win32": # Change these variables to point to the correct folder (Release/x64 etc.) sys.path.append(dir_path + '/../../python/openpose/Release') os.environ['PATH'] = os.environ[ 'PATH'] + ';' + dir_path + '/../../x64/Release;' + dir_path + '/../../bin;' import pyopenpose as op else: # Change these variables to point to the correct folder (Release/x64 etc.) sys.path.append('/home/natalia/openpose/build/python'); from openpose import pyopenpose as op except ImportError as e: print( 'Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?') raise e # Custom Params (refer to include/openpose/flags.hpp for more parameters) params = dict() params["model_folder"] = "/home/natalia/openpose/models" # params["write_json"] = json_dir params["hand"] = True # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() return op, opWrapper except Exception as e: print(e) sys.exit(-1)
def set_env(self): dir_path = r"/mnt/openpose/openpose/build" try: # Windows Import if platform == "win32": # Change these variables to point to the correct folder (Release/x64 etc.) sys.path.append( r"E:\GitHub\openpose\build\python\openpose\Release") os.environ['PATH'] = os.environ[ 'PATH'] + ';' + "E:\\GitHub\\openpose\\build\\x64\\Release;" + 'E:\\GitHub\\openpose\\build\\bin;' import pyopenpose as op else: # Change these variables to point to the correct folder (Release/x64 etc.) #sys.path.append('D:\\Anaconda\\python'); # If you run `make install` (default path is `/usr/local/python` for Ubuntu), you can also access the OpenPose/python module from there. This will install OpenPose and the python library at your desired installation path. Ensure that this is in your python path in order to use it. sys.path.append('/usr/local/python') from openpose import pyopenpose as op except ImportError as e: print( 'Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?' ) raise e params = dict() params["model_folder"] = "/mnt/openpose/openpose/models" params['disable_blending'] = False # Starting OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() self.datum = op.Datum()
def exec(self): """Process the input video using the OpenPose library.""" # We moved import statement here to use preprocessed data without existing OpenPose. try: # Windows Import if platform == "win32": # Change these variables to point to the correct folder (Release/x64 etc.) sys.path.append(dir_path + '/../../python/openpose/Release') os.environ['PATH'] = os.environ[ 'PATH'] + ';' + dir_path + '/../../x64/Release;' + dir_path + '/../../bin;' import pyopenpose as op else: # Change these variables to point to the correct folder (Release/x64 etc.) sys.path.append('../../python') # If you run `make install` (default path is `/usr/local/python` for Ubuntu), you can also access # the OpenPose/python module from there. This will install OpenPose and the python library at your # desired installation path. Ensure that this is in your python path in order to use it. # sys.path.append('/usr/local/python') from openpose import pyopenpose as op except ImportError as e: print( 'Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON`' ' in CMake and have this Python script in the right folder?') raise e params = dict() params["model_folder"] = "models/" params['number_people_max'] = 1 params['render_pose'] = 0 op_wrapper = op.WrapperPython() op_wrapper.configure(params) op_wrapper.start() self.video_processor.process_video_with_net(op_wrapper)
def get_keypoints(filename): params = dict() params["model_folder"] = "/home/ubuntu/openpose/models" # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() datum = op.Datum() imageToProcess = cv2.imread(filename) datum.cvInputData = imageToProcess opWrapper.emplaceAndPop([datum]) keypoints = datum.poseKeypoints[0] filename_annotated = filename + "_annotated.jpg" cv2.imwrite(filename_annotated, datum.cvOutputData) xi = keypoints[:, 0] yi = keypoints[:, 1] opWrapper.stop() #xi, yi, c = np.loadtxt(filename).T x_test = (np.hstack((xi, yi)) / max(np.hstack((xi, yi)))) x_new_test = np.zeros(x_test.shape[0] + 1) x_new_test[:-1] = x_test x_new_test[-1] = (x_test[14] - x_test[11]) / (x_test[5] - x_test[2]) x_new_test[np.isinf(x_new_test)] = 0.0 #return x_new_test,filename_annotated return x_test, filename_annotated
def main(): try: # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() # Read frames on directory imagePaths = op.get_images_on_directory(args[0].image_dir) start = time.time() # Process and display images for imagePath in imagePaths: datum = op.Datum() imageToProcess = cv2.imread(imagePath) datum.cvInputData = imageToProcess opWrapper.emplaceAndPop([datum]) print("Body keypoints: \n" + str(datum.poseKeypoints)) #cv2.imshow("OpenPose 1.4.0 - Tutorial Python API", datum.cvOutputData) cv2.imwrite("/home/lburget/Pictures/Webcam/test.jpg", datum.cvOutputData) end = time.time() print("OpenPose demo successfully finished. Total time: " + str(end - start) + " seconds") except Exception as e: print(e)
def __init__(self, thresh=0.1, visualize=False): params = dict() params['model_pose'] = 'MPI' params['model_folder'] = "/home/user/kji/openpose_model/" self.openpose = op.WrapperPython() self.openpose.configure(params) self.openpose.start() self.thresh = thresh self.visualize = visualize # MPI model self.body_dict = { "Head": 0, "Neck": 1, "RShoulder": 2, "RElbow": 3, "RWrist": 4, "LShoulder": 5, "LElbow": 6, "LWrist": 7, "RHip": 8, "RKnee": 9, "RAnkle": 10, "LHip": 11, "LKnee": 12, "LAnkle": 13, "Chest": 14, "Background": 15 } return
def get_sample_heatmaps(): # These parameters are globally set. You need to unset variables set here if you have a new OpenPose object. See * params = dict() params["model_folder"] = "../../../models/" params["heatmaps_add_parts"] = True params["heatmaps_add_bkg"] = True params["heatmaps_add_PAFs"] = True params["heatmaps_scale"] = 3 params["upsampling_ratio"] = 1 params["body"] = 1 # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() # Process Image and get heatmap datum = op.Datum() imageToProcess = cv2.imread(args[0].image_path) datum.cvInputData = imageToProcess opWrapper.emplaceAndPop([datum]) poseHeatMaps = datum.poseHeatMaps.copy() opWrapper.stop() return poseHeatMaps
def pose_detection(): dir_path = os.path.dirname(os.path.realpath(__file__)) sys.path.append(dir_path + '/python/openpose/Release') os.environ['PATH'] = os.environ[ 'PATH'] + ';' + dir_path + '/x64/Release;' + dir_path + '/bin;' import pyopenpose as op params = dict() params["model_folder"] = "./models/" img_path = './media/COCO_val2014_000000000474.jpg' try: opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() datum = op.Datum() imageToProcess = cv2.imread(img_path) datum.cvInputData = imageToProcess opWrapper.emplaceAndPop([datum]) points = datum.poseKeypoints #cv2.imshow("Pose", datum.cvOutputData) #cv2.waitKey(0) except Exception as e: sys.exit(-1) return points
def __init__(self): params = dict() params[ "model_folder"] = "/home/mghuang/gastronomy_web_cam_analysis/openpose/models/" self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start()
def main(session): # Nao motion_service = session.service("ALMotion") posture_service = session.service("ALRobotPosture") motion_service.wakeUp() # posture_service.goToPosture("StandInit", 0.5) params = dict() params[ "model_folder"] = "/home/anton/Documents/hci-project/openpose/models" # params["model_pose"] = "COCO" params["net_resolution"] = "160x80" params["body"] = 1 params["display"] = 1 # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() # Process Videao datum = op.Datum() cam = cv2.VideoCapture(0) # modify here for camera number while (cv2.waitKey(1) != 27): # Get camera frame ret, frame = cam.read() datum.cvInputData = frame opWrapper.emplaceAndPop([datum]) frame = datum.cvOutputData cv2.imshow("Webcam", frame) # datum.cvOutputData) leftRight, theta, phi = [], [], [] userArmArticular(motion_service) # Always clean up cam.release() cv2.destroyAllWindows()
def __init__(self): self.model = load_model( '/home/cornell.edu/nst45/hanabi_project/Hanabi/vision/gesture/gesture_data/pointing.h5' ) self.params = dict() self.params[ "model_folder"] = "/home/cornell.edu/nst45/hanabi_project/openpose/models/" self.params["hand"] = True # Starting OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(self.params) self.opWrapper.start() self.datum = op.Datum() self.cap = cv2.VideoCapture(0) self.timing = False self.noposeTiming = False self.nopose = False self.noposeStart = time.time() self.curpose = -1 self.start_time = time.time() self.indices = []
def create_openpose_instance(model_dir): """ creating openpose instance """ print("creating instance") try: params = dict() params["logging_level"] = 3 params["output_resolution"] = "-1x-1" params["net_resolution"] = "-1x368" params["model_pose"] = "BODY_25" params["alpha_pose"] = 0.6 params["scale_gap"] = 0.3 params["scale_number"] = 1 params["render_threshold"] = 0.05 # If GPU version is built, and multiple GPUs are available, set the ID here params["num_gpu_start"] = 0 params["disable_blending"] = False # Ensure you point to the correct path where models are located params["model_folder"] = model_dir # Construct OpenPose object allocates GPU memory openpose = op.WrapperPython() openpose.configure(params) openpose.start() return openpose except Exception as err: print(err) print(type(err)) raise err
def __init__(self, debug=False): #from openpose import * params = dict() params["model_folder"] = Constants.openpose_modelfolder params["net_resolution"] = "-1x320" self.openpose = op.WrapperPython() self.openpose.configure(params) self.openpose.start() max_cosine_distance = Constants.max_cosine_distance nn_budget = Constants.nn_budget self.nms_max_overlap = Constants.nms_max_overlap max_age = Constants.max_age n_init = Constants.n_init model_filename = 'model_data/mars-small128.pb' self.encoder = gdet.create_box_encoder(model_filename, batch_size=1) metric = nn_matching.NearestNeighborDistanceMetric( "cosine", max_cosine_distance, nn_budget) self.tracker = DeepTracker(metric, max_age=max_age, n_init=n_init) # self.capture = cv2.VideoCapture('D:/walk_tour-edit.mp4') self.capture = cv2.VideoCapture('D:/walk_tour.mp4') if self.capture.isOpened(): # Checks the stream self.frameSize = (int(self.capture.get(cv2.CAP_PROP_FRAME_HEIGHT)), int(self.capture.get(cv2.CAP_PROP_FRAME_WIDTH))) Constants.SCREEN_HEIGHT = self.frameSize[0] Constants.SCREEN_WIDTH = self.frameSize[1] self.cnt = 1
def __init__(self, event, progress, gui): threading.Thread.__init__(self) self.stopped = event self.progress = progress self.data = (gui.open_data, gui.closed_data) self.length = len(self.data[0]) + len(self.data[1]) fourcc = cv2.VideoWriter_fourcc(*'mp4v') if platform == 'win32': self.writer_open = cv2.VideoWriter( 'output/processed_output_open_eyes.mp4', fourcc, 30, (gui.vid_width, gui.vid_height)) self.writer_closed = cv2.VideoWriter( 'output/processed_output_closed_eyes.mp4', fourcc, 30, (gui.vid_width, gui.vid_height)) # OpenPose setup params = dict() params['model_folder'] = 'openpose/models/' self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() self.datum = op.Datum() else: self.writer_open = cv2.VideoWriter('output/output_open_eyes.mp4', fourcc, 30, (gui.vid_width, gui.vid_height)) self.writer_closed = cv2.VideoWriter( 'output/output_closed_eyes.mp4', fourcc, 30, (gui.vid_width, gui.vid_height))
def __init__(self): parser = argparse.ArgumentParser() #parser.add_argument("--image_path", default="./media/COCO_val2014_000000000192.jpg", help="Process an image. Read all standard formats (jpg, png, bmp, etc.).") args = parser.parse_known_args() params = dict() params["model_folder"] = './../models/' # 具体情况 params["number_people_max"] = 1 params["model_pose"] = "BODY_25" # Add others in path? for i in range(0, len(args[1])): curr_item = args[1][i] if i != len(args[1]) - 1: next_item = args[1][i + 1] else: next_item = "1" if "--" in curr_item and "--" in next_item: key = curr_item.replace('-', '') if key not in params: params[key] = "1" elif "--" in curr_item and "--" not in next_item: key = curr_item.replace('-', '') if key not in params: params[key] = next_item # 初始化openpose self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() self.datum = op.Datum()
def openpose_init(): try: if platform == "win32": sys.path.append('./OpenPose/Release') import pyopenpose as op else: sys.path.append('./OpenPose') from Release import pyopenpose as op except ImportError as e: print( 'Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?' ) raise e # Custom Params (refer to include/openpose/flags.hpp for more parameters) params = dict() params["model_folder"] = "./OpenPose/models" # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() # Process Image datum = op.Datum() return datum, opWrapper
def __init__(self): self.onoff = False self.channel = [1,2,4,5,6,7,8,9] self.now = 0 self.vol = 10 self.volcon = 0 self.range = 0 self.params = dict() self.params["model_folder"] = "../../../models/" self.params["hand"] = True # Starting OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(self.params) self.opWrapper.start() self.cap = cv2.VideoCapture(0) #0だったり1だったり self.cap.set(3,1920) self.cap.set(4,1080) self.before_form = [] self.current_form = [] self.counter = 0 pyxel.init(60, 45) pyxel.run(self.update,self.draw)
def openPose(img, gamma=1.0, ui=False): params = dict() model_folder = ('' if ui else '../') + 'models' params["model_folder"] = model_folder params["number_people_max"] = 1 opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() datum = op.Datum() # hyunho gamma if gamma != 1.0: img2 = adjust_gamma(img, gamma=gamma) datum.cvInputData = img2 else: datum.cvInputData = img opWrapper.emplaceAndPop([datum]) mydata = datum.poseKeypoints[0] joints = np.zeros((14, 2)) conf = np.zeros(14) joints[0] = mydata[11, :2] joints[1] = mydata[10, :2] joints[2] = mydata[9, :2] joints[3] = mydata[12, :2] joints[4] = mydata[13, :2] joints[5] = mydata[14, :2] joints[6] = mydata[4, :2] joints[7] = mydata[3, :2] joints[8] = mydata[2, :2] joints[9] = mydata[5, :2] joints[10] = mydata[6, :2] joints[11] = mydata[7, :2] joints[12] = mydata[1, :2] joints[13] = mydata[0, :2] conf[0] = mydata[11, 2] conf[1] = mydata[10, 2] conf[2] = mydata[9, 2] conf[3] = mydata[12, 2] conf[4] = mydata[13, 2] conf[5] = mydata[14, 2] conf[6] = mydata[4, 2] conf[7] = mydata[3, 2] conf[8] = mydata[2, 2] conf[9] = mydata[5, 2] conf[10] = mydata[6, 2] conf[11] = mydata[7, 2] conf[12] = mydata[1, 2] conf[13] = mydata[0, 2] # head joint estimate # joints[13] += 0.5 * (joints[13] - joints[12]) return joints, conf
def __init__(self, net_resolution="320x160"): params = dict() params["model_folder"] = "openpose/models/" params["net_resolution"] = net_resolution self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start()
def __init__(self, model_folder="/openpose/models/", **kwargs): print("initializing poser") params = dict() params["model_folder"] = model_folder params.update(kwargs) self._opWrapper = op.WrapperPython() self._opWrapper.configure(params) self._opWrapper.start()
def __init__(self): params = dict() params["model_folder"] = "models/" params["hand"] = True self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() self.datum = op.Datum()
def start(self): self.params["face"] = True self.params["hand"] = True self.add_path() pprint.pprint(self.params) opWrapper = op.WrapperPython(3) opWrapper.configure(self.params) opWrapper.execute()
def __initOpenPose(self, opParams): # starting OpenPose if not opParams: opParams = dict() opParams["model_folder"] = "../../externals/openpose/models/" opParams["render_threshold"] = c.keypointThreshold self.opWrapper = op.WrapperPython() self.opWrapper.configure(opParams) self.opWrapper.start()
def __init__(self, path: str, webcam_mode: bool = False): parser = argparse.ArgumentParser() parser.add_argument("--no_display", default=False) parser.add_argument("--model_pose", action='store', type=str, default="BODY_25") parser.add_argument("--tracking", action='store', type=int, default=1) parser.add_argument("--number_people_max", action='store', type=int, default=1) params = dict() params["model_folder"] = "models/" params["net_resolution"] = "320x176" params["face_net_resolution"] = "320x320" params["render_pose"] = "1" params["model_pose"] = "BODY_25" params["tracking"] = "5" params["number_people_max"] = "1" args = parser.parse_known_args() #parse command line argument # Add others in path? for i in range(0, len(args[1])): curr_item = args[1][i] if i != len(args[1]) - 1: next_item = args[1][i + 1] else: next_item = "1" if "--" in curr_item and "--" in next_item: key = curr_item.replace('-', '') params[key] = "1" elif "--" in curr_item and "--" not in next_item: key = curr_item.replace('-', '') params[key] = next_item #Start OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() #Add image path here #Video path #path = dir_path + '\\test_data\\test.mkv' # Image Path media_path = dir_path + path if webcam_mode is True: self.cap = cv2.VideoCapture(0) else: #Capture from path self.cap = cv2.VideoCapture(media_path) if (self.cap.isOpened() == False): print("Error opening Video: ", path)
def initOpenPose(): # starting OpenPose params = dict() params["model_folder"] = "../../externals/openpose/models/" params["render_threshold"] = c.keypointThreshold getOpenPoseArgs(params) wrapper = op.WrapperPython() wrapper.configure(params) wrapper.start() return wrapper
def set_params(): params = dict() params['model_folder'] = 'mod_code/openpose/models' params['model_pose'] = 'BODY_25' params['number_people_max'] = 1 params["net_resolution"] = '128x192' opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start()
def set_params(): params = dict() params["model_folder"] = "openpose/models/" params["face"] = True params["hand"] = True params["disable_blending"] = False opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() return opWrapper
def openpose_demo(canvas): # Custom Params (refer to include/openpose/flags.hpp for more parameters) params = dict() params["model_folder"] = "../../../models/" params["hand"] = True # Starting OpenPose opWrapper = op.WrapperPython() opWrapper.configure(params) opWrapper.start() cap = cv2.VideoCapture(0) before_form = [] current_form = [] counter = 0 global rootFlag while (True): ret, frame = cap.read() # Process Image datum = op.Datum() imageToProcess = frame datum.cvInputData = imageToProcess opWrapper.emplaceAndPop([datum]) cv2.imshow("OpenPose 1.5.0 - Tutorial Python API", datum.cvOutputData) #print(datum.handKeypoints[1][0]) right_hand, flag = hm.is_hand_recog(datum.handKeypoints[1][0]) if flag == True: current_form = hm.check_handform2(right_hand) #print(current_form,counter) if current_form == before_form: #1フレーム前の形と現在の形を比較する counter = counter + 1 #同じだったらカウントを1増やす if (counter == 10): #カウントが10になったら(10回連続して同じ形を認識したら) canvas.delete("all") n = hm.list_to_num(current_form) #手の形から番号を決定 try: canvas.create_text(300, 300, text=n, font=('', 350)) except Exception as e: break else: counter = 0 #違ったらカウントをリセットする before_form = current_form if cv2.waitKey(1) & 0xFF == ord('q'): break if rootFlag == False: break cap.release() cv2.destroyAllWindows()
def __init__(self, model_path="./models/"): # load models params = dict() params["model_folder"] = model_path print("[*] success loading model from", model_path) # Starting OpenPose self.opWrapper = op.WrapperPython() self.opWrapper.configure(params) self.opWrapper.start() print("[*] openpose start!")