안녕하세요. TOPST 입니다.
현재 D3-G Yocto 빌드 환경을 설치한 후, opencv 를 이용한 camera app (python) 은 동작하지 않습니다.
yocto 빌드 환경에 opencv package가 포함되지 않았기 때문입니다.
opencv를 활성화 하기 위해서, 다음의 instruction을 따라해 주세요.
(단, source poky/meta-topst/topst-build.sh - d3-g-topst-main 선택은 이미 진행한 것으로 가정)
- 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 \
"
- 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"
-
build/d3-g-topst-main 폴더로 이동하고 bitbake telechips-topst-image 명령으로 빌드를 완료 하세요.
-
최상위 폴더에서 ./stitch-fai-d3.sh -f 를 실행하고, 생성된 압축파일을 사용해 D3-G fw를 업데이트 하세요.
-
D3-G 를 부팅하고 uart console을 연결해 root로 로그인 합니다.
-
다음의 명령어를 사용해, 초기 화면을 정지 시키세요
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
- /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
- weston을 재 시작 하세요.
root@d3-g-topst-main:~# systemctl restart weston
-
이제 D3-G 보드에 연결된 화면 왼쪽 하단에 Terminal icon을 확인할 수 있습니다.
-
아이콘을 눌러 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()
- 이제 작성한 webcam.py를 실행하세요.
root@d3-g-topst-main:~# python3 webcam.py

