Generation of synthetic three-dimensional object images for identification systems

By generating RGB-D image pairs and performing image variant processing, the problem of low efficiency in image database construction in existing technologies is solved, achieving efficient and low-cost image database generation and robust object recognition.

CN123032876APending Publication Date: 2026-11-03TAHOE RES LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611252465.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2015-12-15
Filing Date
2016-11-15
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

Existing technologies, such as manual capture and web crawling, are inefficient, costly, and difficult to scale when building large image databases, and struggle to generate robust image variants to support computer vision applications.

Method used

By generating RGB-D image pairs of 3D objects, and using a processor to synthesize multiple image variants, including background scene generation, object pose adjustment, illumination and visual effect simulation, an object recognition classifier is generated.

Benefits of technology

It achieves efficient generation of image databases, supports robust object recognition, reduces manual capture costs, and improves database scalability and recognition accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123032876A_ABST
    Figure CN123032876A_ABST
Patent Text Reader

Abstract

The present disclosure relates to generation of synthetic three-dimensional object images for training recognition systems, providing techniques for generating variations of synthetic three-dimensional object images for training recognition systems. An example system can include image synthesis circuitry configured to synthesize a 3D image of an object (including a color and depth image pair) based on a 3D model; the system further includes background scene generation circuitry configured to generate a background for each of the rendered image variants. The system can further include image pose adjustment circuitry configured to adjust an orientation and translation of the object for each of the variants. The system can further include illumination and visual effects adjustment circuitry configured to adjust an illumination of the object and the background for each of the variants, and to adjust a visual effect of the object and the background for each of the variants further based on an application of simulated camera parameters.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of application No. 201680066761.4, filed on November 15, 2016, entitled "Generation of Synthetic 3D Object Images for Recognition Systems". Technical Field

[0002] This application relates to techniques for rendering images of 3D objects based on three-dimensional (3D) models of objects. Background Technology

[0003] Machine learning systems typically require a relatively wide range of image variations to robustly support large image databases for computer vision applications. Some existing commercial databases contain tens of millions of images arranged in a hierarchical format, with each object depicted by thousands of images. It often takes years to capture and label all the necessary images for inclusion in such databases. Furthermore, the effort of many people is typically required to inspect and maintain the database. This approach is inefficient, costly, and difficult to scale. For example, in an object recognition system, adding a new object to the list of recognized objects would require capturing images of that object from multiple cameras in different poses, lighting conditions, and varying scene backgrounds (to name just a few of the image depiction variables). Some existing systems rely on manual capture techniques to obtain the relatively large amounts of data required. Other systems employ web crawlers to search the internet and aggregate image data in an ad hoc manner—regardless of where the image data can be found. However, given the size of the required image database, neither approach is satisfactory. Summary of the Invention

[0004] According to a first aspect of an embodiment of this application, a processor-implemented method for generating image variants of a three-dimensional (3D) object is provided, the method comprising: receiving a 3D model of the object by the processor; synthesizing a color and depth (RGB-D) image pair of the object, comprising a color image and a depth image, by the processor based on the 3D model; rendering a plurality of RGB-D image pair variants of the object by the processor based on the synthesized RGB-D image pair of the object, the rendering comprising performing at least one of the following for each of the variants: generating a background scene by the processor; adjusting the orientation and translation of the object by the processor; adjusting the illumination of the object and the background scene by the processor; adjusting the visual effects of the object and the background scene by the processor based on the application of simulated camera parameters; and generating an object recognition classifier by the processor based on at least a first subset of the rendered RGB-D image pair variants, wherein the object recognition classifier is used to identify the object in a new image under different visual conditions and / or different object poses.

[0005] According to a second aspect of an embodiment of this application, a system for rendering image variants of a three-dimensional (3D) object is provided, the system comprising: an image compositing circuit for compositing a color and depth (RGB-D) image pair of the object, comprising a color image and a depth image, based on a 3D model of the object; at least one of the following: a background scene generator circuit for generating a background scene for each of the rendered image variants; an image pose adjustment circuit for adjusting the orientation and translation of the object for each of the rendered image variants; and an illumination and visual effects adjustment circuit for adjusting the illumination and visual effects. The system includes an adjustment circuit for adjusting the illumination of the object and the background scene for each of the rendered image variants, and further for applying simulated camera parameters to adjust the visual effects of the object and the background scene for each of the rendered image variants; a rendering parameter variant circuit for generating parameters for each variant iteration, the parameters being used to control pose adjustment or illumination and visual effects; and a machine learning system for generating an object recognition classifier based on at least a first subset of the rendered image variants, wherein the object recognition classifier is used to identify the object in a new image under different visual conditions and / or different object poses.

[0006] According to a third aspect of an embodiment of this application, a system for generating image variants of a three-dimensional (3D) object is also provided, the system comprising: means for receiving a 3D model of the object; means for synthesizing a color and depth (RGB-D) image pair of the object, comprising a color image and a depth image, based on the 3D model; means for rendering a plurality of RGB-D image pair variants of the object based on the synthesized RGB-D image pair of the object, the means for rendering comprising at least one of the following for each of the variants: means for generating a background scene; means for adjusting the orientation and translation of the object; means for adjusting the illumination of the object and the background scene; and means for adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters; and means for generating an object recognition classifier based on at least a first subset of the rendered RGB-D image pair variants, wherein the object recognition classifier is used to identify the object in a new image under different visual conditions and / or different object poses.

[0007] According to a fourth aspect of the embodiments of this application, a computer-readable storage medium is also provided, having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform the method described according to the first aspect of the embodiments of this application. Attached Figure Description

[0008] This patent or application document contains at least one color-drawn drawing. Upon request and payment of the necessary fees, the Patent Office will provide a copy of this patent or application disclosure containing one or more color-drawn drawings.

[0009] As the following detailed description continues, and with reference to the accompanying drawings, in which similar reference numerals depict similar parts, and wherein:

[0010] Figure 1 This is a top-level block diagram of a system for rendering 3D object image variants according to one of the embodiments disclosed herein.

[0011] Figure 2 This is a more detailed block diagram of a synthetic 3D image variant rendering module configured according to one of the embodiments disclosed herein.

[0012] Figure 3A An example rendered variant of an object image according to one of the embodiments disclosed herein is shown.

[0013] Figure 3B Additional examples of rendered variants of object images according to one embodiment of the embodiments disclosed herein are shown.

