02-21-2020 11:55 AM
Below I show the result and performance metrics for a standard sample - resnet50, included in Edge-AI-Platform-Tutorials.
I run that on hardware platform with DPU and see the results:
total image : 10
Load image: airplane1.png
[Top 0] prob = 0.991181 name = airliner,
[Top 1] prob = 0.003155 name = warplane, military plane,
[Top 2] prob = 0.001913 name = wing,
[Top 3] prob = 0.001161 name = bullet train, bullet,
[Top 4] prob = 0.000548 name = modem,
Load image: truck4.png
[Top 0] prob = 0.545508 name = tow truck, tow car, wrecker,
[Top 1] prob = 0.424842 name = fire engine, fire truck,
[Top 2] prob = 0.016473 name = trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi,
[Top 3] prob = 0.002229 name = thresher, thrasher, threshing machine,
[Top 4] prob = 0.002229 name = racer, race car, racing car,
I just wondere whether anyone tried to compile this example on x86 and run it on PC? Does openCV support this idea at all, I mean to create kernel but non-DPU so no hardware support. Unlike in the sample there where always is DPUKernel object used. Would anyone know any good example where CNN i.e. resnet50 is run on PC, source code detached from xilinx SDK and no DPU? Where to find taht kind of example anywhere close to openCV, openCL.
On other hand xilinx SDK may give an abstract layer where the developer builds the classification app on CNN but the kernel where it is eventually run on may be changed at compile time??
02-25-2020 02:24 AM
yes, for example this application (or similar applications) runs on a computer during training before being quantized and compiled for a Xilinx platform.
In most applications it is essential how many frames per seconds are processed, the value you reported and that cannot be easily met without an accelerator
Xilinx does not provide an environment to develop, train or test your model, but you can easily create your: just google "how to create a CNN". Today Xilinx supports Tensorflow and Caffe frameworks.
02-28-2020 04:23 AM
Many thanks for your idea and response.
Right, I have looked into UG1327 and parser param there takes either caffe or tensorflow - so that is what you meant saying Xilinx support ...
In this post I was more interested in using or executing an already trained network, what framework or environment or API I could use to compile the CNN and make use of it creating sample applications, like I was thinking about Xilinx AI SDK but it seems it lets the user build an app but still on xilinx hw and two above trainings framworks. I appreciate what great support Xilinx brings to the CNN but I am trying to understand what other options are or how feasible is to run a CNN on personal computer. My second idea is maybe OpenCV framwork can deal with a trained CNN, compile it, maybe quantize and then make use in a sample app.
I imagin that it should be possible as CNN is a generic idea how to to find a certain image properties in a massive data samples or video footage, CNN comes with layers, neurons and params(weights) for maths operations i.e. filter, pool..