Week 1 - Intro to the project

Hi everyone, thanks for your interest in my project. As mentioned in the project abstract, my project will focus on creating a program that recognizes and calculates the dimensions of parts in a MEMS gyroscope that needs to be etched with a laser from photos taken by a microscope camera. The program will then be put together with the works of other colleagues on the site to achieve the goal of automating the gyroscope-fixing process.

What tools will I use?


OpenCV is a powerful and widely used image processing library for computer vision. It has a lot of built-in functions that allow developers to easily apply different effects and calculations on images. Since this project is focused on creating a program that deals with photos of a gyroscope, OpenCV will be the core of this project.

As for the choice of programming language, I chose Python as it is succinct and easy-to-use, so that I can focus on developing the algorithm for processing the images instead of wasting time on dealing with programming issues. Also, Python has great support and integration for OpenCV through the opencv-python library, it can be installed easily on any computer that has a python environment with a single line of command: python -m pip install opencv-python.

For creating an intuitive GUI (graphical user interface) program, I went with Streamlit, an awesome library in Python that offers a simple way to create web apps. It has plenty of built-in widgets such as sliders, buttons, and select-boxes that will come in handy when I need to tweak the parameters of image-processing functions.

What do the images look like?

So what do the parts in a MEMS gyroscope look like, you may ask. Well, here’s a sneak peek at some sample images of it taken by a microscope camera. As you can see from the image below, parts in a gyroscope can be roughly categorized into three categories: triangles, rectangles, and broaches/combs. Recognizing these shapes and their dimensions will be one of the major goals of this project.

It may sound easy, but it is in fact quite hard to write a program with the aforesaid functionality. From my prior research, the rough process will be: denoising the images; finding the contours of the parts; finding the corners of the shapes; calibrating the image-to-reality scale; and computing the real sizes of the parts according to the scale.

Images of a MEMS gyroscope

That’s all for this week. Next week, I will start to apply some preprocessing to the images and try to find the contours of the gyroscope parts in the images. Stay tuned!