WO2017029888A1 - 経路生成プログラム、経路生成方法及び経路生成装置 - Google Patents

経路生成プログラム、経路生成方法及び経路生成装置 Download PDF

Info

Publication number
WO2017029888A1
WO2017029888A1 PCT/JP2016/069252 JP2016069252W WO2017029888A1 WO 2017029888 A1 WO2017029888 A1 WO 2017029888A1 JP 2016069252 W JP2016069252 W JP 2016069252W WO 2017029888 A1 WO2017029888 A1 WO 2017029888A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
route
component
point
cell
Prior art date
Application number
PCT/JP2016/069252
Other languages
English (en)
French (fr)
Inventor
平井 孝幸
Original Assignee
株式会社サイバーウォーカー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社サイバーウォーカー filed Critical 株式会社サイバーウォーカー
Priority to US15/314,899 priority Critical patent/US10139236B2/en
Priority to CN201680001545.1A priority patent/CN108027985B/zh
Priority to CA2949867A priority patent/CA2949867C/en
Publication of WO2017029888A1 publication Critical patent/WO2017029888A1/ja
Priority to HK18113785.2A priority patent/HK1254534A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/155Segmentation; Edge detection involving morphological operators

Definitions

  • the present invention relates to a route generation program, a route generation method, and a route generation device.
  • a technique for creating a three-dimensional model of a building and enabling movement (walk-through) in the three-dimensional model The user can move the camera (viewpoint) by operating the mouse, for example.
  • the movement in the building can be simulated on a computer, which is useful, for example, for confirming the usability of the building at the design stage.
  • a technique has been proposed in which a flow line is set in the section link information that represents the connection relation of the sections constituting the floor plan (for example, Patent Document 1). Passing from the current position to the target position by alternately tracing the connection relationship between the section and the portal, such as referring to the portal (entrance / exit) connected to the section and then referring to the section connected to the portal. To search for parcels and portals. Then, the center of the portal is sequentially connected by a straight line from the current position to the target position, thereby setting a flow line.
  • the present invention has been made in view of the above-described problems, and an object of the present invention is to generate a natural movement route that does not give a user a sense of incongruity based on floor plan information.
  • the route generation method generates a cell formed by dividing a plane into a grid of a predetermined size based on floor plan data including information indicating the type of a house component.
  • Cell division step for setting information indicating the type of component in each of the above, and information indicating the type of component set in the cell are read out, and the corresponding component type is determined in advance in association with the type of component
  • the outer edge of the area that can be passed is identified based on whether or not it is possible to pass through, and the thinning step that generates the data of the passage in which the area that can be passed is thinned, and the data of the passage that is generated in the thinning step,
  • a graph generation step for generating a graph including nodes indicating end points or intersections and edges connecting the nodes, and a start point and an end point are set based on input from the user. Using the graph generated in the graph generating step, and a route searching step computer executes to explore the path from source to destination.
  • data on a passage in which a region that can be passed in a floor plan is thinned is generated, data on a passage at an appropriate distance from a surrounding object such as a wall can be generated. That is, based on the floor plan information, it is possible to generate a natural route that does not give the user a sense of discomfort.
  • a smoothing step for converting the path into a curve to generate a travel route, and a cell through which the travel route passes for the travel route generated in the smoothing step
  • the information indicating the type of the component set in is read, and the collision between the moving route and the component that cannot pass based on whether or not the component can pass on the component is predetermined in association with the type of the component
  • a computer that further includes a collision determination step for determining whether or not there is a collision, and a curve correction step for changing the curvature at a point on the movement path when it is determined in the collision determination step that there is a collision between the movement path and a component that cannot pass through. You may make it perform. In this way, it is possible to generate a movement route obtained by converting the passage data into a smooth curve. In addition, since the movement route is corrected using the cells generated based on the floor plan data, the movement route becomes more natural.
  • the floor plan data includes a component whose type is a door or a staircase, and in the smoothing step, at least a node existing at a position corresponding to a cell whose type of the component is a door or a staircase, A broken line that approximates a path may be generated, and a movement route may be generated based on the vertex of the broken line.
  • the passing points of doors and stairs which are the boundaries of the room in the floor plan, are fixed, and the path for moving through the room space can be converted to an approximate polygonal line. . Therefore, it is possible to generate a simplified smooth movement path while fixing the movement point.
  • the route search step when a via point is further set based on an input from the user, and none of the obtained first paths from the start point to the end point passes through the via point, the first path from the via point
  • the second path to the node included in the path may be further searched, and the path from the start point to the end point may be generated by connecting the first path and the second path. In this way, it is possible to generate a movement route that passes through various points including the dead-end room.
  • a display step of drawing a three-dimensional model of the building indicated by the floor plan data, moving the viewpoint along the movement path in the three-dimensional model, and directing the line of sight on the movement path a predetermined distance ahead May be further executed by a computer. In this way, a natural walkthrough can be expressed.
  • the route search step when there is a node string that loops within a predetermined distance, the route search may be performed by replacing the node string with one virtual node. In this way, it is possible to suppress searching for a plurality of paths that are not substantially different.
  • the floor plan data may include furniture data that cannot pass on the component as a component. In this way, it is possible to generate a path and a moving route so as to avoid furniture arranged in the image of life, for example.
  • the contents described in the means for solving the problem can be combined as much as possible without departing from the problem and technical idea of the present invention.
  • the contents of the means for solving the problems can be provided as a device such as a computer or a system including a plurality of devices, a method executed by the computer, or a program executed by the computer.
  • a recording medium that holds the program may be provided.
  • FIG. 1 is a functional block diagram illustrating an example of a route generation device 1 according to the embodiment.
  • the route generation device 1 includes a storage unit 101, a floor plan reading unit 102, a cell division unit 103, a thinning unit 104, a graph generation unit 105, a route search unit 106, and a smoothing. Part 107 and walk-through display part 108.
  • the storage unit 101 stores floor plan data created by predetermined software, and data such as a travel route that is finally or intermediately generated by the processing according to the present embodiment.
  • the floor plan reading unit 102 reads floor plan data created in advance by predetermined software.
  • the floor plan data according to this embodiment includes components that cannot be passed such as walls, windows, kitchen equipment, and other obstacles such as furniture, and indoor spaces, hallways, doors, stairs, and gardens. It is assumed that it is electronic data that arranges a possible component on a plane.
  • the cell dividing unit 103 generates a grid-like cell holding predetermined attribute information based on the read floor plan data.
  • the thinning unit 104 uses, for example, the Hilditch algorithm and the like to generate passage data obtained by thinning the passable region based on the distance from the outline of the passable region.
  • the graph generation unit 105 converts the path data into a graph represented by nodes (vertices) that are end points and branch points and edges (branches) that connect the nodes.
  • the route search unit 106 searches for a path (road) represented by an edge sequence or a node sequence connecting two vertices, for example, using coordinate data of a start point, an end point, and a relay point specified by the user.
  • the smoothing unit 107 smoothes the path and generates a movement route.
  • the walk-through display unit 108 displays on the monitor or the like how it moves along the movement path generated in the three-dimensional model.
  • the route generation device 1 is a computer as shown in FIG.
  • FIG. 2 is an apparatus configuration diagram illustrating an example of a computer.
  • the computer includes a CPU (Central Processing Unit) 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF (Interface) 1004, an input / output IF (Interface) 1005, a drive device 1006, and a communication bus 1007.
  • the CPU 1001 performs processing described in this embodiment by executing a program.
  • the main storage device 1002 caches programs and data read by the CPU 1001 and develops a work area of the CPU.
  • the main storage device is a RAM (Random Access Memory), a ROM (Read Only Memory), or the like.
  • the auxiliary storage device 1003 stores programs executed by the CPU 1001, setting information used in the present embodiment, and the like.
  • the auxiliary storage device 1003 is an HDD (Hard-disk Drive), an SSD (Solid State Drive), a flash memory, or the like.
  • the main storage device 1002 and the auxiliary storage device 1003 function as the storage unit 101 shown in FIG.
  • the communication IF 1004 transmits / receives data to / from other computer devices.
  • the communication IF 1004 is specifically a wired or wireless network card or the like.
  • the input / output IF 1005 is connected to the input / output device and accepts input from the user or outputs information to the user.
  • the input / output device is an image input device such as a camera, a keyboard, a mouse, a display, sensors such as a GPS receiver, or a touch panel.
  • the drive device 1006 reads data recorded on a storage medium such as a flexible disk and an optical disk, and writes data to the storage medium.
  • the above components are connected by a communication bus 1007. A plurality of these components may be provided, or some of the components (for example, the drive device 1006) may not be provided.
  • the input / output device may be integrated with the computer.
  • the program executed in this embodiment may be provided via a portable storage medium that can be read by the drive device, an auxiliary storage device such as a USB memory, a network IF, or the like.
  • the computer 1001 executes the program, the computer as described above works as the path generation device 1.
  • the path generation device 1 a description will be given assuming that one computer performs stand-alone processing. However, part or all of the functions are provided by another computer connected via a network such as the Internet or an intranet, and are sent to the user terminal. The processing result may be transmitted.
  • FIG. 3 is a process flow diagram illustrating an example of the route generation process.
  • the floor plan reading unit 102 of the route generation device 1 reads the data of the floor plan stored in the storage unit 101 in accordance with a user operation (FIG. 3: S1).
  • FIG. 4 is a diagram showing a display example of a floor plan in which components of a house are arranged on a plane.
  • FIG. 5 is a table showing an example of floor plan data stored in the storage unit.
  • the floor plan data includes components indicating boundaries between regions such as walls, windows, and doors, components indicating regions such as rooms, corridors, stairs, and gardens, and components indicating housing equipment and furniture.
  • Each component includes information such as a position, a size, an attribute indicating what the component indicates (a type of what the component represents), and identification information for uniquely identifying the component.
  • the floor plan in FIG. 4 is a flat representation of the design data for the house. It is assumed that the floor plan data retains not only the width and depth but also the height information in association with the size attribute shown in FIG. It is also used to generate a three-dimensional model related to the floor plan.
  • the components are components that cannot pass in the 3D model such as walls, windows, housing equipment such as kitchens, and obstacles such as furniture, and components that can pass through indoor spaces, corridors, doors, stairs, gardens, etc. And divided. Passability is determined according to the type of the component represented, but as shown in FIG. 5, the floor plan data may store information indicating whether the component is allowed to pass.
  • the cell dividing unit 103 of the route generation device 1 supplies the attribute information of the components of the floor plan shown in FIG. 4 to a plurality of cells generated by dividing the plane into a grid of a predetermined size.
  • Store FIG. 3: S2.
  • the cell according to the present embodiment refers to each of regions obtained by dividing a plane, for example, vertically and horizontally at a predetermined interval. Note that the size of one side of the cell can be determined in accordance with the size of the target space represented in the floor plan. In this embodiment, when a space through which a person can pass is searched for in a later process, it is only necessary to extract a movement path having a width of about 40 to 50 cm. Therefore, for example, the cell is divided into 10 cm square cells.
  • FIG. 6 is an example of an image showing a part of the floor plan shown in FIG. 4 divided into 10 cm ⁇ 10 cm cells.
  • FIG. 7 is a diagram showing an example of attribute information held in each cell in the floor plan divided into cells. In this embodiment, it is assumed that information indicating the type of component is held as attribute information.
  • the cell attribute information in this embodiment is, for example, a 24-bit color value (RGB (Red, Green, Blue) component) that associates each cell with one pixel of raster data and indicates the color component of each pixel.
  • RGB Red, Green, Blue
  • Shall be held as In addition, the value corresponding to the type of component of the floor plan is expressed by a numerical value, and the process of holding the value in the cell is the raster data for the component of the floor plan at a scale where one pixel is 10 cm ⁇ 10 cm. Can be performed by assigning the value to, for example, the R component.
  • the identification number of the component for identifying the same room or joinery is held for a portion through which a person can pass using the GB component of each pixel.
  • the identification numbers of the constituent elements are given, for example, serial numbers based on the identification information shown in FIG.
  • the GB component is assumed to carry up to the second digit G component, and the entire GB component represents one piece of identification information. That is, the value of the G component is a quotient when the identification number is divided by the divisor “256”, and the value of the B component is a remainder when the identification information is divided by 256.
  • each component of RGB is represented by a color of (8, 9, 244).
  • a route search image an image that is divided into cells and holds attribute information as a color value.
  • the thinning unit 104 of the route generation device 1 performs a thinning process (S3).
  • the thinning unit 104 thins a passable area that is a set of cells that can pass through.
  • FIG. 8 is a processing flow showing an example of the thinning process.
  • the thinning unit 104 divides a cell that can pass through each cell and a cell that cannot pass through each cell based on the R component shown in FIG. 7 (S11 in FIG. 8). Specifically, since the cell having the R component of 2 or less shown in FIG. 7 is a cell that cannot pass, for example, a map having cells corresponding to the route search image is prepared, and the map cannot pass. Convert all cells to "0". Further, since the cells having the R component of 5 or more shown in FIG. 7 are passable cells, for example, all of them are converted to the initial value “ ⁇ 1”.
  • the thinning unit 104 weights the cells according to the distance from the portion that cannot pass (that is, the outer edge of the passable region) (S12).
  • the reference value indicating the distance from the cell that cannot pass is called MaxWeight, and the initial value is “0”.
  • the map set to 0 and -1 in S11 is scanned, and among cells having a value of -1 (passable cells), the top, bottom, left, and right (also referred to as 4 neighbors) cells are the same as MaxWeight. Update the value of the thing to MaxWeight + 1. After scanning all the cells, MaxWeight is incremented by +1 (incremented), and scanning is repeated for the cell of ⁇ 1 until there is no cell having a value of ⁇ 1.
  • FIG. 9 shows a specific example of the cell value updated by the process of S12.
  • 0 indicating a cell that cannot pass or -1 indicating a cell that can pass is set based on the value of the R component shown in FIG.
  • the value of the cell adjacent to the MaxWeight “0” cell among the ⁇ 1 cells is converted to “1” which is MaxWeight + 1.
  • the value of MaxWeight is updated to MaxWeight + 1, and the value of the cell adjacent to the cell of MaxWeight “1” among the cells of ⁇ 1 is MaxWeight + 1 as shown by the shaded cells in the third row (3). 2 ”.
  • MaxWeight is updated to MaxWeight + 1, and the value of the cell adjacent to the cell of MaxWeight “2” among the cells of ⁇ 1 is MaxWeight + 1 as shown by the shaded cell in the fourth row (4). 3 ".
  • the above processing is repeated, and the cells in the passable area are weighted based on the distance from the outer edge of the passable area.
  • the thinning unit 104 extracts a cell that is far from the outer edge of the passable region compared to the surrounding cells (S13).
  • the processing result is recorded in a map (referred to as an extraction map) different from S12 in which 0 is stored as an initial value in a non-passable cell and ⁇ 1 is stored in a passable cell.
  • a predetermined value is obtained using the values of the surrounding eight cells (near 8) on the map weighted in S12.
  • FIG. 10 is a diagram for explaining a cell to be processed and eight neighboring cells around it.
  • FIG. 10 shows 3 ⁇ 3 9 cells, A, B, C from top to bottom in the left column, D, E, F, from top to bottom in the middle column.
  • the symbols G, H, and I are attached downward.
  • the center cell E is a cell to be processed, in this step, the values of the following sum1 to sum4 are obtained using the values on the map weighted in S12.
  • the maximum value of sum1 to sum4 is larger than 0, the maximum value is held in the cell E to be processed on the extraction map. On the other hand, if the maximum value of sum1 to sum4 is 0 or less, 0 is held in cell E on the extraction map.
  • FIG. 11 shows a schematic example of a diagram in which the process of S13 is performed on the entire floor plan shown in FIG. In FIG. 11, a cell having a relatively larger weight value than the surrounding cells is extracted in white.
  • the thinning unit 104 thins the width of the line formed by the extracted cells into one pixel based on a predetermined rule (S14).
  • a predetermined rule for thinning processing, various existing methods such as Hilditch's algorithm can be used.
  • each cell is scanned using the extraction map after the processing of S13.
  • cells that hold a value greater than 0 are counted. That is, if E is the processing target among the cells shown in FIG. 10, the number of cells having a value greater than 0 among A to D and F to I is summed.
  • Patterns (1) to (12) are represented by the values of three adjacent cells among the eight neighboring cells of the processing target cell.
  • FIG. 12 is a partial enlarged view showing an example before and after thinning the white region shown in FIG. 11 by the process of S14. Note that the value held by the cell in the extraction map after the processing of S14 indicates the end point of the path candidate when 1, and indicates the midpoint of the path candidate when 2, or when 3 or 4 A point branched in three directions or four directions is shown.
  • FIG. 13 is a diagram illustrating an example in which the extraction region illustrated in FIG. 11 is thinned by the process of S14.
  • the extracted map after the processing of S14 is referred to as a thinning map.
  • the thinning map values as shown in FIG. 12 are held in each of the cells included in the path candidates.
  • the thinning unit 104 performs a process of removing noise from the candidate for the passage of the thinning map (S15). As shown in FIG. 13, in the processing up to S ⁇ b> 14, many short lines such as beards appear as path candidates. In this step, these short dead end path candidates are deleted.
  • cells with a value of 1 included in the thinning map are extracted, and all values are replaced with 0.
  • a cell having a value of 2 included in the thinning map is extracted. If there is one cell having a value of 1 or more in the vicinity of 8 of the cell, the value of this cell is changed to 1 (set as a new end point).
  • the cell value remains at 2.
  • FIG. 15 is a process flow illustrating an example of the graph generation process.
  • the graph generation unit 105 extracts nodes based on the route candidate map generated in the thinning process (FIG. 15: S21).
  • corresponding pixels of the route candidate map shown in FIG. 14 and the attribute information partially shown in FIG. 7 are read in order, and the cell overlapped with the fitting (door), the opening, the stairs, and the value 3 Alternatively, four cells (cells branched into three or four) are extracted as nodes (vertices).
  • FIG. 16 shows an example in which the nodes extracted in S21 are displayed as circles. Note that the position of the node can be expressed as coordinates on the floor plan corresponding to the center of the cell, for example.
  • the graph generation unit 105 searches for an edge (S22). In this step, for example, starting from one of the nodes in the graph, the search is started in the direction of a cell having a value of 2 in the route candidate map among adjacent cells. If another node is found at the search destination, the mutual connection relationship is stored using the node and path identification information. Note that it may be expressed as a row of coordinates in edges and floor plans. Further, for example, a flag may be set for a searched cell to prevent a search from the reverse direction.
  • FIG. 17 is a table showing an example of the data structure of nodes held in the storage unit.
  • Node data includes an index number, coordinate values (X, Y), attribute type (inside a room, joinery, opening, or staircase), identification number of a component to which the node belongs, number of edges to be connected, and connection Each value of the edge index number.
  • the value of the attribute type is determined based on the R component of the route search image described above.
  • the identification number of the component to which the node belongs is determined based on the GB component of the route search image described above.
  • FIG. 18 is a table showing an example of an edge data structure held in the storage unit.
  • the edge data has each value of an index number, index numbers of nodes at both ends, an identification number of a component to which the edge belongs, the number of vertices between nodes, and a vertex (coordinate) list between nodes.
  • the identification number of the component to which the edge belongs is also determined based on the GB component of the route search image.
  • the data shown in FIGS. 17 and 18 is stored for all the nodes and edges obtained by the search, and the graph generation process is terminated.
  • FIG. 19 is a processing flow illustrating an example of route search processing.
  • the route search unit 106 receives an input of a departure point and an arrival point of movement from the user, and sets a point on the edge in the same room as the input point as a start point and an end point (FIG. 19: S31).
  • the neighborhood point may be a node that is an end point of an edge. Whether or not they are in the same room can be determined based on the identification number of the component held in the GB component in S2.
  • a nearest neighbor search may be performed linearly using a vertex list between nodes included in the edge data shown in FIG. 18, or an existing approximate nearest neighbor search method may be used. It may be.
  • FIG. 20 is a diagram illustrating an example of a schematic graph for explaining route search.
  • the graph of FIG. 20 includes nodes N1 to N14.
  • the nodes N1 to N14 are connected by an edge a to an edge p. Specifically, a connects N1 and N2, b connects N1 and N3, c connects N2 and N5, d connects N3 and N4, and N4 and N5.
  • N3 and N6 are connected by f
  • N4 and N7 are connected by g
  • N6 and N7 are connected by h
  • N7 and N8 are connected by i
  • N6 and N9 are connected.
  • j connects, N7 and N10 connect
  • k connects N8 and N11
  • l connects N9 and N12 connect
  • m connects N10 and N13
  • n connects N11 and N14 o is connected
  • N12 and N13 are connected by p.
  • the user designates a star-marked location near the edge a shown in FIG. 20 as a departure point, and designates a triangular-marked location near the edge o as an arrival point.
  • FIG. 21 is a table showing a specific example of node data included in FIG. In the example of FIG. 21, the coordinates (X, Y), the attribute type representing the constituent element in the floor plan indicated by the node, and the identification information of the constituent element indicated by the node for the nodes whose node indexes are N1 to N14 The number of edges connected to the node and a list of edges connected to the node are held.
  • FIG. 22 is a table showing a specific example of edge data included in FIG. In the example of FIG. 22, for an edge whose edge index is a to p, the indices of nodes at both ends, the attribute type representing the component in the floor plan indicated by the edge, the number of vertices through which the edge passes, Holds a list of vertices through which the edge passes.
  • depth priority search is performed. Also, the same node is assumed to pass only once, and when returning to a node that has already passed or when reaching an end point node that is not the end point, the search for the path is terminated and an unsearched branch is searched from the nearest branch point. To do. When the end point is reached, the list of edges included in the found path is stored in the storage unit 101, and when there is an unsearched branch, the search for another path is continued from there.
  • FIG. 23 is a table showing a specific example of path data stored in the storage unit 101.
  • the table in FIG. 23 includes path identification information, the number of passing edges, and a list of passing edges. For each edge, a direction from a node with a smaller index number to a node with a larger index number is referred to as a forward direction, and the opposite is referred to as a reverse direction.
  • the direction of movement for each edge is registered as “forward” indicating the forward direction or “reverse” indicating the reverse direction. As can be seen from FIG. 23, the search is performed in both the forward direction and the reverse direction from the start point.
  • FIG. 25 is a process flow illustrating an example of the smoothing process. Note that the smoothing unit 107 may perform the smoothing process on all the paths extracted by the route search process, or smooth the path that has a short distance from the start point to the end point, or a path selected by the user. You may make it perform a digitization process.
  • the smoothing unit 107 first replaces a part of the path with a straight line (FIG. 25: S41).
  • the vertex row included in the path (edge) is divided by a start point, an end point, a fitting (door), an opening, and a staircase, and each section is connected by a straight line.
  • the reason for dividing by a joinery (door) or staircase is to perform a special process of changing the direction of the line of sight when opening or closing the door or raising or lowering the stairs when the walk-through is displayed later.
  • the path shown in FIG. 24 is divided into four parts from a starting point a indicated by a circle to a terminal 1 indicated by a star through doors 1 and 2 indicated by triangles.
  • the vertex row included in the edge between the door 2 and the end point b is replaced with a straight line
  • the upper row (1) in FIG. 26 is obtained.
  • the replaced straight line is indicated by a broken line.
  • the smoothing unit 107 determines whether or not the degree of deviation from the original path and the replaced straight line exceeds a predetermined threshold (S42). It is assumed that a threshold L representing a permissible range of the distance from the replaced straight line to the farthest point on the original path is set in advance as the predetermined deviation degree. For example, the threshold value L is 10 cm. In this step, a perpendicular line to the replaced straight line is drawn from each of the vertex rows included in the edges constituting the original path, and the maximum value lmax of the distance l is obtained.
  • S42 it is determined whether or not the divergence degree between the original path and the replaced straight line exceeds a predetermined threshold for each straight line. If the predetermined threshold is exceeded, the straight line is further divided as shown in the third row (3) of FIG. On the other hand, if the degree of divergence between the replaced straight line and the original path is within a predetermined threshold (S42: NO), it is determined whether there is an unprocessed other straight line that has been divided (S43).
  • the smoothing unit 107 converts a polygonal line that approximates the original path into a curved line (S44).
  • the broken line generated by the above-described processing is converted into a curve such as a Bezier curve or a Hermitian curve.
  • FIG. 28 is a diagram for explaining generation of a Bezier curve that passes through two points p and q.
  • the cubic Bezier curve has four control points and passes through the control points at both ends.
  • two control points are added between the vertices of the polygonal line. It is assumed that the two points p and q are part of the vertex rows o, p, q, and r included in the broken line.
  • control points m and n are generated at positions obtained by multiplying the length l by f (0.0 ⁇ f ⁇ 0.5) in the vector v and vector w directions from the points p and q, respectively.
  • An example of the control point m and the control point n is shown in the second stage (2) of FIG. Moreover, the control point m and the control point n are calculated
  • points s, t, and u are generated that internally divide the points pm, mn, and nq into ratio: (1.0 ⁇ ratio), respectively.
  • An example of the points s, t, and u is shown in the third row (3) of FIG. Further, the point s, the point t, and the point u are obtained by the following equations.
  • Point s p + (mp) ⁇ ratio
  • Point t m + (nm) ⁇ ratio
  • Point u n + (q ⁇ n) ⁇ ratio
  • a point v and a point w are generated that internally divide the point st and the point tu into ratio: (1.0 ⁇ ratio), respectively.
  • the locus of the point x when the ratio is continuously changed from 0.0 to 1.0 is as shown in the sixth row (6) of FIG.
  • the route on the floor plan is converted into a smoothly changing curve.
  • the path of the broken line shown in FIG. 27 is converted into a curve as shown in FIG.
  • the route generated by the route generation device 1 can express natural movement when a walk-through is displayed.
  • the smoothing unit 107 determines whether the generated curved path collides with a cell that cannot pass through the path search image (FIG. 25: S45).
  • the coordinates on the curve are obtained at a predetermined interval, such as an interval of 10 cm, for the movement candidate path represented by the curve.
  • FIG. 30 is a diagram illustrating an example of collision with a cell through which a curved path cannot pass.
  • FIG. 30 shows an example of a route that passes between the outer periphery of the house and moves between the entrance and the kitchen.
  • dashed ellipse it was determined that the fences separating the bicycle parking lot in front of the house and the parking lot beside the house, and the back wall of the house collide with the curved path.
  • the value of f is decreased in the above-described calculation formulas for the control point m and the control point n.
  • the curve between the points pq is swelled and becomes a shape close to a straight line.
  • f is multiplied by a predetermined coefficient adj (0.0 ⁇ adj ⁇ 1.0) in the calculation formula of the control point m and the control point n.
  • FIG. 31 is a diagram for explaining a finally generated curve when the coefficient adj is multiplied at the time of calculating the control point.
  • the upper part (1) of FIG. 31 shows curves generated by the calculation formulas for the control point m and the control point n described above.
  • the lower part (2) of FIG. 31 shows a curve generated when f is multiplied by a coefficient adj.
  • adj is a value between 0 and 1.0, and is 0.75 in the example of FIG.
  • the distance from the point p to the control point m and the distance from the point q to the control point n are multiplied by the coefficient adj, and the positions of the control point m and the control point n are point p and point q, respectively. Get closer.
  • the positions of the points s to x approach the line segment pq, so that the curve drawn as the locus of the point x approaches a straight line.
  • S45 it is determined whether the curve after changing the curvature collides with a cell that cannot pass through.
  • the smoothing unit 107 further adjusts the curvature of the curve in S46. For example, in the calculation formulas for the control point m and the control point n, the coefficient adj described above may be multiplied twice, or the value of the coefficient adj may be further reduced. In this way, the curve that is determined to collide with a cell that cannot pass is made closer to a straight line.
  • FIG. 32 shows the result of adjusting the curvature for each of the three curved paths that collide with the cells that cannot pass in FIG.
  • the walk-through display unit 108 of the route generation device 1 performs a walk-through display for moving in the three-dimensional model according to the floor plan based on the smoothed moving route (FIG. 3: S7).
  • the route generation device 1 can generate a more natural movement route.
  • the present invention is not limited to the above-described embodiment, and can be modified within the scope not departing from the gist of the present invention.
  • the processing order may be changed as long as the result does not change.
  • a part of the processing may be executed by another computer, and the other computer may be connected via a network (not shown).
  • said embodiment and the following modification can be implemented in combination as much as possible.
  • the movement route according to the embodiment can express a more natural movement by performing a smoothing process and converting it into a curve.
  • the movement route can be represented by a broken line generated in S41 or a path obtained by the route search process of S5. Based on this, a walkthrough may be displayed. Even such a route is generated according to the distance from the outer edge of the passable region, and can be said to be a natural movement route that does not give the user a sense of incongruity.
  • the curve to be converted in S44 is not limited to a Bezier curve.
  • a Hermite curve may be used.
  • FIG. 33 is a diagram for explaining a procedure for curving using a Hermite curve. Similarly to the example of the Bezier curve, FIG. 33 also assumes that the points pq in the point sequence opqr are curved.
  • a unit vector obtained by normalizing the vector op from the point o to the point p and a unit vector obtained by normalizing the vector pq from the point p to the point q are synthesized and synthesized.
  • a unit vector obtained by normalizing the vector pq from the point p to the point q and a unit vector obtained by normalizing the vector qr from the point q to the point r are synthesized to obtain a synthesized vector w.
  • the combined vector v and the combined vector w are tangent directions at the points p and q of the curve between the points pq, respectively.
  • the length l between the points pq is obtained, and the vector V and the vector W are calculated based on the following mathematical formula.
  • the coefficient f is a parameter for adjusting the shape of the curve, and 0.0 ⁇ f ⁇ 2.0.
  • a point x on the curve between the points pq and a vector n indicating the tangential direction at the point x are as follows. As shown in the third stage (3) of FIG. 33, also in the case of a Hermite curve, the locus of the point x when the ratio is changed from 0.0 to 1.0 is a curve between the points pq.
  • the curvature adjustment in S46 can suppress the bulging of the curve by adjusting the parameter so that the value of the coefficient f becomes small in the calculation formulas of the vector V and the vector W as in the case of the Bezier curve. .
  • the curve shown in the upper part (1) of FIG. 34 collides with a cell that cannot pass, it is multiplied by a coefficient adj (0.0 ⁇ adj ⁇ 1.0) as shown in the lower part (2) of FIG.
  • the vector V ′ and the vector W ′ after curvature adjustment are obtained. In this way, the bulge of the curve can be made smaller and closer to a straight line.
  • the number of times of multiplication by the coefficient adj is increased or the value of the coefficient adj is decreased.
  • the process for removing noise shown in S15 of FIG. 8 may delete a path candidate shorter than a predetermined threshold.
  • the threshold value is a positive integer and is set in advance. Here, it is assumed that the threshold is “5”.
  • a cell having a value of 1 is extracted from the thinning map as described above, and for each extracted cell, a value that is 1 smaller than the minimum value of 8 neighboring cells (if the minimum value is 0, ⁇ Replace with 1).
  • a cell having a value of 2 included in the thinning map is extracted, and if there is only one cell having a value of 1 or more in the vicinity of 8 of the extracted cell, the value of the extracted cell is replaced with 1. .
  • the thinning map there are two or more cells having a value of 1 or more in the vicinity of 8 cells having a value of 2, and at least one of cells having a value of 1 or more in the vicinity of 8 is adjacent. If not, the value of the cell remains at 2.
  • the process returns to the process of substituting a value that is 1 smaller than the minimum value of the 8 neighboring cells. The process is repeated until 1 cell is exhausted.
  • a cell having a smaller value than the threshold value obtained by reversing the positive / negative (if the threshold value is 5, minus the threshold value is extracted from the thinning map after the above processing) is extracted and extracted. Return the value of the assigned cell to 2. Further, a cell that exists in the vicinity of 8 of the extracted cell and has a negative value is extracted, and the value of the extracted cell is returned to 2. And it returns to the process which extracts the cell whose value is smaller than the threshold value which reversed positive / negative, and repeats until it becomes impossible to extract a cell with a negative value from 8 vicinity. When a cell having a negative value cannot be extracted from the vicinity of 8, the cell whose value is finally returned to 2 is replaced with 1.
  • any value from the threshold value obtained by reversing the positive and negative values to ⁇ 1 is entered in the path candidate cell shorter than the threshold value. Therefore, by extracting these cells and replacing the values with 0, it is possible to delete path candidates shorter than the threshold.
  • FIG. 35 a route candidate map after noise removal according to the modification is generated.
  • a beard-like line longer than the predetermined threshold is left in FIG. Since a radial edge from the center of the room toward the corner of the room is generated, even when the user designates the corner of the room as the departure point or the arrival point, it is designated as compared with the example of FIG. Neighboring points can be found at a position closer to the spot.
  • FIG. 36 is a diagram for explaining processing when a plurality of nodes exist in a relatively narrow range.
  • S32 of FIG. 19 when searching for a route, if there is a route that returns to a node that has already passed when the total length of edges is equal to or less than a predetermined threshold (for example, 300 cm), For example, the edge is extracted with a flag. Then, the extracted node and edge are replaced with one virtual node, and the route search in S32 is performed. For example, when a set of nodes and edges as shown in the upper part (1) of FIG. 36 is extracted, it is replaced with one node as shown in the lower part (2) of FIG.
  • a predetermined threshold for example, 300 cm
  • the set of extracted nodes and edges may be replaced with a virtual node only when the condition that they exist in the same room or space is satisfied. For example, by using the identification information of the component held in the GB component of the route search image, it is possible to determine whether or not the vertex row included in each node or edge exists in the same room or space.
  • FIG. 37A and FIG. 37B are diagrams showing an example of a route from a Japanese-style room on the first floor to a Western-style room on the second floor.
  • FIG. 37A shows a route from the start point in the Japanese room to the stairs.
  • FIG. 37B shows a route from the stairs to the western-style room.
  • the floors are connected by one staircase, but even if there are multiple stairs and elevators, the identification information of the components related to the stairs and the like must be connected to the same route. Thus, a route across the floor can be presented.
  • ⁇ Via-point> the start point and the end point are set based on the user's operation, but a waypoint may be further set.
  • the waypoint is set, for example, by designating a room that the user wants to pass through.
  • S5 using the route search image, the edge passing through the cell holding the identification information of the designated room is specified, and the route including the edge is extracted.
  • a route that passes through the same node a plurality of times is not extracted. Therefore, for example, a route to another destination cannot be extracted via a room having only one entrance. Therefore, in the route search process of S5 (FIG. 3), when a room having only one entrance is designated as a waypoint, the route passes through the same node exceptionally, Generate a round trip path.
  • FIG. 38 is a diagram for explaining a search for a route passing through a waypoint.
  • five rooms “A”, “U”, “E”, “O”, and “KA” are connected to each other via a corridor “I”.
  • the rooms “e” and “ka” are directly connected.
  • the room “A” includes a branching edge “a” and an edge “b”, and is connected to the hallway “I” via the edge “c”.
  • the room “U” includes an edge e and an edge f forming a loop, and is connected to the hallway “I” via the edge d.
  • the room “e” includes an edge i, an edge j, and an edge k that form a loop, is connected to the hallway “I” via the edge h, and is connected to the room “ka” via the edge l. .
  • the room “O” includes a branching edge t and an edge u, and is connected to the hallway “I” via the edge s.
  • the room “ka” includes a branching edge q, an edge m, and an edge n, and is connected to the hallway “I” via the edge p.
  • the corridor “I” includes an edge g, an edge o, an edge r, and an edge v.
  • routes (1) to (3) represented by the following three edge sequences are found.
  • Edges a, c, g, o, r, s, t (number of edges 7)
  • Edges a, c, g, h, k, l, p, r, s, t (number of edges: 10)
  • Edges a, c, g, h, i, j, l, p, r, s, t (number of edges 11)
  • the paths (2) and (3) pass through the edge i, the edge j, and the edge k included in the room “e”, respectively.
  • the route (3) is divided at the node of the intersection of the route (4) and (5) found by searching from the room “U” at the waypoint and the route (3).
  • the route (2) is divided into the following two edge sequences (3-1) and (3-2).
  • edge rows (4) and (5) for passing through the room “U” are inserted between the divided edge rows.
  • an edge sequence constituting any two routes is inserted, and when only one route from the room “U” is found, Assume that an edge row that reciprocates along the path is inserted.
  • the paths (4) and (5) are inserted between the edge rows (2-1) and (2-2) to generate the path (6) as shown in FIG.
  • the route (6) is represented by an edge sequence as follows. Thus, by passing the edge d and the edge e twice, it is possible to generate a route that passes through the dead-end room “U”. (6) Edges a, c, d, e, e, f, d, g, h, i, j, l, p, r, s, t (number of edges 16)
  • a point on the floor plan may be specified in the same manner as the departure point and arrival point.
  • a first route from the departure point to the waypoint and a second route from the waypoint to the arrival point may be searched.
  • a route passing through the waypoint is generated.
  • the direction at the end point of the first route vector from the point on the route immediately before the end point to the end point
  • the direction at the start point of the second route vector from the start point to a point slightly advanced on the route
  • FIG. 41 is a diagram illustrating an example of a route obtained by the route search according to the above-described embodiment.
  • the route generated by the processing of the embodiment is suitable for obtaining a route for walking while avoiding obstacles such as furniture. However, in a room where furniture or the like is not placed, there are cases where a swingable route candidate is generated.
  • radial route candidates from the center of the room toward the corner of the room are generated, so that a route candidate that once returns to the center of the room can be obtained. is there.
  • the smoothing unit 107 first connects both ends of the path with a straight line, and determines whether there is a portion that cannot pass between them. If there is no place on the route that cannot be passed, the paths are not approximated by a broken line, but are directly connected by a straight line.
  • a node that is as far as possible from the starting point of the path and that does not collide with a portion that cannot pass through the straight line connected to the starting point is extracted, and the node extracted from the starting point is connected with a straight line. Thereafter, the same processing is repeated between the extracted node and the end point. For example, sequentially check whether there is a passage between the start point, the node one point before the end point, the node two points before the end point, ..., the node one point after the start point and the end point. If there is no passage between the nodes, the nodes are connected with a straight line. In this way, when approximating the original route, a broken line route that does not collide with an inaccessible portion is generated.
  • FIG. 42 is a diagram illustrating an example of a route when a broken line generated according to the present modification is used.
  • the start point and end point are the same as the route shown in FIG.
  • the route in the lower left room that moves away from furniture or the like is substantially the same as the route in FIG.
  • a smoother route is generated in the corridor where there is no obstacle on the route or in the upper right room.
  • the walk-through display unit 108 displays a walk-through that moves in the three-dimensional model based on the smoothed route on the floor plan.
  • the route used for display the user may designate one of a plurality of routes found by the search, or the route having the shortest distance may be adopted.
  • the routes are presented one by one on the floor plan so that the user can select the route used for the walk-through display. May be.
  • the method for determining the route to be presented to the user and the method for determining the order in which the route is presented to the user may preferentially present a route with a short distance from the start point to the end point, or a route that passes through a wide passage. May be preferentially presented, or a route with a small number of passing doors may be preferentially presented. Further, a route to be presented to the user may be determined by a combination of these conditions.
  • the map generated in S12 described with reference to FIG. 9 is used to weight the edge according to the distance from the outer edge of the passable region.
  • an average value, a maximum value, a minimum value, or the like of the weight of a cell on the map overlapping the edge may be used. Then, when calculating the distance from the start point to the end point, by multiplying by a value according to the weight, a route that is wide and easy to pass through is preferentially presented even if the distance is long.
  • a route with a small number of doors passing through is preferentially presented, for example, a route passing through a cell indicating a door in the route search image as shown in FIG. 7 is weighted so that the priority is lowered. In this way, when a route with the same distance is found, a route with a small number of passing doors is preferentially presented.
  • the present invention includes a computer program that executes the above-described processing. Furthermore, a computer-readable recording medium on which the program is recorded also belongs to the category of the present invention. With respect to the recording medium on which the program is recorded, the above-described processing can be performed by causing the computer to read and execute the program on the recording medium.
  • the computer-readable recording medium refers to a recording medium in which information such as data and programs is accumulated by electrical, magnetic, optical, mechanical, or chemical action and can be read from the computer.
  • Examples of such a recording medium that can be removed from the computer include a flexible disk, a magneto-optical disk, an optical disk, a magnetic tape, and a memory card.
  • examples of the recording medium fixed to the computer include a hard disk drive and a ROM.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Structural Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Navigation (AREA)

