TOPST D3-G Yocto 환경에서 OpenCV 활성화 하는 방법

안녕하세요. TOPST 입니다.

현재 D3-G Yocto 빌드 환경을 설치한 후, opencv 를 이용한 camera app (python) 은 동작하지 않습니다.

yocto 빌드 환경에 opencv package가 포함되지 않았기 때문입니다.

opencv를 활성화 하기 위해서, 다음의 instruction을 따라해 주세요.
(단, source poky/meta-topst/topst-build.sh - d3-g-topst-main 선택은 이미 진행한 것으로 가정)

  1. poky/meta-topst/recipes-telechips/images/telechips-topst-image.bb 에 다음과 같이 opencv와 gtk+3을 추가해 주세요.
IMAGE_INSTALL += " \
        ${@bb.utils.contains('TOPST_FEATURES', 'multimedia', 'packagegroup-telechips-topst-multimedia', '', d)} \
        packagegroup-telechips-topst-graphics \
        ${@bb.utils.contains("DISTRO_FEATURES", 'x11', '', 'packagegroup-topst-welcome', d)} \
        android-tools \
        sqlite3 \
        tzdata \
        tzdata-posix \
        python3 \
        python3-pip \
        opencv \
        gtk+3 \
"
  1. build/d3-g-topst-main/conf/local.conf 하단에 다음을 추가해 주세요.

BBMASK += "meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb"

PREFERRED_PROVIDER_virtual/opencl-headers = "powervr"

PREFERRED_PROVIDER_virtual/opencl-icd = "powervr"

PACKAGECONFIG:append:pn-opencv = " gtk"

  1. build/d3-g-topst-main 폴더로 이동하고 bitbake telechips-topst-image 명령으로 빌드를 완료 하세요.

  2. 최상위 폴더에서 ./stitch-fai-d3.sh -f 를 실행하고, 생성된 압축파일을 사용해 D3-G fw를 업데이트 하세요.

  3. D3-G 를 부팅하고 uart console을 연결해 root로 로그인 합니다.

  4. 다음의 명령어를 사용해, 초기 화면을 정지 시키세요

root@d3-g-topst-main:~# systemctl disable topst-welcome
Removed /etc/systemd/system/multi-user.target.wants/topst-welcome.service.
root@d3-g-topst-main:~# systemctl stop topst-welcome
  1. /usr/share/weston/weston.ini 파일을 수정해 panel-position=none 대신 panel-position=bottom 을 추가하세요.
[core]
shell=desktop-shell.so
require-input=false
idle-time=0

[shell]
#background-image=/usr/share/weston/background.png
background-color=0x00ffffff
panel-color=0x00ffffff
#panel-position=none
panel-position=bottom
locking=true
animation=none
#binding-modifier=ctrl
#num-workspaces=6

#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
#homescreen=/usr/share/weston/background.png
#animation=zoom
  1. weston을 재 시작 하세요.
root@d3-g-topst-main:~# systemctl restart weston
  1. 이제 D3-G 보드에 연결된 화면 왼쪽 하단에 Terminal icon을 확인할 수 있습니다.

  2. 아이콘을 눌러 terminal을 열고 webcam.py 를 아래와 같이 작성하세요.

import cv2

cap = cv2.VideoCapture(0)

if not cap.isOpened():
    print("\\@@ Camera open failed!")
    exit()

print("Press 'q' to exit the camera window.")

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

while True:
    ret, frame = cap.read()
    if not ret:
        print("\\@@ Failed to read frame")
        break

    cv2.imshow("Camera Feed", frame)

    # pressed 'q' key, escape
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
  1. 이제 작성한 webcam.py를 실행하세요.
root@d3-g-topst-main:~# python3 webcam.py

1 Like