Prototyping an image processing algorithm and emulating or simulating execution on a hardware accelerator to estimate resource usage or performance
First Claim
1. A non-transitory computer accessible memory medium that stores program instructions executable by a processor to implement:
- storing a machine vision prototype, the machine vision prototype comprising;
a plurality of machine vision steps, wherein the plurality of machine vision steps specifies a machine vision image processing algorithm and associated parameters, and wherein the plurality of machine vision steps is interpretable by an emulator to perform the specified image processing on an image by emulating or simulating execution of the plurality of machine vision steps by a hardware accelerator;
analyzing the machine vision prototype;
automatically generating, based on said analyzing, a graphical program implementing the specified image processing algorithm, wherein the graphical program parallelizes at least a portion of the image processing, and wherein the graphical program is targeted for deployment to the hardware accelerator;
estimating resource usage or performance of execution of the graphical program by the hardware accelerator;
based on the estimated resource usage or performance, determining that the hardware accelerator is capable of executing the graphical program; and
based on the determination that the hardware accelerator is capable of executing the graphical program, deploying the graphical program to the hardware accelerator.
5 Assignments
0 Petitions
Accused Products
Abstract
System and method for creating a machine vision application. A machine vision prototype comprising a plurality of machine vision steps specifying a machine vision image processing algorithm and associated parameters may be stored. The steps may be interpretable by an emulator to perform the specified image processing on an image by emulating or simulating execution of the steps on a hardware accelerator, e.g., a programmable hardware element or graphics processing unit. An emulator may emulate or simulate execution of the steps on the hardware accelerator, thereby generating image processing results, which may be displayed for validation of the emulating or simulating by a user. The prototype may be analyzed, and based on the analyzing, an estimate of resource usage or performance of the image processing algorithm for the hardware accelerator may be determined and displayed, and may be usable for target platform selection or modification of the image processing algorithm.
-
Citations
23 Claims
-
1. A non-transitory computer accessible memory medium that stores program instructions executable by a processor to implement:
-
storing a machine vision prototype, the machine vision prototype comprising; a plurality of machine vision steps, wherein the plurality of machine vision steps specifies a machine vision image processing algorithm and associated parameters, and wherein the plurality of machine vision steps is interpretable by an emulator to perform the specified image processing on an image by emulating or simulating execution of the plurality of machine vision steps by a hardware accelerator; analyzing the machine vision prototype; automatically generating, based on said analyzing, a graphical program implementing the specified image processing algorithm, wherein the graphical program parallelizes at least a portion of the image processing, and wherein the graphical program is targeted for deployment to the hardware accelerator; estimating resource usage or performance of execution of the graphical program by the hardware accelerator; based on the estimated resource usage or performance, determining that the hardware accelerator is capable of executing the graphical program; and based on the determination that the hardware accelerator is capable of executing the graphical program, deploying the graphical program to the hardware accelerator. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer implemented method, comprising:
utilizing a computer to perform; storing a machine vision prototype in a memory medium, the machine vision prototype comprising; a plurality of machine vision steps, wherein the plurality of machine vision steps specifies a machine vision image processing algorithm and associated parameters, and wherein the plurality of machine vision steps is interpretable by an emulator to perform the specified image processing on an image by emulating or simulating execution of the plurality of machine vision steps on a hardware accelerator; analyzing the machine vision prototype; automatically generating, based on said analyzing, a graphical program implementing the specified image processing algorithm, wherein the graphical program parallelizes at least a portion of the image processing, wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program, and wherein the graphical program is targeted for deployment to the hardware accelerator; estimating resource usage or performance of execution of the graphical program by the hardware accelerator; based on the estimated resource usage or performance, determining that the hardware accelerator is capable of executing the graphical program; and based on the determination that the hardware accelerator is capable of executing the graphical program, deploying the graphical program to the hardware accelerator. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
21. A system, comprising:
-
a processor; a memory, coupled to the processor; and a display, coupled to the processor and memory; wherein the memory stores program instructions executable by the processor to; store a machine vision prototype, the machine vision prototype comprising; a plurality of machine vision steps, wherein the plurality of machine vision steps specifies a machine vision image processing algorithm, and wherein the plurality of machine vision steps is interpretable by an emulator to perform the specified image processing on an image by emulating or simulating execution of the plurality of machine vision steps on a hardware accelerator; analyze the machine vision prototype; automatically generate, based on said analyzing, a graphical program implementing the specified image processing algorithm, wherein the graphical program parallelizes at least a portion of the image processing, and wherein the graphical program is targeted for deployment to the hardware accelerator; estimate resource usage or performance of execution of the graphical program by the hardware accelerator; based on the estimated resource usage or performance, determine that the hardware accelerator is capable of executing the graphical program; and based on the determination that the hardware accelerator is capable of executing the graphical program, deploy the graphical program to the hardware accelerator. - View Dependent Claims (22, 23)
-
Specification