Abstract

間取図の情報に基づいて、ユーザに違和感を与えることが少ない自然な移動経路を生成する。経路生成方法は、住宅の構成要素の種別を表す情報を含む間取図のデータに基づき、平面を所定の大きさの格子状に区切って形成されるセルを生成し、当該セルの各々に構成要素の種別を表す情報を設定するステップと、セルに設定された構成要素の種別を表す情報を読み出し、構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて通過できる領域の外縁を特定し、当該通過できる領域を細線化した通路のデータを生成するステップと、通路のデータに基づいて、通路における端点又は交点を示すノードと当該ノード間を接続するエッジとを含むグラフを生成するステップと、ユーザからの入力に基づいて始点及び終点を設定し、グラフを用いて始点から終点までのパスを探索する経路探索ステップとをコンピュータが実行する。

Description

経路生成プログラム、経路生成方法及び経路生成装置
 本発明は、経路生成プログラム、経路生成方法及び経路生成装置に関する。
 例えば建築物の三次元モデルを作成し、当該三次元モデル内を移動(ウォークスルー)できるようにする技術が存在する。ユーザは、例えばマウス操作によってカメラ(視点)を移動させることができる。建築物内の移動をコンピュータ上でシミュレーションすることができ、例えば建築物の使い勝手を設計段階等で確認するために有用である。
 また、間取りを構成する区画の接続関係を表す区画リンク情報において、動線を設定するという技術も提案されている(例えば、特許文献1)。区画に接続するポータル(出入口)を参照し、更にそのポータルに接続する区画を参照するというように、区画とポータルの接続関係を交互に辿っていくことにより現在位置から目的位置に至るまでに通過する区画とポータルを探索する。そして、現在位置から目的位置に至るまでポータルの中心を直線で順次結んでいき、これによって動線を設定する。
 また、2次元画像に対して設定したパスポイントを結ぶようにしてスプライン曲線を求め、求めた曲線に沿ってウォークスルーの視点を移動させる技術も提案されている(例えば、特許文献2)。
