get_obj_center
- ZumiAI.get_obj_center(name: str) tuple
스트리밍되는 카메라 영상에서 특정 이름의 물체(객체) 중심 좌표를 가져옵니다.
이 함수는
object_detector_start()
로 물체 인식이 활성화된 상태에서, 주미의 카메라 영상 속에서 지정된 name을 가진 물체가 감지되었다면, 해당 물체의 중심이 되는 x, y 좌표를 튜플 형태로 반환합니다. 만약 같은 이름의 물체가 여러 개 감지되었다면, 가장 먼저 인식된(첫 번째) 물체의 좌표를 알려줍니다.- 매개변수:
name (str) – 중심 좌표를 조회할 물체의 이름. 이 이름은
object_detector_start()
를 통해 인식하도록 설정된 물체 목록(기본 목록 또는object_check_add_obj()
,object_check_all_add_obj()
로 추가된 물체)에 포함되어야 합니다. (예: “person”, “stop sign”, “traffic light”, “car”등) 만약 한글 이름으로 입력할 경우, 내부적으로 정의된 매핑 사전을 통해 자동으로 영어 이름으로 변환됩니다. (예: “사람” 입력 시 “person”으로 변환)- 반환:
인식된 물체의 중심 좌표 (x, y).
x (int): 물체의 중심 x 좌표.
y (int): 물체의 중심 y 좌표.
물체가 인식되지 않았다면 빈 튜플 ()`을 반환합니다. 예시: `(0, 0) (스트리밍 화면의 중앙)
- 반환 형식:
tuple
Examples: >>> zumiAI.camera_stream_start() # 카메라 스트리밍 시작 >>> zumiAI.object_detector_init() # 물체 인식 초기화 >>> zumiAI.object_detector_start() # 물체 인식 시작
>>> print("--- 영어 이름으로 'person' 감지 예시 ---") >>> while True: >>> person_center = zumiAI.get_obj_center(name="person") # 영어 이름 사용 >>> if person_center: # 사람이 감지되어 좌표가 반환된 경우 >>> center_x, center_y = person_center >>> print(f"사람(person)의 중심 좌표: X={center_x}, Y={center_y}") >>> break # 감지되면 반복 중단 >>> else: >>> print("사람(person) 감지 대기 중...") >>> time.sleep(1) # 1초 대기
>>> print("--- 한글 이름으로 '자동차' 감지 예시 ---") >>> # KOREAN_TO_ENGLISH_OBJ_MAP이 미리 정의되어 있다고 가정합니다. >>> while True: >>> car_center = zumiAI.get_obj_center(name="자동차") # 한글 이름 사용 >>> if car_center: # 자동차가 감지되어 좌표가 반환된 경우 >>> center_x, center_y = car_center >>> print(f"자동차(car)의 중심 좌표: X={center_x}, Y={center_y}") >>> break # 감지되면 반복 중단 >>> else: >>> print("자동차(car) 감지 대기 중...") >>> time.sleep(1) # 1초 대기
>>> zumiAI.object_detector_stop() # 물체 인식 중지
참고
이 함수를 사용하기 전에
camera_stream_start()
로 영상 스트리밍을 시작하고,object_detector_init()
로 물체 인식 기능을 초기화한 후,object_detector_start()
를 호출하여 물체 인식을 활성화해야 합니다.name으로 지정하는 물체 이름은 COCO 데이터셋에 정의된 클래스 이름이어야 합니다. 한글 이름으로 변환해서 사용할 수도 있습니다.
이 기능은 주미 자체의 하드웨어 기능이 아니라, PC 기반 소프트웨어로 처리됩니다.