def rock_init():
    global face_recog_handle
    global face_db
    global face_library
    global face_det_handle
    global face_track_handle
    global face_landmark5_handle

    camera_num = 0
    db_file = "face.db"
    target_device = None
    image_dir = "./image"

    print("rock init")
    face_det_handle = RockX(RockX.ROCKX_MODULE_FACE_DETECTION, target_device)
    face_landmark5_handle = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_5,
                                  target_device)
    face_recog_handle = RockX(RockX.ROCKX_MODULE_FACE_RECOGNIZE, target_device)
    face_track_handle = RockX(RockX.ROCKX_MODULE_OBJECT_TRACK, target_device)

    face_db = FaceDB(db_file)
    #import_face(face_db, image_dir)
    # load face from database
    face_library = face_db.load_face()
    print("load %d face" % len(face_library))
    print(face_library.keys())
    return face_db, face_library.keys()
 def load_face(self):
     all_face = dict()
     c = self.cursor.execute("select * from FACE")
     for row in c:
         name = row[0]
         version = row[1]
         feature = np.frombuffer(row[2], dtype='float32')
         align_img = np.frombuffer(row[3], dtype='uint8')
         align_img = align_img.reshape((112, 112, 3))
         all_face[name] = {
             'feature':
             RockX.FaceFeature(version=version,
                               len=feature.size,
                               feature=feature),
             'image':
             align_img
         }
     return all_face
Example #3
0
from rk_socket_class import rk_socket_server
from rockx import RockX
import time

demo_name = "rockx_object_detect"
object_handle = RockX(RockX.ROCKX_MODULE_OBJECT_DETECTION)


def inference(img):
    data = {}
    time1 = time.time()
    in_img_h, in_img_w = img.shape[:2]
    ret, results = object_handle.rockx_face_detect(
        img, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888)
    time2 = time.time()
    print("inference use " + str(time2 - time1) + "sec")

    for result in results:
        obj = {}
        obj['left'] = result.box.left
        obj['left'] = result.box.left
        obj['top'] = result.box.top
        obj['right'] = result.box.right
        obj['bottom'] = result.box.bottom
        obj['label'] = RockX.ROCKX_OBJECT_DETECTION_LABELS_91[result.cls_idx]
        data.setdefault('objs', []).append(obj)

    data['count'] = len(results)
    return data

import argparse
from rockx import RockX
import cv2

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Object Detection Demo")
    parser.add_argument('-i', '--image', help="input image", type=str)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    object_det_handle = RockX(RockX.ROCKX_MODULE_OBJECT_DETECTION, target_device=args.device)

    in_img = cv2.imread(args.image)
    in_img_h, in_img_w = in_img.shape[:2]

    ret, results = object_det_handle.rockx_face_detect(in_img, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888)

    for result in results:
        label = RockX.ROCKX_OBJECT_DETECTION_LABELS_91[result.cls_idx]
        print('%s (%d %d %d %d) %f' % (label, result.box.left, result.box.top, result.box.right, result.box.bottom, result.score))
        cv2.rectangle(in_img,
                        (result.box.left, result.box.top),
                        (result.box.right, result.box.bottom),
                        (0, 255, 0), 2)
        cv2.putText(in_img, "%s" % label,
                    (result.box.left, result.box.top - 10),
                    cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0))

    cv2.imwrite('out.jpg', in_img)
Example #5
0
from rk_socket_class import rk_socket_server
from rockx import RockX
import time

demo_name = "rockx_face_landmark"
face_det = RockX(RockX.ROCKX_MODULE_FACE_DETECTION)
face_landmark68 = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_68)


def inference(img):
    total_result = {'result': -1, 'count': 0}
    obj = {}
    tmp_result = []

    in_img_h, in_img_w = img.shape[:2]

    time1 = time.time()
    ret, results = face_det.rockx_face_detect(img, in_img_w, in_img_h,
                                              RockX.ROCKX_PIXEL_FORMAT_BGR888)
    try:
        for result in results:
            ret, landmark = face_landmark68.rockx_face_landmark(
                img, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888,
                result.box)
            print(landmark)
            time2 = time.time()
            for p in landmark.landmarks:
                mark = [0, 0]
                mark[0] = p.x
                mark[1] = p.y
                obj.setdefault('marks', []).append(mark)
Example #6
0
from rockx import RockX
import cv2

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Face Analyze Demo")
    parser.add_argument('-c',
                        '--camera',
                        help="camera index",
                        type=int,
                        default=0)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    face_det_handle = RockX(RockX.ROCKX_MODULE_FACE_DETECTION,
                            target_device=args.device)
    face_landmark68_handle = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_68,
                                   target_device=args.device)
    face_landmark5_handle = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_5,
                                  target_device=args.device)
    face_attr_handle = RockX(RockX.ROCKX_MODULE_FACE_ANALYZE,
                             target_device=args.device)

    cap = cv2.VideoCapture(args.camera)
    cap.set(3, 1280)
    cap.set(4, 720)
    last_face_feature = None

    while True:
        ret, frame = cap.read()
Example #7
0
    draw = ImageDraw.Draw(img_PIL)
    draw.text(pos, str, font=font, fill=color)

    img_OpenCV = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
    return img_OpenCV