特開2006-48278号公報 特開平10-228231号公報
 従来、ウォークスルー機能について、ユーザが操作に習熟していない場合は三次元モデル内の移動が思い通りにできないという問題があった。また、三次元モデル内の移動経路を生成する場合、壁等の本来通過できない物体と衝突すると不自然なのはもちろんのこと、一方に広い空間があるにもかかわらず他方の壁等の至近を通過するようなときもユーザに違和感を与えることがある。
 本発明は、上記のような問題に鑑みてなされたものであり、間取図の情報に基づいて、ユーザに違和感を与えることが少ない自然な移動経路を生成することを目的とする。
 本発明に係る経路生成方法は、住宅の構成要素の種別を表す情報を含む間取図のデータに基づき、平面を所定の大きさの格子状に区切って形成されるセルを生成し、当該セルの各々に構成要素の種別を表す情報を設定するセル分割ステップと、セルに設定された構成要素の種別を表す情報を読み出し、構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて通過できる領域の外縁を特定し、当該通過できる領域を細線化した通路のデータを生成する細線化ステップと、細線化ステップにおいて生成した通路のデータに基づいて、通路における端点又は交点を示すノードと、当該ノード間を接続するエッジとを含むグラフを生成するグラフ生成ステップと、ユーザからの入力に基づいて始点及び終点を設定し、グラフ生成ステップにおいて生成されたグラフを用いて、始点から終点までのパスを探索する経路探索ステップとをコンピュータが実行する。
 間取図において通過できる領域を細線化した通路のデータを生成すれば、例えば壁等のような周囲の物体から適度に距離をとった通路のデータを生成することができるようになる。すなわち、間取図の情報に基づいて、ユーザに違和感を与えることが少ない自然な経路を生成することができるようになる。
 また、経路探索ステップにおいて得られたパスに基づいて、当該パスを曲線に変換して移動経路を生成する平滑化ステップと、平滑化ステップにおいて生成された移動経路について、当該移動経路が通過するセルに設定された構成要素の種別を表す情報を読み出し、当該構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて、移動経路と通過できない構成要素との衝突の有無を判断する衝突判定ステップと、衝突判定ステップにおいて、移動経路と通過できない構成要素との衝突があると判断された場合、移動経路上の点における曲率を変更する曲線修正ステップとをさらにコンピュータに実行させるようにしてもよい。このようにすれば、通路のデータを滑らかな曲線に変換した移動経路を生成することができる。また、間取図のデータに基づいて生成したセルを用いて移動経路を修正するため、より自然な移動経路となる。
 また、間取図のデータは、種別が扉又は階段である構成要素を含み、平滑化ステップにおいて、構成要素の種別が扉又は階段であるセルに対応する位置に存在するノードを少なくとも頂点として、パスを近似する折れ線を生成し、当該折れ線の頂点に基づいて移動経路を生成するようにしてもよい。このようにすれば、間取図における部屋等の境界である扉や階段の通過点は固定して、室内の空間を移動するためのパスについては近似した折れ線に変換することができるようになる。よって、移動のポイントを固定しつつ、単純化した滑らかな移動経路を生成することができる。
 また、経路探索ステップにおいて、ユーザからの入力に基づいて経由点をさらに設定し、得られた始点から終点までの第1のパスがいずれも経由点を通過しない場合、経由点から第1のパスに含まれるノードまでの第2のパスをさらに探索し、第1のパスと第2のパスとを連結して始点から終点までのパスを生成するようにしてもよい。このようにすれば、行き止まりになった部屋を含む様々な地点を経由する移動経路が生成できる。
 また、間取図のデータが示す建築物の三次元モデルを描画し、当該三次元モデルにおいて視点を移動経路に沿って移動させるとともに、所定距離先の移動経路上に視線の先を向ける表示ステップをさらにコンピュータに実行させるようにしてもよい。このようにすれば、自然なウォークスルーを表現することができる。
 また、経路探索ステップにおいて、所定の距離以下でループするノード列が存在する場合、当該ノード列を1つの仮想ノードに置換して経路の探索を行うようにしてもよい。このようにすれば、実質的に差異のない複数のパスが探索されるのを抑制できる。
 また、間取図のデータは、構成要素として当該構成要素上を通過できない家具のデータを含むようにしてもよい。このようにすれば、例えば生活をイメージして配置された家具を避けるようにパスや移動経路を生成することができる。
 なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。なお、プログラムを保持する記録媒体を提供するようにしてもよい。
 間取図に基づいて、より自然な移動経路を生成することができるようになる。
