Computer vision is now one of the most rapidly developing digital processing approaches in the world. It uses different methods and approaches 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 the technology field and keen to explore new areas in software development. So now it’s computer vision time! We decided to research this issue deeper based on world experience, 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:
- car brands recognition;
- buildings recognition;
- trees contours identification;
- virtual objects placed on top of the camera stream image;
- streaming video record from the entire screen without UI;
- contrast contour definition;
- visual effects placement over objects;
- virtual objects adding with camera position change.
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.
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!
All in all, to realize all these goals we applied OpenCV, SegNet, SimpleCV, Apple libraries, Unity framework, different plugins, approaches, and sets of algorithms. In the long run, we did a great job and made a general conclusion on recognition issue: a maximum benefit and quality of recognition are achieved when solving narrow tasks of finding a specific object in the image. Within more global tasks of recognition of general objects, results deteriorate significantly. So, on the understanding of the scope of application of computer vision depends what result will be considered as sufficient one.
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!