The present application relates generally to the technical field of visualization, and more particularly, to a method and system for generating three dimensional geometric models.
With the development of computing capability (especially GPU and PPU are coming), the 3D-based application is becoming more prevalent because of its immersion and immediacy of visualization, and is increasingly used in various domains, e.g., 3D geometric models of large buildings, campus, and industry control.
A 3D geometric model of a large building, for example, can be used to enhance situation awareness, such as firefighting, building security, and HVAC (heating, ventilation, and air conditioning) management. Additionally, a 3D geometric model of a campus, for example, can present firefighters with an intuitive picture about the surroundings of a building on fire, and help the firefighters find a route on the campus to access the building on fire. Furthermore, a 3D geometric modes of industry control can intuitively show, for example, the operation state (e.g., temperate, pressure, material level) of a reactor, the flow state (e.g., flow speed, direction of a liquid) of a pipe, or the working state (e.g., open or close) of a pump/valve.
However, it is a challenging task to efficiently create a 3D geometric model for a domain and to effectively support the interactions between users and the 3D geometric model at runtime.
Some embodiments are illustrated by way of examples, and not by way of limitations, in the figures of the accompanying drawings in which:
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the embodiments of the application may be practiced without these specific details.
The present application describes a model-driven 3D geometric modeling system and method (as shown in
For example, in order to generate a 3D geometric model for a domain, first, the basic geometric elements can be extracted from an input source (e.g., sketch-based drawing, image-based map) with known geometric computation technology, digital image processing technology, and pattern recognition technology. Then, the basic geometric elements can be converted into domain elements according to the rules for identifying domain elements, which have been described in the domain model (as shown in
The semantic information of the domain elements, for example, types or classifications (e.g., rooms, doors, windows) to which the domain elements belong, and relationships among the domain elements objects, have been defined in the domain model. Thus, the semantic information is preserved in the domain elements. Accordingly, the constructed objects included in the 3D geometric model also maintain such semantic information. By virtue of the semantic information maintained in the objects of the 3D geometric model, users of the present application can easily navigate, visualize, or interact with the whole 3D geometric model.
Additionally, in order to obtain a high quality 3D geometric model, at different stages, the users of the present application are permitted to refine, e.g., the geometric elements, the domain elements, and/or the 3D geometric objects by e.g., adding, deleting or modifying these elements or objects, and thus may modify or update the semantic information of the 3D geometric model at different stages.
The input source 10 of
The geometric element extractor 20 of
The domain element extractor 30 of
The 3D geometric model constructor 40 of
The geometric element library 50 of
For a specific domain, the input file format may be various. Most parts of the domain model can be reused among different inputs, and only minor revision is needed. For example, for the building domain, the floor plan may be shown by an image of the format of, for example, JPEG format rather than DXF. In this case, the domain elements are recognized according to their appearance or structure by pattern recognition technology (e.g., symbols and are respectively recognized as doors, elevators, and stairs). With the domain elements, the 3D geometric process with geometric operators is similar.
Different domains have different domain models, which will be formalized respectively. For example, for the domain of campus, the domain elements, which will be extracted and be 3D modeled, include streets, roads, squares, greenbelts, buildings and etc. However, for the domain of industry control, the domain elements, which will be extracted and be 3D modeled, include reactors, pipes, pumps, valves, splitters, and etc.
At 602, loading a domain model of the domain. The domain model is defined by domain experts based on a geometric element library and a geometric operator library.
At 604, reading an input source. The input source can take a variety of forms, for example, a JPEG file, a SVG file, a DXF file, and etc. The input source can be, for example, a scanned floor blueprint, an image-based campus map, a sketched-based factory layout, and etc.
At 606, extracting basic geometric elements from the input source by using digital image processing technology, geometric computation technology, pattern recognition technology, and etc.
At 608, if a developer is not satisfied with the extracted basic geometric elements, the developer can manually define or refine these basic geometric elements at 610. The developer can repeat this refinement process until he is satisfied with these basic geometric elements.
At 612, converting the basic geometric elements into domain elements according to a domain model, in which the domain elements preserve their semantic information of attributes and relationships defined in the domain model. In one example embodiment, the domain elements are recognized from the basic geometric elements according to the domain model with rule-based reasoning mechanism.
At 614, if a developer is not satisfied with the converted domain elements, the developer can manually define or refine these domain elements at 616, for example, by adding, deleting, or modifying domain elements.
At 618, constructing a 3D geometric model, including 3D geometric objects, from the domain elements by geometric operators according to the loaded domain model, in which the 3D geometric objects maintain the semantic information of the domain elements.
At 620, if a developer is not satisfied with the constructed 3D geometric model, the developer can manually define or refine one or more 3D geometric objects at 622, for example, by adding, deleting, or modifying features of the 3D geometric objects.
At 624, outputting the final 3D geometric model with the semantic information, with which the end user can easily navigate or manipulate the objects of the 3D geometric model in real application.
The application provides examples to show how to generate different 3D geometric models of different domains.
The example computer system 1000 includes a processor 1002 (e.g., a central processing unit (CPU) a graphics processing unit (GPU) or both), a main memory 1004 and a static memory 1006, which communicate with each other via a bus 1008. The computer system 1000 may further include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1000 also includes an alphanumeric input device 1012 (e.g., a keyboard), a cursor control device 1014 (e.g., a mouse), a disk drive unit 1016, a signal generation device 1018 (e.g., a speaker) and a network interface device 1020.
The disk drive unit 1016 includes a machine-readable medium 1022 on which is stored one or more sets of instructions (e.g., software 1024) embodying any one or more of the methodologies or functions described herein. The software 1024 may also reside, completely or at least partially, within the main memory 1004 and/or within the processor 1002 during execution thereof by the computer system 1000, the main memory 1004 and the processor 1002 also constituting machine-readable media.
The software 1024 may further be transmitted or received over a network 1026 via the network interface device 1020.
While the machine-readable medium 1022 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and electromagnetic signals.
The above-described steps can be implemented using standard programming techniques. The novelty of the above-described embodiment lies not in the specific programming techniques but in the use of the methods described to achieve the described results. Software programming code which embodies the present application is typically stored in permanent storage. In a client/server environment, such software programming code may be stored in storage associated with a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, or hard drive, or CD ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein.
It will be understood that each element of the illustrations, and combinations of elements in the illustrations, can be implemented by general and/or special purpose hardware-based systems that perform the specified functions or steps, or by combinations of general and/or special-purpose hardware and computer instructions.
These program instructions may be provided to a processor to produce a machine, such that the instructions that execute on the processor create means for implementing the functions specified in the illustrations. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer-implemented process such that the instructions that execute on the processor provide steps for implementing the functions specified in the illustrations. Accordingly, the figures support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions.
While there has been described herein the principles of the application, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation to the scope of the application. Accordingly, it is intended by the appended claims, to cover all modifications of the application which fall within the true spirit and scope of the application.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN08/00420 | 3/3/2008 | WO | 00 | 11/23/2010 |