AI prototyping

Developing applications leveraging deep learning may require a significant investment of time and resources.

One effective approach for reducing costs is rapid prototyping combined with concept visualization during the product design phase. 

This can help product teams to discover conceptual issues early in development and maximize value for customers.

Why rapidly prototype AI applications?

My recommendation is developing simple Proof of Concept (PoC) applications that serve as interactive presentations during product design discussions. 

These PoCs can enhance communication in multidisciplinary teams by providing a tangible representation of complex product concepts (ensuring that everyone is aligned and properly informed).


Benefits of this approach include:


Let’s explore this approach with a practical example: Consider concept visualization of a computer vision application that classifies traffic objects as an essential component of autonomous driving system.

Exercise 1/3 (Wireframe)

Examine the following wireframe and try to envision:



Traffic object classifier (prototype)

Exercise 2/3 (Prototype)

Play with the prototype and consider:

Exercise 3/3 (Evaluation)

Compare the results from both exercises - which case yielded:

Chances are that some initial ideas have already been implemented in the prototype and experimenting with the interactive PoC has likely lead to discovering new insights on what needs to be addressed in the final application.


Framework for the application design with rapid prototyping:

Product design (iteration cycle):



Approach tailored
to project complexity:

One large product

Many small products



How to develop AI prototype?

Timespan:

The entire prototype application (including deployment to production) took approximately 3 days to develop. Once the pipeline is established for a specific task (such as image recognition), similar prototypes can be created in 4-8 hours.


Technology:

I have selected the following technology stack for rapid experimentation and PoC accessibility:



Training:

This is a quick & dirty approach suitable for developing initial prototype to early discover risks and challenges inherent to the particular data/task:

  Production:

The prototype is publicly accessible via user-friendly web interface:


How to discover and address technology limitations:

Input categories

Data cleaning & model fine-tuning

Sample batch of input images

Fig.1: Sample batch of input images

Fig.2: Re-labeling problematic images dramatically improves model's ability to correctly categorize validation images.

Fig.3: Comparing prediction metrics for the pre-trained ResNet18, the model re-trained on collected images, and the final model re-trained on re-labeled images.

Prototype limitations (overview)

To effectively use our prototype, we must distinguish between two types of limitations:

a) Simplification limitations:

b) Technology-intrinsic limitations:

Addressing limitations (walkthrough)

Let's focus on insights from exploring technology-intrinsic limitations of the Traffic object classifier prototype. We will address them appropriately for the practical use of a final application.


PRIORITIZATION: 

Misclassification of a traffic lights image.

Fig.4: Misclassification of a traffic lights image.


Our model barely recognizes the presence of traffic lights within the image (7% probability), which is wrongly classified as an empty city. We can address this error by:


 

SYSTEM ROBUSTNESS:

Fig.5: Misclassification of a walking pedestrian image.


Pedestrian cross-walking the road was not prioritized in this example (3% probability), which would have fatal consequences! For mitigating risk of such severe error, we can consider implementing multiple measures:


Conclusion:

The proposed rapid prototyping framework helped us to identify and properly address critical challenges for developing the traffic object classifier algorithm as an essential component of a robust autonomous driving system. Key considerations for designing such production-ready application would include:

Summary: