System Design Services
System-level design requires a strong understanding of both hardware and software design principles, as well as the ability to effectively integrate multiple subsystems into a single cohesive system. For products that incorporate machine learning or computer vision, it also requires knowledge of neural networks, optics, and image processing.
EJ Technology Consultants utilizes our experience in deep learning, computer vision, and hardware to architect an optimal system that starts your design efforts off on the right foot.
Schedule a call to start architecting your system.
System Specification
An important step of product development is to create a well-defined set of specifications: how does the product work, and what does successful performance look like? These specifications are crucial, because they guide the rest of the development process.
- Define top-level requirements and features of your product or application
- Define technical parameters (material cost, power draw, connectivity, etc) and operating environments (indoor/outdoor, daytime/nightime, temperature range, etc)
- Define pass/fail criteria for each requirement, feature, and parameter
EJTC can help flesh out requirements, features, and verification criteria for your product concept. We’ll also help you understand the relative ease or difficulty of implementing various product features.
Component Selection
Computer vision applications are often built around two core components: a camera and a processor. Even with these two parts, there’s a huge amount of options at a wide range of cost and performance points. Selecting the right component is crucial to a successful design, but understanding the tradeoffs requires deep knowledge in machine learning, computer vision, and hardware.
When considering options for processors, cameras, and other peripheral components, EJTC can help evaluate the following:
- Performance: what are the critical performance metrics for this component, and will they meet the needs of the application?
- Cost: is this component at the optimal cost-to-performance point while meeting the system requirements?
- Integration: will this component interface seamlessly with other parts of the system?
- Support: does this component have the appropriate drivers, development tools, and documentation that will streamline the design process?
We have an exhaustive list of cameras and processors (or off-the-shelf compute modules) that we can share to help you understand the options available. We can also perform benchmarking on processor options to verify they have enough compute power to process and analyze images at the speed required by the application.
Software Implementation
There are several key elements to consider when deciding how to implement the software for your computer vision or machine learning application.
- Model selection: determine which deep learning model (or models) are appropriate for your application
- Application block diagram: define software blocks and how they interface with eachother
- Drivers: find and integrate drivers for each hardware component
- Operating system: determine if your application is best suited for embedded Linux, RTOS, or bare-metal
Architect Your Product
Understanding the tradeoffs between hardware, software, and functionality allow you to architect a system that maximizes your product’s performance while minimizing overall cost. EJ Technology Consultants will optimize the high-level design of your system. Contact us to get started.