Welcome to my blog!

My Name is Deja Ballard. I am a Student from Nelson Marlborough’s Institute of Technology, Studying towards a Bachelors Degree in Information Technology. My key strengths is Application Programming in C#, but I am also well diverse in Database Management, Networking and Web development.

Social Media

FB - BlogINST - BlogLINK - Blog

TWIT - BlogYT - Blog.pngGit - Blog.png

Contact Me

Blockchain – Reflections Two

Stellar

this chain is a decentralized protocol for digital currency to fiat money transfers which allows cross-border transactions between any pair of currencies.

What is lumens?

It is the native stellar cryptocurrency for transferring currency cross borders. Currently, we use wire transfer, which transfers money from one bank to another till it reaches its correct currency and this can cause huge delays and fees.

DAI

Dai isn’t aimed to be an investment but more of a 1 to 1 secure, digital currency that stays at 1 DAI to1 1 USD. Dai is borderless, secure, programmable, Decentralized and fast to transfer. Decentrailized means there is no bank or government who owns or looks after your money

Blockchain – Reflection One

With the start of the new year, I wanted to learn something brand new and completely out of my area of interests. I decided to start learning about block chain and the world of cryptocurrency and the rise of apps that use this technology. With CoinBase, they have multiple educational courses about many different block chains, but what is awesome about this, is you get rewarded with crypto currency for completing it!

ESOSIO / EOS

Is an open source block chain protocol designed for app developers, which aims at fixing the biggest issues with block chain by being scalable, easy to use and fast to validate with ZERO transaction fees.

ESOSIO uses a consensus model called “Delegated Proof of Stake”. But first what is a consensus model? This is how to computers communicate with each other to make sure all computer’s have the same correct data. For Example, the image below shows that each computer has the wrong data about the user.

Bitcoin uses “Proof of Work” consensus which means all the computers race to finish an algorithm, also known as mining and once it is done, it is shared with all computers the solution. So how does “Delegated Proof of Stake” work? It works by instead of racing to finish the network, token holders/users will vote and delegate systems they think should hold the network. To compare the two, DDoS produces a network block every half a second where as PoW produces one every 10 mins!

Intel AI – Reflection Four

Now Im moving onto stage two, which is about optimization within OpenVINO. First off, lets look at some model optimizer terminologies.

Quantization

This method improves the performance of models that supports smaller bit size than 32 which is default. This method reduces the accuracy, but at the cost of using less memory and being faster, which makes the model be able to work on more devices.

Freezing

Freezing is a method used when using a TensorFlow model. By freezing the model, it will remove functions and unnecessary metadata that was used within training.

Fusion

As the name suggests, this method fuses multiple layers together to reduce kernal switching and overall computational overhead. This method is useful when using GPU’s

Intermediate Representations

OpenVINO supports Caffe, Tensorflow, MXNet, ONNX, Kaldi frameworks and all frameworks have different naming conventions. As a result, the Intermediate Representation is an ouput of a .bin and .xml file that translates the orgional model into a standard structure to be used by the OpenVINO engine

Intel AI – Reflection Three

First off, exercise three in my opinion is lacking in a lot of teaching. I understand this is the first time this course is being taught, so i know there is gonna be flaws but in all honestly, there was no teaching on what was meant to be done and zero documentation to learn from.

Exercise three is all about deploying an app at the edge. We were tasked with handling the output of the models (human pose, text detection and car detection). The first section was easy and i got all correct, it was within the handling the data itself where i struggled.

That being said, after you finish the exercise, the tutor runs through the exercise in great detail and explains how they found the code that they used.

Some useful functions that will help me troubleshoot in future

output.keys() = gets the dictionary keys, so for the car model, it has a color and type dictionary

.flatten() = flattens the output shape. for example, the car color output is (1,7,1,1), which when flattened becomes (7,) * seven represents the seven possible colors, so ([white, gray, yellow, red, green, blue, black])

numpy.argmax() = returns the maximum values, which in the car model’s case is the highest prediction color. * ([9.6967858e-07, 2.3289747e-06, 2.5214626e-07, 3.1800676e-07, 5.1445340e-07, 9.9999511e-01, 5.3769048e-07]) which means the highest one is 9.999511e-01.

Resizing outputs = sometimes the model takes an image that is smaller that your original input, so we need to resize the model output back up to its correct size

The Results

Byte Media – Week Three

Finally sent off my first website on Silver Stripe this week. This website design really threw me into the deep end, but i learnt a lot about silver stripe and their MVC architecture. There are a lot of amazing things that silver stripe stores in its models that can be used. For example, the blog module keeps track if its index is an odd or even number within the loop. As a result, we are able to make some awesome css or layout changes depending on the index’s like the image below.

What i didn’t like

My biggest issue has nothing to do with Silver Stripe, but one of the modules that the previous employee installed, which is called “bulma carousel”. Maybe it was out of date or something, but it had a couple big issues. One was that it wouldn’t work unless it had more than 3 images, which is easy to fix. Another was it couldn’t dynamically resize without merging images and sometimes even crash the Javascript file.

Shopify CMS

This week i started to learn how Shopify works and straight off the bat, I prefer this cms compared to silver stripe for one simple thing. An online code / theme editor environment, which makes slight modifications so much quicker compared to the current silver stripe pipeline that involves pushing to repos and remotely updating servers.

shopify uses a different style of MVC. At the bottom of each content blog, they have a schema which allows you to add text blocks, image pickers, etc.