[0014] Figure 4 Examples of objects having similar shape and color characteristics but different depths are shown in one embodiment of the embodiments disclosed herein.

[0015] Figure 5A This is a flowchart illustrating a method for generating a variant of a 3D object image according to one embodiment of the present disclosure.

[0016] Figure 5B It is illustrated according to the example embodiment. Figure 5A A block diagram of the method described.

[0017] Figure 6 This is a block diagram schematically illustrating a system platform configured for rendering variants of 3D object images according to one embodiment of the embodiments disclosed herein.

[0018] Although the following detailed implementation will be carried out with reference to exemplary embodiments, many alternatives, modifications and variations of the exemplary embodiments will be apparent to those skilled in the art. Detailed Implementation

[0019] Generally, this disclosure provides techniques for rendering multiple variations of a 3D image of an object based on a three-dimensional (3D) model. Each rendered 3D image comprises a pair of two-dimensional (2D) images: one providing a color image, where each pixel may have a standard red-green-blue (RGB) value; and the other providing a depth image, where each pixel encodes depth into a grayscale value. The 3D images may be referred to herein as RGB-D images to emphasize that they are represented by a pair of color and depth images. The resulting synthetic 3D images can then be used as input to a machine learning system that outputs a classifier for real-world object recognition. Any desired number of renders can be synthesized and subsequently used by the machine learning system, for example, to generate, train, or test an object recognition classifier. This technique includes, for each render, the generation of different background scenes, the adjustment of object poses, and the application of contrast and other visual effects to provide an efficient method for automatically building a database of image renders of objects without the typical overhead associated with manual capture. Such a database can therefore contain a relatively wide range of sample variations suitable for building robust classifiers that support computer-based vision applications and other such image processing applications.

[0020] The technique described herein for synthesizing image variants offers substantially increased efficiency compared to existing manual or semi-manual methods for capturing real-world images. In some embodiments, the described technique can be used to automatically generate 3D image data (e.g., including color and depth) with millions of variants. This technique can be implemented in hardware or software, or a combination thereof.

[0021] Figure 1 This is a top-level block diagram 100 of a system for rendering variants of an RGB-D object image according to one embodiment of the embodiments disclosed herein. The system is shown to include a 3D model generation module 102, a synthetic RGB-D image variant rendering module 104, a rendering database 106, a machine learning / object recognition system 108, a classifier 110, and a classifier testing module 112.

[0022] The 3D model generation module 102 can be configured to generate a 3D model of the object of interest. A 3D model generally defines or represents the 3D surface of an object through a mathematical representation or through a set of points in 3D coordinate space that can be connected by geometric shapes such as polygons. In some embodiments, the model may be provided by the object's manufacturer. The model may be generated by computer-aided design (CAD) tools, for example, as part of the process of designing the object. Alternatively, the model may be created by a 3D scanning tool configured to scan a physical sample of the object. In another alternative, the model may be created by a designer using 3D sculpting tools, or by any other known technique in light of this disclosure.

[0023] The 3D (RGB-D) image variant rendering module 104 can be configured to render any desired number of 3D images based on a 3D model-based composite or rendered object, wherein each rendering is associated with a variant of one or more image parameters, such as combining... Figure 2 As described in more detail below, the synthesized 3D image includes color data (RGB) and depth data, and may be referred to as an RGB-D image.

[0024] Optional rendering database 106 can be configured to store rendered image variants generated by synthetic 3D (RGB-D) image variant rendering module 104. In some embodiments, a first subset of these stored image renders can be used as training images for generating a classifier, while a second subset of the image renders can be used to test the classifier.

[0025] The machine learning / object recognition system 108 can be configured to generate an object recognition classifier based on any desired number of rendered image variants provided by the synthetic 3D (RGB-D) image variant rendering module 104. The recognition classifier can be trained on the image variants using any known technique, as per this disclosure.

[0026] The generated classifier 110 can thus be configured to recognize an object when it subsequently appears in new images under different visual conditions and potentially in different object poses. The classifier testing module 112 (which in some embodiments may be a component of the machine learning / object recognition system 108) can be configured to test the generated classifier 110 using any suitable number of different image variants from the rendering database 106.

[0027] It will be understood that, for example, a manufacturer or supplier of an item or object (or any number of such items) may possess a 3D model of each of the items in its inventory or catalog. The system described herein can be used to synthesize, for example, thousands of image variants for each item, which can then be used to generate a recognition classifier capable of recognizing the item when any of the manufacturer's cataloged items may subsequently appear in any real-world image under arbitrary visual conditions.

[0028] Figure 2 This is a more detailed block diagram 200 of a composite 3D (RGB-D) image variant rendering module configured according to one embodiment of the embodiments disclosed herein. The composite 3D (RGB-D) image variant rendering module 104 is shown as including a model correction circuit 202, an image compositing circuit 204, a background scene generator circuit 206, an image pose adjustment circuit 208, an illumination and visual effects adjustment circuit 210, and a rendering parameter variant circuit 212, the operation of which will be explained in more detail below. Of course, the order of the illustrated modules and circuits represents one possible example, and other variations are possible, such as pose adjustment being performed before background scene generation.

[0029] As an optional initialization operation, model correction circuit 202 can be configured to scale the 3D model of the object to a normalized size and translate the model to the origin of the 3D coordinate system. This is expected to compensate for the fact that different 3D model generation techniques can produce models with arbitrary sizes, orientations, and / or positions relative to a given coordinate system. Correction thus ensures that all models undergo similar scaling and share a common coordinate system, which in turn benefits the implementation and performance of the subsequent processing modules and circuits described below.

[0030] The image compositing circuit 204 can be configured to synthesize a 3D image pair of an object based on a 3D model of that object, given that this disclosure uses known techniques. A relatively large number of 3D image variants can then be rendered based on the synthesized 3D image of the object generated by this circuit. The number of variants can range from hundreds to thousands or more. Any combination of operations performed by the components described below can be applied to create each RGB-D rendering variant (i.e., for both the RGB image and the depth image).

[0031] Background scene generator circuit 206 can be configured to generate a background scene for each of the rendered image variants. Each rendered variant may include a potentially unique background scene, although it is also possible to reuse a background scene on demand. In some embodiments, the background scene generator may randomly select a background scene from a background scene database. In some embodiments, the background scene may be a 2D planar image located behind an object, as illustrated in Figure 3 below. In some embodiments, the background scene may be a more complex 3D constructed model. For example, there may be a table located inside a house, where the table is the object of interest and the floor and walls of the house serve as the background scene.

