Amit Gupta
7 min readJun 21, 2020

--

Artificial intelligence … and all that jazz : Image Processing and Machine Vision (2/n)

Most Popular Image processing test image — Lenna

My Introduction to image processing happened in the year 1997 during a master’s course in Instrumentation engineering. We had subjects on digital signal processing, probability, stochastic processes, optics, mechanical, mathematics. My course mates came from diverse backgrounds and that added lots of different viewpoints and perspective. Our classes were held in a government research laboratory. We had access to labs and scientists. This was too different from a traditional university setup.

One of the scientists who was teaching signal processing had a lab working on Image processing, machine vision, fuzzy logic and neural networks. This was the coolest lab having cameras, acquisition systems, computers and bright interns from top universities. To me it was a fantasy world and I was hooked to it, started spending my time after classes in the lab reading and learning image processing. Till now all the courses we were taught in engineering schools and even in masters talked about one dimensional signals, Fourier transforms, discrete Fourier transforms, digital filters, FIR, IIR filters, all examples on 1-d signals. In Imaging world everything was in two dimensional space. It’s a different matter that in later part of my career to exploit the compute power of GPUs I had to reapply all this knowledge to compute single unit of processing i.e. at pixel or blocks of pixels. Therefore the compute paradigm changed or evolved over time in the following manner.

Compute Paradigm

In terms of mental state I had to undergo the following.

Learning Process

My interest in Image processing made me take my masters project in this field. One of my first projects also got me my first job. It was the continuation of my masters project into a full-fledged deliverable system.

Automatic assessment of dispersion of carbon black in rubber, this lead to correct assessment of the quality of rubber. The rubber sample was placed under the microscope, and the software automatically graded the rubber according to the dispersion of carbon black ( which is added to enhance the abrasion resistance and tensile strength). The system finds its application in rubber processing industries. Few interesting and most important elements of this project were the hardware like Image grabber, camera, optics & lights. Yes, these matter a lot in highspeed industrial grade image processing applications. At that time we were using Pentium II running Win NT 4.0, we were using Visual C++5, ITI Image Processing Library(image processing library provided by the imaging frame grabber company).

Development Process

In the other project, it was about Fibre-Optic based Intruder detection system based on speckle theory of optical fibre & image processing. The optical fibre were laid underground around the periphery to be monitored and light through a laser source is launched into it. This is continuously monitored through vision system which triggers alarm when trespassing occurs. This application finds its use in very high security areas e.g. International Borders, Airports etc and also in the industries dealing with hazardous materials e.g. Petroleum refineries etc. nuclear installations etc

The basic flow of development was the following.

Merging of 2 disciplines

One thing which was coming out clearly was the requirement of dedicated hardware to interact with real world to achieve real time results. The PC’s were incapable of handling this amount of data. Later, when I started working in the video domain, even there we were using hardware accelerators, the internet of things is based on things- therefore nothing much changed with respect to approach.

My next projects in another organization were based on machine vision, to me image processing and machine vision were interchangeable words, however in the industrial world image processing used to solve real world problem were being called machine vision. I changed the job and this was the time when I was working on developing machine vision solution for semiconductor manufacturing. Both backend chip manufacturing to a very high end wafer inspection systems. This is when I got engaged with semiconductor world.

Malaysia had many semiconductor backend manufacturing plants. Our solutions were deployed with Motorola and Hewlett Packard in there manufacturing processes. We developed a 2D-Lead inspection system. This system was intended to take the uncertainty out of Visio-Mechanical inspection of miniature surface mounted devices such as SOT (small outline transistors), SC and SOIC packages. This system was designed for high-speed measurement and inspection of SMD leads, mark and package surface. The lead inspection consists of 2D inspection (Top View) for lead length, width and sideways bend. The system accuracy was 12.5microns with inspection speeds > 20K UPH (Units Per Hour) the hardware involved were Pentium III, Image grabber, Camera, Optics & lights operating system Win NT 4.0, Visual C++ 6, Matrox Imaging Library.

So what changed from org1 to org2? Solving the customer problem in the set time, cost and quality parameters are the most sacrosanct objectives of the industry. Therefore the introduction of processes and systems in place for maintaining quality of SW, HW, logistics, deployment, project management and so on becomes extremely crucial. We had started using Pentium III instead of Pentium II, VC++6 instead of VC++5, Image processing Hardware from vendor A vs vendor B, whatever was necessary for solving customer problem within the defined constraints.

Transition from Academic to Industry institution

The other important change, which happened was to analyse very quickly the problem/test images by using the GUI based tools which allowed us to try different filters, intensity thresholds, light correction etc. this is exactly what we see today in case of AI development i.e.

The ability to quickly try out things and gauge the way forward.

Efficient way of designing solutions.

The other project was about the Wafer Inspection, this was done for KLA-Tencor who used to develop yield management solutions for semiconductor industry. We developed a feature called Alignment site quality test. The Alignment of wafer under test with the golden wafer was very crucial, once they are perfectly aligned, the system calculates the deviations during the process and excludes the bad chips from further processing. This is feature reduced the ‘wafer rejection’ due to inappropriate selection of site, by user, during alignment training. Alignment failure was one of the major failures, the root causes being “bad alignment target”, and/or “contrast variation due to process variation”. The Alignment Site Quality Test feature addresses the bad alignment target problem by having the System perform a uniqueness test and various other tests (correlation Peak, Contrast, sharpness etc.) on the user selected alignment target during set up. We were using dual Pentium. For the integration of the feature, I had to visit US (my first time) to collaborate along with other engineering teams to oversee integration. We had the access to clean rooms, this was a dreamland!

It was peak of dot com bubble, end of 1999 engineers of all shades were lapping up to Java and writing HTML code( yes, even this could fetch H1B visa). My room mates working in services companies were being transferred to US, Europe and other continents. While they were enjoying parties with customers, farewells, inaugurations, promotions — in general good time. Whereas we were reading scientific papers, programming in C, C++, worrying about optics and lighting, designing and optimizing algorithms. It was odd.

To me having worked on the real number crunching application in a clean room was the most advanced thing in the world, I was so happy doing what I was doing at job but materialistically speaking Java guys were doing much better in life.

The other few subsystems which I worked on were: 2D-Barcode Reader/Generator to address the process industry’s need to classify and code the product on production line. This software was capable of reading and generating barcodes of almost all the popular types of barcodes.

The other was Light Dimness Control is used to control the output of lights through the software using the PC interface cards ( 8255 programmable I/O Controller) This software will be plugged in the application in which user can select the desired light o/p from the program rather than doing it manually.

I thought its worth mentioning them here to emphasize on the point that To do something, something else has to be done first! Not knowing this fact can land and engineer into a cribbing zone …. “I was hired for something else but I am doing totally different things”.

In my heart I was clear that I have to be in this zone — Semiconductors, electronics, Imaging, high end computing.

--

--

Amit Gupta

Innovator |IoT Product {Conception, Management}|ML/AI on the Edge | Image Processing| Audio| Semiconductors| LinkedIn: linkedin.com/in/guptamit1