Byte Media – Week Two

Week two of being with byte media and more importantly learning silver stripe. This week i learned about loop functions and many to one relations, which sounds easier than it actually is.

Within silver stripe, the models are a representation of the database table and the CMS. Below is an example of a gallery image php model of a many relation model. The only real difference between this model and a normal model is that “$has_one” array has a connection to your normal model.

Because this model is going to be displayed on another model, we need to create the CMS fields by code instead of the normal way of letting the $db do it.

Now if we switch over to the main model, we need to place the class in its “$has_many” array. we also need to disable the $inline_editable variable, which allows us to display the manual CMS from above.

Now lets switch over to the CMS. On the main CMS, we can now see an images tab in the top right.

On this page, it allows us to create multiple images.

and lastly, we can see all the variables displayed from the many class

Advanced Many relationships

From reviewing the process above, the summery page is quite lacking in content as it only showed the ID, so we are acutally able to change this within the model. Silver stripe has a preset array called “$summary_fields” which allows us to list things we want to place on the summery page.

Thumbnail images are blurred as the website is not released yet.

Intel AI – Reflection Two

For the second day of learning. I have a good understanding on how to use machine learning and AI. But my knowledge of HOW it actually works and the terminology could use some work. All my knowledge currently from youtube, self teaching and online forums so terminology gets mixed around a lot. The most common term that gets mixed up is models and Neural Network Architectures. During my times at Plant and Food Research, I used the YOLO(you only look once) Neural Network Architecture, but Yolo isn’t discussed in this course.

SSD

Single Shot Multibox Detector performs classifications on different convolution layer feature maps using default bounding boxes. SSD was one of the first revolutionary architectures.

ResNet

Residual Neural Network works by skipping over certain layers and thus helping avoid vanishing gradient problems. In simple terms, this problem is caused when there are too many layers, which makes the loss function so low that it can’t train correctly.

MobileNet

As the name suggests, it’s designed to be extremely light, so it could work on mobile devices and devices with low specs.

So what is Models then? A model is the output of the training with the architecture. For example, Text detection, Face detection, pedestrian and other pre-trained models come with openVINO, the tool that is being used for this course.

Exercise One

Udacity has a really awesome online workspace, which allows me to not worry about setting up an enviroment.

Byte Media – Week One

This past week, I started a new job at Byte Media, which is a website design company based in Auckland. Luckily, I get to work remotely alongside another member who also works in Nelson. Byte Media uses a more niche CMS framework called Silver Stripe, which was developed right here in New Zealand.

Silver Stripe is an extremely lightweight CMS compared to anything I’ve used previously like WordPress. It is so light weight, that it is just a content management system, not a design system, so all design/layout has to be done in CSS files and a new form of HTML called .SS, which is a nicer version of php.

My first thoughts about Silver Stripe is mixed, as I can be hard to pick up with how simple and lack of support when compared to something like WordPress, however it follows the MVC model and isn’t cluttered with modules and files like angular, so it is easy to pick up.

Silver Stripe works by making ‘blocks’ of code. Each block needs a model and and a view. The model stores variables that can be set within the websites CMS, then the view is populated by that information.

So far my biggest problem with this framework is the learning curve and I’ve taken over someone else’s project, so i have to learn both the framework and potentially bad code from the previous person.

Edge AI – Reflection One

Recently I applied for Intel’s Edge AI scholarship at Udacity. They are offering 700 people the chance to get a nano degree about edge AI, but what is Edge AI?

Edge AI, means an Artificial Intelligence system that runs locally on the device or the ‘edge’ of the network. Because it is running locally, it means it can work without the need of internet or connect to the servers. As a result, it can run faster compared to cloud A.I, as it doesn’t need to wait for confirmation from the servers.

Why is this important? Well for some companies, having a direct connection to a server is expensive or impossible. For example, The Cacophony Project, which places devices out in the wild to capture bird voices would most likely use edge AI, to save on network costs. Another good reason to use edge AI is the high level of security that is associated with it. Because it runs locally, no locally captured information gets sent to the server.

So during this course, what will I be learning?

  • Converting models
  • using inference engines
  • processing outputs to gather stats correctly
  • sending stats to servers
  • analyzing and improving performance

I will be doing these things by building a person counter app as shown below.

I can’t wait to get stuck into this new technology and learn more about AI. As this course focuses more on the improvement and performance of AI, which is something I haven’t learnt yet and could be very useful for my future projects.

Project Journal, Week Thirteen

This is the last week for blogs that will be marked for my PRJ701 class. This whole experience has been amazing and i have learnt a lot of things i wouldn’t of expected or gotten from courses at NMIT or online. So what have i been doing this week?

I did another failed test with darkflow, so my comparison between machine learning or computer vision is pretty clear which one is better for this problem. However, I have been needing darkflow to work for auto cropping the images, so im gonna need a way to crop with computer vision.

After a good days research on potential opencv methods that could work, I settled on using an erosion process, which scans the images with a kernel and gets the average color. From here, I am able to remove areas that don’t match the fishes color range and thus, leaves me with an area where i can auto crop.

So whats next? well my software is all done and pushed to a repo. My report is done, i just need to go through and proof read it a couple more times. My poster is coming along nicely and just needs some data numbers to show results of my software. Lastly, its time to be looking for a job before the whole last year crew is competing against each other for a job. oh and finish DAT701