{"id":26819271,"url":"https://github.com/jwinarske/rpi-vision","last_synced_at":"2026-04-27T17:33:37.884Z","repository":{"id":112007720,"uuid":"279907993","full_name":"jwinarske/rpi-vision","owner":"jwinarske","description":"OpenVX stack for RPI.  Builds OpenCV 4.3.0, OpenVX-impl, and all OpenVX samples.","archived":false,"fork":false,"pushed_at":"2020-07-24T21:37:33.000Z","size":33,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-30T13:53:19.426Z","etag":null,"topics":["cmake","opencv","openvx","raspberry-pi","rpi4"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwinarske.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-15T15:37:58.000Z","updated_at":"2025-01-12T16:01:40.000Z","dependencies_parsed_at":"2023-07-30T21:31:34.777Z","dependency_job_id":null,"html_url":"https://github.com/jwinarske/rpi-vision","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jwinarske/rpi-vision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Frpi-vision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Frpi-vision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Frpi-vision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Frpi-vision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwinarske","download_url":"https://codeload.github.com/jwinarske/rpi-vision/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwinarske%2Frpi-vision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32348048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T17:12:42.749Z","status":"ssl_error","status_checked_at":"2026-04-27T17:12:41.658Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","opencv","openvx","raspberry-pi","rpi4"],"created_at":"2025-03-30T05:17:22.185Z","updated_at":"2026-04-27T17:33:37.878Z","avatar_url":"https://github.com/jwinarske.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rpi-vision\n\nOpenVX baseline stack targeting embedded Linux.\n\nBuilds OpenCV 4.3.0, OpenVX 1.3 sample impl, and OpenVX samples.  Clang toolchain file for RPI3/4 provided.\n\nUse to run opencv examples, opencv test cases, vx tests, or as a template for your RPI Vision project.\n\n## Cross-compile for RPI3 on Linux host\n\n    export MACHINE=raspberrypi3\n    export LLVM_ROOT=/path/to/clang/arm/toolchain/root\n    export TARGET_SYSROOT=/path/to/target/sysroot\n\n    git clone https://github.com/jwinarske/rpi-vision\n    cd rpi-vision\n    mkdir build \u0026\u0026 cd build\n    cmake .. -DCMAKE_TOOLCHAIN_FILE=`pwd`/../cmake/clang.toolchain.cmake -GNinja\n    ninja -j \u003ccore count to build with\u003e\n\n## Compiling on target\n\nBuilding on target with GCC will not be as performant as when cross compiling with Clang.  This is primarily due to CPU tuning flags.  The binaries will work, albeit much less performant.  If you want optimized tuning when building with GCC on target then you will want to implement a toolchain file that properly implements desired tuning.  Building with Yocto will automatically use optimized CPU tuning.\n\n### Compile on target\n\n    sudo apt get-install cmake\n    git clone https://github.com/jwinarske/rpi-vision\n    cd rpi-vision\n    mkdir build \u0026\u0026 cd build\n    cmake .. -DOPENVX_EXPERIMENTAL_USE_VENUM=ON\n    make -j\n\n## Debian Packaging\n\n### Generate Package\n\n    ninja package\n\n### Display contents of package\n\n    dpkg -c rpi-vision-Release-0.0.1.0-Linux-armhf.deb\n\n### Copy Package to Target\n\n    scp rpi-vision-Release-0.1.0-Linux-armhf.deb pi@192.168.1.100:/home/pi\n\n### Install Package on Target\n\n    sudo apt install ./rpi-vision-Release-0.1.0-Linux-armhf.deb\n\n### Remove Package on Target\n\n    sudo apt purge rpi-vision -y\n\n## Target Sysroot\n\nThe easiest approach is to mount a fixed up rootfs on your host machine, and point TARGET_SYSROOT to it.  This is after you install the required packages, copy sysroot, and fixup the symlinks.\n\n## Measured Build Times\n\nConfig|48 core @ 1Gbps Internet (Ninja)|16 core @ 48Mbps Internet (Ninja)|RPI3 @ 1Gbps Internet (Uniproc Make)\n-|-|-|-\n|real|5m41.664s|9m57.577s|402m3.774s\n|user|17m0.860s|27m4.504s|388m5.277s\n|sys|0m18.386s|0m30.169s|14m30.165s\n\n## Enviromental variables\n\n#### MACHINE\n\n*Required with clang.toolchain.cmake*\n\nAvailable values\n\n    raspberrypi2\n    raspberrypi3\n    raspberrypi-cm3\n    raspberrypi4\n\n#### LLVM_ROOT\n\n*Required with clang.toolchain.cmake*\n\nPoint to base folder of your cross compiling capable LLVM toolchain\n\n#### TARGET_SYSROOT\n\n*Required with clang.toolchain.cmake*\n\nPoint to base folder of your target sysroot\n\n#### TARGET_SYSROOT_TRIPLE\n\nDefaults to `arm-linux-gnueabihf` if not set.  CMake variable of same name can be overriden if clang.toolchain.cmake is not used.\n\n#### PKG_CONFIG_PATH, PKG_CONFIG_LIBDIR\n\nThese are used by OpenCV to find gtk-2.0, gtk-ext1, and openGL libraries in the target sysroot.\n\n## CMake Variables\n\n### CMAKE_BUILD_TYPE\n\nDefaults to `Release` if not set otherwise\n\n### CMAKE_INSTALL_PREFIX\n\nUse to set install prefix.  With Linux the default value is `/usr/local`\n\n### OPENCV_GIT_TAG\n\nDefaults to `4.3.0`\n\n### OPENVX_IMPL_GIT_TAG\n\nDefaults to `openvx_1.3`\n\n### OPENVX_SAMPLES_GIT_TAG\n\nDefaults to `master`\n\n### BUILD_OPENVX_TUTORIAL\n\nBuilds the openvx_tutorial repo.  Defaults to ON\n\n### BUILD_OPENCV_V4L2\n\nBuilds the opencv_v4l2 repo.  Defaults to ON\n\n### BUILD_OPENCV_WITH_NONFREE\n\nBuild OpenCV with Non-Free Support.  Defaults to ON\n\n### BUILD_OPENCV_WITH_QT\n\nBuild OpenCV with QT.  Defaults to OFF\n\n### BUILD_OPENCV_WITH_GTK\n\nBuild OpenCV with GTK.  Defaults to ON\n\n### BUILD_OPENCV_WITH_GTK_2_X\n\nBuild OpenCV with GTK_2_X.  Defaults to ON\n\n### BUILD_OPENCV_WITH_OPENGL\n\nBuild OpenCV with OpenGL.  Defaults to ON\n\n### BUILD_OPENCV_WITH_OPENVX\n\nBuild OpenCV with OpenVX.  Defaults to ON\n\n### BUILD_OPENCV_WITH_TENGINE\n\nBuild OpenCV with TEngine.  Defaults to OFF\n\n*Note: this requires a change to the TENGINE repo.  Toolchain tuning should be isolated to a toolchain file.*\n\nFile to change:  `build/opencv-prefix/src/opencv-build/3rdparty/libtengine/Tengine-\u003ccommit\u003e/CMakeLists.txt`\n\nComment out as below.\n\n    if(CONFIG_ARCH_ARM32)\n        add_definitions(-DCONFIG_ARCH_ARM32=1)\n    #    if(NOT ANDROID)\n    #           add_definitions(-march=armv7-a -mfpu=neon -mfp16-format=ieee -mfpu=neon-fp16)\n    #           set(ARCH_TYPE,\"Arm32\")\n    #    endif()\n    endif()\n\n### BUILD_OPENCV_WITH_VULKAN\n\nBuild OpenCV with Vulkan Support.  Defaults to OFF\n\n### BUILD_OPENCV_WITH_TESTS\n\nBuild OpenCV with Tests.  Defaults to OFF\n\n### BUILD_OPENCV_WITH_EXAMPLES\n\nBuild OpenCV with Examples.  Defaults to OFF\n\n### BUILD_OPENCV_WITH_PYTHON_EXAMPLES\n\nInstall Python Examples with OpenCV build.  Defaults to OFF\n\n### BUILD_OPENCV_WITH_CPU_VFPV3\n\nBuilds OpenCV with -mfpu=vfpv3.  Defaults to OFF\n\n*Use with GCC or when using a Generic Triple with Clang*\n\n### BUILD_OPENCV_WITH_CPU_NEON\n\nBuilds OpenCV with -mfpu=neon.  Defaults to OFF\n\n*Use with GCC or when using a Generic Triple with Clang*\n\n### OPENVX_EXPERIMENTAL_USE_VENUM\n\nYou may need to set this when *not* using clang.toolchain.cmake.\n\n## OpenVX Conformance\n\n### Run test\n\n    ssh pi@192.168.1.100\n    mkdir test_data\n    exit\n    cd build\n    scp -rp openvx-impl-prefix/src/openvx-impl/cts/test_data/* pi@192.168.1.100:/home/pi/test_data\n    ssh pi@192.168.1.100\n    cd test_data\n    vx_test_conformance \u003e log 2\u003e\u00261\n\n## OpenCV Tests\n\nEnable OpenCV tests by setting BUILD_OPENCV_WITH_TESTS=ON\n\nOpenCV tests were implemented with CTest, and paths are setup to run form the build folder.  When cross compiling there is a minor change to run them.\n\n### Running tests\n\n    export LD_LIBRARY_PATH=/usr/local/lib/tls/v7l/neon/vfp\n    opencv_perf_core\n    opencv_perf_calib3d\n    opencv_perf_core\n    opencv_perf_dnn\n    opencv_perf_features2d\n    opencv_perf_gapi\n    opencv_perf_imgcodecs\n    opencv_perf_imgproc\n    opencv_perf_objdetect\n    opencv_perf_photo\n    opencv_perf_stitching\n    opencv_perf_video\n    opencv_perf_videoio\n\n### Results\n\n    =================================\n    OpenVX Conformance report summary\n    =================================\n    \n    To be conformant to the OpenVX baseline, 5563 required test(s) must pass. 5563 tests passed, 0 tests failed. PASSED.\n    To be conformant to the Vision conformance profile, 5909 required test(s) must pass. 5909 tests passed, 0 tests failed. PASSED.\n    To be conformant to the enhanced vision conformance profile, 1221 required test(s) must pass. 1221 tests passed, 0 tests failed. PASSED.\n    Note: The 8190 disabled tests are optional and are not considered for conformance.\n    \n    #REPORT: 20200717095309 ALL 16271 8190 6784 6784 6784 0 (version 1.3)\n\n### Performance\n\nThe lowest latency I have seen with OpenCV and the Raspberry PI HQ camera is the access pattern used by \"opencv-v4l2-gl-display\".\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwinarske%2Frpi-vision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwinarske%2Frpi-vision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwinarske%2Frpi-vision/lists"}