はじめに
こちらのページでは、Qualcomm® Robotics RB5 Platform 開発キットとUSBカメラを使用し、OpenCV + TensorFlow Liteを用いて物体検出を試す手順について紹介します。
関連リンク:Qualcomm® Robotics RB5 Platform 開発キットについて

必要なもの:
・ホストPC(Ubuntu 18.04)
・Qualcomm® Robotics RB5 Platform 開発キット
・USBキーボード、USBマウス、(USB Type-C ケーブル)
・USBカメラ
・HDMIモニター、HDMIケーブル
事前準備
Qualcomm® Robotics RB5 Platform 開発キット自体のセットアップは事前に実施ください。
関連ページ(外部サイトにリンクしています):セットアップ
以下の手順の中でQualcomm® Robotics RB5 Platform 開発キットをインターネットに接続しますので、Set up networkまで完了している必要があります。
TensorFlow LiteのLibraryビルド
ホストPC上でTensorFlow Lite libraryをビルドします。以下コマンド例です。
TensorFlow Liteのビルドに関する詳細は必要に応じて下記リンクをご参照ください。
https://www.tensorflow.org/lite/guide/build_arm64
hostPC$ sudo apt-get update
hostPC$ sudo apt-get install crossbuild-essential-arm64
hostPC$ git clone https://github.com/tensorflow/tensorflow.git
hostPC$ cd tensorflow
hostPC$ git branch r2.1 remotes/origin/r2.1
hostPC$ git checkout r2.1
hostPC$ ./tensorflow/lite/tools/make/download_dependencies.sh
hostPC$ ./tensorflow/lite/tools/make/build_generic_aarch64_lib.sh
./tensorflow/lite/tools/make/gen/generic-aarch64_armv8-a/lib/
の下にlibtensorflow-lite.aができたことを確認ください。のちほど使用します。
Weston desktopの実行
Qualcomm® Robotics RB5 Platform 開発キット上でWeston desktopを立ち上げます。
下記の準備ができましたらQualcomm® Robotics RB5 Platform 開発キットの電源をONしてください。
・HDMIモニターとQualcomm® Robotics RB5 Platform 開発キットをHDMIケーブルで接続
・Qualcomm® Robotics RB5 Platform 開発キットへとキーボード、マウス、USBカメラを接続
起動が完了するとHDMIモニター上にloginコンソールが表示されますので以下コマンドを実行ください。
qrb5165-rb5 login: root
Password: oelinux123
root@qrb5165-rb5:/# weston --connector=29
OpenCV for Waylandのビルド
Qualcomm® Robotics RB5 Platform 開発キット上でOpenCV for Waylandをビルドします。
モニター左上に表示されているターミナルを起動しターミナル上で以下を順に行います。
root@qrb5165-rb5:/# apt-get install build-essential curl unzip
root@qrb5165-rb5:/# apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
root@qrb5165-rb5:/# apt-get install libjpeg-dev libpng-dev
root@qrb5165-rb5:/# apt-get install python-numpy libxkbcommon-dev libwayland-client0 libwayland-dev
root@qrb5165-rb5:/# mkdir /home/src
root@qrb5165-rb5:/# cd /home/src/
root@qrb5165-rb5:/# git clone https://github.com/pfpacket/opencv-wayland.git
root@qrb5165-rb5:/# cd opencv-wayland/
root@qrb5165-rb5:/# mkdir build
root@qrb5165-rb5:/# cd build/
root@qrb5165-rb5:/# cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=/usr/local -DWITH_IPP=OFF -DWITH_WAYLAND=ON -DWITH_GTK=OFF ..
root@qrb5165-rb5:/# make -j7
物体検出アプリケーションのビルド
Qualcomm® Robotics RB5 Platform 開発キット上で物体検出アプリケーションをビルドします。
アプリケーションをビルドする前に、必要なTensorFlow Liteの依存ファイルをインストールします。
root@qrb5165-rb5:/# cd /home/src/
root@qrb5165-rb5:/# git clone https://github.com/tensorflow/tensorflow.git
root@qrb5165-rb5:/# cd tensorflow/
root@qrb5165-rb5:/# git branch r2.1 remotes/origin/r2.1
root@qrb5165-rb5:/# git checkout r2.1
root@qrb5165-rb5:/# ./tensorflow/lite/tools/make/download_dependencies.sh
物体検出アプリケーションをダウンロードします。
root@qrb5165-rb5:/# cd /home/src/
root@qrb5165-rb5:/# git clone https://github.com/mattn/webcam-detect-tflite.git
root@qrb5165-rb5:/# cd webcam-detect-tflite/
root@qrb5165-rb5:/# mkdir libs
事前にホストPC上でビルドしたTensorFlow Liteのlibrary(libtensorflow-lite.a)をQualcomm® Robotics RB5 Platform 開発キットへコピーします。
hostPC$ adb push libtensorflow-lite.a /home/src/webcam-detect-tflite/libs/
以下の内容をCMakeList.txtとして作成し、Qualcomm® Robotics RB5 Platform 開発キット上の/home/src/webcam-detect-tflite/へ保存してください。
cmake_minimum_required(VERSION 3.0)
project(webcam-detector)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O2 -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ldl -lrt")
message(STATUS "optional:-std=c++17")
set(OpenCV_DIR "/home/src/opencv-wayland/build/")
include_directories(/usr/include/freetype2/)
include_directories(/home/src/tensorflow/)
include_directories(/home/src/tensorflow/tensorflow/lite/tools/make/downloads/flatbuffers/include/)
find_package(OpenCV REQUIRED)
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
include_directories( ${OpenCV_INCLUDE_DIRS} )
ADD_LIBRARY(TFlite_LIB STATIC IMPORTED)
SET_TARGET_PROPERTIES(TFlite_LIB PROPERTIES
IMPORTED_LOCATION /home/src/webcam-detect-tflite/libs/libtensorflow-lite.a)
set(SOURCE_FILES
main.cxx)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} )
target_link_libraries(${PROJECT_NAME}
freetype
pthread
dl
)
target_link_libraries(${PROJECT_NAME} TFlite_LIB)
Qualcomm® Robotics RB5 Platform 開発キット上で物体検出アプリケーションをビルドします。
root@qrb5165-rb5:/# cd /home/src/webcam-detect-tflite
root@qrb5165-rb5:/# mkdir build
root@qrb5165-rb5:/# cd build
root@qrb5165-rb5:/# cmake ..
root@qrb5165-rb5:/# make
root@qrb5165-rb5:/# cp ../mobilenet_quant_v1_224.tflite .
root@qrb5165-rb5:/# cp ../labels.txt .
注意:別途フォントファイルが必要となります。
ウェブ検索でmplus-1c-thin.ttfを探しダウンロード後、Qualcomm® Robotics RB5 Platform 開発キット上の/home/src/webcam-detect-tflite/build/へ保存ください。
hostPC$ adb push mplus-1c-thin.ttf /home/src/webcam-detect-tflite/build/
物体検出アプリケーションの実行
Qualcomm® Robotics RB5 Platform 開発キット上で、USBカメラが/dev/video2で認識されていることを確認ください。
以下コマンドでQualcomm® Robotics RB5 Platform 開発キット上でアプリケーションを実行します。(ESCキーで終了できます。)
root@qrb5165-rb5:/# cd home/src/webcam-detect-tflite/build
root@qrb5165-rb5:/# ./webcam-detector

お問い合せ / お見積り
製品に関するお問い合わせ、開発キットのお見積りは以下リンクよりご用命ください。
Qualcomm メーカー情報Topへ
Qualcomm メーカー情報Topページへ戻りたい方は、以下をクリックください。