Skip navigation
1 2 3 Previous

RoadTests & Reviews

41 Posts authored by: ralphjy Top Member
The next neural network that I'm going to try is a variant of Tiny-YOLO.  The You Only Look Once (YOLO) architecture was developed to create a one step process for detection and classification.  The image is divided into a fixed grid of uniform cells and bounding boxes are predicted and classified within each cell.  This architecture enables faster object detection and has been applied to streaming video.   The network topology is shown below.  The pink colored layers h ...
Before I move on to object detection I thought I would try one more example of object classification using a more complex neural network based on the Multi-layer offload architecture.  The network used is a variant of the DoReFa-Net and uses the large ImageNet dataset http://www.image-net.org/  for training.  The DoReFa-Net https://arxiv.org/pdf/1606.06160 is a low bitwidth convolutional neural network that is trained with low bitwidth gradients optimized for implementation on har ...
After my previous blog post it was pointed out to me that the amount of whitespace (or other non-object pixels, i.e. background) that I had in my captured image was affecting the accuracy of the classification.  I did a quick inverse test that was suggested by beacon_dave and added whitespace around the CIFAR-10 test image and it then classified as an airplane!  I guess this makes sense as there are a lot of extraneous pixels to confuse the classifier.  In general purpose use of a ...
In the previous blog PYNQ-Z2 Dev Kit - CIFAR-10 Convolutional Neural Network , I verified the 3 hardware classifiers against the reference "deer" test image.  Now I'm going to see how the classifiers perform with captured webcam images.  I expect the performance will be degraded because the webcam will produce lower quality images due to issues like image brightness and focus.  CIFAR-10 has a small training set (5000 images per class), so I'm going to use a solid background to hel ...
The first neural network implementation that I'm going to look at is for CIFAR-10 (Canadian Institute For Advanced Research).  CIFAR-10 is a computer vision dataset used to train and test neural networks for object recognition.  The CIFAR-10 data consists of 60,000 32x32 color images in 10 classes, with 6000 images per class. There are 50,000 training images and 10,000 test images.   Labeled Image Classes airplane automobile bird cat deer dog frog horse ship truck   ...
One of the technical areas that I am interested in is object detection in video streams.  The specific application is the real-time identification of objects in video from IP surveillance cameras.  As part of the PYNQ-Z2 roadtest I want to see how well an FPGA implementation of a neural network works for this task.  A key to an efficient implementation (power and area) in programmable logic is quantization.  I came across an interesting paper on quantization while researching ...
I thought that I'd try out another of the basic overlays before moving on to a neural network application.   The PYNQ development software provides a set of logic tools using the logictools overlay.  You can create a digital circuit by specifying its function and IOs with a simple, declarative API in Python.   The logictools overlay has 3 function generators plus a trace analyzer to capture generated patterns. Boolean Generator - up to 26 independent Boolean functions of up to ...
I'm continuing my exploration of the base overlay to control the external peripheral interfaces on the PYNQ-Z2.  The 3 interfaces are the Pmod, Arduino, and Raspberry Pi which are each controlled through a separate soft-core Microblaze processor.  The MicroBlaze instances are referred to as IO Processors (IOP) and there are actually 4 IOPs in the base overlay as there are 2 PMODs (A/B), the Arduino IO, and the Raspberry Pi IO.  PmodA  shares its 8 data pins with the RPi inter ...
Course module 12 finishes up by implementing a weather station device using the the Environmental sensors and the BLE device.  This course module is another example of the course not being finished before it was released.  There are 3 lab videos, the first one is a combination of the following two and probably should have been deleted.   In module 11 I encountered a problem where the device did not seem to be advertising its BLE characteristics.  I wondered if this could be ...
Course module 11 describes connecting things to the Internet and Cloud services.   I think the proof reader didn't get to these slides .  In the Module syllabus, I don't think that "Try to keep bullets short and to a minimum" was a topic.  And on the topic of IPv6, I think the world's population must have exploded if each person can only get 4000 addresses.     The proliferation of network devices - driven by mobile phones and IoT devices has necessitated the adoptio ...
As an introduction to FPGA programming the PYNQ-Z2 provides FPGA overlays.  An overlay is a generic FPGA design that provides some specific functionality, in essence a hardware library.  An overlay is generally programmed via a software abstraction layer that has a defined API.  The PYNQ-Z2 has a base overlay that provides access to its onboard and external peripheral interfaces via Python.  The base overlay bitstream is loaded when the PYNQ-Z2 boots up, so its functions are ...
My end objective for this roadtest is to implement a binary neural network (BNN) for image classification on the PYNQ-Z2.  I'll need to learn the board hardware and the development framework first.  There are a lot of tutorial videos on YouTube, but I found a Xilinx 1-day, hands-on workshop on GitHub that seems to be just what I need.  It uses some Pmod and Grove peripherals that I don't have, but they will be well worth the cost if I can get them quickly.  I'll blog about my ...
Just received the PYNQ-Z2 Dev Kit for the roadtest.  Thanks danzima for the quick shipment.   The kit contained everything needed to start immediately. PYNQ-Z2 board 12V, 2.5A Power supply with barrel jack and US and European plug adapters. Pre-flashed 16GB microSD card MicroUSB to USB cable Ethernet cable     Because the SD card already contained the required image, I just had to connect everything and it booted up immediately.   From the host PC (I'm runnin ...
The eighth course module looks at a Cortex application processor the A9 to examine the features and programming for a processor that might be used in a mobile or smartphone design.     Here are some of the processor highlights:     Lab5 Exercise - Run a program using a processor simulator This lab uses the Arm Development Studio to run a mixed C and assembly code program on an Cortex A9x4 processor model.  It allows stepping through the code and viewing registers ...
Course module 10 is an introduction to Bluetooth with emphasis on the BLE protocol.   BLE has the characteristics that make it ideal for use in IoT communication:   BLE makes the tradeoff of shorter range to reduce power, but still has reasonable range:   There are two key profiles associated with BLE, the Generic Access Profile (GAP) and the Generic Attribute Profile (GATT). GAP defines communication modes such as discovery and connection and device roles of periphera ...

Filter Blog

By date: By tag: