HPE Blog, UK, Ireland, Middle East & Africa
1752723 Members
6577 Online
108789 Solutions
New Article
DaveDavies

I’m (still) a programmer – and proud of it!

To quote Eddie Izzard…“but I can control it, never more than a few lines of code per day”.

If you’ve read any of my previous blogs, you’ll know that I firmly believe the computer is the ultimate productivity tool, and in some cases where our standard tools, such as Excel, aren’t able to do a job, I’ll happily knock something up that will be sufficient.

My first full-time job fresh, out of Uni, was to go back to where I’d spent the previous year as an apprentice at IBM (specifically North Harbour, Portsmouth), to continue with development of new internal software applications. At Uni I had covered, among many other disciplines, software engineering, learning multiple languages such as Pascal, FORTRAN, C, BASIC, Ada, COBOL; all compiler based, and a few interpreter based such as Prolog and Lisp.

IBM had invented the PC and required new internal applications to handle the predicted increase in volume business that the mass produced product would bring. Before that it was mainframes or minis that were made to order…PC’s would be made to plan, and needed volume based stock control, order management, and distribution applications to help drive this new business stream.

The mandated programming language was IBM’s own (no surprise there) Programming Language One (PLI) storing data to their hierarchical database, Information Management System (IMS). Source code would be compiled into object code, and linked with various other object codes (such as module libraries) to form a machine executable image that the operating system could run. The completed software packages would then be distributed around the IBM offices in the world to use locally.

The quality of source code required was very high and scrutinised severely…I remember even comments were reviewed to ensure they were correct and helped explain the process the software was following, in case anyone in support needed to trouble shoot the source code. In fact they encouraged dumb coding! Nothing fancy - as I said someone else may need to check, correct or amend the code in the future. I remember in my early days solving a problem by creating code that was recursive and multi-threading. I won a prize for the elegant solution, but was asked to re-write it for the very reasons above.

I still write code today. Python is the language of choice nowadays. It’s a runtime language (no compiling, linking etc.) as modern computers are so fast it’s not an issue any more. I use it to clean up data, and try out some fun things like automating home lighting (thanks to a published Python library source from GitHub).

I also use Python to help me better understand the Computer Vision, AI and Deep Learning that forms the basic usable features such for crowd heat maps, face detection and recognition, hand detection and gesture recognition, automatic number plate recognition, object recognition, video surveillance and many, many more.

With a few lines of Python commands below, and the use of the OpenCV library, I can take my laptop’s camera (or any other IP Camera) and display it onto my screen continually, until I press the “q” key to finish.

a few lines of Python commands.jpg

A simple example, I admit. But now we have a variable, in this case called “frame”, which is really just an array of integers representing width, height and RGB colours of an image from the camera.
Arrays are easily manipulated by Python to achieve various methods of image enhancements. Input can also be set up to be a single picture or a previously saved video file.

By adding just two more lines to our example, we can remove all the background from the frame and just show anything that is perceived as moving. Basically array mathematics.

adding just two more lines to our example.jpg

An example output of such a program is in the image is below. 

example output of such a program.jpg

 

This example forms the basis of many image manipulations such as motion detection or counting. There are many other capabilities of Python and OpenCV and that can be used together to solve bigger requirements, and Python provides many libraries that can also be used to enhance the image processing function.

However, Python, along with its libraries and OpenCV, are just a few of tools available for our HPE expert specialists (including some of their own) to be able to rapidly prototype a solution or help prove a concept. Additional tools and methodologies for requirements like object detection and recognition are aided by utilising deep learning neural networks with common libraries such as Tensorflow and Keras.

HPE’s overall capabilities in this field are much, much higher…and I summarise a few reason why here:

  • HPE introduced an integrated hardware and software solution : based upon HPE Apollo 6500 system in collaboration with Bright Computing they are purpose-built for high performance computing and deep learning applications. This solution includes pre-configured deep learning software frameworks, libraries, automated software updates and cluster management optimized for deep learning and supports NVIDIA Tesla V100 GPUs.
  • We also publish the HPE Deep Learning Cookbook : Built by the AI Research team at Hewlett Packard Labs. A set of tools to guide customers in selecting the best hardware and software environment for different deep learning tasks. The Cookbook can also be used to validate the performance and tune the configuration of already purchased hardware and software stacks. One use case included in the cookbook is related to the HPE Image Classification Reference Designs
  • We also host an HPE AI Innovation Centre : Designed for longer term research projects, the innovation centre will serve as a platform for research collaboration between universities, enterprises on the cutting edge of AI research and HPE researchers. The centres are located in Houston, Palo Alto, and Grenoble.
  • And finally, we announced  a container-based software solution, HPE ML Ops, to support the entire machine learning model lifecycle for on-premises, public cloud and hybrid cloud environments. The new solution introduces a DevOps-like process to standardize machine learning workflows and accelerate AI deployments from months to days.

So, if you have a potential use case for Computer Vision and Deep Learning and would like us to help you with developing it further, please do contact me. My programing days are over, but we have skilled developers who do these things all the time, and I’d be more than happy to get them in touch with you.


Dave Davies
Hewlett Packard Enterprise

twitter.com/HPE_UKI
linkedin.com/company/hewlett-packard-enterprise
hpe.com/uk

0 Kudos
About the Author

DaveDavies

Chief Technologist - Large Enterprise Accounts