if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Carplate Demo")
    parser.add_argument('-c', '--camera', help="camera index", type=int, default=0)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    carplate_det_handle = RockX(RockX.ROCKX_MODULE_CARPLATE_DETECTION, target_device=args.device)
    carplate_align_handle = RockX(RockX.ROCKX_MODULE_CARPLATE_ALIGN, target_device=args.device)
    carplate_recog_handle = RockX(RockX.ROCKX_MODULE_CARPLATE_RECOG, target_device=args.device)

    cap = cv2.VideoCapture(args.camera)
    cap.set(3, 1280)
    cap.set(4, 720)
    last_face_feature = None

    while True:
        ret, frame = cap.read()

        show_frame = frame.copy()

        in_img_h, in_img_w = frame.shape[:2]
        start = time.time()
    print("camera=", args.camera)
    print("db_file=", args.db_file)
    print("image_dir=", args.image_dir)
    print("target device=",args.device)

    
    '''
    camera_num = 0
    db_file = "face.db"
    #target_device=None
    #image_dir=None
    target_device = ""
    image_dir = ""

    face_det_handle = RockX(RockX.ROCKX_MODULE_FACE_DETECTION, target_device)
    print("2")
    face_landmark5_handle = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_5,
                                  target_device)
    face_recog_handle = RockX(RockX.ROCKX_MODULE_FACE_RECOGNIZE, target_device)
    face_track_handle = RockX(RockX.ROCKX_MODULE_OBJECT_TRACK, target_device)
    face_db = FaceDB(db_file)
    '''
    camera_num=0
    print("1")
    print(args.device)
    face_det_handle = RockX(RockX.ROCKX_MODULE_FACE_DETECTION, target_device=args.device)
    target_device=args.device
    print(target_device)
    print("2")
    face_landmark5_handle = RockX(RockX.ROCKX_MODULE_FACE_LANDMARK_5, target_device=args.device)
from rk_socket_class import rk_socket_server
from rockx import RockX
import time

demo_name = "rockx_pose_body"
pose_handle = RockX(RockX.ROCKX_MODULE_POSE_BODY)


def inference(img):
    in_img_h, in_img_w = img.shape[:2]
    time1 = time.time()
    ret, results = pose_handle.rockx_pose_body(img, in_img_w, in_img_h,
                                               RockX.ROCKX_PIXEL_FORMAT_BGR888)
    time2 = time.time()
    print("inference use " + str(time2 - time1) + "sec")

    data = {}

    for result in results:
        keypoint = {}
        for p in result.points:
            point = [0, 0]
            point[0] = p.x
            point[1] = p.y
            keypoint.setdefault('points', []).append(point)
        keypoint['count'] = len(result.points)
        data.setdefault('keypoints', []).append(keypoint)

    data['count'] = len(results)
    return data
Example #10
0
import argparse
from rockx import RockX
import cv2

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Head Detection Demo")
    parser.add_argument('-c',
                        '--camera',
                        help="camera index",
                        type=int,
                        default=0)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    head_det_handle = RockX(RockX.ROCKX_MODULE_HEAD_DETECTION,
                            target_device=args.device)

    cap = cv2.VideoCapture(args.camera)
    cap.set(3, 1280)
    cap.set(4, 720)
    last_face_feature = None

    while True:
        # Capture frame-by-frame
        ret, frame = cap.read()
        in_img_h, in_img_w = frame.shape[:2]

        ret, results = head_det_handle.rockx_face_detect(
            frame, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888)

        for result in results:
Example #11
0
from rockx import RockX
import cv2

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Pose Demo")
    parser.add_argument('-c',
                        '--camera',
                        help="camera index",
                        type=int,
                        default=0)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    pose_body_handle = RockX(RockX.ROCKX_MODULE_POSE_BODY,
                             target_device=args.device)

    cap = cv2.VideoCapture(args.camera)
    cap.set(3, 1280)
    cap.set(4, 720)
    last_face_feature = None

    while True:
        # Capture frame-by-frame
        ret, frame = cap.read()

        in_img_h, in_img_w = frame.shape[:2]

        start = time.time()
        ret, results = pose_body_handle.rockx_pose_body(
            frame, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888)
Example #12
0
from rockx import RockX
import cv2

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description="RockX Finger Demo")
    parser.add_argument('-c',
                        '--camera',
                        help="camera index",
                        type=int,
                        default=0)
    parser.add_argument('-d', '--device', help="target device id", type=str)
    args = parser.parse_args()

    pose_finger_handle = RockX(RockX.ROCKX_MODULE_POSE_FINGER_3,
                               target_device=args.device)

    cap = cv2.VideoCapture(args.camera)
    cap.set(3, 1280)
    cap.set(4, 720)
    last_face_feature = None

    while True:
        # Capture frame-by-frame
        ret, frame = cap.read()

        in_img_h, in_img_w = frame.shape[:2]

        ret, result = pose_finger_handle.rockx_pose_finger(
            frame, in_img_w, in_img_h, RockX.ROCKX_PIXEL_FORMAT_BGR888)
        for p in result.points: