TinyML applications
The future of machine learning is tiny and bright.
When we first announced the HarvardX TinyML course, we set out to not only openly teach the fundamentals of a nascent technical area and foster active, hands-on learning, but also to connect participants with the bleeding edge of TinyML development. Perhaps one of the most exciting things about TinyML is that the field is young and there is so much to do that has yet to be done. At this point, anyone can make a meaningful impact on the existing state of the art. With a flourishing online community and a growing number of folks working with TFLM, we feel the time is right to open a call for TinyML projects, wherein anyone within the community can push at the boundaries of existing work within the space. To incentivize innovation, participants who submit their project for review will be eligible to receive a number of prizes for exemplary work (details follow).
What constitutes a relevant project for the competition?
Anything – no really. We appreciate that open-ended prompts like this can be daunting, but we’d rather not constrain your creativity or passion. You should be excited about the application or improvement you choose to spend your time developing. Having said this, there will be opportunities to get feedback on the project scope you propose as well as the progress you’re making, so you won’t be developing anything in a vacuum.
If you aren’t sure how to get started, consider working from one of the TinyML examples and making substantive improvements or modifying whichever example to achieve something else. Having said this, if you are of a more ambitious kind, know that you are welcome to take this as far as you’d like (including novel applications), keeping in mind that it is often prudent to scale a project’s scope according to the time you have to allocate. We’d much rather see a modest project completed, than a moonshot project merely started.
Can we collaborate?
Absolutely! We are thrilled to see how much the TinyML community has flourished of late and expect that our community will continue to play a meaningful role in pushing at the boundaries of what’s possible and think that collaboration is a key to doing just that. But, collaboration isn’t a requirement, nor does collaboration constitute an advantage for groups when it comes to project evaluation in the context of prizes. Individuals who wish to work alone may and will not be penalized when comparing technical or creative accomplishment.
At a minimum, we’d like to see engagement on this Discourse platform in seeking and providing feedback on other projects. At most, really the sky’s the limit, but we’d encourage you to find a partner (using the TinyMLx Discourse) or even form a development team if you’d like to take your ideas to the next level. After you have formed a team, you are welcome to create a separate thread on Discourse to discuss a project, or call on your preferred communication tools (Slack, Zoom, GitHub, et cetera).
What about logistics and technical feedback?
Logistically, we appreciate that some members of the community may have more time to commit to a TinyML project than others and that there will be no one universal time where greater availability is common to all. Similarly, we appreciate that there will be varying levels of comfort as it relates to taking on an independent project and a likely desire for technical feedback. As a result, we put forward a flexible structure (below) that we hope you can utilize to structure your commitment and organize community collaboration and engagement, asynchronously.
To be clear, all of the following support structures outlined below are intended to be used asynchronously and without specific temporal restrictions, with the sole exception of the submission deadline for project review. We expect some projects to start (and perhaps finish) before others, and that’s just fine. Regardless of where you are in the process, you’re on track.
Finding a developing partner or team
If you haven’t found a partner or team yet, and would like to, here is a related post that will be pinned to the Projects category, wherein you can look for or find a development team, either by technical strength or project category. More details about this search mechanism are posted there.
Proposal feedback
Once you or your team have an idea for what you’d like to accomplish, we’d encourage you to post a technical proposal here, another post pinned to the Projects category. More details about this, including a proposal template, can be found there. Notably, this thread may also serve to help you find a team, but in fairness to those who submit project summaries for the competition, we’d appreciate it if you didn’t join an existing team beyond the ideation phase.
We’d also suggest that you review and provide feedback for other projects, as this process may help you to consider things that wouldn’t otherwise occur to you for your own project. In doing so, you’d be helping out a fellow member of the community, something I’m sure you’d appreciate yourself.
We can accomplish more, together!
Progress feedback
Once you or your team have made meaningful progress and would like feedback from the community on specific technical elements of your project, we’d encourage you to post questions and demonstrations at the level of “proof of concept” here for others to see and to discuss. As before, this post will be pinned to the Projects category.
Deadlines?
There is only one potential deadline for you to keep track of, 12:00pm EST on August 31st, 2021, and it only applies if you are interested in submitting your project to be eligible for the prizes described below. Project requirements and submissions can be found here. Depending on community interest, there may be additional project rounds announced here in the future, so don’t worry if you happen to miss this one.
What about hardware or other circuitry?
The focus of a good TinyML project ought to be TinyML. We know that’s self-evident, but we also appreciate the temptation to take on a project that calls on a circuitry beyond whichever TF Micro compatible microcontroller. With this in mind, we want to draw attention to the wealth of sensors available to you on the Arduino Nano 33 BLE Sense, the go-to development board right now. While you may conceptualize a need for additional circuitry, we’d encourage you to consider (a) if you already have requisite knowledge and skills to implement this (if you do, more power to you – do your thing) and (b) if the additional hardware truly unlocks something meaningful in the context of pushing TinyML forward. For what it’s worth, you shouldn’t feel obligated to pursue hardware beyond what’s available to you on the Nano 33 BLE Sense, nor will those who do necessarily be rewarded for doing so in the context of project evaluation.
Common pitfalls
While it may be tempting to call on existing models from other frameworks, a haphazard attempt to drag and drop pre-existing models into the TensorFlow Micro framework may not be fruitful. While it is fine to be inspired by a broad body of work, we encourage you to be deliberate in your approach to implementation.
Further, we’d like to emphasize the importance of, and challenges tied to, pre and post processing.
Project review and prizes
All project summaries must be submitted by 12:00p EST on August 31st, 2021 to be eligible for the prizes described below. Project requirements and submissions can be found here.
As an incentive for innovation, we are going to offer eligible individuals or teams the following prizes (with values noted in USD) for exemplary work. Independent from these cash prizes, some projects will be selected to be featured on the TensorFlow blog.
- $500 for the project that best demonstrates technical mastery
- $500 for the project that is most creative in its implementation
- $500 for the project with the most potential to impact society
A diverse committee of judges will be assembled by the HarvardX course staff. The rubric the committee will use for project evaluation will be made available in advance for transparency, wherein community voting will be considered. Prize winners will be announced by September 15th, 2021.
Good luck!
Project ideas
If you’re looking for inspiration, you can browse the final projects completed in Harvard’s CS249r. We also want to showcase a playful demonstrative project that an edX staff member put together that leverages the Nano’s IMU in a gesture recognition application to control Chrome’s offline T-Rex game.
Project submissions
Please refer to the project submission post for more details. You’ll have to give a brief description about your project and include a link to your GitHub repository and a YouTube video demonstrating your prototype.
Important!
The most important thing about doing this project is we want you to have fun!
Cheers, and remember… the future of ML is tiny and bright!!