Object recognition

from Wikipedia, the free encyclopedia
Automatic object recognition using the OpenCV software. For this purpose, a YOLOv3 model that was previously trained on the COCO dataset was loaded, which can identify 80 different objects.

The term object recognition describes methods for identifying known objects within an object space using optical , acoustic or other physical recognition methods. So z. B. determines the presence of an object in a digital image or video stream and its position and location.

Applications

Object recognition is necessary, for example, in complicated manufacturing processes. Both optical and inductive, capacitive or magnetic sensors and systems can be used. Often the conformity of the shape of an object with a specification is determined here, or the correct position of the same on a conveyor belt is checked.

In abstract image processing , object recognition methods are used to distinguish certain objects or patterns from other objects. To do this, the actual object must first be described mathematically. Image processing methods that are often used are edge detection , transformations and size and color detection. The more precisely the description of the object is possible and the more evaluable information is available, the more reliably the object recognition works.

Labels that are available in red or blue can be differentiated, for example , using a simple color sensor . However, if it is also to be recognized whether writing has been applied to the red label, an appropriate camera must usually be used.

Camera-based driver assistance systems are increasingly being used in vehicles, for example to automatically recognize traffic signs or the lane .

When detecting traffic signs , a search is made for circular objects. A red border then indicates a prohibition sign . Alternatively, a comparison can only be made with patterns of known characters ( template matching ).

More complex forms of object recognition are used when rotating or rapidly moving objects need to be tracked in an image. Then mathematical correlators are used that can adapt to the object, such as B. with a turning away helicopter whose position must be determined against a complex background. Using suitable image processing systems, it is possible to determine the position of objects below the pixel resolution of the underlying images.

Plant diseases can be detected with the help of the Plantix app , which works with artificial neural networks .

software

Software-based methods for object recognition usually fall into either machine learning or deep learning- based approaches. For machine learning approaches it is necessary to first define features with one of the following methods and then to use a technique such as the Support Vector Machine (SVM) for classification.

Machine learning approaches:

On the other hand, deep learning techniques are able to perform object recognition without having to manually define certain features in advance. These techniques are typically based on a convolutional neural network (CNN). Such an artificial neural network must be trained beforehand. This requires large amounts of images. These images used for training must have previously been classified in some way. So there must be some information about what is shown in the picture. There are special databases such as B. ImageNet or the COCO data set.

Deep learning approaches:

  • Region Proposals (R-CNN, Fast R-CNN, Faster R-CNN) and Detectron based on them.
  • Single Shot MultiBox Detector (SSD), with a single-stage detection strategy.
  • You Only Look Once (YOLO), with a one-step detection strategy.

A single-stage detection strategy means that the images to be analyzed only have to be read once. The fastest approach at the end of 2018 is YOLOv3, which was only released in the same year. Simple open source solutions are available for its use. They are based on the following approach: An artificial neural network was extensively trained with a large number of data records from the COCO database. This fully trained network is available as a file and can then be used with methods from the "Deep Neural Network module (dnn)" of the locally installed OpenCV software to examine images or video sequences in real time. The "trained" objects are then recognized in the image material to be examined.

See also

Web links

  • Object recognition (PDF file; 1.01 MB)
  • Course CS231n at Stanford University . Course content in the field of computer vision: Implementing, training and debugging your own neural networks. The 2017 lecture content is available online. (English)

Individual evidence

  1. The Plantix app recognizes sick plants. Wired , March 31, 2017, accessed January 21, 2019 .
  2. ^ COCO - Common Objects in Context. Retrieved January 29, 2019 .
  3. ^ Adrian Rosebrock: YOLO object detection with OpenCV. In: PyImageSearch. November 12, 2018. Retrieved January 14, 2019 (American English).
  4. Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks . In: arXiv: 1506.01497 [cs] . June 4, 2015, arxiv : 1506.01497 [abs] .
  5. Detectron. facebook research, accessed on January 21, 2019 .
  6. Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed: SSD: Single Shot MultiBox Detector . In: arXiv: 1512.02325 [cs] . tape 9905 , 2016, p. 21-37 , doi : 10.1007 / 978-3-319-46448-0_2 , arxiv : 1512.02325 [abs] .
  7. Joseph Redmon, Ali Farhadi: YOLOv3: An Incremental Improvement . In: arXiv: 1804.02767 [cs] . April 8, 2018, arxiv : 1804.02767 [abs] .
  8. Joseph Chet Redmon: YOLO: Real-Time Object Detection. Retrieved January 14, 2019 .
  9. Arun Ponnusamy: YOLO Object Detection with OpenCV and Python. July 28, 2018, accessed January 14, 2019 .