[0032] Image pose adjustment circuitry 28 can be configured to adjust the pose (e.g., orientation and / or translation) of an object for each rendered image variant. Furthermore, in the case of non-rigid objects, the image pose adjustment circuitry can further adjust the pose of regions of the object, where the regions are associated with components or sub-components within the object that can move freely relative to each other. For example, if the object is a toy character, the character can be rotated and / or translated to any orientation and position in image space. Additionally, if the toy character is intended to be non-rigid (e.g., flexible), the pose of the head, arms, and legs can vary with each render, as described below. Figure 3B The example illustrates the ability to generate renders that include all possible (or actual) premutations and combinations of poses of different components or subcomponents of an object.

[0033] The illumination and visual effects adjustment circuitry 210 can be configured to adjust the illumination of each object and / or the generated background in each rendered image variant. Illumination can be adjusted or varied, for example, from brighter to darker, or vice versa, and in some embodiments, the contrast of the object can be varied. As a further example, some portions of the image can be masked while others are highlighted, or some portions of an object can appear glossy while others are dark. As yet another further example, the color of the illumination can be varied.

[0034] The illumination and visual effects adjustment circuitry 210 can be further configured to apply analog camera parameters to the visual effects of each adjusted object and / or background in the rendered image variant. Analog camera parameters may include, for example, lens focal length and lens aperture. Changing the lens focal length will change the field of view, for example, from a wide-angle effect to a telephoto effect. Changing the lens aperture will change the depth of field of the image (i.e., the depth range of the focused image and background).

[0035] The rendering parameter variant circuit 212 can be configured to control or select parameters for the desired effect in each iteration or variant generation. These parameters can control, for example, pose adjustments for objects and / or backgrounds in the image, as well as illumination and visual effects. The selection of parameters can be determined by the system operator or predetermined based on the properties of the object. The selection of parameters can also be based on the type of classifier to be generated or the desired performance characteristics of the classifier.

[0036] It will be further understood that embodiments of this disclosure enable efficient scaling of classifier systems to identify new real-world objects. For example, an existing classifier trained to identify different home accessories can be configured to identify new accessories by obtaining a 3D model of a new object from the manufacturer and processing that model using the techniques described above.

[0037] Figure 3A An example rendered variant 300A of an object image according to one embodiment of the embodiments disclosed herein is illustrated. Object 330 is shown in various rendered images 302, 304, 306, and 308 illustrating the color or RGB components of a 3D image. In each image, the pose of the object (e.g., its position and orientation in space) is varied. Furthermore, in each of the rendered images, the background 320 is altered, and the lighting is also varied. Images 310 and 312 illustrate example variants of the depth component of the 3D rendering. The depth component encodes each pixel into a grayscale value based on the distance of each pixel to the visual camera that will produce these images.

[0038] Figure 3B An example rendered variant 300B of an object image according to one embodiment of the embodiments disclosed herein is illustrated. The object, i.e., a non-rigid toy figure, is shown rendered in a first pose 350 and a second pose 360. The pose of the right arm image sub-component is shown changing from position 370 to position 374. Similarly, the pose of the left arm (and shield) is shown changing from position 372 to position 376.

[0039] Figure 4 Example 400 illustrates objects with similar shape and color characteristics according to one embodiment of the embodiments disclosed herein. Objects 402, 404, and 406 have similar shapes and colors, which typically leads to recognition ambiguity and / or false affirmations under recognition algorithms that operate solely on color data. However, such recognition ambiguity can be resolved by utilizing the different dimensions of each of these objects through the use of depth information. To this end, a synthetic 3D (RGB-D) image variant rendering module 104 is configured to render an image comprising both depth frames (e.g., 310 and 312) and color data frames (e.g., 302, 304, 306, 308).

[0040] method

[0041] Figure 5A This is a flowchart illustrating an example method 500 for generating 3D object image variants according to an embodiment of the present disclosure. As can be seen, the example method 500 includes multiple stages and sub-processes, the order of which may differ from one embodiment to another. However, when considered in general, these stages and sub-processes form a process for generating 3D object image variants according to one embodiment of the embodiments disclosed herein. These embodiments may be implemented, for example, by using methods as described above. Figure 1 and 2 The system architecture illustrated herein is used for implementation. However, other system architectures may be used in other embodiments, as will be apparent from this disclosure. Figure 5A The functions shown are related to Figure 1 and 2 The relevance of the specific components illustrated herein is not intended to imply any structural and / or usage limitations. Rather, other embodiments may include, for example, varying degrees of integration, where multiple functions are efficiently performed by a single system. For instance, in an alternative embodiment, a single module may be used to perform all the functions of method 500. Thus, other embodiments may have fewer or more modules and / or submodules, depending on the granularity of the implementation. Numerous variations and alternative configurations will become apparent from this disclosure.

[0042] like Figure 5A As illustrated, in one embodiment, method 500 for generating 3D object image variants begins by receiving a 3D model of the object at operation 510. This model may be generated by computer-aided design (CAD) tools, 3D scanning tools, 3D sculpting tools, or other suitable techniques. Next, at operation 520, RGB-D image pairs of the object are synthesized based on the model. At operation 530, multiple RGB image pair variants are rendered based on the synthesized RGB-D image pairs of the object. The number of variants can range from hundreds to thousands to millions or more. Any combination of subsequent operations may be performed for each rendered variant.

[0043] In operation 540, a background scene is generated. In some embodiments, the background scene is randomly selected from a database of stored 2D background scenes. In some embodiments, a 3D background scene is generated. In operation 550, the pose of the object is adjusted or changed (e.g., orientation and / or translation). In operation 560, the illumination of the object is adjusted or changed, for example, from brighter to darker, and vice versa. In some embodiments, the contrast of the object may also be changed.

[0044] At operation 570, other visual effects related to the object and / or background can be altered by applying simulated camera parameters such as, for example, lens focal length and lens aperture. Changing the lens focal length will change the field of view, for example, from a wide-angle effect to a telephoto effect. Changing the lens aperture will change the depth of field of the image (i.e., the depth range of the focused image).

