Help a Student to develop on AI64

Hi everybody,

I am writing this like a message in a bottle.
I am a master’s student in electronics who is close to graduating. To complete my degree, I need to complete a six-month internship in a company.

The company I am currently interning for has asked me to document and develop an AI on the BBAI64. This is their first time working on AI, so none of them can directly assist me.

I know the fundamentals and I have already developed/implemented AI in Python and C++ (an MLP with only the standard library) for my courses. However, I have not yet done so for an industrial purpose.
Additionally, TI code in C++ and Python is not well documented or accessible (the AI is hidden, not visible to the user), which makes me nervous about delivering incomplete or partial work to the company.

That’s why I am asking the community if anyone could provide me with some pointers on where to begin developing an AI app.
I am available everyday at every hour to discuss via video conference.

Thanks in advance for any response.

1 Like

As a starting point: what does “AI” mean here?

AI is, in broad strokes, a marketing term. It points to a broad category of algorithms and techniques. Most often, what we mean by “AI” now is “machine learning” (ML). But ML is, still, just a technique for solving problems. So what problem are you/your company looking to solve? Is it a computer vision task? (Object detection? Classification? Something else?) Or is it for audio recognition? Perhaps something generative? Is there an existing ML model you’re looking to port to the AI-64, or are you training one from scratch? And are you just trying to demonstrate the ML inference itself or is there a broader function you want to perform (e.g. robot navigation based on ML detections)?

Aside from that, I have to agree that the AI-64 has a very weak ML story right now. Documentation is lacking and software quality (from TI) is low. However, it is possible, and realistically not too bad, to port moderately sized models to the AI-64 with good results. So hopefully the community can help you out if you know what you’re trying to do and which tools you want to use.

2 Likes

Thank you for your quick response. You are right that the term “AI” is commonly used, but in this case, it is more appropriate to refer to Deep Learning.

The company is interested in attracting clients with the application I will develop, so they have asked me to create a real-time machine learning/deep learning app.
After discussing the options with them, it appears that object detection would be the most visually impactful and attractive feature, due to boxes display, tracking, classification, etc. Therefore, my plan is to train a Yolov7 model, which is known for its effectiveness in real-time object detection.
To improve the efficiency of the app, I intend to implement the inference part in C++. However, transitioning to C++ has been difficult since there are only a few resources available for developing deep learning applications in C++.
Additionally, a client has proposed a project, which is based on spectral analysis. While I still need to read papers to determine the appropriate architecture, I believe that I will have to write the code from scratch for this project.

Thanks again for your time.

Seems reasonable to me.

The workflow for model architectures that TI officially supports and has optimized for the tools is going to be significantly different from custom architectures that don’t have existing export scripts available.

For object detection, I’d recommend YOLOv5, since TI officially supports it. I’ve documented some of these flows (including C++ samples) here: YOLOv5 object detection on BB AI-64: end-to-end walkthrough

For custom architectures/others that TI doesn’t officially support, you’ll need to train your model and then adapt the existing docs and samples for it. You need scripts that export your model, usually as ONNX if you’re using PyTorch, and generates the appropriate metadata for TI’s tools. That’ll be an exercise for you to figure out.

1 Like

Thanks a lot, I have understood so much. You have helped me a lot and I think I can now start working confidently on my project.