The Plainsight Way: Developing Computer Vision Applications
Introduction
The "Plainsight Way" is a structured and scalable approach to developing computer vision applications. It is designed to help Embedded Vision Providers (EVPs) build, deploy, and manage sophisticated vision pipelines efficiently.
Plainsight provides a robust ecosystem of tools, templates, and support services, enabling EVPs to focus on their core expertise—integrating and customizing solutions to meet end-customer needs.
Responsibilities Overview
The development of computer vision applications requires a collaborative effort between Plainsight and the EVP. Below is a high-level breakdown of each party's responsibilities.
Plainsight Responsibilities
Plainsight provides the foundational infrastructure, tools, and best practices necessary for building, testing, and deploying vision applications efficiently.
- Utility Filters: A library of pre-built filters designed to perform common transformations (cropping, resizing, filtering, format conversions, etc.).
- Custom Filter Development Support: A framework for building and publishing custom filters, allowing EVPs to extend functionality.
- Computer Vision Recipes: Pre-configured workflows that handle routine vision tasks, such as image collection, pre-processing, and model execution.
- Protege – Model Training and Evaluation: A platform to train, evaluate, and benchmark custom models using labeled datasets.
- Testing and Deployment Tools:
- Al-Haytham Filter Output Verification Tool for performance benchmarking and quality assurance.
- Jester Data Ingestion Service for automated data handling and pre-processing.
- Templates and Examples: Example Docker Compose configurations and deployment templates for rapid prototyping.
- Cloud-based Orchestration and Deployment: Services and tools for running Filters in cloud environments via Vision Flow, Vision Stream, and Vision Edge.
- Ongoing Support and Consultation: Assistance with debugging, performance optimization, and customization.
- Future Enhancements: Features like data lineage tracking, dataset curation, and advanced filter orchestration will be integrated into the platform.
EVP Responsibilities
As the primary integrator, the EVP plays a crucial role in adapting Plainsight’s technology to real-world use cases and customer environments.
- Providing Data: Ensure the availability of quality data for model training and evaluation.
- Filter Integration and Customization:
- Configure and manage Docker Compose files to deploy and orchestrate Filters.
- Customize utility filters for domain-specific applications.
- Processing Subject Data: Handle the results generated by application filters, integrating them into customer applications and analytics pipelines.
- Building Custom Filters: Develop specialized filters using Plainsight’s framework to extend platform capabilities.
Development Workflow Summary
Below is a high-level summary of the key steps involved in developing a computer vision application using Plainsight's ecosystem:
- Data Collection & Ingestion (Data ingestion recipes) ✅
- Preprocessing & Annotation (Jester, Data Curation Tools) 🟡
- Model Training & Evaluation (Protege, Encord Integration) ✅
- Filter Development & Configuration (Filter SDK, Utility Filters) ✅
- Testing & Benchmarking (Al-Haytham, Filter Output Verification) ✅
- Deployment & Orchestration (Vision Flow, Vision Stream, Vision Edge) 🟡
- Monitoring & Continuous Improvement (Telemetry Tools, Data Lineage Tracking) 🔜
✅ Fully Available 🟡 In Progress 🔜 Coming Soon
Plainsight Tools and Their Roles
Tool | Purpose |
---|---|
Jester | Automates data ingestion, preprocessing, and management. |
Protege | Model training and evaluation platform. |
Al-Haytham | Benchmarking and verification tool for filter outputs. |
Filter SDK | Framework for building and deploying filters. |
Vision Flow, Vision Stream, Vision Edge | Orchestrate filter execution in cloud, batch, and edge environments. |
Telemetry & Lineage Tools | Monitor filter execution and track data lineage. |
By following the Plainsight Way, EVPs can efficiently develop, deploy, and optimize computer vision applications, ensuring high performance and reliability in real-world deployments.