経路生成装置の一例を示す機能ブロック図である。 コンピュータの一例を示す装置構成図である。 経路生成処理の一例を示す処理フロー図である。 間取図の表示例を示す図である。 間取図のデータの一例を示す表である。 セルに分割された間取図を説明するため図である。 セルに保持される属性情報の一例を示す図である。 細線化処理の一例を示す処理フローである。 セルの重みづけを説明するための図である。 処理対象のセルと、その周囲の8近傍のセルを説明するための図である。 通過できる領域の外縁からの距離が遠いセルの抽出を説明するための図である。 細線化の具体例を説明するための図である。 細線化後の通路の一例を示す図である。 ノイズ除去後の通路の候補の一例を示す図である。 グラフ生成処理の一例を示す処理フローである。 ノードを表示した通路の一例を示す図である。 記憶部に保持されるノードのデータ構造の一例を示す表である。 記憶部に保持されるエッジのデータ構造の一例を示す表である。 経路探索処理の一例を示す処理フローである。 経路の探索を説明するための模式的なグラフの一例を示す図である。 ノードのデータの具体例を示す表である。 エッジのデータの具体例を示す表である。 パスのデータの具体例を示す表である。 間取図上に表示した経路の一例を示す図である。 平滑化処理の一例を示す処理フローである。 折れ線によるパスの近似を説明するための図である。 間取図上に表示した経路を近似する折れ線の一例を示す図である。 ベジェ曲線の生成を説明するための図である。 間取図上に表示した曲線の経路の一例を示す図である。 曲線の経路が通過できないセルと衝突する例を示す図である。 ベジェ曲線上の点における曲率の変更を説明するための図である。 間取図上に表示した曲線の経路の修正例を示す図である。 エルミート曲線の生成を説明するための図である。 エルミート曲線上の点における曲率の変更を説明するための図である。 ノイズの除去の変形例を説明するための図である。 狭い範囲に複数のノードが存在する場合の処理を説明するための図である。 フロアをまたがる経路の1階部分の例を示す図である。 フロアをまたがる経路の2階部分の例を示す図である。 経由地点を通過する経路の探索を説明するための図である。 経由地点の部屋から探索して見つかる経路の例を示す図である。 経由地点の部屋から探索して見つかる他の経路の例を示す図である。 経由地点を通過する経路の一例を示す図である。 実施形態に係る経路の一例を示す図である。 曲線を滑らかにする変形例を説明するための図である。
 以下、図面を参照して本発明を実施するための形態について説明する。なお、実施形態の構成は例示であり、本発明は実施形態に示す構成に限定されない。
<機能構成>
 図1は、実施形態に係る経路生成装置1の一例を示す機能ブロック図である。本実施形態に係る経路生成装置1は、記憶部101と、間取図読出部102と、セル分割部103と、細線化部104と、グラフ生成部105と、経路探索部106と、平滑化部107と、ウォークスルー表示部108とを有する。記憶部101は、所定のソフトウェアで作成した間取図のデータや、本実施形態に係る処理で最終的に又は中間的に生成される移動経路等のデータを記憶する。間取図読出部102は、所定のソフトウェアで予め作成された間取図のデータを読み出す。なお、本実施形態に係る間取図のデータは、壁や窓、キッチン等の住宅設備、家具等の障害物といった通過できない構成要素と、室内の空間や廊下、扉や階段、庭等の通過できる構成要素とを平面上に配置する電子データであるものとする。セル分割部103は、読み出された間取図のデータに基づいて、所定の属性情報を保持する格子状のセルを生成する。細線化部104は、例えばHilditchのアルゴリズム等を用いて、通過可能な領域の輪郭からの距離に基づいて、通過可能な領域を細線化した通路のデータを生成する。グラフ生成部105は、通路のデータを、端点や分岐点であるノード(頂点)と、ノード間を接続するエッジ(枝)によって表されるグラフに変換する。経路探索部106は、例えばユーザから指定を受けた始点、終点、中継点の座標データを用いて、2頂点結ぶエッジ列又はノード列で表されるパス(道)を探索する。平滑化部107は、パスを平滑化し、移動経路を生成する。また、ウォークスルー表示部108は、三次元モデル内を生成した移動経路に沿って移動する様子をモニタ等に表示させる。
<装置構成>
 なお、経路生成装置1は、図2に示すようなコンピュータである。図2は、コンピュータの一例を示す装置構成図である。例えば、コンピュータは、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラムを実行することにより本実施の形態で説明する処理を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAM(Random Access Memory)やROM(Read Only Memory)等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等である。主記憶装置1002、補助記憶装置1003は、図1に示した記憶部101として働く。通信IF1004は、他のコンピュータ装置との間でデータを送受信する。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。入出力IF1005は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、カメラ等の画像入力装置、キーボード、マウス、ディスプレイ、GPS受信機等のセンサー類、又はタッチパネル等である。ドライブ装置1006は、フレキシブルディスク、光学ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素は複数設けられていてもよいし、一部の構成要素(例えば、ドライブ装置1006)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。そして、ドライブ装置で読み取り可能な可搬性の記憶媒体や、USBメモリのような補助記憶装置、ネットワークIFなどを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、上記のようなコンピュータを経路生成装置1として働かせる。本実施形態では1つのコンピュータがスタンドアロンで処理を行うものとして説明するが、一部又は全部の機能は、インターネットやイントラネット等のネットワークを介して接続された他のコンピュータによって提供され、ユーザの端末へ処理結果が送信される構成にしてもよい。