[0045] Of course, in some embodiments, additional operations, as previously described in conjunction with the system, may be performed. These additional operations may include, for example, adjusting the orientation and translation of multiple regions of an object in the case of a non-rigid object, wherein each region corresponds to a sub-component in the object that can move relative to each other. Further additional operations may include correcting the 3D model of the object to scale the model to a normalized size and translating the model to the origin of the 3D coordinate system. Furthermore, in some embodiments, at operation 580, a rendered RGB-D image pair variant may be provided to a machine learning system to generate an object recognition classifier or to test the classifier.

[0046] Figure 5B It is illustrated according to the example embodiment. Figure 5A A block diagram of the depicted method. As described in operation 510 above, a 3D model of example object 590 is shown being provided to synthetic 3D (RGB-D) image variant rendering module 104. In some embodiments, as described in operations 550, 560, and 570 above, different 3D scenes may be rendered by module 104, for example, by changing the background, changing the lighting, changing the orientation of the modeled object, and / or changing simulated camera parameters (such as depth of field and field of view). Multiple rendered images 592 of the object are shown. Although six examples are shown for simplicity, a large number of renders can actually be generated, perhaps in the thousands to millions. As described in operation 580 above, these rendered images 592 may be stored in a database and / or provided directly to machine learning system 108.

[0047] The machine learning system 108 can be configured, for example, to generate a recognition classifier 110 for modeling object 590 based on training using rendered image 592 or a subset thereof. The generated classifier 110 can then be used to identify instances of object 590 in various real-world images or settings. In some embodiments, the synthetic 3D (RGB-D) image variant rendering module 104 and / or the machine learning system 108 can be hosted on a local system or a cloud-based system. For example, a user can upload a 3D CAD model to a cloud-based system that performs rendering and / or classifier training.

[0048] Example System

[0049] Figure 6An example system 600 is illustrated, as described herein, which can perform rendering of 3D object image variants based on a 3D model of an object to provide to a machine learning system configured to generate a recognition classifier. In some embodiments, system 600 includes platform 610, which may be incorporated into main memory or otherwise into a personal computer, workstation, laptop computer, ultra-laptop computer, tablet, touchpad, portable computer, robot or drone, handheld computer, palmtop computer, personal digital assistant (PDA), cellular phone, combination cellular phone and PDA, smart device (e.g., smartphone or smart tablet), mobile internet device (MID), and the like. Any combination of different devices may be used in some embodiments. For example, classifier training (which is an offline process for creating new classifiers) may typically be performed on a more computationally powerful platform, such as a desktop computer, workstation, or cloud-based computer. Recognition (which is an online process for identifying objects in real time) may generally be performed by a wider range of device types.

[0050] In some embodiments, platform 610 may include any combination of processor 620, memory 630, a synthetic 3D (RGB-D) image variant rendering system 104, a machine learning / object recognition system 108, a 2D or 3D camera or scanning tool 690, a network interface 640, an input / output (I / O) system 650, a display element 660, and a storage system 670. As further visible, a bus and / or interconnect 692 is also provided to allow communication between the components listed above and / or other components not shown. Platform 610 may be coupled to network 694 via network interface 640 to allow communication with other computing devices, platforms, or resources. Figure 6 Other components and functions reflected in the block diagram will be apparent from the present disclosure, and it will be understood that other embodiments are not limited to any particular hardware configuration.

[0051] Processor 620 can be any suitable processor and may include one or more coprocessors or controllers, such as an audio processor or graphics processing unit, to assist in controlling and processing operations associated with system 600. In some embodiments, processor 620 may be implemented as any number of processor cores. A processor (or processor core) can be any type of processor or combination of processors, such as, for example, a microprocessor, embedded processor, digital signal processor (DSP), graphics processing unit (GPU), network processor, field-programmable gate array, or other device configured to execute code. Processors may be multi-threaded cores, as they may each include more than one hardware thread context (or “logical processor”). Processor 620 may be implemented as a Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processor. In some embodiments, processor 620 may be configured as an x86 instruction set compatible processor.

[0052] Memory 630 may be implemented using any suitable type of digital storage, including, for example, flash memory and / or random access memory (RAM). In some embodiments, memory 630 may include various layers of a memory hierarchy and / or memory cache known to those skilled in the art. Memory 630 may be implemented as a volatile memory device, such as, but not limited to, RAM, dynamic RAM (DRAM), or static RAM (SRAM) devices. Storage system 670 may be implemented as a non-volatile storage device, such as, but not limited to, one or more hard disk drives (HDDs), solid-state drives (SSDs), universal serial bus (USB) drives, optical disk drives, tape drives, internal storage devices, attached storage devices, flash memory, battery-backed synchronous DRAM (SDRAM), and / or network-accessible storage devices. In some embodiments, storage device 670 may include techniques for enhancing storage performance protection for valuable digital media, for example, when including multiple hard disk drives.

[0053] Processor 620 may be configured to execute operating system (OS) 680, which may include any suitable operating system, such as Google Android (Google Inc., Mountain View, California), Microsoft Windows (Microsoft Corporation, Redmond, Washington), Linux, or Apple OS X (Apple Inc., Cupertino, California), and / or various real-time operating systems. As will be understood in light of this disclosure, the techniques provided herein can be implemented without regard to a specific operating system provided by system 600, and therefore can also be implemented using any suitable existing or subsequently developed platform.

[0054] The network interface module 640 can be any suitable network chip or chipset that allows wired and / or wireless connectivity between other components of the computer system 600 and / or the network 694, thereby enabling the system 600 to communicate with other local and / or remote computing systems, servers, and / or resources. Wired communication may conform to existing (or undeveloped) standards, such as, for example, Ethernet. Wireless communication may conform to existing (or undeveloped) standards, such as, for example, cellular communication including LTE (Long Term Evolution), Wi-Fi, Bluetooth, and / or Near Field Communication (NFC). Example wireless networks include, but are not limited to, wireless LANs, wireless personal area networks, wireless metropolitan area networks, cellular networks, and satellite networks.

[0055] I / O system 650 can be configured to interface between various I / O devices and other components of computer system 600. I / O devices may include, but are not limited to, display element 660, camera or scanning tool 690, and other devices not shown, such as keyboard, mouse, speaker, microphone, etc.

