Guest Post – Introduction to Artificial Intelligence Techniques applied to Robotic Vision
Editors Note: We are pleased to have Adrian Beehner as our guest blogger today. He has written a great introduction to the use of Artificial Intelligence techniques in Robotic vision.
Adrian is a senior in Computer Science at the University of Idaho Coeur d’Alene. He is taking the CS 404:Advanced Robotics I class from our CTO, Dr. John C. Shovic at the University this semester. One of his projects has been being part of a team that is teach our manufacturing robot, Baxter, how to make coffee using a Keurig machine. One of his major parts in the project was having Baxter, using the camera in the robot’s arm, read the Keurig machine display and determine when the coffee was finished.
Introduction
What are the possibilities of Robots being able to detect and differentiate between different objects, and what are the AI techniques used to achieve this? The human eye, is capable of recognizing and processing complex data and making meaningful observations from it, so why not have Robots do the same? The difficulty of the field of Robotic Vision is that it is a variety of other fields, such as Machine Learning (one of the few “AI” approaches we really have at the moment), Image Processing, Computer Vision, Signal Processing, Optics, and Signal Processing. However, its two main fields are Machine Learning and Computer Vision (yet Computer Vision relies heavily on Machine Learning). Thus Robotic Vision “involves using a combination of camera hardware and computer algorithms to allow robots to process visual data from the world” (Owen-Hill, “Robot Vision vs Computer Vision: What’s the Difference?”). Machine learning, a particular approach to AI, is a large factor in the scope of Robot Vision, and thus is one of the most important parts of Robotic Vision, if not the most important. Advancement of Robotic Vision is increasing rapidly, refining a variety of techniques in artificial intelligence such as neural networks fuzzy logic, providing better and more reliable applications from these techniques. These underlying AI techniques for Robotic Vision can generally be used alongside image recognition software such as OpenCV, which uses neural network techniques for object detection with deep learning (subset of Machine Learning). Let’s begin with looking at the neural network AI technique.
Neural Networks
The Neural Networks AI technique is, as it likely sounds, inspired from the actual neural network activity of the nervous system for humans. Artificial Neural Networks (ANNs) are described by Dr. Robert Hecht-Nielsen, the inventor of the first neurocomputer as: “…a computing system made up of a number of simple, highly interconnected processing elements, which process information by their dynamic state response to external inputs.” (Caudill, “Neural Network Primer: Part I”). Thus neural networks need to make the right connections, by simulating the idea of neurons and dendrites. ANN’s require training in order to learn, these include supervised learning, which involves a teacher and the ANN, where the teacher gives some data to the ANN (where the teacher already knows the answer), and make ANN makes adjustments according to error. Then unsupervised learning, is when no example data with given answers, like trying to find hidden unknown pattern, based on the preexisting data sets. Then finally there is reinforcement learning, where the ANN learns from observation, as it will make decisions based on observing the environment, if the observation is somehow negative, the ANN adjusts its attributes to make a different decision the next time (Tutorials Point, “Artificial Intelligence – Neural Networks”). ANN’s are used in the majority of commercial products that use AI, as they learn knowledge from examples, which makes them somewhat simple to implement (in compared to other AI techniques). The drawback of it is that the network cannot archive the knowledge it acquired in a “explicit form” (such as decision tree or rules), but just in “weighted connections” (Dr. Robert Alcock, “Artificial Intelligence in Machine Vision”). Thus ANN’s can provide answers to problems, but cannot actually given any explanation to that why that answer was chosen. Thus for image recognition, and in particular Robotic Vision, you can feed the network a bunch of images, or perhaps a video, of a the same/similar object using the learning techniques mentioned above, until the ANN has successfully learned how to detect the object in the environment, thus a robot could always find that object in an environment, or maybe a variety of objects. Now that neural networks have been discussed, it is time to bring up the other major AI technique for Robotic Vision, fuzzy logic.
Fuzzy Logic
Fuzzy logic, much like the neural network AI technique, has its name as its literal meaning, as Fuzzy Logic Systems (FLS), produce output that is definite from input that is inaccurate, incomplete, ambiguous, and so on. FL is “method of reasoning that resembles human reasoning. The approach of FL imitates the way of decision making in humans that involves all intermediate possibilities between digital values YES and NO”. (Tutorials Point, “Artificial Intelligence – Fuzzy Logic Systems”). Thus the FLS can interpret vague input, for example, the input of someone saying Hot, which is fairly vague, could output actual discrete values, or another example could be the load sizes of a washing machine (small, med, large, ex large). There are four main parts for the FLS Architecture, which is to begin with the Fuzzification Module, where this will transform the system’s input (which are discrete numbers), into fuzzy sets, then another part is Knowledge Base, which stores the if-then rules. The next part is the Interference Engine, and the last part Defuzzification Module, transforms the fuzzy set into a definite value for output (Tutorials Point, “Artificial Intelligence – Fuzzy Logic Systems”). The advantages of FLS are that it takes imprecise and vague info, it’s fairly easy to make and understand, however the issue with this AI technique is that there is no “systematic design” to making fuzzy systems, the input to be deciphered needs to be somewhat simple, and are only useful for problems where high accuracy is not needed (Dr. Robert Alcock, “Artificial Intelligence in Machine Vision”). Thus in terms of Robotic Vision, this AI technique should not be used for robots that require high degree of accuracy of object detection, so if two object are very similar, but have small amount of differences, FLS will likely group them together. However, in Robotic Vision, object definitions are often not very crisp, and objects in a scene can only be described in fairly vague terms (Montseny, Sobrevilla, “Fuzzy Sets in Computer Vision: an Overview”). Now that both of the AI techniques that are often used in Robotic Vision have been described, it’s time to discuss the applications for which AI techniques for it are used.
There are a variety of applications for which AI techniques in regards to Robotic Vision are used, as the world is becoming more dependent of robotics for various purposes. Robots are being used for various tasks such as such as manufacturing, military, healthcare, domestication, and mining (“ROBOTICS”). One application that requires the AI technique of neural networks is “checking medical devices for defects”, a robot could be placed in an assembly line, where they check each medical device for any defect (based on what they were “taught” before), and each time the robot was checking for any defects, it would be undergoing unsupervised learning, thus actually improving its defect checking ability (The Escape, “Machine Vision Applications”). This makes the idea of AI techniques and Robotic vision very appealing, as the robot is now always learning more, and not staying “static”, as the robot would be without the AI technique of artificial neural networks. Another application for which the AI technique fuzzy logic system could be used for would be also again in some assembly line where they would be “Checking orientation of components”, as this would help with the vague idea of “orientation” of an image from a camera. Then the AI technique would determine an actual orientation for the object in terms of the robot’s coordinate system, and determining the newly needed coordinates for a correct orientation. In simpler terms of the applications for AI techniques in regards to Robotic Vision, it can: “can cut operation costs and create a straightforward solution for all types of automation or robotic needs. Robots working side by side, when fitted with robotic vision technology, won’t collide with each other” (Lindley, “What you should know about Robotic Vision Technology”). Furthermore, using these techniques help enhance the safety factor for human workers, as robots will learn to see and detect any workers, who may be in the way. Just for detecting human workers alone, this would use fuzzy logic, to interpret the vague idea of what a human is, and artificial neural networks to keep learning what is and isn’t a human. There are a variety of other applications in Robotic Vision, from needing to detect parts for assembling objects, scanning barcodes, parts assembly, food and product packaging and so on. Now that I have discussed all the main points of interest, time to come to end this discussion.
Conclusion
Advancement of Robotic Vision is increasing rapidly, refining a variety of techniques in artificial intelligence such as neural networks fuzzy logic, providing better and more reliable applications from these techniques. Artificial Neural Networks are an AI technique that is useful in Robotic vision for learning what objects are and their properties, by continued exposure to them, these learning techniques are supervised, unsupervised, and reinforcement learning. The Fuzzy Logic Systems AI technique is used to interpret vague input and produce output that is clear and defined, this is useful in Robotic Vision, as images generally have objects in them that are not clearly defined, however this means that accuracy also lacks with Fuzzy Logic, and it should not be used for more series robotics applications, that require high accuracy. Finally, there are a variety of applications that are used for the AI techniques that Robotics Vision uses, this includes things such as detecting defaults on objects in a production line, or determining the orientation needed when packing objects, these two applications are mainly focused on using the AI techniques mentioned earlier, but there are more applications besides just these. Overall, AI techniques in Robotic Vision are essential to performing the needed movement and navigation expected of robots, this is because Robotic Vision is what gives the Robot the actual visual feedback it requires to navigate around (unless using some other way) and detect objects.
Works Cited
Alcock, Robert. “Artificial Intelligence in Machine Vision.” VisionOnline, 7 June 2004, www.visiononline.org/vision-resources-details.cfm/vision-resources/Artificial-Intelligence-in-Machine-Vision/content_id/1235.
Caudill, Maureen. “Neural Networks Primer: Part I”. Miller Freeman Publications, 1989.
Leone, Gabriella. “Machine Learning and Deep Learning Explained.” Kairos, 3 May 2017, www.kairos.com/blog/the-best-explanation-machine-learning-vs-deep-learning.
Lindley, Michael. “What You Should Know about Robotic Vision Technology.” Concept Systems Inc, 28 Sept. 2017, conceptsystemsinc.com/what-you-should-know-about-robotic-vision-technology/.
Owen-Hill, Alex. “Latest Blog Post.” Robot Vision vs Computer Vision: What’s the Difference?, 7 July 2016, blog.robotiq.com/robot-vision-vs-computer-vision-whats-the-difference.
Point, Tutorials. “Artificial Intelligence Fuzzy Logic Systems.” Www.tutorialspoint.com, Tutorials Point, 15 Aug. 2017, www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_fuzzy_logic_systems.htm.
Point, Tutorials. “Artificial Intelligence Neural Networks.” Www.tutorialspoint.com, Tutorials Point, 15 Aug. 2017, www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_neural_networks.htm.
“ROBOTICS.” Reference for Business, www.referenceforbusiness.com/small/Qu-Sm/Robotics.html.
Sobrevilla, P., and E. Montseny. Fuzzy Sets in Computer Vision: an Overview. Mathware & Soft Computing 10, 2003, pp. 71–83, Fuzzy Sets in Computer Vision: an Overview, upcommons.upc.edu/bitstream/handle/2099/1735/article.pdf.
Escape, The. “Machine Vision Applications.” Machine Vision Applications. How Is Machine Vision Applied?, www.machinevision.co.uk/machine-vision-uses/applications#sthash.5xspfd3O.dpbs.
Wagner, Philipp. “Machine Learning with OpenCV” Httpsbytefishde ATOM, 25 May 2010, bytefish.de/blog/machine_learning_opencv/.