Computer vision is now one of the most rapidly developing digital processing approaches in the world. It uses different methods to solve thousands of specific tasks related to pattern recognition, image analysis, and image processing. With this technology, machines can find, track, classify and identify objects. Besides, along with finding regularities and patterns, it also allows data extraction from images and videos by analyzing the provided X number of certain images with various computer vision systems and algorithms.
As you may know, Redwerk team always stays tuned for innovations in tech and keen to explore new areas in software development. So now it’s computer vision time! We decided to research this issue deeper, try it on our own and figure out what good businesses can do by dint of computer vision “tool”.
Computer Vision Use Cases
Modern computer vision technologies are used in various businesses on the consumer level to simplify working routine, make it more effective or just for fun. Every day we are bumping into computer vision when, for example, we see digital signages with infrared markers for dynamic projection mapping, or, we use augmented reality apps and cameras, or when the light and the temperature systems turn on and adapt in response to our movements. And this list is much wider.
In the automotive industry, computer vision technology is used for the number plate recognition in law enforcement purposes, electronic toll and fines collection, and tracking of non-registered vehicles. Vehicle registration plates are read by optical character recognition on images provided by road rule cameras or other means of observation. This technology works at any time of the day and offers full control of traffic. Furthermore, computer vision is used for intelligent remote control of cars, planes, drones and other machines. Large corporations like Tesla, Volvo, Audi, BMW, and Mercedes-Benz use it as one of the central technologies of semi- and fully-autonomous cars. Their systems perceive car’s environment, lane markings, vehicles, use driver’s face recognition, lip reading, gaze tracking, and natural language to make assisted driving better, and help to avoid collisions and challenging situations.
Computer vision is also widely used for entertainment, in consumer apps for example. Now there are a lot of software solutions that use face detection, face match, human body shape and emotion analysis for security and entertainment purposes. For example, face detection is used in many popular mobile apps, in particular, in Instagram stories, or Snapchat to embellish selfies or make thematic avatars. The app recognizes and identifies specific facial parts as eyes, eyebrows, iris, nostril and mouth corners, then imposes a certain pattern on them or performs certain actions. If you need to recognize the person on the photo, face matching technology can cope with it easily. At first, it verifies the existence of the different facial features, then measures the face symmetry and match the results with the eigenfaces. The same technology used for Face ID function in iPhone X devices. It uses infrared dots grid to be projected onto the user’s face and creates user’s 3D facial map that then is matched with the pattern existed in the system.
Talking about emotion analysis, now it is widely used in different spheres: robotics, medicine, security, video and game industries, etc. It helps to predict people’s actions (e.g., the TSA auto-scanning airline passengers for signs of terrorism), businesses can judge the emotional responses of the audience in marketing and scientific research, governmental organizations can detect guilt, fear, and uncertainty emotions to influence people. By the way, Animoji on iPhone X analyzes emotions to mimic your facial expressions on Emoji characters.
The most significant industry for computer vision usage is medicine. Recognition of medical imaging data provides better diagnosis, treatment and predicts diseases. With this technology, a computer can determine texture, shape, contour in the picture, and provide 3D and 4D information for better understanding of the human body. Eye tracking systems allow disabled people to navigate and control computers with their eyes, as well as, to make usual phone calls, type messages, play games and use social networks.
In fact, computer vision can be used everywhere and can detect and recognize almost any object and operate with it, so every year, it is appearing a lot of startups, apps, and solutions that use this technology for their projects. Our team has its own experience in the development of computer vision projects, and we have something to share with you.
Redwerk’s Computer Vision Experience
But it’s just a theory until you try it out. So, here’s what we’ve found out, while researching and practicing in Computer vision area:
- buildings recognition;
- contrast contour definition;
- visual effects placement over objects;
- creating effects with video playback;
Here we described some of them and share the results we received.
In buildings recognition case, we needed to find a rectangle that describes and identifies the building and a polygon at the edges of its surface, then we transferred the corresponding coordinates to Unity for further effects creation. In this task, we used several key algorithms to: remove noise from a photo, increase the contrast, remove slots in a bitmap, find horizon and building sides, detect building rectangle, analyze the boundaries and constructing lines based on vertices of a polygon. As a result, we came up with the conclusion that high-rise single buildings on a monophonic background are defined better. If the weather conditions in the photo are bad, or the building has an unusual form or structure, recognition can be significantly deteriorated. To improve the results, the definition of illumination in the photo can be applied to, and then, according to it, the desired contrast should be chosen.
Contrast contour definition
Studying the abilities of computer vision, we had a task to identify contours of the objects located on the contrast background. As the example shows, we took the image of a keyboard on the table surface, and used blur technology to delete the background. In this case,the ideal way was to apply Gaussian blur, with a simple kernel and indication of the radius that corresponds to the original image dimensions. We used Gaussian blur as it`s more complicated than other blur functions, however it provides with the best result and removes noise without significantly destroying the contours of the object.
Visual effects placement over objects
To implement this task, we firstly had used contrast contour definition technology to receive the binary mask of the needed object in a video, that further was transferred to Unity for using in shaders. To create visual effects, we wrote some shaders with different sets of parameters and created 3 layers. The first back layer remained unchanged to play video from a camera via it, the second layer contained effects and objects, the third one, partially duplicated images from the camera, thereby cutting out the object. We prepared several simple 2D effects, such as hearts and smiles, to test their rise from behind the keyboard image on video. Check the result!
Creating effects with video playback
Based on the algorithm of contour definition, we had a task to create two types of effects: when the background under the object is replaced by video, and when the video is playing on the object itself. Initially, we planned to recognize the area by means of color analysis.
We found the actual color on the screen and replaced this area with a video stream. But under different illumination, the picture could change its color saturation, so it was difficult to keep the actual color in focus. Therefore we tried to slightly improve the algorithm having reduced a color range of a picture using the algorithm of color quantization. As the results were not satisfactory, we decided to create a marker which would allow users to choose the needed area on their own, and then use a tracker and monitor the movement of the selected area. Let’s see how it works!
Studying computer vision technologies and their use for different businesses was an interesting experience for us. We marked that this innovation can be applied in almost any industry to solve various tasks, but it requires a specific approach to building architecture and to development of the product. Redwerk has talented and qualified specialists in the team that always explores new technologies to use them in client and internal projects. So, if you are interested in computer vision, we can bring your ideas to life!
Redwerk is a team of certified experts, who make available high-quality IT outsourcing service for businesses that strive for a robust, stable and impressive product. Redwerk is a customized software development company, that engages masters of their trade with proactive approach to deliver on exactly what customer requires. We do appreciate those who trust us, so be the one!