[0056] I / O system 650 may include a graphics subsystem configured to perform image processing on display element 660. The graphics subsystem may be, for example, a graphics processing unit or a visual processing unit (VPU). Analog or digital interfaces may be used to communicatively couple the graphics subsystem and display element 660. For example, the interface may be a High Definition Multimedia Interface (HDMI), DisplayPort, Wireless HDMI, and / or any other suitable interface using Wireless HDMI compatible technology. In some embodiments, the graphics subsystem may be integrated into processor 620 of platform 610 or any chipset. In some embodiments, display element 660 may include any type of television monitor or display, including liquid crystal displays (LCDs) and light-emitting diode displays (LEDs). Display element 660 may include, for example, a computer display, a touchscreen display, a video monitor, a television-like device, and / or a television set. Display element 660 may be digital and / or analog. Under the control of OS 680 (or one or more software applications), platform 610 may display the processed image on display element 660. Images may be provided by a camera / scanning tool 690 or other sources and may be processed by a synthetic 3D (RGB-D) image variant rendering system 104, as described herein. The camera 690 may be configured to provide 2D or 3D images or scans of an object from which a 3D model of the object may be generated.

[0057] It will be understood that, in some embodiments, the various components of system 100 may be combined or integrated in a system-on-a-chip (SoC) architecture. In some embodiments, a component may be a hardware component, firmware component, software component, or any suitable combination of hardware, firmware, or software.

[0058] A synthetic 3D (RGB-D) image variant rendering system 104 is configured to generate synthetic 3D object image variants from a 3D model of an object. These rendered image variants are then used, for example, to train a recognition system or classifier via a machine learning / object recognition system 108. The synthetic 3D (RGB-D) image variant rendering system 104 may include... Figure 2 Any or all of the components illustrated and described above. The composite 3D (RGB-D) image variant rendering system 104 may be implemented or otherwise used in conjunction with various suitable software and / or hardware coupled to or otherwise forming part of system 600. The composite 3D (RGB-D) image variant rendering system 104 may be implemented or otherwise used in conjunction with user I / O devices capable of providing information to or receiving information and commands from a user. These I / O devices may include display element 660, text input devices (such as a keyboard), and pointer-based input devices (such as a mouse). Other input / output devices that may be used in other embodiments include touchscreens, touchpads, speakers, and / or microphones. Further additional input / output devices may be used in other embodiments.

[0059] In some embodiments, the synthetic 3D (RGB-D) image variant rendering system 104 may be locally installed on the system 600, such as in Figure 6 The example embodiments are illustrated below. Alternatively, system 600 may be implemented using a client-server deployment (or a local and cloud-based deployment), wherein at least some of the functionality associated with the synthetic 3D (RGB-D) image variant rendering system 104 is provided to system 600 using applets (such as JavaScript applets) or other downloadable modules. Such remotely accessible modules or submodules may be provisioned in real time in response to a request from a client computing system for access to a given server having resources of interest to a user of the client computing system. In such embodiments, the server may be located locally on network 694 or remotely coupled to network 694 via one or more other network and / or communication channels. In some cases, access to resources on a given network or computing system may require credentials, such as usernames, passwords, and / or compatibility with any other suitable security mechanisms.

[0060] In various embodiments, system 600 may be implemented as a wireless system, a wired system, or a combination of both. When implemented as a wireless system, system 600 may include components and interfaces suitable for communication via a wireless shared medium, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, etc. Examples of wireless shared media may include multiple portions of the wireless spectrum, such as radio frequency spectrum. When implemented as a wired system, system 600 may include components and interfaces suitable for communication via a wired communication medium, such as input / output adapters, physical connectors connecting the input / output adapters to the corresponding wired communication medium, network interface cards (NICs), disk controllers, video controllers, audio controllers, etc. Examples of wired communication media may include wires, cables, metal leads, printed circuit boards (PCBs), backplanes, switching structures, semiconductor materials, twisted pairs, coaxial cables, optical fibers, etc.

[0061] The embodiments can be implemented using hardware components, software components, or a combination of hardware and software components. Examples of hardware components may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, sensors, etc.), integrated circuits, ASICs, programmable logic devices, digital signal processors, FPGAs, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software may include software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application programming interfaces, instruction sets, computational code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. The determination of whether to use hardware components and / or software components to implement the embodiments can vary based on any number of factors, such as desired computational speed, power level, thermal tolerance, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other design or performance constraints.

[0062] Some embodiments may be described using the terms “coupled” and “connected” and their derivatives. These terms are not intended to be synonymous with each other. For example, some embodiments may be described using the terms “connected” and / or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term “coupled” may also refer to two or more elements that are not in direct contact with each other, but still cooperate or interact with each other.

[0063] The embodiments disclosed herein can be implemented in various forms of hardware, software, firmware, and / or dedicated processors. For example, in one embodiment, at least one non-transient computer-readable storage medium has instructions encoded thereon that, when executed by one or more processors, enable one or more methods disclosed herein for generating image variants of 3D objects to be implemented. The instructions may be encoded using suitable programming languages ​​such as C, C++, object-oriented C, JavaScript, Visual Basic .NET, and Beginner Generalized Symbolic Instruction Code (BASIC), or alternatively using custom or proprietary instruction sets. The instructions may be provided in the form of one or more computer software applications and / or applets that are tangibly embodied on a memory device and can be executed by a computer with any suitable architecture. In one embodiment, the system may be hosted on a given website and implemented, for example, by using JavaScript or other suitable browser-based technologies. For example, in some embodiments, a synthetic 3D (RGB-D) image variant rendering system can generate image variants by fully utilizing processing resources provided by a remote computer system accessible via Network 694. In other embodiments, the functionality disclosed herein may be incorporated into other software applications, such as image management applications. The computer software applications disclosed herein may include any number of different modules, submodules, or other components with different functions, and may provide information to or receive information from other components. These modules may be used, for example, to communicate with input and / or output devices such as displays, touch-sensitive surfaces, printers, and / or any other suitable devices. Other components and functions not reflected in the examples will become apparent from this disclosure, and it will be understood that other embodiments are not limited to any particular hardware or software configuration. Therefore, in other embodiments, system 600 may include... Figure 6 The example embodiments include sub-components compared to additional, fewer, or alternative sub-components.

[0064] The aforementioned non-transient computer-readable medium can be any suitable medium for storing digital information, such as hard disk drives, servers, flash memory, and / or random access memory (RAM). In alternative embodiments, the components and / or modules disclosed herein can be implemented using hardware, including gate-level logic such as field-programmable gate arrays (FPGAs), or alternatively, application-specific semiconductors such as application-specific integrated circuits (ASICs). Other embodiments can also be implemented using microcontrollers with multiple input / output ports for receiving and outputting data, and multiple embedded routines for performing the various functions disclosed herein. It will be apparent that any suitable combination of hardware, software, and firmware can be used, and other embodiments are not limited to any particular system architecture.

