GSoC 2025 - Week 21 Status Update
Week 21 progress
During the past week, I began preparing to build the AGL image that includes both cam-infer-models and camera-streams-app recipes.
Merge the CI Job
I merged PR #2, which introduces the TensorFlow Lite environment, along with a CI the job for setting up
that environment and the scripts for loading the ssd-mobilenet-v1 model and performing detection. The section
for building the TensorFlow Lite inside the CI workflow cam_tflite_infer.yaml looks like this:
- name: Cache tensorflow
id: cache-tensorflow
uses: actions/cache@v4
with:
key: tensorflow
path: |
$/build/staging
- name: Build tensorflow
if: steps.cache-tensorflow.outputs.cache-hit != 'true'
working-directory: $
run: |
mkdir -p $/build/tensorflow
CC=/usr/bin/clang CXX=/usr/bin/clang++ \
cmake \
-S $/third_party/tensorflow/tensorflow/lite \
-B $/build/tensorflow \
-G Ninja \
-D TFLITE_ENABLE_GPU=ON \
-D TFLITE_ENABLE_XNNPACK=ON \
-D BUILD_SHARED_LIBS=ON \
-D FETCHCONTENT_FULLY_DISCONNECTED=OFF \
-D CMAKE_C_COMPILER=/usr/bin/clang \
-D CMAKE_CXX_COMPILER=/usr/bin/clang++ \
-D CMAKE_STAGING_PREFIX=$/build/staging \
-D ABSL_PROPAGATE_CXX_STD=ON \
-D CMAKE_POLICY_DEFAULT_CMP0135=NEW \
-D CMAKE_PREFIX_PATH=$/build/staging
ninja -C $/build/tensorflow -j 30Prepare the repos for the AGL Yocto image
My GSoC mentor Joel performed a code refactoring focused mainly on the CMakeLists
structure, scripts organization, removal of unnecessary submodules for the AGL image, and fixing minor coding issues. The
refactoring code is hosted on the fork jw/cmake-refactor and opened as PR #3. I reviewed the PR and committed some
additional changes for the AGL image, which include:
- Adding
LICENSEfile for the 3 repositories (including camera_idl) - Updating the
build.shscript of camera_idl to generatesprotobuffor the gRPC - Remove dead code of camera-streams-app, using
flutter_analyzeto check linting issues and modifyingpubspec.yaml - Fixing a typo and testing the current setup of cam-infer-models
Start the AGL image build
I started building the AGL image using agl-ivi-image as a base. I added the recipes to meta-agl-demo/recipes-demo
and the build process is ongoing. My GSoC mentors Joel
and Jan-Simon have been extremely helpful in preparing the recipes and
debugging the build process.
Next steps
- Complete building the Yocto image
- Research and retrain the current
ssd-mobilenet-v1for better performance