<経路生成処理>
 図3は、経路生成処理の一例を示す処理フロー図である。経路生成装置1の間取図読出部102は、ユーザの操作に応じて、記憶部101に格納されている間取図のデータを読み出す(図3:S1)。
 図4は、平面上に住宅の構成要素を並べた間取図の表示例を示す図である。また、図5は、記憶部に格納される間取図のデータの一例を示す表である。間取図のデータは、壁や窓、扉といった領域の境界を示す構成要素、部屋や廊下、階段、庭といった領域を示す構成要素、住宅設備や家具を示す構成要素を含む。また、各構成要素は、位置、大きさ、構成要素が示すものを表す属性(構成要素が表すものの種別)、構成要素を一意に特定するための識別情報等の情報を含むものとする。
 図4の間取図は、住宅の設計データを平面的に表現したものである。間取図のデータは、図5に示した大きさの属性に対応付けて幅や奥行きだけでなく高さの情報も保持しているものとする。そして、間取図に係る三次元モデルを生成するためにも用いられる。なお、構成要素は、壁や窓、キッチン等の住宅設備、家具等の障害物といった三次元モデル内において通過できない構成要素と、室内の空間や廊下、扉や階段、庭等の通過できる構成要素とに分けられる。通過の可否は構成要素が表すものの種別に応じて決まるが、図5に示すように、間取図のデータは、当該構成要素上の通過の可否を示す情報を記憶するようにしてもよい。
 S1の後、経路生成装置1のセル分割部103は、平面を所定の大きさの格子状に分割して生成した複数のセルに、図4に示した間取図の構成要素の属性情報を記憶させる(図3:S2)。本実施形態に係るセルは、平面を例えば縦横に所定間隔で分割した領域の各々をいうものとする。なお、セルの1辺の大きさは、間取図に表された対象の空間の大きさに応じて決めることができる。本実施形態では後の処理において人が通過できる空間を探索するところ、40~50cm程度の幅の移動経路が抽出できればよいため、例えば10cm四方のセルに分割するものとする。
 図6は、図4に示した間取図の一部を10cm×10cmのセルに分割した状態を示す画像の一例である。また、図7は、セルに分割した間取図の、各々のセルに保持される属性情報の一例を示す図である。本実施形態では、属性情報として、構成要素の種別を示す情報を保持させるものとする。なお、本実施形態におけるセルの属性情報は、例えば、各セルをラスタデータの1画素に対応付け、各画素の色の成分を示す24ビットのカラー値(RGB(Red, Green, Blue)成分)として保持させるものとする。また、間取図の構成要素の種別に応じた値は数値で表すものとし、当該値をセルに保持させる処理は、1画素が10cm×10cmとなる縮尺で間取図の構成要素をラスタデータとして描画する際に、当該値を例えばR成分に割り当てることで行うことができる。
 図7の例では、間取図における壁に「0」、家具等の障害物に「2」、扉等の建具に「5」、壁の開口部に「6」、階段に「7」、部屋の内部に「8」、家の外の空間に「9」を割り当てている。なお、0及び2は人が通行できない部分を示し、5、6、7、8及び9は、人が通行できる部分を示すことが予め定められているものとする。
 また、本実施形態では、各画素のGB成分を用いて、人が通過できる部分について同一の部屋や建具を識別するための構成要素の識別番号を保持するものとする。構成要素の識別番号は、図5に示した識別情報にもとづいて、例えば連番等を付す。また、GB成分は、例えばB成分の値が256になると2桁目のG成分に桁上がりするものとし、GB成分全体で1つの識別情報を表す。すなわち、G成分の値は、識別番号を除数「256」で割ったときの商となり、B成分の値は、識別情報を256で割ったときの剰余となる。したがって、例えば識別番号が2548(=256×9(G)+244(B))の部屋を示すセルは、RGBの各成分が(8,9,244)の色で表される。なお、本実施形態では、セルに分割して属性情報をカラー値として保持させた画像を、経路探索用画像と呼ぶものとする。
 S2の後、経路生成装置1の細線化部104は、細線化処理を行う(S3)。細線化部104は、通過できるセルの集合である通過可能領域を細線化する。図8は、細線化処理の一例を示す処理フローである。まず、細線化部104は、図7に示したR成分に基づいて、各セルを通過できるセルと通過できないセルとに分ける(図8:S11)。具体的には、図7に示したR成分が2以下のセルは通過不可能なセルであるため、例えば経路探索用画像に対応するセルを有するマップを用意し、当該マップの通過不可能なセルをすべて「0」に変換する。また、図7に示したR成分が5以上のセルは通過可能なセルであるため、例えばすべて初期値「-1」に変換する。
 次に、細線化部104は、通過できない部分(すなわち、通過可能な領域の外縁)からの距離に応じて、セルに重みづけをする(S12)。なお、通過できないセルからの距離を示す基準値をMaxWeightと呼ぶものとし、初期値を「0」とする。本ステップでは、S11において0と-1とを設定したマップを走査し、値が-1のセル(通過可能のセル)のうち、上下左右(4近傍とも呼ぶ)のセルがMaxWeightと同一であるものの値をMaxWeight+1に更新する。すべてのセルについて走査した後、MaxWeightを+1(インクリメント)し、値が-1のセルがなくなるまで、-1のセルを対象として走査を繰り返す。
 図9は、S12の処理によって更新されるセルの値の具体例を示す。まず、上段(1)に示すように、図7に示したR成分の値に基づいて、通過不可能なセルを示す0又は通過可能なセルを示す-1を設定する。また、2段目(2)に網掛けしたセルで示すように、-1のセルのうちMaxWeight「0」のセルに隣接するセルの値をMaxWeight+1である「1」に変換する。そして、MaxWeightの値をMaxWeight+1に更新し、3段目(3)に網掛けしたセルで示すように、-1のセルのうちMaxWeight「1」のセルに隣接するセルの値をMaxWeight+1である「2」に変換する。その後、MaxWeightの値をMaxWeight+1に更新し、4段目(4)に網掛けしたセルで示すように、-1のセルのうちMaxWeight「2」のセルに隣接するセルの値をMaxWeight+1である「3」に変換する。以上のような処理を繰り返し、通過できる領域の外縁からの距離に基づいて通過できる領域内のセルに重みづけをする。
 次に、細線化部104は、周囲のセルと比較して通過可能な領域の外縁からの距離が遠いセルを抽出する(S13)。本ステップでは、初期値として通過不可能なセルに0、通過可能なセルに-1を格納した、S12とは異なるマップ(抽出マップと呼ぶ)に処理結果を記録するものとする。まず、抽出マップ上の値が-1のセルの各々について、S12で重みづけしたマップ上の周囲の8つのセル(8近傍)の値を用いて所定の値を求める。
 図10は、処理対象のセルと、その周囲の8近傍のセルを説明するための図である。図10は、3×3の9セルが示されており、左の列の上から下へA、B、C、中央の列の上から下へD、E、F、右の列の上から下へG、H、Iの符号が付されている。中央のセルEが処理対象のセルであるとすると、本ステップでは、S12で重みづけしたマップ上の値を用いて、次のsum1~sum4の値を求める。
sum1=(D-A)+(D-G)+(E-B)+(E-H)+(F-C)+(F-I)sum2=(B-A)+(B-C)+(E-D)+(E-F)+(H-G)+(H-I)sum3=(E-A)+(E-B)+(E-D)+(E-F)+(E-H)+(E-I)sum4=(E-B)+(E-C)+(E-F)+(E-D)+(E-G)+(E-H)その後、本ステップでは、sum1~sum4の最大値が0より大きければ、最大値を抽出マップ上の処理対象のセルEに保持させる。一方、sum1~sum4の最大値が0以下であれば、0を抽出マップ上のセルEに保持させる。以上のような処理により、S12で設定された重みの値が周囲のセルの中で大きいセルを残し、周囲のセルの値を0にすることができる。図11は、図4に示した間取図全体について、S13の処理を施した図の模式的な例を示す。図11では、周囲のセルよりも比較的重みの値の大きなセルが、白色になって抽出されている。
 また、細線化部104は、抽出されたセルが形成する線の幅を、所定のルールに基づいて1画素に細線化する(S14)。なお、細線化の処理にはHilditchのアルゴリズム等、既存の様々な手法を利用することができる。例えば、本ステップでは、S13の処理後の抽出マップを用いて、各セルを走査する。まず、処理対象のセルの8近傍のセルのうち0より大きい値が保持されているセルを計数する。すなわち、図10に示したセルのうちEが処理対象であるとすると、A~D及びF~Iのうち、0より大きい値のセルの数を合計する。
 また、以下のパターン(1)~(12)のうち当てはまるものの数を計数し、処理対象のセルに対応付けて合計値を保持させる。パターン(1)~(12)は、処理対象のセルの8近傍のセルのうち、隣接する3つのセルの値によって表される。なお、以下のパターン(1)~(12)についても、図10に示した9セルの符号を用いて説明する。
(1)D=1以上の値、G=0、H=1以上の値、A~C、F及びIの値は問わない
(2)D=1以上の値、G=1以上の値、H=0、A~C、F及びIの値は問わない
(3)D=1以上の値、G=0、H=0、A~C、F及びIの値は問わない
(4)F=1以上の値、H=1以上の値、I=0、A~D及びGの値は問わない
(5)F=0、H=1以上の値、I=1以上の値、A~D及びGの値は問わない
(6)F=0、H=1以上の値、I=0、A~D及びGの値は問わない
(7)B=1以上の値、C=0、F=1以上の値、A、D及びG~Iの値は問わない
(8)B=0、C=1以上の値、F=1以上の値、A、D及びG~Iの値は問わない
(9)B=0、C=0、F=1以上の値、A、D及びG~Iの値は問わない
(10)A=0、B=1以上の値、D=1以上の値、C、F~Iの値は問わない
(11)A=1以上の値、B=1以上の値、D=0、C、F~Iの値は問わない
(12)A=0、B=1以上の値、D=0、C、F~Iの値は問わない
 そして、S14の最初に求めた合計値が3以上であり、且つ上記パターン(1)~(12)に当てはまる数が1の場合、処理対象のセルの値を0にする。以上のような処理をS13で抽出されたセルの各々に対して行うことにより、抽出マップ上の通過可能な領域の幅が1画素になる。本実施形態では、幅が1画素になった領域を、間取図におけるユーザの通路の候補として用いる。図12は、図11に示した白色の領域をS14の処理によって細線化する前後の例を示す部分的な拡大図である。なお、S14の処理後の抽出マップにおけるセルが保持している値は、1の場合、通路の候補の端点を示し、2の場合、通路の候補の途中の点を示し、3又は4の場合、3方向又は4方向に分岐している点を示している。また、図13は、図11に示した抽出領域を、S14の処理で細線化した例を示す図である。S14の処理後の抽出マップを、細線化マップと呼ぶものとする。細線化マップは、通路の候補に含まれるセルの各々に、図12に示したような値を保持している。
 その後、細線化部104は、細線化マップの通路の候補からノイズを取り除く処理を行う(S15)。図13にも示したように、S14までの処理では、ヒゲの様な多数の短い線が通路の候補に表れる。本ステップでは、これらの短い行き止まりの通路候補を削除する。
 具体的には、まず、細線化マップに含まれる値が1のセルを抽出し、すべて値を0に置き換える。続いて細線化マップに含まれる値が2のセルを抽出し、そのセルの8近傍で1以上の値を持つセルが1つなら、このセルの値を1に変える(新たな端点とする)。また、細線化マップにおける値が2のセルの8近傍に、値が0以外のセルが2つ以上存在する場合であって、8近傍の0以外の値のセル同士が隣接していないとき、当該セルの値は2のままとする。また、細線化マップにおける値が2のセルの8近傍に0以外の値のセルが2つ以上存在する場合であって、8近傍の0以外の値のセル同士がすべて隣接しているとき、当該セルの値を0に置き換える。そして、値が2のセルをすべて処理した後、上述した値が1のセルをすべて0に置き換える処理に戻り、値が1のセルがなくなるまで処理を繰り返す。
 また、Y字や十字状の孤立した領域が存在する場合、1画素のセルが残るため、最後に8近傍すべてが0のセルを抽出し、値を0に置き換える。
 以上のような処理により、図14に示すような通路が生成される。なお、細線化処理によって生成される通路を示す図14の画像を経路候補マップと呼ぶものとする。その後、図3の処理に戻る。
 次に、経路生成装置1のグラフ生成部105は、グラフ生成処理を行う(図3:S4)。図15は、グラフ生成処理の一例を示す処理フローである。まず、グラフ生成部105は、細線化処理において生成された経路候補マップに基づいてノードを抽出する(図15:S21)。本ステップでは、図14に示した経路候補マップと、図7に一部を示した属性情報との対応する画素を順に読み出し、建具(扉)、開口部、階段と重なるセル、及び値が3又は4のセル(3つ又は4つに分岐したセル)をノード(頂点)として抽出する。図16は、S21において抽出されたノードを円で表示した例を示す。なお、ノードの位置は、例えばセルの中心に相当する間取図上の座標として表すことができる。
 そして、グラフ生成部105は、エッジの探索を行う(S22)。本ステップでは、例えばグラフにおけるノードの1つを始点として、隣接するセルのうち経路候補マップにおける値が2のセルの方向へ探索を開始する。また、探索先で他のノードが見つかった場合は、ノード及びパスの識別情報を用いて相互の接続関係を記憶させる。なお、エッジ、間取図における座標の列として表すようにしてもよい。また、例えば探索済みのセルにはフラグを設定し、逆方向からの探索を防止するようにしてもよい。
 図17は、記憶部に保持されるノードのデータ構造の一例を示す表である。ノードのデータは、インデックス番号、座標値(X,Y)、属性種別(部屋の内部、建具、開口部、又は階段)、ノードが属する構成要素の識別番号、接続するエッジの数、及び接続するエッジのインデックス番号の各値を有する。なお、属性種別の値は、上述した経路探索用画像のR成分に基づいて決まる。また、ノードが属する構成要素の識別番号は、上述した経路探索用画像のGB成分に基づいて決まる。図18は、記憶部に保持されるエッジのデータ構造の一例を示す表である。エッジのデータは、インデックス番号、両端のノードのインデックス番号、エッジが属する構成要素の識別番号、ノード間の頂点数、ノード間の頂点(座標)リストの各値を有する。なお、エッジが属する構成要素の識別番号も、経路探索用画像のGB成分に基づいて決まる。探索により得られたすべてのノード及びエッジについて、図17及び図18に示したデータを記憶させ、グラフ生成処理を終了する。
 その後、経路生成処理装置1の経路探索部106は、経路探索処理を行う(図3:S5)。図19は、経路探索処理の一例を示す処理フローである。経路探索部106は、例えばユーザから移動の出発地点及び到着地点の入力を受け、入力された各点と同一の室内におけるエッジ上の近傍の点を始点及び終点とする(図19:S31)。なお、近傍点は、エッジの端点であるノードであってもよい。また、同一の室内であるか否かは、S2においてGB成分に保持させた構成要素の識別番号に基づいて判断することができる。近傍点の探索は、例えば図18に示したエッジのデータに含まれるノード間の頂点リストを用いて線形に最近傍探索を行うようにしてもよいし、既存の近似最近傍探索手法を用いるようにしてもよい。
 また、経路探索部106は、始点から終点へエッジを接続して形成される経路であるパスを探索する(S32)。本ステップでは、例えば線形に経路を探索する。図20は、経路の探索を説明するための模式的なグラフの一例を示す図である。図20のグラフは、ノードN1~ノードN14を含む。また、ノードN1~ノードN14は、エッジa~エッジpによって接続されている。具体的には、N1とN2とをaが接続し、N1とN3とをbが接続し、N2とN5とをcが接続し、N3とN4とをdが接続し、N4とN5とをeが接続し、N3とN6とをfが接続し、N4とN7とをgが接続し、N6とN7とをhが接続し、N7とN8とをiが接続し、N6とN9とをjが接続し、N7とN10とをkが接続し、N8とN11とをlが接続し、N9とN12とをmが接続し、N10とN13とをnが接続し、N11とN14とをoが接続し、N12とN13とをpが接続している。また、ユーザは、図20に示すエッジaの近傍の星印の箇所を出発地点として指定し、エッジoの近傍の三角印の箇所を到着地点として指定したものとする。
 図21は、図20に含まれるノードのデータの具体例を示す表である。図21の例は、ノードのインデックスがN1からN14までのノードについて、座標(X,Y)、当該ノードが示す間取図内の構成要素を表す属性種別、当該ノードが示す構成要素の識別情報、当該ノードに接続されたエッジの数、当該ノードに接続されたエッジのリストを保持している。
 図22は、図20に含まれるエッジのデータの具体例を示す表である。図22の例は、エッジのインデックスがa~pまでのエッジについて、両端のノードのインデックス、当該エッジが示す間取図内の構成要素を表す属性種別、当該エッジが経由する頂点の数、当該エッジが経由する頂点のリストを保持している。
 図19のS31では、星印が示す出発地点と同一の識別情報の構成要素に存在し、且つ最も近いパスa上の点が、始点として特定されたものとする。また、三角印が示す到着地点と同一の識別情報の構成要素に存在し、且つ最も近いパスo上の点が終点として特定されたものとする。
 図19のS32では、例えば深さ優先探索を行う。また、同じノードは一度しか通過しないものとし、既に通過したノードに戻った場合や終点でない端点のノードに到達した場合は、当該パスの探索を打ち切り、直近の分岐点から未探索の枝を探索する。また、終点に到達した場合は、見つかったパスに含まれるエッジのリストを記憶部101に記憶させ、未探索の枝が存在する場合はそこから他のパスの探索を継続する。
 図23は、記憶部101に記憶されるパスのデータの具体例を示す表である。図23の表は、パスの識別情報と、経由するエッジの数と、経由するエッジのリストとを含む。なお、各エッジについて、インデックスの数字の小さいノードからインデックスの数字の大きいノードへ向かう方向を順方向、その逆を逆方向と呼ぶものとする。経由するエッジのリストには、各エッジについて移動する方向が順方向を示す「順」又は逆方向を示す「逆」と登録されている。図23からもわかる通り、始点からは順方向及び逆方向の双方に探索を行うものとする。
 以上のような処理により、始点から終点に到達するすべてのパスを抽出し、図3の処理へ戻る。なお、S32においては、ユーザがS31で入力した出発地点からその近傍点である始点へのエッジ、及び終点からユーザが入力した到着地点へのエッジを生成し、パスの前後に追加するようにしてもよい。経路探索処理によって、例えば図24に太線で示すような、座標列を連結して表される経路が抽出される。なお、図24には、ドットの集合で、図14に示した通路の候補が示されている。また、本ステップでは複数の経路が抽出される。
 次に、経路生成装置1の平滑化部107は、平滑化処理を行う(図3:S6)。図25は、平滑化処理の一例を示す処理フローである。なお、平滑化部107は、経路探索処理によって抽出されたパスのすべてについて平滑化処理を行うようにしてもよいし、始点から終点までの距離が短いパスや、ユーザによって選択されたパスについて平滑化処理を行うようにしてもよい。
 平滑化部107は、まず、パスの一部を直線に置き換える(図25:S41)。本ステップでは、パス(エッジ)に含まれる頂点列を、始点、終点、建具(扉)、開口部、及び階段で区切り、各区間を直線で結ぶ。なお、建具(扉)や階段で区切るのは、後にウォークスルーの表示を行う際、扉の開閉や階段の昇降において視線の方向を変える特別な処理を行うためである。図24に示したパスは、丸印で示した始点aから、三角印で示した扉1、扉2を介して星印で示した終点bまで、4つの部分に区切られている。例えば、扉2と終点bとの間のエッジに含まれる頂点列を直線に置き換えると、図26の上段(1)のようになる。図26の例では、置き換えた直線を破線で示している。
 また、平滑化部107は、もとのパスと置き換えた直線との乖離度が所定の閾値を超えているか判断する(S42)。なお、所定の乖離度として、置換後の直線からもとのパス上の最も遠い点までの距離の許容範囲を表す閾値Lが、予め設定されているものとする。例えば、閾値Lは10cmとする。本ステップでは、もとのパスを構成するエッジに含まれる頂点列の各々から、置換後の直線への垂線を引き、その距離lの最大値lmaxを求める。そして、lmaxが所定の閾値L以上であれば(S42:YES)、S41の処理に戻り、図26の2段目(2)に破線で示すように、lが最大になる頂点でもとのパスをさらに分割し、2つの直線に置き換える。そして、S42において、各直線についてもとのパスと置換後の直線との乖離度が所定の閾値を超えているか判断する。さらに所定の閾値を超えている場合は、図26の3段目(3)に示すように、直線をさらに分割する。一方、置換後の直線ともとのパスとの乖離度が所定の閾値以内である場合(S42:NO)、分割した他の直線について未処理のものがあるか判断し(S43)、未処理の直線がある場合(S43:YES)、S41及びS42の処理を繰り返す。このようにして、図26の4段目(4)に破線で示すように、もとのパスを近似した折れ線が得られる。例えば図24に示した経路は、図27に示すような、大まかな折れ線に変換される。なお、閾値Lの大きさにより、近似の精度を変更することができる。
 分割したすべての直線を処理した場合(S43:NO)、平滑化部107は、もとのパスを近似した折れ線を、曲線に変換する(S44)。本ステップでは、上述した処理で生成した折れ線を、ベジェ(Bezier)曲線や、エルミート(Hermitian)曲線等の曲線に変換する。
 図28は、2点p,qを通過するベジェ曲線の生成を説明するための図である。ここで、3次のベジェ曲線は4つの制御点を有し、両端の制御点を通過する。本実施形態では、折れ線の頂点間に2つの制御点を追加する。なお、2点p,qは、折れ線に含まれる頂点列o,p,q,rの一部であるものとする。
 まず、図28の上段(1)に示すように、点oから点pに向かうベクトルop、点pから点qに向かうベクトルpqをそれぞれ正規化した単位ベクトルを用いて、これらの合成ベクトルvを求める。同様に、ベクトルrq、ベクトルqpを正規化した単位ベクトルから、合成ベクトルwを求める。そして、ベクトルv、ベクトルwを、点p-点q間の曲線上の点p及び点qにおける接線方向とする。
 次に、点p-点q間の長さlを求める。そして、点p、点qからそれぞれベクトルv、ベクトルw方向に長さlをf倍(0.0<f<0.5)した位置に、新たな制御点m、制御点nを生成する。図28の2段目(2)に、制御点m、制御点nの一例を示す。また、制御点m、制御点nは、以下の式で求められる。後述する通り、fの値の大きさを変更することにより、点p、点qにおける曲率、ひいては曲線の形状を変更することができる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 また、点pm間、点mn間、点nq間を、それぞれratio:(1.0-ratio)に内分する点s、点t、点uを生成する。図28の3段目(3)に、点s、点t、点uの一例を示す。また、点s、点t、点uは、以下の式で求められる。