[0065] For example, some embodiments may be implemented using machine-readable media or articles of art that store instructions or sets of instructions that, when executed by a machine, cause the machine to perform methods and / or operations according to the embodiments. Such machines may include, for example, any suitable processing platform, computing platform, computing device, processing device, computing system, processing system, computer, processor, etc., and may be implemented using any suitable combination of hardware and / or software. Machine-readable media or articles of art may include, for example, any suitable type of memory cell, memory device, memory article, memory medium, storage device, storage article, storage medium and / or storage cell, such as memory, removable or non-removable media, erasable or non-erasable media, writable or rewritable media, digital or analog media, hard disk, floppy disk, compact disc read-only memory (CD-ROM), compact disc recordable (CD-R) memory, compact disc rewritable (CD-RW) memory, optical disc, magnetic media, magneto-optical media, removable memory cards or discs, various types of digital multifunction discs (DVDs), magnetic tape, cassette tape, etc. Instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, etc., implemented using any suitable high-level, low-level, object-oriented, visual, compiled, and / or interpreted programming language.

[0066] Unless otherwise stated, it should be understood that terms such as “processing,” “computing,” “operation,” and “determining” refer to the actions and / or processes of a computer or computing system or similar electronic computing device that process and / or convert data represented as physical quantities (e.g., electronic) in the registers and / or memory of the computing system into other data similarly represented as physical quantities in the memory, registers, or other such information storage, transmission, or display of the computing system. Embodiments are not limited to this context.

[0067] As used in any embodiment herein, the term "circuit" or "circuit system" may, individually or in any combination, include, for example: hard-wired circuitry; programmable circuitry, such as a computer processor including one or more individual instruction processing cores; state machine circuitry; and / or firmware storing instructions executed by the programmable circuitry. A circuit may include a processor and / or controller configured to execute one or more instructions to perform one or more operations described herein. Instructions may be embodied as, for example, an application, software, firmware, etc., configured to cause the circuit to perform any of the foregoing operations. Software may be embodied as a software package, code, instructions, instruction sets, and / or data recorded on a computer-readable storage device. Software may be embodied or implemented as including any number of processes, and processes may further be embodied or implemented as including any number of threads, etc., in a hierarchical manner. Firmware may implement code, instructions, or instruction sets and / or data, such as hard-coded (e.g., non-volatile), in a memory device. The circuit can be embodied, either generally or individually, as part of a larger system, such as an integrated circuit (IC), an application-specific integrated circuit (ASIC), a system-on-a-chip (SoC), a desktop computer, a laptop computer, a tablet computer, a server, a smartphone, and so on. Other embodiments can be implemented as software executed by a programmable control device. As described herein, the embodiments can be implemented using hardware elements, software elements, or any combination thereof. Examples of hardware elements may include processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application-specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs), logic gates, registers, semiconductor devices, chipsets, microchips, chipsets, etc.

[0068] Many specific details have been set forth herein to provide a thorough understanding of these embodiments. However, those skilled in the art will understand that these embodiments can be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the invention. It is understood that the specific structural and functional details disclosed herein may represent, but do not necessarily limit, the scope of the embodiments. Furthermore, although the subject matter has been described in language specific to structural features and / or method actions, it is understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described herein. Rather, the specific features and actions described herein are disclosed as examples of implementing the claims.

[0069] Other example embodiments

[0070] The following examples relate to further embodiments, and numerous permutations and configurations will become apparent from these embodiments.

[0071] Example 1 is a method for generating image variants of a three-dimensional (3D) object. The method includes receiving a 3D model of the object and synthesizing color and depth (RGB-D) image pairs of the object based on the 3D model. The method also includes rendering multiple RGB-D image pair variants of the object based on the synthesized RGB-D image pairs. Rendering includes performing at least one of the following for each variant: generating a background scene; adjusting the orientation and translation of the object; adjusting the illumination of the object and the background scene; and adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters. The method further includes providing at least a first subset of the rendered RGB-D image pair variants to a machine learning system to generate an object recognition classifier.

[0072] Example 2 includes the subject of Example 1, and further includes, for a non-rigid object, adjusting the orientation and translation of each of multiple regions of the object, wherein the region is associated with a sub-component of the object.

[0073] Example 3 includes the topics of Examples 1 and 2, and further includes correcting the 3D model of the object to scale the model to a normalized size and translate the model to the origin of the 3D coordinate system.

[0074] Example 4 includes the themes of Examples 1-3, and the background scene generation further includes randomly selecting a two-dimensional (2D) background scene from a database of background scenes.

[0075] Example 5 includes the themes of Examples 1-4, where background scene generation further includes generating a 3D background scene.

[0076] Example 6 includes the topics of Examples 1-5, where simulated camera parameters include lens focal length and lens aperture.

[0077] Example 7 includes the topics covered in Examples 1-6, and further includes generating 3D models of objects using computer-aided design (CAD) tools or 3D scanning tools.

[0078] Example 8 includes the themes of Examples 1-7, where rendering includes each of the following: generating a background scene; adjusting the orientation and translation of objects; adjusting the illumination of objects and the background scene; and applying the adjusted visual effects of objects and the background scene based on simulated camera parameters.

[0079] Example 9 includes the topics of Examples 1-8, and further includes providing a second subset of rendered RGB-D image pairs to a machine learning system to test an object recognition classifier.

[0080] Example 10 is a system for rendering image variants of three-dimensional (3D) objects. The system includes: an image compositing circuit for compositing color and depth (RGB-D) image pairs of the object based on a 3D model of the object; the system also includes at least one of: a background scene generator circuit for generating a background scene for the rendered image variant; an image pose adjustment circuit for orientation and translation of the adjusted object for each of the rendered image variants; and an illumination and visual effects adjustment circuit for illumination of the adjusted object and background scene for each of the rendered image variants, and further for applying visual effects to the adjusted object and background scene for each of the rendered image variants based on simulated camera parameters. The system further includes a rendering parameter variant circuit for generating parameters for each variant iteration, these parameters being used to control pose adjustment or illumination and visual effects; and a machine learning system for generating an object recognition classifier based on at least a first subset of the rendered image variants.

