{"id":15049300,"url":"https://github.com/jnbraun/bcnn","last_synced_at":"2025-04-10T02:04:59.829Z","repository":{"id":71442992,"uuid":"69182314","full_name":"jnbraun/bcnn","owner":"jnbraun","description":"A minimalist Deep Learning framework for embedded Computer Vision","archived":false,"fork":false,"pushed_at":"2019-12-31T01:34:41.000Z","size":1636,"stargazers_count":45,"open_issues_count":3,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-02T17:42:42.364Z","etag":null,"topics":["arm","c99","computer-vision","convolutional-neural-networks","deep-learning","edge-ai","embedded-vision","gpu","high-performance"],"latest_commit_sha":null,"homepage":"","language":"C","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/jnbraun.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}},"created_at":"2016-09-25T18:23:31.000Z","updated_at":"2025-01-22T11:18:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"6047499b-cdca-4aaa-b39c-c1fc5ecd4d97","html_url":"https://github.com/jnbraun/bcnn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnbraun%2Fbcnn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnbraun%2Fbcnn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnbraun%2Fbcnn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnbraun%2Fbcnn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jnbraun","download_url":"https://codeload.github.com/jnbraun/bcnn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239114225,"owners_count":19583985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["arm","c99","computer-vision","convolutional-neural-networks","deep-learning","edge-ai","embedded-vision","gpu","high-performance"],"created_at":"2024-09-24T21:19:36.190Z","updated_at":"2025-02-16T09:31:48.385Z","avatar_url":"https://github.com/jnbraun.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BCNN\n\n[![Build Status](https://travis-ci.org/jnbraun/bcnn.svg?branch=master)](https://travis-ci.org/jnbraun/bcnn/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n## Introduction\nBCNN (Bare Convolutional Neural Networks) is a minimalist framework designed to prototype, train and deploy convolutional neural networks for embedded computer vision applications. \n\n### Features\n* Written in C99. Clean C API designed to be integrated in C or C++ codebase.\n* Lightweight: the minimal build requires **no** external dependency.\n* Modular: Can leverage a Blas library such as OpenBLAS on CPU. Can also run on Nvidia's GPU. CuDNN is supported to offer maximal speed.\n* Fast: Optimized CPU inference speed using AVX and ARM Neon vectorizations and OpenMP multithreading.\n* Flexible: Supports multi inputs / outputs / branches. Provides the commonly used operators to build state-of-the-art CNN architectures (ResNet, DenseNet, MobileNet, [Yolo](https://github.com/jnbraun/bcnn/tree/master/examples/yolo) ...)\n* [Command line tool](https://github.com/jnbraun/bcnn/tree/master/examples/mnist_cl) to train / evaluate models via simple configuration file.\n* Online data augmentation via [bip](https://github.com/jnbraun/bcnn/tree/master/src/bip), a fast image processing library (usable as standalone module).\n* (Experimental) Model converters from Caffe -\u003e bcnn and bcnn -\u003e TensorFlow Lite.\n\n## Getting started\nDownload or clone the repository:\n```\ngit clone https://github.com/jnbraun/bcnn.git\n```\n\nYou need to have cmake installed in order to build the library.\n\n### [Optional] Dependencies \n#### CPU\n* Minimal build: no external dependency.\n* Build with Blas: requires a blas library (OpenBLAS is recommended).\n\n#### GPU \nRequires CUDA libraries (cudart, cublas, curand) and a GPU with compute capability 2.0 at least. CuDNN is optional but supported.\n\n### Build\n* User configuration: Depending on you system, you may want to edit the following lines of the CMakeLists.txt:\n```\n# User configuration settings\noption(USE_AVX \"Build with AVX instructions\" ON)\noption(USE_CUDA \"Build with CUDA libraries\" OFF)\noption(USE_CUDNN \"Build with CuDNN library\" OFF)\noption(USE_BLAS \"Build with BLAS library\" ON)\noption(USE_NEON \"Build with Neon instructions\" OFF)\noption(USE_OPENMP \"Enable OpenMP multithreading\" ON)\n```\n\n* [Optional] When building with CUDA and / or CuDNN, you may need to adjust the following line depending on the compute capability of your GPU:\n```\n# Uncomment the proper line according to the system cuda arch\nset(CUDA_ARCH \n    #\"-gencode arch=compute_30,code=sm_30;\"\n    #\"-gencode arch=compute_35,code=sm_35;\"\n    \"-gencode arch=compute_50,code=sm_50;\"\n    \"-gencode arch=compute_50,code=compute_50;\"\n    \"-gencode arch=compute_52,code=sm_52;\"\n    #\"-gencode arch=compute_60,code=sm_60;\"\n    #\"-gencode arch=compute_61,code=sm_61;\"\n)\n```\n\n* Build\n```\ncd path/to/bcnn\nmkdir build\ncd build/\ncmake ../\nmake\n```\n\n## How to use it\n\n* Use the command line tool bcnn-cl with configuration file: see an example [here](https://github.com/jnbraun/bcnn/tree/master/examples/mnist_cl).\n\n* Or use the static library and write your own code: see an example [there](https://github.com/jnbraun/bcnn/tree/master/examples/mnist).\n\n## License\n\nReleased under MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnbraun%2Fbcnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnbraun%2Fbcnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnbraun%2Fbcnn/lists"}