点s=p+(m-p)×ratio
点t=m+(n-m)×ratio
点u=n+(q-n)×ratio
 さらに、点st間、点tu間をそれぞれratio:(1.0-ratio)に内分する点v、点wを生成する。図28の4段目(4)に、点v、点wの一例を示す。また、点v、点wは、以下の式で求められる。
点v=s+(t-s)×ratio
点w=t+(u-w)×ratio
 そして、点vw間をratio:(1.0-ratio)に内分する点xを生成する。図28の5段目(5)に、点xの一例を示す。また、点xは、以下の式で求められる。
点x=v+(w-v)×ratio
 ここで、ratioを0.0から1.0まで連続的に変化させたときにできる点xの軌跡は、図28の6段目(6)のようになる。このようにして、間取図上の経路を、滑らかに変化する曲線に変換する。例えば図27に示した折れ線の経路は、図29に示すような曲線に変換される。移動経路を平面上において曲線にすることで、経路生成装置1が生成する経路は、ウォークスルーの表示を行った場合に自然な移動を表現することができるようになる。
 その後、平滑化部107は、生成した曲線の経路が、経路探索用画像における通過不可能なセルと衝突していないか判断する(図25:S45)。本ステップでは、例えば、曲線で表される移動候補の経路について例えば10cm間隔等、所定の間隔で曲線上の座標を求める。そして、求めた座標が経路探索用画像における通過できないセルに含まれる場合、曲線の経路は通過できないセルと衝突しているものと判断する。図29の例では、衝突していないと判断され(S45:NO)、図3の処理に戻る。
 一方、生成した曲線の経路が通過不可能なセルを通過している場合(S45:YES)、平滑化部107は生成した曲線の曲率を調整する(S46)。図30は、曲線の経路が通過できないセルと衝突する例を示す図である。図30は、住宅の外周を通過して、玄関とキッチンとの間を移動する経路の一例を示している。また、図30の例では、破線の楕円で示すように、住宅の前の駐輪場や住宅横の駐車場を区切る柵、及び住宅の裏の壁と、曲線の経路とが衝突すると判断されたものとする。ここで、S45で衝突すると判断された場合、生成された曲線の経路を用いてウォークスルーの表示を行うと、本来通過することができない何らかの構成要素を通り抜けて移動することになる。よって、本実施形態では、曲線の経路が通過不可能なセルを避けるように、経路上の点における曲率を変更する。本ステップでは、例えば、制御点m及び制御点nの算出に用いた数式にパラメータを追加し、生成する曲線を修正する。
 具体的には、ベジェ曲線の場合、上述した制御点m、制御点nの算出式において、fの値を小さくする。このようにすれば、点pq間の曲線はふくらみが小さくなり、直線に近い形状となる。例えば下記のように、制御点m、制御点nの算出式において、fに所定の係数adj(0.0≦adj≦1.0)を乗じる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 図31は、制御点の算出時に係数adjを乗じた場合の、最終的に生成される曲線を説明するための図である。図31の上段(1)は、上述した制御点m及び制御点nの算出式によって生成される曲線を示している。また、図31の下段(2)は、fに係数adjを乗じた場合に生成される曲線を示している。adjは0以上、1.0以下の値であり、図31の例では0.75とする。このようにすれば、点pから制御点mまでの距離、及び点qから制御点nまでの距離は係数adj倍され、制御点m及び制御点nの位置は、それぞれ点p及び点qに近づく。これに伴い、点s~点xの位置は線分pqに近づくため、点xの軌跡として描かれる曲線は、直線に近づくようになる。
 S46の後、S45に戻り、処理を繰り返す。具体的には、S45において、曲率を変更した後の曲線が、通過できないセルと衝突するか判断する。曲率を変更した後の曲線も、通過できないセルと衝突すると判断された場合(S45:YES)、平滑化部107は、S46において、さらに曲線の曲率を調整する。例えば、制御点m及び制御点nの算出式において、上述した係数adjを2回乗じるようにしてもよいし、係数adjの値をさらに小さくするようにしてもよい。このようにして、通過できないセルと衝突すると判断された曲線を、さらに直線に近づけるようにする。なお、経路が、間取図における極端に狭い隙間を通過するような場合等は、曲線の曲率を調整しても衝突を回避できない可能性がある。したがって、S45及びS46の処理のループは所定回数繰り返した場合に終了するようにしてもよい。図32は、図30に於いて通過できないセルと衝突する曲線経路の3か所に対して、それぞれ曲率を調整した結果を示している。
 その後、経路生成装置1のウォークスルー表示部108は、平滑化された移動経路に基づいて、間取図に係る三次元モデル内を移動するウォークスルー表示を行う(図3:S7)。以上のような処理を行うことにより、本実施形態に係る経路生成装置1は、より自然な移動経路を生成することができるようになる。
<変形例>
 本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において変更することができる。例えば、実施の形態に示した処理フローは、結果が変わらない限りにおいて処理の順序を変更してもよい。また、処理の一部を他のコンピュータが実行するようにしてもよく、他のコンピュータは図示していないネットワークを介して接続されていてもよい。また、上記の実施形態及び下記の変形例は、可能な限り組み合わせて実施することができる。
 実施形態に係る移動経路は平滑化処理を行い曲線に変換することでより自然な移動を表現することができるようになるが、例えばS41で生成する折れ線やS5の経路探索処理で得られるパスに基づいてウォークスルーの表示を行ってもよい。このような経路であっても、通過できる領域の外縁からの距離に応じて生成されたものであり、ユーザに違和感を与えることが少ない自然な移動経路といえる。
<曲線の変形例>
 S44において変換する曲線は、ベジェ曲線には限定されない。例えば、エルミート曲線等であってもよい。図33は、エルミート曲線を用いて曲線化する手順を説明するための図である。図33も、ベジェ曲線の例と同様に、点列opqrのうち、点pq間を曲線化するものとする。
 図33の上段(1)に示すように、点oから点pに向かうベクトルopを正規化した単位ベクトルと、点pから点qに向かうベクトルpqを正規化した単位ベクトルとを合成し、合成ベクトルvを求める。同様に、点pから点qに向かうベクトルpqを正規化した単位ベクトルと、点qから点rに向かうベクトルqrを正規化した単位ベクトルとを合成し、合成ベクトルwを求める。この合成ベクトルv及び合成ベクトルwが、それぞれ点pq間の曲線の点p及び点qにおける接線方向となる。
 また、図33の2段目(2)に示すように、点pq間の長さlを求め、下記の数式に基づいてベクトルV及びベクトルWを算出する。なお、係数fは曲線の形状を調整するためのパラメータであり、0.0<f<2.0であるものとする。
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
 そして、点pq間の曲線上の点x、及び点xにおける接線方向を示すベクトルnは、次のようになる。図33の3段目(3)に示すように、エルミート曲線の場合も、ratioを0.0から1.0まで変化させたときの点xの軌跡を、点pq間の曲線とする。
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 また、S46における曲率の調整は、ベクトルV及びベクトルWの算出式において、ベジェ曲線の場合と同様に係数fの値が小さくなるようにパラメータを調整することで、曲線のふくらみを抑えることができる。例えば、図34の上段(1)に示す曲線が、通過できないセルと衝突する場合、図34の下段(2)に示すように係数adj(0.0<adj<1.0)を乗じることで、曲率調整後のベクトルV’、ベクトルW’が求める。このようにすれば、曲線のふくらみを小さくして、直線に近づけることができる。なお、2回目以降のS46の処理においては、ベジェ曲線の場合と同様に、係数adjを乗じる回数を増やしたり、係数adjの値を小さくしたりする。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
<ノイズの除去の変形例>
 図8のS15に示したノイズを除去する処理は、所定の閾値よりも短い通路候補を削除するようにしてもよい。なお、閾値は正の整数であり、予め定められているものとする。ここでは、閾値が「5」であるものとする。
 この場合、S5では、まず、上述のように細線化マップから、値が1のセルを抽出し、抽出した各セルについて、8近傍のセルの最小値より1小さい値(最小値が0なら-1)に置き換える。
 次に、細線化マップに含まれる値が2のセルを抽出し、抽出されたセルの8近傍に、値が1以上のセルが1つしかない場合、抽出されたセルの値を1に置き換える。また、細線化マップにおける値が2のセルの8近傍に、値が1以上のセルが2つ以上存在する場合であって、8近傍の1以上の値のセルの少なくともいずれかが隣接していないとき、当該セルの値は2のままとする。また、細線化マップにおける値が2のセルの8近傍に、値が1以上のセルが2つ以上存在する場合であって、8近傍の1以上の値のセルがすべて接続されているとき、当該セルの8近傍のセルの最小値より1小さい値(最小値が-1なら-2)に置き換える。
 そして、値が2のセルをすべて処理した後、上述した値が1のセルを抽出し、抽出した各セル毎にその8近傍のセルの最小値より1小さい値に置き換える処理に戻り、値が1のセルがなくなるまで処理を繰り返す。
 次に、上述の処理後の細線化マップから、正負を反転させた閾値(閾値が5であれば-5のように、閾値にマイナスを付けたもの)より値が小さいセルを抽出し、抽出されたセルの値を2に戻す。さらに、抽出されたセルの8近傍に存在し値が負のセルを抽出し、抽出されたセルの値を2に戻す。そして、正負を反転させた閾値より値が小さいセルを抽出する処理に戻り、値が負のセルが8近傍から抽出できなくなるまで繰り返す。なお、値が負のセルが8近傍から抽出できなくなった場合、最後に値を2に戻したセルは、値を1に置き換えるものとする。
 以上のような処理によれば、閾値より短い通路候補のセルには、正負を反転させた閾値から-1までのいずれかの値が入る。よって、これらのセルを抽出して値を0に置き換える事で、閾値より短い通路候補を削除することができる。
 図35は、変形例に係るノイズ除去後の経路候補マップが生成される。図14の例と比較すると、図35には所定の閾値よりも長いヒゲ状の線が残されていることがわかる。部屋の中心から部屋の隅に向かう放射状のエッジが生成されるため、ユーザが、出発地点又は到着地点として部屋の隅などを指定した場合であっても、図14の例と比較して指定された地点から近い位置に近傍点が見つかるようになる。