[0081] Example 11 includes the subject of Example 10, wherein the image pose adjustment circuitry is further used to adjust the orientation and translation of each of multiple regions of a non-rigid object, wherein the region is associated with a sub-component of the object.

[0082] Example 12 includes the subject of Example 10 or 11, and further includes model correction circuitry for scaling the model to a normalized size and translating the model to the origin of the 3D coordinate system.

[0083] Example 13 includes the themes of Examples 10-12, with the background scene generator circuit further used to randomly select a two-dimensional (2D) background scene from a database of background scenes.

[0084] Example 14 includes the subject of Examples 10-13, where simulated camera parameters include lens focal length and lens aperture.

[0085] Example 15 includes the topics of Examples 10-14 and further includes a 3D model generation module for generating 3D models of objects based on computer-aided design (CAD) tools or 3D scanning tools.

[0086] Example 16 includes the subject of Examples 10-15, wherein the system includes each of the following: a background scene generator circuit; an image pose adjustment circuit; and an illumination and visual effects adjustment circuit.

[0087] Example 17 includes the topics of Examples 10-16, where the machine learning system is further used to test an object recognition classifier based on a second subset of rendered image variants.

[0088] Example 18 includes the subject of Examples 10-17, and further includes a database for storing rendered image variants.

[0089] Example 19 is at least one non-transient computer-readable storage medium having instructions encoded thereon, which, when executed by one or more processors, cause the following operations for generating image variants of a three-dimensional (3D) object. The operations include: receiving a 3D model of the object and synthesizing color and depth (RGB-D) image pairs of the object based on the 3D model. The operations also include rendering multiple RGB-D image pair variants of the object based on the synthesized RGB-D image pairs. Rendering includes performing at least one of the following for each variant: generating a background scene; adjusting the orientation and translation of the object; adjusting the illumination of the object and the background scene; and adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters. The operations further include providing at least a first subset of the rendered RGB-D image pair variants to a machine learning system to generate an object recognition classifier.

[0090] Example 20 includes the subject of Example 19, and further includes, for a non-rigid object, adjusting the orientation and translation of each of multiple regions of the object, wherein these regions are associated with sub-components of the object.

[0091] Example 21 includes the subject of Examples 19 and 20, and further includes correcting the 3D model of the object to scale the model to a normalized size and translate the model to the origin of the 3D coordinate system.

[0092] Example 22 includes the themes of Examples 19-21, and the background scene generation further includes randomly selecting a two-dimensional (2D) background scene from a database of background scenes.

[0093] Example 23 includes the themes of Examples 19-22, wherein background scene generation further includes generating a 3D background scene.

[0094] Example 24 includes the subject matter of Examples 19-23, where simulated camera parameters include lens focal length and lens aperture.

[0095] Example 25 includes the topics covered in Examples 19-24, and further includes generating 3D models of objects using computer-aided design (CAD) tools or 3D scanning tools.

[0096] Example 26 includes the themes of Examples 19-25, where rendering includes each of the following: generating a background scene; adjusting the orientation and translation of objects; adjusting the illumination of objects and the background scene; and applying the adjusted visual effects of objects and the background scene based on simulated camera parameters.

[0097] Example 27 includes the topics of Examples 19-26, and further includes providing a second subset of rendered RGB-D image pairs to a machine learning system to test an object recognition classifier.

[0098] Example 28 is a system for generating image variants of a three-dimensional (3D) object. The system includes: means for receiving a 3D model of the object and means for synthesizing color and depth (RGB-D) image pairs of the object based on the 3D model. The system also includes means for rendering multiple RGB-D image pair variants of the object based on the synthesized RGB-D image pairs. The rendering means includes at least one of the following for each variant: means for generating a background scene; means for adjusting the orientation and translation of the object; means for adjusting the illumination of the object and the background scene; and means for adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters. The system further includes means for providing at least a first subset of the rendered RGB-D image pair variants to a machine learning system to generate an object recognition classifier.

[0099] Example 29 includes the subject of Example 28, and further includes, for a non-rigid object, means for adjusting the orientation and translation of each of a plurality of regions of the object, wherein the region is associated with a sub-component of the object.

[0100] Example 30 includes the subject matter of Examples 28 and 29, and further includes means for correcting a 3D model of an object to scale the model to a normalized size and translate the model to the origin of the 3D coordinate system.

[0101] Example 31 includes the themes of Examples 28-30, and the background scene generation further includes means for randomly selecting a two-dimensional (2D) background scene from a database of background scenes.

[0102] Example 32 includes the subject of Examples 28-31, wherein background scene generation further includes apparatus for generating 3D background scenes.

[0103] Example 33 includes the subject matter of Examples 28-32, where simulated camera parameters include lens focal length and lens aperture.

[0104] Example 34 includes the subject matter of Examples 28-33, and further includes means for generating a 3D model of an object by employing computer-aided design (CAD) tools or 3D scanning tools.

[0105] Example 35 includes the subject of Examples 28-34, wherein the apparatus for rendering includes each of the following: apparatus for generating a background scene; apparatus for adjusting the orientation and translation of objects; apparatus for adjusting the illumination of objects and the background scene; and apparatus for applying and adjusting the visual effects of objects and the background scene based on simulated camera parameters.

[0106] Example 36 includes the subject matter of Examples 28-35, and further includes means for providing a second subset of rendered RGB-D image pairs to a machine learning system to test an object recognition classifier.

[0107] The terms and expressions used herein are descriptive and not restrictive, and their use is not intended to exclude any equivalents of the shown and described features (or portions thereof), and it should be understood that various modifications are possible within the scope of the claims. Accordingly, the claims are intended to cover all such equivalents. Various features, aspects, and embodiments are described herein. As will be understood by those skilled in the art, the various features, aspects, and embodiments are readily combined with each other and varied and modified. This disclosure should therefore be considered to encompass such combinations, variations, and modifications. The scope of this disclosure is not limited by this detailed description but by the appended claims. Future applications claiming priority to this application may claim the disclosed subject matter in different ways and may generally include any set of one or more limitations as disclosed herein or otherwise shown.

Claims

