This application claims priority under 35 U.S.C. § 119 or 365 to Europe, Application No. EP16306488.4, filed Nov. 14, 2016. The entire teachings of the above application(s) are incorporated herein by reference.
The invention relates to the field of computer programs and systems, and more specifically to methods, systems and programs for querying and/or constructing a database that comprises modeled objects each representing a physical attribute of a respective real object, and to such a database.
A number of systems and programs are offered on the market for the design, the engineering and the manufacturing of objects. CAD is an acronym for Computer-Aided Design, e.g. it relates to software solutions for designing an object. CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM is an acronym for Computer-Aided Manufacturing, e.g. it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role as regards the efficiency of the technique. These techniques may be embedded within Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise. The PLM solutions provided by Dassault Systemes (under the trademarks CATIA, ENOVIA and DELMIA) provide an Engineering Hub, which organizes product engineering knowledge, a Manufacturing Hub, which manages manufacturing engineering knowledge, and an Enterprise Hub which enables enterprise integrations and connections into both the Engineering and Manufacturing Hubs. All together the system delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service.
In such a context and in other contexts, there is a need to search existing modeled objects in a database according to different criteria.
Searching modeled objects in a database according to a predefined criterion may often be performed through three steps. The first step is to compute and associate to each modeled object of the database the value of at least one so-called “signature” or “descriptor” function for the modeled object. A signature function is a function that outputs compact information that is called “signature” and that synthetizes a typical aspect of the input. The second step is for the user to specify a query, for example by setting a specific signature value. This signature value can correspond to a selected object and the goal may be to find similar objects in the database. Alternatively, the signature value can correspond to an object being designed and the goal is, again, to find similar objects in the database. The third step is the searching step. It is for the system to find objects of the database a signature value of which corresponds to the user-inputted signature value. Signature values are massively compared during this step.
A signature may ideally be designed to require a small amount of memory, to be easy to compute and to be very rapid to compare, and yet lead to a relevant result with a high recall and a high precision.
These existing software make use of numerical signatures based on planar silhouettes and view directions in order to index 3D modeled objects in a database. The following paper provides an example: Raluca Diana Petre, Zaharia Titus, Françoise Preteux, An experimental evaluation of view-based 2D/3D indexing methods, 2010 IEEE 26th Convention of Electrical and Electronics Engineers in Israel, November 2010, Israel. pp. 924-928.
Each 3D modeled object gives birth to a plurality of numerical signatures in the database, each one being computed according to said object and to a respective view direction. Database indexes can be understood as a finite (but very large) set of points in the space of numerical signatures. Populating the database is performed offline. Given the planar silhouette of an input 3D modeled object, a search may be to compute its numerical signature and to find the closest one in the database. This yields the output similar 3D modeled object and the output view direction associated with this closest numerical signature. This computation is performed inline, according to the user interaction.
However, these existing software are inaccurate in some situations. This is illustrated with reference to
Suppose that two 3D modeled objects A and B are stored in a database with respective signature(s). Also suppose that one wants to query the database to find the closest object to an input object, and suppose that A is physically the correct result and should thus be returned by the query.
Now, let σ(A, U) and σ(A, V) be the respective numerical signatures of 3D object A according to view directions U and V stored in the database. Let σ(B, D) be the numerical signature of 3D object B according to view direction D stored in the database. Let σ* be the numerical signature of a silhouette of the input object provided by the query. Clearly, as shown on the figure, the numerical signature in the database that is closest to σ* can be σ(B, D) so that object B can be (incorrectly) found to be the object of the database most similar to the input object. For A to have been outputted as the result of the query, it would have been necessary that the numerical signature σ(A, W) of object A according to view direction W be also stored in the database. But although represented on the figure for the purpose of the explanation, and although view direction W is close to U and V, numerical signature σ(A, W) may simply not be in the database, depending on how the database was built. In such a case, the correct solution is unfortunately out of reach. This is because the database simply cannot just store all possible numerical signatures of a 3D object, due to obvious memory reasons.
Thus, despite the existing literature, there is still a need for improving the field of searching modeled objects in a database.
It is therefore provided a computer-implemented method (“querying method” or “inline process”) for querying a database that comprises modeled objects. Each modeled object represents a physical attribute of a respective real object. The database comprises, for each modeled object, a respective simplicial complex. The respective simplicial complex of a modeled object is the image of the couple made of a meshing of the parametric domain of a parametric view function and the modeled object, by the composition of the parametric view function with a signature function. The parametric view function is continuous over the parametric domain and over the modeled object space. The signature function is continuous over the range of the parametric view function.
The method comprises providing a query that includes a signature criterion that involves a value of the signature function. The method also comprises returning, as results of the query, respective modeled objects of the database. A respective modeled object is returned based on an extent to which the respective modeled object has a respective simplicial complex that respects the signature criterion.
The querying method may comprise one or more of the following:
It is further provided such a database. The database thus comprises as above modeled objects and, for each modeled object, a respective simplicial complex.
It is further provided a computer-implemented method (“constructing method” or “offline process”) for constructing such a database.
The constructing method may comprise one or more of the following:
The constructing method may be executed within a global database search process that also includes one or more instance(s) of the querying method, by one or more users, for example via a computer network. The global process may also include several instances of the constructing method. An initial instance of the constructing method may be executed to create the database, and before any instance(s) of the querying method. Other instances of the constructing method may be performed at any time later, corresponding to addition to the already created database.
It is further provided a computer program comprising instructions for performing the method any one or any combination of the above methods.
It is further provided a data storage medium having recorded thereon the computer program and/or the database.
It is further provided a system comprising a processor coupled to a memory, the memory having recorded thereon the computer program and/or the database.
The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.
Embodiments of the invention will now be described, by way of non-limiting example, and in reference to the accompanying drawings, where:
A description of example embodiments follows.
With reference to the flowchart of
With reference to the flowchart of
The methods are computer-implemented. This means that steps (or substantially all the steps) of the methods are executed by at least one computer, or any system alike. Thus, steps of the methods are performed by the computer, possibly fully automatically, or, semi-automatically. In examples, the triggering of at least some of the steps of the method may be performed through user-computer interaction. The level of user-computer interaction required may depend on the level of automatism foreseen and put in balance with the need to implement user's wishes. In examples, this level may be user-defined and/or pre-defined.
A typical example of computer-implementation of a method is to perform the method with a system adapted for this purpose. The system may comprise a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program comprising instructions for performing the method. The memory may also store the database. The memory is any hardware adapted for such storage, possibly comprising several physical distinct parts (e.g. one for the program, and possibly one for the database).
By “database”, it is meant any collection of data (i.e. information) organized for search and retrieval (e.g. a relational database, e.g. based on a predetermined structured language, e.g. SQL). When stored on a memory, the database allows a rapid search and retrieval by a computer. Databases are indeed structured to facilitate storage, retrieval, modification, and deletion of data in conjunction with various data-processing operations. The database may consist of a file or set of files that can be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage. Users may retrieve data primarily through queries. Using keywords and sorting commands, users can rapidly search, rearrange, group, and select the field in many records to retrieve or create reports on particular aggregates of data according to the rules of the database management system being used.
The methods generally manipulate modeled objects. A modeled object is any object defined by data stored e.g. in the database. By extension, the expression “modeled object” designates the data itself. According to the type of the system, the modeled objects may be defined by different kinds of data. The system may indeed be any combination of a CAD system, a CAE system, a CAM system, a PDM system and/or a PLM system. In those different systems, modeled objects are defined by corresponding data. One may accordingly speak of CAD object, PLM object, PDM object, CAE object, CAM object, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not exclusive one of the other, as a modeled object may be defined by data corresponding to any combination of these systems. A system may thus well be both a CAD and PLM system, as will be apparent from the definitions of such systems provided below.
By CAD system, it is additionally meant any system adapted at least for designing a modeled object on the basis of a graphical representation of the modeled object, such as CATIA. In this case, the data defining a modeled object comprise data allowing the representation of the modeled object. A CAD system may for example provide a representation of CAD modeled objects using edges or lines, in certain cases with faces or surfaces. Lines, edges, or surfaces may be represented in various manners, e.g. non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications, from which geometry may be generated, which in turn allows for a representation to be generated. Specifications of a modeled object may be stored in a single CAD file or multiple ones. The typical size of a file representing a modeled object in a CAD system is in the range of one Megabyte per part. And a modeled object may typically be an assembly of thousands of parts.
In the context of CAD, a modeled object may typically be a 3D modeled object, e.g. representing a product such as a part or an assembly of parts, or possibly an assembly of products. By “3D modeled object”, it is meant any object which is modeled by data allowing its 3D representation. A 3D representation allows the viewing of the part from all angles. For example, a 3D modeled object, when 3D represented, may be handled and turned around any of its axes, or around any axis in the screen on which the representation is displayed. This notably excludes 2D icons, which are not 3D modeled. The display of a 3D representation facilitates design (i.e. increases the speed at which designers statistically accomplish their task). This speeds up the manufacturing process in the industry, as the design of the products is part of the manufacturing process.
A 3D modeled object may represent the geometry of a product to be manufactured in the real world subsequent to the completion of its virtual design with for instance a CAD software solution or CAD system, such as a (e.g. mechanical) part or assembly of parts (or equivalently an assembly of parts, as the assembly of parts may be seen as a part itself from the point of view of the method, or the method may be applied independently to each part of the assembly), or more generally any rigid body assembly (e.g. a mobile mechanism). A CAD software solution allows the design of products in various and unlimited industrial fields, including: aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, marine, and/or offshore oil/gas production or transportation. A 3D modeled object herein may thus represent an industrial product which may be any mechanical part, such as a part of a terrestrial vehicle (including e.g. car and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), a part of an aerial vehicle (including e.g. airframe equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), a part of a naval vehicle (including e.g. navy equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment), a general mechanical part (including e.g. industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment product, fabricated metal product, tire manufacturing product), an electro-mechanical or electronic part (including e.g. consumer electronics, security and/or control and/or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), a consumer good (including e.g. furniture, home and garden products, leisure goods, fashion products, hard goods retailers' products, soft goods retailers' products), a packaging (including e.g. food and beverage and tobacco, beauty and personal care, household product packaging).
By PLM system, it is additionally meant any system adapted for the management of a modeled object representing a physical manufactured product (or product to be manufactured). In a PLM system, a modeled object is thus defined by data suitable for the manufacturing of a physical object. These may typically be dimension values and/or tolerance values. For a correct manufacturing of an object, it is indeed better to have such values.
By CAM solution, it is additionally meant any solution, software of hardware, adapted for managing the manufacturing data of a product. The manufacturing data generally includes data related to the product to manufacture, the manufacturing process and the required resources. A CAM solution is used to plan and optimize the whole manufacturing process of a product. For instance, it can provide the CAM users with information on the feasibility, the duration of a manufacturing process or the number of resources, such as specific robots, that may be used at a specific step of the manufacturing process; and thus allowing decision on management or required investment. CAM is a subsequent process after a CAD process and potential CAE process. Such CAM solutions are provided by Dassault Systemes under the trademark DELMIA®.
By CAE solution, it is additionally meant any solution, software of hardware, adapted for the analysis of the physical behavior of a modeled object. A well-known and widely used CAE technique is the Finite Element Method (FEM) which typically involves a division of a modeled objet into elements which physical behaviors can be computed and simulated through equations. Such CAE solutions are provided by Dassault Systemes under the trademark SIMULIA®. Another growing CAE technique involves the modeling and analysis of complex systems composed a plurality components from different fields of physics without CAD geometry data. CAE solutions allow the simulation and thus the optimization, the improvement and the validation of products to manufacture. Such CAE solutions are provided by Dassault Systemes under the trademark DYMOLA®.
PDM stands for Product Data Management. By PDM solution, it is meant any solution, software of hardware, adapted for managing all types of data related to a particular product. A PDM solution may be used by all actors involved in the lifecycle of a product: primarily engineers but also including project managers, finance people, sales people and buyers. A PDM solution is generally based on a product-oriented database. It allows the actors to share consistent data on their products and therefore prevents actors from using divergent data. Such PDM solutions are provided by Dassault Systemes under the trademark ENOVIA®.
The GUI 2100 may be a typical CAD-like interface, having standard menu bars 2110, 2120, as well as bottom and side toolbars 2140, 2150. Such menu- and toolbars contain a set of user-selectable icons, each icon being associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools, adapted for editing and/or working on the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench comprises a subset of software tools. In particular, one of the workbenches is an edition workbench, suitable for editing geometrical features of the modeled product 2000. In operation, a designer may for example pre-select a part of the object 2000 and then initiate an operation (e.g. change the dimension, color, etc.) or edit geometrical constraints by selecting an appropriate icon. For example, typical CAD operations are the modeling of the punching or the folding of the 3D modeled object displayed on the screen. The GUI may for example display data 2500 related to the displayed product 2000. In the example of the figure, the data 2500, displayed as a “feature tree”, and their 3D representation 2000 pertain to a brake assembly including brake caliper and disc. The GUI may further show various types of graphic tools 2130, 2070, 2080 for example for facilitating 3D orientation of the object, for triggering a simulation of an operation of an edited product or render various attributes of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.
The client computer of the example comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, a random access memory (RAM) 1070 also connected to the BUS. The client computer is further provided with a graphical processing unit (GPU) 1110 which is associated with a video random access memory 1100 connected to the BUS. Video RAM 1100 is also known in the art as frame buffer. A mass storage device controller 1020 manages accesses to a mass memory device, such as hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing may be supplemented by, or incorporated in, specially designed ASICs (application-specific integrated circuits). A network adapter 1050 manages accesses to a network 1060. The client computer may also include a haptic device 1090 such as cursor control device, a keyboard or the like. A cursor control device is used in the client computer to permit the user to selectively position a cursor at any desired location on display 1080. In addition, the cursor control device allows the user to select various commands, and input control signals. The cursor control device includes a number of signal generation devices for input control signals to system. Typically, a cursor control device may be a mouse, the button of the mouse being used to generate the signals. Alternatively or additionally, the client computer system may comprise a sensitive pad, and/or a sensitive screen.
The computer program may comprise instructions executable by a computer, the instructions comprising means for causing the above system to perform the method. The program may be recordable on any data storage medium, including the memory of the system. The program may for example be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The program may be implemented as an apparatus, for example a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. Method steps may be performed by a programmable processor executing a program of instructions to perform functions of the method by operating on input data and generating output. The processor may thus be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. Application of the program on the system results in any case in instructions for performing the method.
The methods may be part of a process of designing a e.g. 3D modeled object or they may follow such process. “Designing a modeled object” designates any action or series of actions which is at least part of a process of elaborating a modeled object. Thus, a process may comprise creating a first modeled object from scratch (by the user), e.g. via a sketching-like process. Then the process may comprise running (on user command e.g. based on a user-input of the criterion or as an automatic background process e.g. based on a signature of the object being designed) a query according to the querying method. Alternatively, the criterion is directly provided as a value by the user or via a view whose signature value is computed. Then the method may comprise optionally displaying the results to the user and selecting (by the user) a preferred result (in case there is at least one result). Finally the user may continue the design by modifying a result of the query (e.g. the one which has been selected), or by adding a result of the query to the current design. This can thus be useful to help a designer not unnecessarily re-design a model previously designed and re-use such previous design instead. Any other reason to perform a querying method may however be contemplated. For example, the method may be used to find and e.g. delete duplicate (or almost duplicate, that is, very similar) modeled objects from a database (for example in order to reduce the size of the database by eliminating redundancy), or group parts in a same category or based on similarity. In the end of the designing process, the user may add the design to the database, for example by launching the determining, for the designed modeled object, of its respective simplicial complex, and the storing of the relation.
The method may be included in a manufacturing process, which may comprise, after performing the method, producing a physical product corresponding to the modeled object. In any case, the modeled object designed by the method may represent a manufacturing object. The modeled object may thus be a modeled solid (i.e. a modeled object that represents a solid). The manufacturing object may be a product, such as a part, or an assembly of parts. Because the method improves the design of the modeled object, the method also improves the manufacturing of a product and thus increases productivity of the manufacturing process.
The providing S10 may be performed to a database or to a plug-in/script running on such a database, e.g. at a client computer system or to a server computer system—i.e. database host,—e.g. the client possibly being confounded with the server, which may be the case if they are hosted by the same machine for example. The query includes a criterion (as part of the data that define the query, and e.g. at least as one of the possibly several criteria making the query, e.g. the query possibly including other criteria and optionally weights assigned to the different criteria, as very classical in the field of database search). The querying method also comprises the step of returning S20 (e.g. to the client or at the server), as results of the query (i.e. the returned data including one or more such results or even no/null result—which means that not necessarily several results are returned, the plural form being used as it is the generic expression,—depending on the query and/or on the content of the searched data), respective modeled objects of the database. A respective modeled object is returned based on an extent to which it respects the criterion. The expression “criterion” designates any way to filter and/or rank the modeled objects of the database based only on data of the modeled objects relating to the data involved by the criterion. Querying a database means that a query is run on the database according to the classical meaning of such expression in database engineering, which is that information from the database is extracted from the database as the result of the query (possibly null). In the case of the querying method, modeled objects of the database (that is, any characterizing data thereof) are returned, possibly for user-selection and/or user-triggering of additional data to be downloaded. This is all known per se in the field of database engineering.
In the case of the methods, the query includes at least one criterion that involves at least one value of a signature function (possibly said criterion only), in other words a criterion related to the signature function, for example any search criterion related to one or more values of the signature function, for example an inputted searched modeled object (for which one or more value(s) of the signature function may be computed). That means by definition that an extent to which potential results (at this point, data pieces of the database) match this criterion (the question of handling several criteria, for example with weights in the query, being left aside as this is an implementation detail that can be classically addressed) is evaluated to assess whether or not a piece of information is to be considered as a result or not. Efficient examples of how exactly this extent may be evaluated are provided later. This extent may be binary (a piece of data respects the criterion or not), or it can be progressive (strictly more than two levels of respect, possibly a continuum from a minimal—e.g. 0—value to a maximum value, e.g. 1—e.g. corresponding for example to two equal signature values when the criterion is that results have a signature value equal to the input value). How exactly it is decided that a respective modeled object is a result to be returned or not based on said extent evaluated for said respective modeled object is a matter of implementation.
As each modeled object represents a physical attribute of a respective real object, the methods allow querying at S10 and returning at S20 as results of the query data that represent real object physical attribute. A real object is any object of the real world, such as a unitary physical object or an assembly thereof. A unitary physical object may be a solid, for example a product (such as a—e.g. mechanical—part), a biological object (such as a human, an animal or a plant), an architectural objet (such as a building), a landscape element (such as mountain or a valley). Each real object of the database may thus be such a unitary physical object or assembly of unitary physical objects. Alternatively, the database may include a set consisting of any one or any combination of the following real objects: liquids, gas, and/or waves (e.g. electromagnetic waves, sounds or lights). A physical attribute of a real object is any physical characteristic of the real object, that is, any materialization of a physical phenomenon with respect to the real object. In the case of a real object that is a unitary physical object or an assembly thereof, the physical attribute may be the 3D shape of the real object. In other words, the modeled object represents the 3D shape of the real object. In such case, the modeled object may be a 3D modeled object and/or include data specifying a geometrical surface that represents the boundary of the real object and/or data specifying the geometrical volume that represents the space occupied by the real object. In other examples of a real object that is a unitary physical object or an assembly thereof, the physical attribute may be color distribution, pattern distribution, material distribution. In examples where the real object is a landscape, the physical attribute may be the topography of the landscape. In examples where the real object is an urban scene, the physical attribute may be the architecture of the urban scene. In examples where the real object is a gas, the physical attribute may be particle speed distribution. In examples where the real object is a liquid, the physical attribute may be pressure distribution.
The methods are based on a signature function that does not take as a direct input the modeled object as such, but a view of the modeled object. A signature function is, as known per se, a function that applies on a domain of inputs (the space of modeled object views in the present case) and outputs, in a range called “signature space”, data (also called “signature”) that allows discrimination between different inputs while consuming less memory than the inputs (e.g. at least twice less memory, for example at least ten times less memory) and/or allowing fast comparisons (e.g. the comparison being a mere distance between two vectors). A signature may be numerical, meaning that the signature is one or a vector of several (e.g. real or integer) number(s). In the case of the methods, the signature function is continuous over the range of the parametric view function, that is over the space of views (reachable by the parametric view function). In such a case, two views that are close one to another lead to two signatures that are also close one to another, allowing relevant comparisons at the time of the returning S20.
A view of a modeled object is a data structure that corresponds to the result of applying a view function to the modeled object. A view function is a data processing that takes the modeled object as an input and outputs data representing the modeled object in a simplified way. By “simplified way”, it is meant that the information contained in the view corresponds to a rearrangement of the information contained in the modeled object which is easier to apprehend to a human user and/or where the quantity of information in the view is reduced compared to the quantity of information in the modeled object. For example, a view of a modeled object may be easier to produce than a modeled object itself. This way, the providing S10 can be performed in a relatively simplified way, for example by a user providing one or more input view(s), the system then automatically determining the value(s) of the signature function for the input view(s), said value(s) being then involved in the signature criterion. Also, the size (in terms of memory consumption) of a view of a modeled object may be smaller than the size of the modeled object.
The methods are based on such a view function, which is predetermined and the same for all modeled objects. In addition, the view function is parametric, which means that the view function takes as input not only a modeled object but also parameter values. The space containing the parameter values is called “parametric domain”. With such a parametric function, the methods may thus provide for different views of a same modeled object, by varying parameter values. Thus, in case a view implies a loss of information in the initial modeled object, such loss of information accompanying the simplification offered to the user (who can launch the query by providing a view rather than a whole modeled object) can be moderated by the inclusion in the database, for a modeled object, of more than a mere signature function value of a single view. In specific, the database comprises for each modeled object a respective simplicial complex defined on the signature space.
The simplicial complex forms enough information (at least more than a single signature value) for each modeled object to have higher chance to be returned as a result of the query when appropriate. In specific, the respective simplicial complex associated to each modeled object in the database is the image, by the composition of the parametric view function with the signature function, of the couple made of a meshing of the parametric domain and the modeled object. In other words, first it is considered that the parametric domain is meshed (e.g. such meshing may be performed at the time of constructing the database). The meshing is any type of mesh (a mathematical graph structure), for example a triangular or a quad mesh. The meshing covers the parametric domain above a predetermined proportion threshold, for example substantially all the parametric domain. Each meshing may for example cover at least 50% of the parametric domain. The meshing being a structure defined on the parametric domain of the parametric view function, each position of the meshing can be associated to a view of any modeled object. Then, for a given modeled object, the signature function can be applied to a couple (i.e. ordered pair of pieces of data) made of (i.e. consisting of) a position of the meshing (i.e. a position in the parametric domain) and the given modeled object. This amounts, by definition, to applying the signature function to the view of the given modeled object corresponding to said position of the meshing (which position corresponds to a parameterization of the view function). Now, when considering the whole meshing and the same given modeled object, application of the signature function (i.e. its “image”) leads to a simplicial complex in the signature space, as known per se from the field of topology. The database stores such a simplicial complex per modeled object. The meshing on which the simplicial complex is based may be the same or different for each modeled object. In examples provided later, the meshing is adapted to each modeled object to increase efficiency of the querying.
At the time of the querying, given a value of the signature function, that is the signature of one view of a modeled object, the database may not store the value as such, but the methods allow returning results based on the simplicial complexes stored in the database. For example, the extent to which a respective modeled object has a respective simplicial complex that respects the signature criterion may depend on a distance between the value of the signature function of the signature criterion and the respective simplicial complex. In other words, proximity between a signature value in the query and simplicial complexes of the database may be assessed. For example, the complex having the smallest distance to the input signature value may be returned. As an example, the distance may be the LP-distance. This is a particularly relevant distance in case the signature space is of the type m where m is an integer. Any other distance relevant to the signature space can be contemplated.
The parametric view function is continuous over the modeled object space, that is, the space corresponding to all values that can be taken by the physical attribute (e.g. a 3D space in the case of 3D modeled object). This basically means that, for a parametrization (i.e. a setting of the parameters) of the view function, two real object physical attribute values close one to another (for example, the physical attribute values of two real objects that are similar with respect to the physical attribute), and therefore two modeled objects close one to another, lead to two view function values close one to another. Also, the view function is continuous over the parametric domain. This means that, for a given modeled object, two parameterizations of the view function closes one to another (i.e. close values for the parameters) lead to two view function values close one to another. As a result, the methods provide for a view-based search that can lead to a relatively relevant result with respect to physical-attribute-wise similarity, in a simple way to operate for the user. Notably, the continuity conditions allow the simplicial complex to convey a relatively accurate representation of the signatures of the modeled object for all views.
The inverse of the above proposition is not necessarily true. In other words, two view function values close one to another do not necessarily lead to two real object physical attribute values close one to another. This can lead to well-known inaccuracies of view-based search, as explained earlier with reference to
Therefore, the method lies within the context of searching for modeled objects having parameter-dependent views. The method does not impose to rely on a view-independent signature of the modeled object. The signature function may thus be view-dependent. The method thus does not involve the lack of precision due to such methodology. Furthermore, the method does not require as much memory for the database as a solution that populates the database with the signature value of all views of a same object.
The view function may be a projection of the modeled object. For example, the modeled object represents the physical attribute via a vector of pieces of information (e.g. each piece of information being represented by a corresponding piece of data). The view function may correspond to a projection of the vector, for example on a lower dimension space. In case the modeled objects are 3D modeled objects, the projection may be a geometrical projection. For example, the modeled objects may be 3D modeled objects representing a physical attribute of the real objects and the physical attribute may be the 3D shape of the real objects. In such a case, the view function may be geometrical projection on a 2D space. The view function may be a 2D silhouette function, that is a function that outputs a 2D silhouette (i.e. contour or space occupied by a 2D projection) according to a geometrical view. In such a case, the parametric domain may include geometrical view parameters, for example including position of point of view and/or view direction. Also, in such a case, the signature function may be size-independent, planar translation invariant, and/or planar rotation invariant (i.e. the signature of an input 2D silhouette does not depend on its size and/or positioning but only on its general shape).
For example, the physical attribute is the physical shape (i.e. set of physical locations of the material defined by the real object), and the modeled objects are thus 3D modeled objects, for example CAD files. In such a case, the view function can be for example the 2D silhouette with, as a parametric domain, a domain of view directions. In other words, the 2D silhouette of a 3D modeled object for a given view direction is the projection, along the given view direction, on a 2D plane perpendicular to the projection. The domain of view directions may be provided as a sphere, e.g. a unit sphere. Each position on the sphere defines a respective view direction (and thus a respective parameterization of the view function).
In such cases, the providing S10 may be performed by a user inputting one or more 2D silhouettes representing a real object, for example by sketching such silhouettes. The sketching may be performed with a mouse, or more easily with a touch pen or a finger on a touchpad and/or a sensitive screen. The user may for example draw one or more 2D contours of the real object. For the input 2D silhouette or each input 2D silhouette, the querying method may then automatically compute the signature value based on the predetermined signature function (e.g. the same used in the construction of the database, that is, in the storing of the simplicial complexes). The signature function may be size-independent, planar translation invariant, and/or planar rotation invariant. Such signature value(s) are thus involved in a query criterion (e.g. in any way, for example as values to be found, or as values defining a range, or as value top the which one wants to find the closest modeled object(s), e.g. the case of multiple input signature values being handled in any way). The querying method may then run the query and return at S20 modeled objects based on an extent to which their simplicial complex respects the query criterion based on the inputted view(s).
In such cases and in other cases, the querying method may additionally output not only modeled objects as results, but also the values of the parameters for which they are returned. Indeed, when the extent to which a respective modeled object has a respective simplicial complex that respects the signature criterion is assessed, an optimal (set of) parameter(s) may be determined. Indeed, an optimal position on the simplicial complex may be determined, and an optimal position of the meshing in the parametric domain can be backtracked based on that. Such information can be returned at S20 to the user. For example, in the case of 2D silhouettes views of 3D modeled objects representing 3D shape of real objects, the user may be interested not only on the 3D modeled objects of the database that best match queried 2D silhouettes, but also in the view parameters (e.g. the view direction) for which the returned 3D modeled objects were selected as results.
Examples of the methods which deal with searching an object in a database that is similar to an input object are now discussed with reference to
An input object is given through a planar image that represents its silhouette according to a view direction. Objects indexed in the database as well as the searching process are based on numerical signatures computed using planar silhouette images and view directions.
A feature of the examples of the methods is a topological structure onto the numerical signatures associated with the same 3D object. This topology may be a spherical triangular meshing of the view directions. This way, each vertex of the triangular meshing may be the numerical signature of the 3D object associated with a view direction. Each 3D object in the database may be associated with a triangulated meshing in the space of numerical signatures. Triangulated meshes may be computed during the offline process, as illustrated in the diagram of
The mesh structures associated with 3D objects of the database may be used during the inline process in order to find the similar 3D object. The closest signature from the said meshes to the input signature may be computed. When the closest signature is a vertex, which is an existing signature in the database, the solution may be the same as the one of the state of the art. But when the closest signature is inside a triangle, not only the similar object may be identified, but the precise view direction may be computed by interpolation.
In
The methods of the examples are more accurate than the prior art. The similar object may be more safely recognized, and the view direction may be more precise. If state of the art technology where to attempt increasing its level of precision by increasing the number of view directions, this would result in a larger database and much longer computation times.
The methods make use of simplicial complexes. This widely known topological object is described in details notably in the following book: James R. Munkres, Elements of algebraic topology, Addison-Wesley. This mathematical concept provides a unified and general data format and it is recapitulated hereunder for consistency.
Roughly speaking, the simplicial complex generalizes, in any dimension, the usual notion of triangulation. Given an integer number k≥0, named the dimension of the simplex, a k-simplex is the convex hull of k+1 points in an at least k-dimensional ambient space. These k+1 points are called the vertices of the simplex. The k-simplex with vertices ν0, . . . , νk is noted [ν0, . . . , νk].
By definition of the convex hull, p∈[ν0, . . . , νk] if and only if there exist k+1 real numbers λi such that p=Σi=0kλiνi with Σi=0kλi=1 and λi≥0 for all i∈{0, . . . , k}.
For example, as shown on
By definition, a face of a k-simplex C is any j-simplex, with j≤k whose vertices are a subset of vertices of C.
By definition, a simplicial complex K is a set of simplexes such that:
The second condition means that a simplicial complex does not feature self-intersections. The dimension of a simplicial complex is the maximal dimension of its simplexes. For example, a triangulation is a 2-dimensional simplicial complex. A simplex of a simplicial complex is said to be maximal if it is not the face of another simplex. For example, all triangles of a triangular meshing are maximal simplexes.
From the indexing point of view, noting {ν1, ν2, . . . , νn} the set of all vertices of a simplicial complex K, each simplex C of K is defined by an injective index mapping φC. Noting dim(C) the dimension of simplex C, this mapping is φC: {0, 1, 2, . . . , dim(C)} {1, 2, . . . , n} so that C can be noted C=[νφ
Examples of the Offline process are now discussed.
Let P be a virtual 3D object, typically a solid polyhedron. Let Di, i=1, . . . , n be n unit vectors in the three-dimensional space 3 defining view directions. Noting S2 the unit sphere in 3, it is equivalent to write Di∈S2 for i=1, . . . , n. Silhouette images Si of solid P are computed according to each view direction Di, which is noted Si=S(P, Di) where S(⋅) is the silhouette algorithm. By nature, each silhouette image Si is a planar binary map.
From left to right,
Numerical signatures σi of images Si are computed in such a way that σi is invariant under planar translation and planar rotation of Si. A typical algorithm for this purpose is described in any of the following two papers: Petros Daras, Apostolos Axenopoulos, A 3D Shape Retrieval Framework Supporting Multimodal Queries, Int J Comput Vis (2010) 89: 229-247, and Mingqiang Yang, Kidiyo Kpalma, Joseph Ronsin. A Survey of Shape Feature Extraction Techniques. Peng-Yeng Yin. Pattern Recognition, IN-TECH, pp. 43-90, 2008. Notation is σi=σ(Si) where σ(⋅) is the signature algorithm. Each signature σi is a vector made of m real numbers, and is interpreted as a point in the finite dimensional space m. Consequently, the numerical signature of solid P is made of n points in m and is noted (σ1, . . . , σn)∈(m)n.
A feature of the examples is a topology associated with the n-tuple (σ1, . . . , σn) of numerical signatures. It is defined as follows. The n view directions Di are as many points on the sphere S2 in 3. Let M be a spherical triangular meshing of points Di, i=1, . . . , n.
A typical meshing is the convex hull of points Di. It can be also the icosahedron, as illustrated in
The topology of M is captured according to the simplicial complex format. Vertices are {D1, D2, . . . , Dn}. Each triangle T is a 2-simplex defined through its index mapping φT: {0, 1, 2}→{1, 2, . . . , n} by T=[Dφ
The embedding of meshing M into the space m of numerical signatures is noted Σ. It is obtained by using the same indexing structure and by replacing each view direction Di by its corresponding signature σi=σ(S(Di, P)).
Finally, the topological signature of solid P is defined by Σ, and noted Σ(P), which is a triangulated mesh in m. It must be understood that the shape of Σ(P) in m can be twisted or folded, depending on the coordinates of vertices σi. In particular, Σ(P) does not necessarily save the convexity of the spherical meshing in 3 and can feature degenerate simplexes.
The value of the topology with respect to the relevancy of the results returned at S20 is now discussed.
As explained previously, the spherical meshing of the view directions provides the topology of the signatures Σ(P) in space m. It is important to understand that there is no way to retrieve the topology by merely investigating the finite set of signatures {σ1, . . . , σn}⊂m. Illustration is made with a 2D set of view directions (the unit circle) and a 2D signature space.
An optional Offline process improvement that consists in eliminating degenerate simplexes is now discussed. As a result of this elimination, each respective simplicial complex in the database only has non-degenerated simplexes.
For this reason, a preprocessing eliminates degenerate simplexes from Σ(P) so that the database and further geometrical algorithms are safer. The degeneracy diagnosis may be as follows.
For each simplex C=[νφ
M(C)=[νφ
Matrix M(C) features dim(C) columns and m rows. If the rank of matrix M(C) is equal to dim(C), then the simplex C is non-degenerate. Otherwise, it is degenerate and removed from K. It must be understood that removing simplex C does not remove vertices. Furthermore, the resulting simplicial complex may feature self-intersection, but experience shows that they do not affect the computation.
Another optional Offline process improvement that consists in local refinement of the signature surface is now discussed. As a result of this local refinement, each respective meshing M(Di∈S2; i=1, . . . , n) of the parametric domain S2 of the parametric view function SD respects a precision criterion in the range m of the signature function σ(⋅).
Consider the mapping Δp:S2→m associated with solid P and defined on the unit sphere S2⊂3 by the numerical signature of the silhouette image of solid P according to view direction D, that is ΔP (D)=σ(S(P, D)).
Now, consider the set of all ΔP(D) for all D∈S2 and noted Σ*(P)={ΔP(D), D∈S2}. It can be proven that mapping ΔP is continuous. This is explained for example in the following paper: Petros Daras, Apostolos Axenopoulos, A 3D Shape Retrieval Framework Supporting Multimodal Queries, Int J Comput Vis (2010) 89: 229-247. This makes Σ*(P) a continuous 2D surface of m, named the signature surface.
By construction, Σ(P) is a triangular interpolation of the theoretical signature surface Σ*(P). By using a refinement process (described in the following) it is possible to add vertices and triangles to Σ(P) in order to reach a sag criterion, making Σ(P) a better interpolation of Σ*(P). This property may be used during the offline process in order to build a precision driven database of signatures.
The refinement process may be used in the examples as follows. Given a precision threshold ε>0 and a solid P, each edge of Σ(P) is visited and its middle point is tested against the precision. If the precision is not reached, a new vertex and adjacent triangles are created.
Number s computed at step 05 is the distance between the average signature ½(σ(S(P, U))+σ(S(P, V))) and the signature of image of solid P according to the average view direction
In other words, it is the distance between the middle point of e and Σ*(P).
The “subdivide” procedure of step 07 may be to create a new view direction in the middle point of the edge together with adjacent triangles, as illustrated by
Examples of the inline process are now discussed.
Let Σ(Pi), i=1, . . . , N be the topological signatures of all 3D objects Pi, i=1, . . . , N in the database. Given σ*∈m the input silhouette numerical signature, the searching process is to find the closest point σ** among all topological signatures Σ(Pi) for i=1, . . . , N. By nature, σ** belongs to particular Σ(Pj), meaning that solid Pj is similar to the input. In addition, the view direction D is computed. This is illustrated on
The overall algorithm of the inline process may run as follows. The main method is SimSol(σ*, P, D) meaning “similar solid”. Inputs may be the database of solids (and their respective topological signatures) and the silhouette signature σ*. Outputs may be the similar solid P and the view direction D. It makes use of method DC(⋅) that computes the distance (for example LP-distance) from the input signature to a simplicial complex. This method makes use of method DS(⋅) that computes the distance to a simplex by using method BC(⋅) that computes barycentric coordinates. All methods are detailed in the following.
The diagram of
After the “for” loop in previous algorithm, the closest signature σ** to σ* belongs to simplex C=[νφ
The corresponding view direction D may be obtained by interpolating view directions Dφ
Examples of the determination of the closest point to a simplicial complex are now discussed.
The present discussion only deals with geometry, so the word “point” is preferred to “signature” for clarity.
The input of the algorithm may be a point p in space m and a simplicial complex K in space m. The outputs may be the closest simplex C of K from p, the barycentric coordinates λ of the closest point on C and the distance d between p and K. The method is DC(p, K, C, λ, d) for Distance to Complex. It may make use of methods BC(p, C, λ, d) for barycentric coordinates computation and DS(p, C, E, λ, d) for distance to simplex computation.
Barycentric coordinates are now discussed.
Noting k=dim(C), consider the k-simplex C=[νφ(0), . . . , νφ(k)] of K. The method BC(p, C, λ, d) computes the barycentric coordinates λ=(λ0, . . . , λk)∈k+1 of the closest point q to point p that belongs to the affine subspace of m generated by points νφ(0), . . . , νφ(k).
By definition, barycentric coordinates are such that q=Σi=0kλiνφ(i) and Σi=0kλi=1. Choosing λ0=1−Σi=1kλi, point q is written:
It features the shortest distance to point p so λ1, . . . , λk are such that:
Consequently, the optimum λ is characterized by
for all i=1, . . . , k. Classically, this leads to the linear system
with matrix
such that Eij=νφ(i)−νφ(0), νφ(j)−νφ(0) and with vector
such that Fi=p−νφ(0), νφ(i)−νφ(0). Matrix E is invertible because simplex C is non degenerated, so optimal λ1, . . . , λk are computed with
and then λ0=1−Σi=1kλi. At the end of method BC(p, C, λ, d), the closest point is q(λ1, . . . , λk) and the output distance is d=∥p−q(λ1, . . . , λk)∥m.
Closest point to a simplex is now discussed.
Method DS(p, C, E, λ, d) iteratively computes the closest point from the input simplex C=[νφ
By definition of the convex hull, point q belongs to the simplex if and only if λi≥0 for all i∈{0, . . . , dim(C)}.
A unique LIFO list may be used through standard instruction Push(⋅), Pop(⋅) and Size. Instruction Push(C) adds object C on top of the list and increments its size. Instruction Pop(C) yields the last object of the list, noted C, removes it from the list and decrements its size. Expression X−[νφ
Final determination of the closest point to a complex of the examples is now discussed.
Finally, method DC(p, K, C, d) computes the closest point from complex K to point p by using method DS(⋅). The outputs are the closest simplex C to point p, the barycentric coordinates A of the closest point on C and the distance d between p and K.
DC(p, K, C, λ, d)
For each maximal simplex B=[νφ
Examples of the method have been discussed with reference to
Generalization of the view direction can be contemplated.
So far, the view direction in the examples was defined by a normalized vector, meaning that the silhouette image of the solid is computed according to a parallel view. Dealing with an observer at a finite distance from the solid is to consider the couple (D, r) made of a normalized vector D and a positive number r respectively the view direction and the distance to the solid. Such an extended view direction is named a perspective view, as opposed to the parallel view defined by D only. The set of all perspective views is the Cartesian product S2×[a, b] where a and b are respectively the smallest and largest distances of the observer from the solid. It is a family of spheres centered at the origin of a reference axis system of the solid, as illustrated in
The Cartesian product S2×[a, b] can be approximated with a (three-dimensional) tetrahedral meshing and previous algorithms can be reused.
Other generalizations can be considered by using more parameters: light source position, and/or light intensity.
Generalization of the silhouette signature can also be contemplated.
So far, the numerical signature is defined by using the 2D silhouette of the solid. It can be generalized to any numerical signature, for example provided it is invariant under isometric transformations and/or similitudes.
A generic framework can also be contemplated.
In fact, the examples can be generalized to a generic parameterized signature framework. The input mathematical entities are: a set of objects and a parameterized signature mapping σ: ×→m. The parameters space is a sub-manifold of a finite dimensional space n. Mapping σ computes vector σ(p, λ)∈m for all object-parameter couples (p, λ)∈×.
The problem is: given σ*∈, find the couple (p, λ)∈× such that σ(p, λ) is as close as possible to σ*.
Firstly, the solution framework is to approximate by a simplicial complex K(λ1, . . . , λq) in n and to populate the database with simplicial complexes K(σ(p, λ1), . . . , σ(p, λq) for all p∈, possibly using local refinement. Secondly, the solution is to compute distances between simplicial complexes and points in order to find (p, λ) closest to σ*.
The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety.
While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments encompassed by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
16306488 | Nov 2016 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
5966140 | Popovic | Oct 1999 | A |
6397206 | Hill | May 2002 | B1 |
6570568 | Horn | May 2003 | B1 |
6615503 | Nzomigni et al. | Sep 2003 | B1 |
6642929 | Essafi | Nov 2003 | B1 |
6721614 | Duncan et al. | Apr 2004 | B2 |
6768928 | Nagasawa et al. | Jul 2004 | B1 |
6778970 | Au | Aug 2004 | B2 |
7027054 | Cheiky | Apr 2006 | B1 |
7269808 | Bruce et al. | Sep 2007 | B2 |
7583272 | Ramani | Sep 2009 | B2 |
7657083 | Parr | Feb 2010 | B2 |
7688318 | O'Malley, III et al. | Mar 2010 | B2 |
7733340 | Desimone et al. | Jun 2010 | B1 |
7913190 | Grimaud | Mar 2011 | B2 |
8248407 | Deslandes | Aug 2012 | B2 |
8416240 | Kuffner | Apr 2013 | B1 |
8606774 | Makadia | Dec 2013 | B1 |
8659596 | Corazza | Feb 2014 | B2 |
8812272 | Martin et al. | Aug 2014 | B2 |
8976179 | Kuffner | Mar 2015 | B2 |
8982122 | Corazza | Mar 2015 | B2 |
9239895 | Huang et al. | Jan 2016 | B2 |
9304332 | Fonte | Apr 2016 | B2 |
9449430 | Janvier | Sep 2016 | B2 |
9798835 | Rorato | Oct 2017 | B2 |
9830703 | Meyer | Nov 2017 | B2 |
9881388 | Rorato et al. | Jan 2018 | B2 |
9916345 | Makadia | Mar 2018 | B1 |
9916538 | Zadeh et al. | Mar 2018 | B2 |
10198488 | Marini | Feb 2019 | B2 |
10303784 | Rorato | May 2019 | B2 |
20020008700 | Fuki | Jan 2002 | A1 |
20020095276 | Rong et al. | Jul 2002 | A1 |
20020167516 | Loop | Nov 2002 | A1 |
20030191627 | Au | Oct 2003 | A1 |
20040122630 | Fife | Jun 2004 | A1 |
20070279414 | Vandenbrande | Dec 2007 | A1 |
20080143714 | Huang | Jun 2008 | A1 |
20080260238 | Pfister | Oct 2008 | A1 |
20090182450 | Goldschmidt | Jul 2009 | A1 |
20100082142 | Usadi et al. | Apr 2010 | A1 |
20100121626 | Montana | May 2010 | A1 |
20110069336 | Lin | Mar 2011 | A1 |
20110224813 | Takatsuka | Sep 2011 | A1 |
20120078587 | Martin et al. | Mar 2012 | A1 |
20120173212 | Rameau | Jul 2012 | A1 |
20140184594 | Janvier | Jul 2014 | A1 |
20140188439 | Rorato | Jul 2014 | A1 |
20140192050 | Qiu | Jul 2014 | A1 |
20140354636 | Rorato et al. | Dec 2014 | A1 |
20140379309 | Banta et al. | Dec 2014 | A1 |
20150032420 | Tristano et al. | Jan 2015 | A1 |
20150199850 | Uematsu et al. | Jul 2015 | A1 |
20160004739 | Tyercha | Jan 2016 | A1 |
20160019270 | Jones et al. | Jan 2016 | A1 |
20160117792 | Rolland-Neviere | Apr 2016 | A1 |
20160217610 | Liu et al. | Jul 2016 | A1 |
20160350335 | Rorato | Dec 2016 | A1 |
20160350387 | Marini et al. | Dec 2016 | A1 |
20170371948 | Rorato | Dec 2017 | A1 |
20180004836 | Lewis | Jan 2018 | A1 |
20190179977 | Van der Velden | Jun 2019 | A1 |
Number | Date | Country |
---|---|---|
1647112 | Jul 2005 | CN |
101059335 | Oct 2007 | CN |
101995231 | Mar 2011 | CN |
0 646 884 | Apr 1995 | EP |
0 646 884 | Jul 1995 | EP |
0 964 364 | Dec 1999 | EP |
2 169 567 | Mar 2010 | EP |
2 387 004 | Nov 2011 | EP |
2000-57184 | Feb 2000 | JP |
2001250130 | Sep 2001 | JP |
WO 2004068300 | Aug 2004 | WO |
WO 2008094170 | Aug 2008 | WO |
WO 2011103031 | Aug 2011 | WO |
WO 2015085435 | Dec 2014 | WO |
WO-2015085435 | Jun 2015 | WO |
Entry |
---|
Assfalg, Jürgen, Alberto Del Bimbo, and Pietro Pala. “Retrieval of 3d objects using curvature maps and weighted walkthroughs.” In 12th International Conference on Image Analysis and Processing, 2003. Proceedings., pp. 348-353. IEEE, 2003. (Year: 2003). |
3DPartFinder by 3DSemantix—Geometric search engine > Home; http://www.3dpartfinder.com. 2 pages. |
Altmeyer, J., et al., “Reuse of Design Objects in CAD Frameworks”, IEEE/ACM International Conference on Computer-Aided Design, Digest of Technical Papers, pp. 754-761, Nov. 6, 1994. |
Babic, B., et al., “A Review of Automated Feature Recognition with Rule-Based Pattern Recognition”, Computers in Industry, 59:321-337 (2008). |
Beardsly, J., “Seamless Servers: The case for and against”, Massively Multiplayer Game Development, Section 3.1, 211-227. |
Besplov, D., et al., “Local Feature Extraction and Matching Partial Objects”, Computer Aided Design, vol. 38: 1020-1037 (2006). |
Biasotti, S., et al., “Sub-part correspondence by structural descriptors of 3D shapes”, Computer Aided Design, 38(9): 1002-1019 (Sep. 2006). |
Boltcheve, D., “An Iterative Algorithm for Homology Computation on Simplical Shapes”, Computer Aided Design, vol. 43, No. 11, pp. 1457-1467 Sep. 2, 2011. |
Briere-Cote, A., et al., “Comparing 3D CAD Models: Uses, Methods, Tools and Perspectives”, Computer-Aided Design and Applications, 9(6): 771-794 (2002). |
Cardone, A., et al. “A Survey of Shape Similarity Assessment Algorithms for Product Design and Manufacturing Applications”, Journal of Computing and Information Science in Engineering, vol. 3 No. 2, pp. 109-118, Jan. 1, 2003. |
Chiang, L., et al. “Identification of Patterns of Repeated Parts in Solid Objects”, IMATI Report Series, pp. i-111, Nov. 2, 2016. |
Clark, D.E.R., et al., “Benchmarking shape signatures against human perceptions of geometric similarity”, Computer-Aided Design, 38(9): 1038-1051 (Sep. 2006). |
Cornelio, A., et al., “Integration and Cataloging of Engineering Design Information”, Systems Integration '90, IEEE Comput., Soc., US, pp. 720-729 (Apr. 23, 1990). |
Creo™ Parametric Data Sheet, © 2011 Parametric Technology Corporation, http://www.creo.uk.com/creo_parametric_mapping.htm, last accessed Mar. 27, 2014. |
Dang, Q.V., et al., “Similarity Detection for Free-Form Parametric Models”, 21st International Conference on Computer Graphics, Visualization and Computer Vision, pp. 239-248 (2013). |
Daras, P., et al., “A 3D Shape Retrieval Framework Supporting Multimodal Queries”, Int J. Comput Vis 89: 229-247 (2010). |
EP Search Report for EP 10 30 6026 dated Feb. 3, 2011. |
EP Search Report for EP 12 30 6720 dated Jul. 4, 2013. |
EP Search Report for EP 12 30 6721 dated May 13, 2013. |
EP Search Report for EP 13 30 5700 dated Aug. 14, 2013. |
EP Search Report for EP 16 17 6763 dated Dec. 1, 2016. |
EP Search Report for EP 16 30 6488 dated May 23, 2017. |
EP Search Report for EP 16 30 6790 dated Jun. 7, 2017. |
Falcidieno, B., et al., “A System for Extracting and Representing Feature Information Driven by the Application Context”, Proceedings of the IEE International Conference on Robotics and Automation, 1672-1678 (1990). |
Fonseca, M.J., et al., “Towards content-based retrieval of technical drawings through high-dimensional indexing”, Computers and Graphics, 27(1): 61-69 (Feb. 2003). |
Frosini, P., et al. “Combining Persistent Homology and Invariance Groups for Shape Comparison”, Discrete & Computational Geometry, vol. 55, No. 2, pp. 373-409, Feb. 2, 2016. |
Funkhouser, T., et al., “Modeling by Example”, ACM Transactions on Graphics, 23(3): 652-663 (Aug. 1, 2004). |
Funkhouser, T., et al., “A Search Engine for 3D Models”, ACM Transactions on Graphics, vol. V, No. N 10 202002. |
Gordon, L., “Comparing 3D CAD Modelers 9, 10, What Designers should know about history-based and dynamic schemes”, Machine Design, Nov. 22, 2006. |
Imoru, C.O., et al., “On a Version of the Banach's Fixed Point Theorum”, General Mathematics, vol. 16, No. 1, pp. 25-32 (2008). |
Ismail, et al., “Feature recognition patterns for form features using boundary representation models”, International Journal of Advanced Manufacturing Technology Springer-Veraguk, vol. 20, No. 8, pp. 553-556, (2002). |
Kao, et al, “Extraction of 3D Object Features from CAD Boundary Representation using the Super Releaton Graph Method”, Transactions on Pattern Analysis and Machine Intelligence, IEEE, Piscataway, USA, vol. 17, No. 12, pp. 1228-1233, Dec. 1, 1995. |
Kazhdan, M., et al., “Harmonic 3D Shape Matching”, ACM SIGGRAPH Symposium on Computer Animation, p. 191 (Jul. 21, 2002). |
Kazhdan, M., et al., “Rotation Invariant Spherical Harmonic Representation of 3D Shape Descriptors”, Eurographics Symposium on Geometry Processing, 9 pages (2003). |
Lee, K.S., et al., “Framework of an evolutionary design system incorporating design information and history”, Computers in Industry, 44(3): pp. 205-227 (Apr. 2001). |
Ma, L., et al. Automatic Discovery of Common Design Structures in CAD models, Computer & Graphics 34, pp. 545-555 (2010). |
Maranzana, R., “3D Data Mining Part and Information Re-Use in a PLM Context”; Proceedings of GT2007, May 14-17, 2013, Montreal, CA, ASME Paper: GT2007-27966, American Society of Mechanical Engineers, NY, NY 2007. http://dx.doi.org/10.1115/GT2007-27966, 37 pages (2013). |
Munkres, J.R., “Elements of algebraic topology”, Addison-Wesley Publishing Company, Inc. 1984. |
Oudot, S., Topological Signatures:, Presentation given in Springs School in LA Marsa, pp. 1-86, Apr. 2016. |
Pauly, et al., “Discovering structural regularity in 3D geometry”, ACM Transactions on Graphics (TOG)—Proceedings of ACM SIGGRAPH TOG Homepage, vol. 27; No. 3, Aug. 2008. |
Papadakis, P., et al., “Efficient 3D shape matching and retrieval using a concrete radialized spherical projections representation”, Science Direct, 40: 2437-2452 (2007). |
Petre, R.D., et al., “An experimental evaluation of view-based 2D/3D indexing methods” 2010 IEEE 26th Convention of Electrical and Electronic Engineers in Israel, pp. 924-928, Nov. 2010. |
Santa-Cruz, D., et al., “Compression of Parametric Surfaces for Efficient 3D Model Coding”, VCIP, 4671: 280-291 (2002). |
Shih, R., Parametric Modeling with Creo™ Parametric: An Introduction to Creo™ Parametric 1.9 SDC Publications © 2011 (table of contexts only). |
Shikhare, D., et al. “Compression of Large 3D Engineering Models Using Automatic Discovery of Repeating Geometric Features”, National Centre for Software Technology, 233-240 (2001). |
Tangelder, J., et al., “A Survey of Content Based 3D Shape Retrieval Methods”, Multimedia Tools and Applications, Kluwer Academic Publishers, vol. 39, No. 3, pp. 441-471; Dec. 8, 2007. |
Wagner, et al. “Modeling Software with Finite State Machines” Auerbach Publications, 2006. |
Wang, et al. “EQSM: An efficient high quality surface grid generation method based on remeshing”, Computer Methods in Applied Mechanics and Engineering, North Holland, Amsterdam, vol. 195 No. 41-43, pp. 5621-5633, Aug. 15, 2006. |
Werghi, D., et al. “Extracting Ordered Patterns from a Triangular Mesh Surface”, IEEE Potentials, IEEE, NY, NY, USA, vol. 30, No. 6, pp. 34-43, Nov. 1, 2011. |
Working with Pattern Recognition; http://learningexchange.ptc.com/tutorial/519/working-with-pattern-recognition. |
Yang, M., et al., “A Survey of Shape Feature Extraction Techniques”, Peng-Yeng Yin, Pattern Recognition, In-Tech, pp. 43-690 (2008). |
Boussuge, et al., “Template-based Geometric Transformations of a Functionally Enriched DMU into FE Assembly Models,” Computer-Aided Design & Applications, 11(4), 436-449 (2014). |
Marchetta, et al., “An artificial intelligence planning approach to manufacturing feature recognition,” Computer-Aided Design, 42:248-256 (2010). |
European Search Report, EP18212155.8, “Methods and Systems for Authoring Simulation Scenarios,” dated May 24, 2019. |
Danglade et al., “A Priori Evaluation of Simulation Models Preparation Processes Using Artificial Intelligence Techniques,” Computers in Industry, vol. 91, pp. 45-61 (2017). |
Danglade et al., “On the use of Machine Learning to Defeature CAD Models for Simulation,” Computer Aided Design & Applications, vol. 11, No. 3, pp. 358-368 (2013). |
Li et al., “Preparation of CAD Model for Finite Element Analysis,” 2010 Int'l Conf. on Computer Mechatronics Control and Electronic Engineering, CMCE 2010, pp. 491-494 (2010). |
Oberg et al., “Machinery's Handbook 27th Edition,” Industrial Press, Inc., New York, N.Y. (2004). |
Number | Date | Country | |
---|---|---|---|
20180137118 A1 | May 2018 | US |