<ノードの集約>
 図36は、比較的狭い範囲に複数のノードが存在する場合の処理を説明するための図である。図19のS32において、経路の探索を行う際、エッジの長さの合計が所定の閾値(例えば、300cm)以下で既に通過したノードに戻るような経路があれば、その途中に通過するノード及びエッジに例えばフラグを立てて抽出する。そして、抽出されたノード及びエッジを1つの仮想的なノードに置き換えてS32の経路探索を行うようにする。例えば、図36の上段(1)に示すようなノード及びエッジの集合が抽出された場合、図36の下段(2)に示すように1つのノードに置き換える。図36の上段(1)に示すようなノード及びエッジの集合が存在する場合、AからBへ向かう複数の経路が存在するが、経路全体から見れば当該部分をどのように通過するかは些末な違いでしかないことがある。すなわち、比較的狭い範囲に、ループを形成するようなノード及びエッジの集合が存在しても、ウォークスルーの経路としては実質的な違いのないバリエーションをいたずらに増加させるおそれがある。よって、本変形例では、エッジの長さの合計が所定の閾値以下でループを形成する頂点列(ノード及びエッジの集合)を1つの仮想ノードに置き換えることにより、探索される経路の数を低減させる。なお、抽出されたノード及びエッジの集合は、同一の部屋又は空間に存在するという条件を満たす場合にのみ仮想ノードに置き換えるようにしてもよい。例えば経路探索用画像のGB成分に保持させた構成要素の識別情報を用いることで、各ノード又はエッジに含まれる頂点列が同一の部屋又は空間に存在するか否か判断することができる。
<フロアをまたがる経路>
 上述の例では、同一のフロアに始点及び終点が存在する場合の経路を求めたが、始点と終点とが異なるフロアに存在してもよい。この場合、図3のS4において各フロアについてグラフ生成処理を行い、ノード及びエッジを求めておく。なお、異なるフロアに存在する1以上の階段、エレベータ等は、経路探索用画像のGB成分に保持させた構成要素の識別情報に基づいて対応関係を判断することができる。そして、S5の経路探索処理においては、あるフロアにおける始点から階段等までの第1の経路と、他のフロアにおける階段等から終点までの第2の経路とを求める。そして、第1の経路と第2の経路とを連結することにより、フロアをまたがる経路が生成される。図37A及び図37Bは、1階の和室から2階のある洋室までの経路の一例を示す図である。図37Aには、和室内の始点から階段までの経路が示されている。図37Bには、階段から洋室までの経路が示されている。例示した住宅は1つの階段でフロア間が接続されているが、複数の階段やエレベータを有している場合であっても、階段等に係る構成要素の識別情報が同一の経路を接続することにより、フロアをまたがる経路を提示することができる。
<経由地点>
 上述の例では、ユーザの操作に基づいて始点及び終点を設定したが、さらに経由地点を設定するようにしてもよい。経由地点は、例えばユーザが通過したい部屋を指定することにより設定する。そして、S5(図3)において、経路探索用画像を用いて、指定された部屋の識別情報が保持されたセルを通過するエッジを特定し、当該エッジを含む経路を抽出する。
 ただし、上述した実施形態に係る経路探索では、同一のノードを複数回通過する経路は抽出しない。よって、例えば出入口が1つしかない部屋を経由して他の目的地へ向かう経路を抽出することができない。そこで、S5(図3)の経路探索処理において、出入口が1つしかない部屋が経由地点に指定された場合は、例外的に同一のノードを通過して、指定された経由地点との間を往復する経路を生成する。
 図38は、経由地点を通過する経路の探索を説明するための図である。図38の例では、5つの部屋「あ」、「う」、「え」、「お」、「か」が、廊下「い」を介して相互に接続されている。また、部屋「え」及び「か」は、直接接続されている。部屋「あ」は、分岐するエッジaとエッジbとを含み、エッジcを介して廊下「い」と接続されている。部屋「う」は、ループを形成するエッジeとエッジfとを含み、エッジdを介して廊下「い」と接続されている。部屋「え」は、ループを形成するエッジi、エッジj、エッジkを含み、エッジhを介して廊下「い」と接続されると共に、エッジlを介して部屋「か」と接続されている。部屋「お」は、分岐するエッジt及びエッジuを含み、エッジsを介して廊下「い」と接続されている。部屋「か」は、分岐するエッジq、エッジm、エッジnを含み、エッジpを介して廊下「い」と接続されている。廊下「い」は、エッジg、エッジo、エッジr、エッジvを含む。なお、図38の間取図において、部屋「あ」のエッジa上に始点(丸印)が設定され、部屋「お」のエッジt上に終点(星印)が設定されたものとする。また、経由地点として、部屋「う」、部屋「え」が設定されたものとする。
 このような条件で経路の探索を行うと、以下の3つのエッジ列で表される経路(1)~(3)が見つかる。
(1)エッジa,c,g,o,r,s,t(エッジ数7)
(2)エッジa,c,g,h,k,l,p,r,s,t(エッジ数10)
(3)エッジa,c,g,h,i,j,l,p,r,s,t(エッジ数11)
なお、部屋「え」に含まれるエッジi、エッジj、及びエッジkについては、上記経路(2)及び(3)がそれぞれ通過するようになっている。
 一方、部屋「う」は出入口がエッジdのみであり、部屋「う」に含まれるエッジe又はエッジfを通過する経路は抽出されていない。そこで、通過できなかった部屋「う」のエッジ上の任意の点から、上記の経路(2)又は(3)上のノードまで経路探索を行う。ここでは、経路(3)を用いて説明する。このような条件で経路を探索すると、図39A及び図39Bに示すような経路が見つかる。なお、図中の三角印は、経由地点を示すものとする。すなわち、以下の2つのエッジ列で表される経路(4)、(5)が見つかる。
(4)エッジe,d(エッジ数2)
(5)エッジe,f,d(エッジ数3)
 次に、経由地点の部屋「う」から探索して見つかった経路(4)及び(5)と、上記の経路(3)との交点のノードで、上記の経路(3)を分割する。例えば、上記の経路(2)は、以下の2つのエッジ列(3-1)及び(3-2)に分割される。
(2-1)エッジa,c(エッジ数2)
(2-2)エッジg,h,i,j,l,p,r,s,t(エッジ数9)
 そして、分割されたエッジ列の間に、部屋「う」を経由するためのエッジ列(4)及び(5)を挿入する。なお、経由地点の「う」からの経路が複数見つかった場合は、任意の2つの経路を構成するエッジ列を挿入し、部屋「う」からの経路が1つしか見つからなかった場合は、当該経路を往復するエッジ列を挿入するものとする。例えば、上記のエッジ列(2-1)及び(2-2)の間に上記の経路(4)及び(5)を挿入し、図40n示すような経路(6)を生成する。経路(6)をエッジ列で表すと以下のようになる。このように、エッジd及びエッジeを2回通過することで、行き止まりの部屋「う」を通過する経路を生成することができる。
(6)エッジa,c,d,e,e,f,d,g,h,i,j,l,p,r,s,t(エッジ数16)
 なお、経由地点として部屋を指定する代わりに、出発地点や到着地点と同様に間取図上の一点を指定するようにしてもよい。この場合、例えば、出発地点から経由地点までの第1の経路と、経由地点から到着地点までの第2の経路とを探索するようにしてもよい。第1の経路と第2の経路とを接続することにより、経由地点を通過する経路が生成される。この時、第1の経路の終点に於ける方向(終点直前の経路上の点から終点に向かうベクトル)と第2の経路の始点に於ける方向(始点から経路を少し進んだ点へのベクトル)が一致もしくは近い方向になるように第1及び第2の経路を選ぶと滑らかな経路が生成できる。
<より滑らかな経路の作成>
 図41は、上述した実施形態に係る経路探索によって求められた経路の一例を示す図である。実施形態の処理で生成される経路は、家具などの障害物を避けながら歩行する経路を求めるのに適している。しかしながら、家具などが置かれていない部屋では、振らつく様な経路候補が生成される場合がある。また、ノイズの除去の変形例に示した処理によれば、部屋の中心から部屋の隅に向かう放射状の経路候補が生成されるため、一旦部屋の中心に戻るような経路候補が得られることがある。
 そこで、本変形例では、平滑化処理のS41~S43(図25)に於いてパスを折れ線で近似する際、できるだけ方向を変えずに直線で接続する折れ線を生成する。具体的には、まず、平滑化部107は、最初にパスの両端を直線で結び、その間に通過できない箇所が無いか判断する。そして、経路上に通行できない箇所が無い場合、パスを折れ線で近似せずに、そのまま直線で結ぶようにする。また、通過できない箇所があった場合、パスの始点からできるだけ遠くのノードであって始点と結んだ直線が通過できない箇所と衝突しないノードを抽出し、始点から抽出されたノードまでを直線で結ぶ。その後、抽出されたノードから終点までの間について、同様の処理を繰り返す。例えば、始点から、終点の1つ手前のノード、終点の2つ手前のノード、・・・・、始点から1つ先のノードから終点、の間に通行できない箇所があるかどうかを順次確認し、ノード間に通行できない箇所がなければ、そのノード間は直線で結ぶ。このように、もとの経路を近似する際、通行できない箇所と衝突しない折れ線の経路を生成する。
 その後、S44(図25)以降の曲線変換を行う事で、不必要な振らつきを減少させることができる。図42は、本変形例により生成された折れ線を用いた場合の経路の一例を示す図である。始点及び終点は、図41に示した経路と同じである。また、家具等を避けて移動する左下の室内における経路は図41の経路とほぼ同様である。しかし、経路上に障害物のない廊下や右上の室内においては、よりなめらかな経路が生成されている。
<ウォークスルーの表示>
 図3のS7に示した通り、ウォークスルー表示部108は、平滑化された間取図上の経路に基づいて、三次元モデル内を移動するウォークスルーの表示を行う。なお、表示に用いる経路は、探索により見つかった複数の経路のいずれかをユーザが指定するようにしてもよいし、距離が最短の経路を採用するようにしてもよい。なお、探索により見つかった複数の経路をユーザに提示する場合、例えば図29に示すように間取図上に経路を1つずつ提示し、ウォークスルーの表示に用いる経路をユーザが選択できるようにしてもよい。
 ウォークスルーの表示においては、ユーザの視点で建築物内を移動するため、カメラの視線方向は所定距離(例えば、100cm)先の経路上の点に向けることで自然な移動を表現することができるようになる。また、扉等の建具や階段に近づく場合は、所定距離先の経路上でなく扉等の建具や階段の進行方向に視線を固定したり、扉や階段の手前で一旦停止し、扉を開けてから通過するといった、自然な移動を表現することができるようになる。
 ユーザに提示する経路を決める方法や、経路をユーザに提示する順序を決める方法は、始点から終点までの距離が短い経路を優先的に提示してもよいし、幅の広い通路を通過する経路を優先的に提示したり、通過する扉の数が少ない経路を優先的に提示するようにしてもよい。また、これらの条件の組み合わせによって、ユーザに提示する経路を決めるようにしてもよい。
 幅の広い通路を通過する経路を優先的に提示する場合、例えば、図9を用いて説明したS12で生成するマップを用いて、通過可能な領域の外縁からの距離に応じてエッジに重みづけする。エッジへの重みづけは、当該エッジと重なるマップ上のセルの重みの平均値や最大値、最小値等を用いるようにしてもよい。そして、始点から終点までの距離を算出する際、重みに応じた値を乗じることで、距離は遠くても幅が広く通行し易い経路が優先的に提示されるようになる。
 通過する扉の数が少ない経路を優先的に提示する場合、例えば、図7に示したような経路探索用画像において扉を示すセルを通過する経路ほど優先度が下がるように重みづけをする。このようにすれば、同程度の距離の経路が見つかった場合、通過する扉の数が少ない経路が優先的に提示されるようになる。
<その他>
 本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
 ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。
1 経路生成装置
101 記憶部
102 間取図読出部
103 セル分割部
104 細線化部
105 グラフ生成部
106 経路探索部
107 平滑化部
108 ウォークスルー表示部