1. A processor implementation method for generating image variants of three-dimensional (3D) objects, the method comprising: The processor receives the 3D model of the object; The processor synthesizes a color and depth (RGB-D) image pair of the object based on the 3D model, comprising a color image and a depth image; The processor renders multiple RGB-D image pair variants of the object based on synthesized RGB-D image pairs of the object, the rendering including performing at least one of the following for each of the variants: The processor generates the background scene; The processor adjusts the orientation and translation of the object; The processor adjusts the illumination of the object and the background scene; as well as The processor adjusts the visual effects of the object and the background scene based on the application of simulated camera parameters; as well as The processor generates an object recognition classifier based on at least a first subset of the rendered RGB-D image pairs, wherein the object recognition classifier is used to identify the object in the new image under different visual conditions and / or different object poses.

2. The method as described in claim 1, characterized in that, Further, for a non-rigid object, the orientation and translation of each of a plurality of regions of the object are adjusted, wherein the region is associated with a sub-component of the object.

3. The method as described in claim 1, characterized in that, Further, it includes correcting the 3D model of the object to scale the model to a normalized size and translating the model to the origin of the 3D coordinate system.

4. The method according to any one of claims 1-3, characterized in that, The background scene generation further includes randomly selecting a two-dimensional (2D) background scene from a database of background scenes.

5. The method according to any one of claims 1-3, characterized in that, The background scene generation further includes generating a 3D background scene.

6. The method according to any one of claims 1-3, characterized in that, The simulated camera parameters include lens focal length and lens aperture.

7. The method according to any one of claims 1-3, characterized in that, This further includes generating the 3D model of the object by employing computer-aided design (CAD) tools or 3D scanning tools.

8. The method according to any one of claims 1-3, characterized in that, The rendering includes each of the following: generating a background scene; adjusting the orientation and translation of the object; adjusting the illumination of the object and the background scene; and adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters.

9. The method according to any one of claims 1-3, characterized in that, The method further includes providing a second subset of the rendered RGB-D image pairs to the machine learning system to test the object recognition classifier.

10. A system for rendering image variants of a three-dimensional (3D) object, the system comprising: An image compositing circuit for compositing a color and depth (RGB-D) image pair of an object, comprising a color image and a depth image, based on a 3D model of the object; At least one of the following: Background scene generator circuitry, the background scene generator circuitry being used to generate a background scene for each of the rendered image variants; An image pose adjustment circuit, the image pose adjustment circuit being used to adjust the orientation and translation of the object for each of the rendered image variants; as well as Illumination and visual effects adjustment circuitry, the illumination and visual effects adjustment circuitry being used to adjust the illumination of the object and the background scene for each of the rendered image variants, and further for adjusting the visual effects of the object and the background scene for each of the rendered image variants based on analog camera parameters; A rendering parameter variant circuit is used to generate parameters for each variant iteration, the parameters being used to control pose adjustment or illumination and visual effects; as well as A machine learning system for generating an object recognition classifier based on at least a first subset of the rendered image variants, wherein the object recognition classifier is used to identify the object in a new image under different visual conditions and / or different object poses.

11. The system as claimed in claim 10, characterized in that, The image pose adjustment circuitry is further configured to adjust the orientation and translation of each region in a plurality of regions of a non-rigid object, wherein the region is associated with a sub-component of the object.

12. The system as claimed in claim 10, characterized in that, It further includes a model correction circuit for scaling the model of the object to a normalized size and translating the model to the origin of the 3D coordinate system.

13. The system as described in any one of claims 10-12, characterized in that, The background scene generator circuit is further used to randomly select a two-dimensional (2D) background scene from a database of background scenes.

14. The system as described in any one of claims 10-12, characterized in that, The simulated camera parameters include lens focal length and lens aperture.

15. The system as described in any one of claims 10-12, characterized in that, It further includes a 3D model generation module, which is used to generate the 3D model of the object based on computer-aided design (CAD) tools or 3D scanning tools.

16. The system as claimed in any one of claims 10-12, characterized in that, The system includes each of the following: the background scene generator circuit; the image pose adjustment circuit; and the illumination and visual effects adjustment circuit.

17. The system as described in any one of claims 10-12, characterized in that, The machine learning system is further used to test the object recognition classifier based on a second subset of the rendered image variants.

18. The system as described in any one of claims 10-12, characterized in that, It further includes a database for storing the rendered image variants.

19. A system for generating image variants of a three-dimensional (3D) object, the system comprising: A device for receiving a 3D model of an object; A means for synthesizing a color and depth (RGB-D) image pair comprising a color image and a depth image of the object based on the 3D model; A means for rendering multiple RGB-D image pair variants of the object based on synthetic RGB-D image pairs of the object, the means for rendering comprising at least one of the following for each of the variants: A device for generating background scenes; A device for adjusting the orientation and translation of the object; A device for adjusting the illumination of the object and the background scene; as well as Apparatus for adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters; as well as A means for generating an object recognition classifier based on at least a first subset of rendered RGB-D image pairs of variants, wherein the object recognition classifier is used to identify the object in a new image under different visual conditions and / or different object poses.

20. The system as described in claim 19, characterized in that, The device further includes, for a non-rigid object, means for adjusting the orientation and translation of each of a plurality of regions of the object, wherein the regions are associated with sub-components of the object.

21. The system as described in claim 19, characterized in that, It further includes means for correcting the 3D model of the object to scale the model to a normalized size and translate the model to the origin of the 3D coordinate system.

22. The system as described in any one of claims 19-21, characterized in that, The apparatus for generating a background scene further includes means for randomly selecting a two-dimensional (2D) background scene from a database of background scenes.

23. The system as described in any one of claims 19-21, characterized in that, The apparatus for generating a background scene further includes apparatus for generating a 3D background scene.

24. The system as described in any one of claims 19-21, characterized in that, The simulated camera parameters include lens focal length and lens aperture.

25. The system as described in any one of claims 19-21, characterized in that, It further includes means for generating the 3D model of the object by employing computer-aided design (CAD) tools or 3D scanning tools.

26. The system as described in any one of claims 19-21, characterized in that, The rendering apparatus includes each of the following: apparatus for generating a background scene; apparatus for adjusting the orientation and translation of the object; A means for adjusting the illumination of the object and the background scene; and a means for adjusting the visual effects of the object and the background scene based on the application of simulated camera parameters.

27. The system as described in any one of claims 19-21, characterized in that, It further includes means for providing a second subset of the rendered RGB-D image pairs to a machine learning system to test the object recognition classifier.

28. A computer-readable storage medium having instructions encoded thereon, the instructions causing the one or more processors, when executed by the processors, to perform the method as described in any one of claims 1-9.