Git Product home page Git Product logo

dkinneybu / cait Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cortictechnology/cait

0.0 0.0 0.0 236.53 MB

CAIT is a software package that enables makers and students to learn and experiment with A.I. algorithms on the popular Raspberry Pi 4B SBC.

License: GNU General Public License v3.0

Shell 1.74% JavaScript 74.36% Python 8.63% CSS 6.38% HTML 3.36% Dockerfile 0.31% Less 2.59% SCSS 2.63%

cait's Introduction

This project is deprecated. Please check out the new and improved CEP project

https://github.com/cortictechnology/cep




Documentation

CAIT

The Cortic A.I. Toolkit, or CAIT for short, is a software package that enables makers and students to learn and experiment with A.I. algorithms on the popular Raspberry Pi 4B single board computer. Our goal is to eliminate complicated software setup and allow people to easily integrate A.I. into their own projects. We take a container based approach and pre-installed many state-of-the-art open source A.I. software packages/frameworks into cohesive docker containers. We link these containers into a single system by employing the lightweight MQTT protocol. We also extended Google's Blockly visual programming language to offer a quick prototyping environment for our users. CAIT currently has a nubmer of custom A.I. and automation blocks:

Face Recognition Image Classification Object Detection
Natural Language Processing LEGO Motor Control Smart Home Control

All of these custom blocks are backed by a simple Python API. You may choose to program directly using this API for added flexibility and power. In fact, if you already have a running project that uses the visual programming interface, you can easily convert it into Python code using our automated conversion tool.

Hardware

Here is a list of hardware components that we currently support. You may choose a subset of them to suit your own projects.

  • Any of Raspberry Pi 4B 2GB/4Gb/8GB models
  • Micro SD card (32GB recommended)
  • Logitech USB webcam (C270, C922, C615, C310 are tested)
  • Mini speaker with 3.5mm audio jack
  • LEGO Mindstorms EV3
  • LEGO Mindstorms Robot Inventor
  • LEGO Spike Prime
  • Smart home devices such as Philips Hue, smart speakers, etc

We also support the use of Raspberry Pi's CSI camera interface. However, if your project requires audio/speech input, it's much better to use a USB webcam as it has an integrate microphone. The integrated mic usually offers much better audio input performance than any of the mini USB mics that we have tested.

How do I try it

Before you start, make sure there is at least 32GB of free space on your SD card.

$ git clone https://github.com/cortictechnology/cait.git
$ cd cait
$ ./setup_cait.sh --ap-ssid=<ssid_name> --ap-password=<ap_password> --ap-country-code=<country_code> --ap-ip-address=<desired_ap_ip> --wifi-interface=<wifi_interface_name>

You can provide custom values for the access point name, password, desired ip address, and the wifi ssid name. If no parameters are given, the default values are:

<ssid_name>: "cait" 
<ap_password> : "caitcait" 
<country_code>: "CA" 
<desired_ap_ip>: "10.0.0.1" 
<wifi_interface_name>: "wlan0"

After the setup process is completed, the device's hostname is changed to cait-<device_serial_number>. You can find the exact hostname by looking at the last line of the setup script output. It should say: "Hostname is changed to: ", with the new hostname highlighted in red as shown below. Of course, you can always use the raspi-config utility to change the hostname to whatever you like.

The above setup script configures the raspberry pi to operate in access point mode if it cannot connect to any WIFI hotspot. This can be very useful if the raspberry pi is brought to a new location where the WIFI has not been configured. In this case, you can easily configure it to use the new WIFI headlessly by connecting your computer to the raspberry pi's access point, and then visit http://<hostname>.local/setup. If there is a problem resolving the hostname, you can also go to http://<ap-ip-address>/setup instead.

Next, Please follow our Quick Start wiki page to get started.

How to contribute

We welcome contributions from all our users. You can contribute by requesting features or reporting bugs under "Issues". You can also submit proposed code updates through pull requests to our "dev" branch.

Upcoming new project

While working on CAIT, we ran into a lot of computational constraints. Even though the quad core Raspberry Pi 4B CPU is quite powerful, it is still sometime not fast enough to run multiple deep learning inferences. We kept wishing that there is an easy way for us to offload some of the computation to another nearby idle device without having to deal the complexity of distributed programs. After spending some time researching the available open-source technology, we decided to implement something that suits our needs.

The result is the upcoming CURT project, or the big brother to CAIT if you will. The goal of CURT is to enable our users to create distributed A.I. applications with minimal effort and minimal computational overhead. We also want to minimize the amount of effort spent in configuring each device and allow different hardware devices to work together seamlessly. CURT can be used as a backend for CAIT to offer more flexibility and gives users the ability to write programs for difference devices to cooperate to accomplish a common goal.

The CURT project is progressing very nicely. We are planning to release it in the first half of 2021. Stay tuned.

License

GPLv3 License

cait's People

Contributors

michaelhwn avatar yelu728 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.