Claims (9)

  1.  住宅の構成要素の種別を表す情報を含む間取図のデータに基づき、平面を所定の大きさの格子状に区切って形成されるセルを生成し、当該セルの各々に前記構成要素の種別を表す情報を設定するセル分割ステップと、
     前記セルに設定された前記構成要素の種別を表す情報を読み出し、前記構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて通過できる領域の外縁を特定し、当該通過できる領域を細線化した通路のデータを生成する細線化ステップと、
     前記細線化ステップにおいて生成した通路のデータに基づいて、通路における端点又は交点を示すノードと、当該ノード間を接続するエッジとを含むグラフを生成するグラフ生成ステップと、
     ユーザからの入力に基づいて始点及び終点を設定し、前記グラフ生成ステップにおいて生成されたグラフを用いて、前記始点から前記終点までのパスを探索する経路探索ステップと、
     をコンピュータが実行する経路生成方法。
  2.  前記経路探索ステップにおいて得られたパスに基づいて、当該パスを曲線に変換して移動経路を生成する平滑化ステップと、
     前記平滑化ステップにおいて生成された移動経路について、当該移動経路が通過する前記セルに設定された前記構成要素の種別を表す情報を読み出し、当該構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて、前記移動経路と通過できない構成要素との衝突の有無を判断する衝突判定ステップと、
     前記衝突判定ステップにおいて、前記移動経路と通過できない構成要素との衝突があると判断された場合、前記移動経路上の点における曲率を変更する曲線修正ステップと、
     をさらにコンピュータが実行する請求項1に記載の経路生成方法。
  3.  前記間取図のデータは、前記種別が扉又は階段である構成要素を含み、
     前記平滑化ステップにおいて、前記構成要素の種別が扉又は階段であるセルに対応する位置に存在するノードを少なくとも頂点として、前記パスを近似する折れ線を生成し、当該折れ線の頂点に基づいて前記移動経路を生成する
     請求項2に記載の経路生成方法。
  4.  前記経路探索ステップにおいて、ユーザからの入力に基づいて経由点をさらに設定し、得られた前記始点から前記終点までの第1のパスがいずれも前記経由点を通過しない場合、前記経由点から前記第1のパスに含まれるノードまでの第2のパスをさらに探索し、前記第1のパスと前記第2のパスとを連結して前記始点から前記終点までのパスを生成する
     請求項2又は3に記載の経路生成方法。
  5.  前記間取図のデータが示す建築物の三次元モデルを描画し、当該三次元モデルにおいて視点を前記移動経路に沿って移動させるとともに、所定距離先の前記移動経路上に視線の先を向ける表示ステップ
     をさらにコンピュータに実行させる請求項2から4のいずれか一項に記載の経路生成方法。
  6.  前記経路探索ステップにおいて、所定の距離以下でループするノード列が存在する場合、当該ノード列を1つの仮想ノードに置換して経路の探索を行う
     請求項1から5のいずれか一項に記載の経路生成方法。
  7.  前記間取図のデータは、前記構成要素として当該構成要素上を通過できない家具のデータを含む
     請求項1から6のいずれか一項に記載の経路生成方法。
  8.  住宅の構成要素の種別を表す情報を含む間取図のデータに基づき、平面を所定の大きさの格子状に区切って形成されるセルを生成し、当該セルの各々に前記構成要素の種別を表す情報を設定するセル分割ステップと、
     前記セルに設定された前記構成要素の種別を表す情報を読み出し、前記構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて通過できる領域の外縁を特定し、当該通過できる領域を細線化した通路のデータを生成する細線化ステップと、
     前記細線化ステップにおいて生成した通路のデータに基づいて、通路における端点又は交点を示すノードと、当該ノード間を接続するエッジとを含むグラフを生成するグラフ生成ステップと、
     ユーザからの入力に基づいて始点及び終点を設定し、前記グラフ生成ステップにおいて生成されたグラフを用いて、前記始点から前記終点までのパスを探索する経路探索ステップと、
     をコンピュータに実行させる経路生成プログラム。
  9.  住宅の構成要素の種別を表す情報を含む間取図のデータに基づき、平面を所定の大きさの格子状に区切って形成されるセルを生成し、当該セルの各々に前記構成要素の種別を表す情報を設定するセル分割部と、
     前記セルに設定された前記構成要素の種別を表す情報を読み出し、前記構成要素の種別に対応付けて予め定められている当該構成要素上の通過の可否に基づいて通過できる領域の外縁を特定し、当該通過できる領域を細線化した通路のデータを生成する細線化部と、
     前記細線化部が生成した通路のデータに基づいて、通路における端点又は交点を示すノードと、当該ノード間を接続するエッジとを含むグラフを生成するグラフ生成部と、
     ユーザからの入力に基づいて始点及び終点を設定し、前記グラフ生成部が生成したグラフを用いて、前記始点から前記終点までのパスを探索する経路探索部と、
     を備える経路生成装置。
PCT/JP2016/069252 2015-08-20 2016-06-29 経路生成プログラム、経路生成方法及び経路生成装置 WO2017029888A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/314,899 US10139236B2 (en) 2015-08-20 2016-06-29 Route generation program, route generation method and route generation apparatus
CN201680001545.1A CN108027985B (zh) 2015-08-20 2016-06-29 存储介质、路径生成方法和路径生成装置
CA2949867A CA2949867C (en) 2015-08-20 2016-06-29 Route generation program, route generation method and route generation apparatus
HK18113785.2A HK1254534A1 (zh) 2015-08-20 2018-10-29 路徑生成程序、路徑生成方法和路徑生成裝置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-163192 2015-08-20
JP2015163192A JP6304771B2 (ja) 2015-08-20 2015-08-20 経路生成プログラム、経路生成方法及び経路生成装置

Publications (1)

Publication Number Publication Date
WO2017029888A1 true WO2017029888A1 (ja) 2017-02-23

Family

ID=58051669

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/069252 WO2017029888A1 (ja) 2015-08-20 2016-06-29 経路生成プログラム、経路生成方法及び経路生成装置

Country Status (6)

Country Link
US (1) US10139236B2 (ja)
JP (1) JP6304771B2 (ja)
CN (1) CN108027985B (ja)
CA (1) CA2949867C (ja)
HK (1) HK1254534A1 (ja)
WO (1) WO2017029888A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021077167A (ja) * 2019-11-11 2021-05-20 日立造船株式会社 移動過程提示装置、移動過程提示方法、移動過程提示プログラムおよび記録媒体
CN114578831A (zh) * 2022-04-28 2022-06-03 深圳鹏行智能研究有限公司 机器人的控制方法、控制装置、机器人和存储介质
WO2023042502A1 (ja) * 2021-09-17 2023-03-23 日本電産株式会社 自律走行装置および自律走行装置の制御方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11409920B2 (en) * 2016-11-14 2022-08-09 Autodesk, Inc. Generative design for architecture
US10955248B2 (en) * 2017-11-22 2021-03-23 Lokion Interactive, LLC Geo-location structure mapping
US11157745B2 (en) * 2018-02-20 2021-10-26 Scenera, Inc. Automated proximity discovery of networked cameras
CN108898516B (zh) 2018-05-30 2020-06-16 贝壳找房(北京)科技有限公司 在虚拟三维空间讲房模式进功能间的方法、服务器和终端
JP7195073B2 (ja) * 2018-07-10 2022-12-23 古野電気株式会社 グラフ生成装置
US10832437B2 (en) * 2018-09-05 2020-11-10 Rakuten, Inc. Method and apparatus for assigning image location and direction to a floorplan diagram based on artificial intelligence
CN110309560B (zh) * 2019-06-13 2020-12-22 清华大学 多层级迁移模拟方法和装置
CN110750822B (zh) * 2019-09-20 2023-05-09 久瓴(江苏)数字智能科技有限公司 可使用老虎窗固定节点的生成方法、装置、设备和介质
US11043029B1 (en) * 2019-12-09 2021-06-22 Lesoft Technology (Beijing) Co., LTD. Virtual reality system
US11049319B2 (en) * 2019-12-09 2021-06-29 Lesoft Technology (Beijing) Co., LTD. Method for implementing virtual reality roaming path control
CN111291440A (zh) * 2020-02-13 2020-06-16 广东三维家信息科技有限公司 住宅户型动线计算方法和装置
WO2023157301A1 (ja) 2022-02-21 2023-08-24 日立Astemo株式会社 電子制御装置及び軌道生成方法
KR102531141B1 (ko) * 2022-03-16 2023-05-11 주식회사 플럭시티 웹기반 디지털트윈 환경에서의 맵 토폴로지 구축 방법 및 시스템
CN116188480B (zh) * 2023-04-23 2023-07-18 安徽同湃特机器人科技有限公司 喷涂机器人天花板作业时agv行进路径点的计算方法
CN116977582B (zh) * 2023-07-27 2024-03-22 木卫四(北京)科技有限公司 基于gps数据的道路3d模型生成方法及装置
CN117251380B (zh) * 2023-11-10 2024-03-19 中国人民解放军国防科技大学 一种面向单调流式图的优先级异步调度方法及系统
CN118500415A (zh) * 2024-07-17 2024-08-16 杭州海康威视数字技术股份有限公司 一种移动轨迹生成方法、装置、终端设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228231A (ja) * 1997-02-17 1998-08-25 Olympus Optical Co Ltd 擬似体験装置
JP2006048278A (ja) * 2004-08-03 2006-02-16 Fukui Computer Kk 移動経路設定装置、移動経路設定プログラム
US8346474B2 (en) * 2008-08-28 2013-01-01 Honeywell International Inc. Method of route retrieval

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657852B2 (en) * 2005-08-16 2010-02-02 Pulsic Limited System and technique of pattern matching and pattern replacement
US8588958B2 (en) * 2007-09-04 2013-11-19 Musashi Engineering, Inc. Moving program making-out program and device
US8706413B2 (en) * 2011-10-17 2014-04-22 Qualcomm Incorporated Determining a likelihood of a directional transition at a junction in an encoded routability graph description
EP2906396A1 (en) * 2012-10-11 2015-08-19 ABB Technology Ltd. A method and an apparatus for automatically generating a collision free return program for returning a robot from a stop position to a predefined restart position
KR101480721B1 (ko) * 2013-03-05 2015-01-09 주식회사 다비오 유저 기반의 지도 제작 장치
CN104236548B (zh) * 2014-09-12 2017-04-05 清华大学 一种微型无人机室内自主导航方法
CN104346453A (zh) * 2014-10-29 2015-02-11 北京交控科技有限公司 一种ats应用路线搜索方法和系统
CN104535960B (zh) * 2014-12-29 2017-01-11 华南理工大学 一种基于rfid的室内快速定位方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228231A (ja) * 1997-02-17 1998-08-25 Olympus Optical Co Ltd 擬似体験装置
JP2006048278A (ja) * 2004-08-03 2006-02-16 Fukui Computer Kk 移動経路設定装置、移動経路設定プログラム
US8346474B2 (en) * 2008-08-28 2013-01-01 Honeywell International Inc. Method of route retrieval

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021077167A (ja) * 2019-11-11 2021-05-20 日立造船株式会社 移動過程提示装置、移動過程提示方法、移動過程提示プログラムおよび記録媒体
JP7282656B2 (ja) 2019-11-11 2023-05-29 日立造船株式会社 移動過程提示装置、移動過程提示方法、移動過程提示プログラムおよび記録媒体
WO2023042502A1 (ja) * 2021-09-17 2023-03-23 日本電産株式会社 自律走行装置および自律走行装置の制御方法
CN114578831A (zh) * 2022-04-28 2022-06-03 深圳鹏行智能研究有限公司 机器人的控制方法、控制装置、机器人和存储介质

Also Published As

Publication number Publication date
HK1254534A1 (zh) 2019-07-19
JP6304771B2 (ja) 2018-04-04
CA2949867A1 (en) 2017-02-20
CN108027985A (zh) 2018-05-11
US20180149481A1 (en) 2018-05-31
CA2949867C (en) 2021-08-03
JP2017041149A (ja) 2017-02-23
US10139236B2 (en) 2018-11-27
CN108027985B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
JP6304771B2 (ja) 経路生成プログラム、経路生成方法及び経路生成装置
JP6378215B2 (ja) 画像処理
JP4251545B2 (ja) 移動ロボット用経路計画システム
KR101706664B1 (ko) 실내 대피경로 안내 시스템 및 방법
Díaz-Vilariño et al. Indoor navigation from point clouds: 3D modelling and obstacle detection
EP3276513A1 (en) A method and an apparatus for calculating a distance in an area
CN113867340B (zh) 一种地外未知环境超视距全局路径规划系统和方法
JP2008083112A (ja) ネットワークデータ生成装置、ネットワークデータ生成プログラム、携帯端末及びデータ構造
CN114777793B (zh) 一种面向任意导航主体的bim地图提取及路径规划方法
Graser Integrating open spaces into OpenStreetMap routing graphs for realistic crossing behaviour in pedestrian navigation
Whiting et al. Topology of urban environments
JP6059030B2 (ja) ネットワークデータ生成システム、方法、及びプログラム
JP5058905B2 (ja) 地図表示装置およびシステム
CN106339985A (zh) 一种从矢量房屋数据中选取镶嵌线对航空影像镶嵌的方法
KR20230140131A (ko) 나선형 최적화 기법과 황금 분할 탐색 기법을 활용한 베지어 곡선 기반의 지역 경로 계획 방법
JP7152978B2 (ja) 自律移動装置の経路生成方法、並びに経路生成プログラム
CN114894198A (zh) 一种基于商场三维导航地图的导航方法和系统
Yoo et al. A vision-based indoor positioning systems utilizing computer aided design drawing
CN118225094A (zh) 机器人导航方法、机器人、电子设备和存储介质
CN110672098A (zh) 室内导航线模型获取方法、装置、设备以及存储介质
RU2014145708A (ru) Способ построения маршрута передвижения на пересеченной местности
Preece et al. A video game-inspired approach for a pedestrian guidance system within a railway station
Peter et al. Grammar supported indoor mapping
Schwertfeger et al. Room detection for topological maps
US11562513B2 (en) Center line simplification device, network data generation system and program

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2949867

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15314899

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16836880

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16836880

Country of ref document: EP

Kind code of ref document: A1