system
The system efficiently finds restaurants along a travel route by integrating location and restaurant data, reducing user effort and enhancing meal planning convenience.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-04
- Publication Date
- 2026-03-16
AI Technical Summary
Existing systems require significant user effort and time to find restaurants along a travel route, often lacking integration with appropriate information services and failing to provide efficient search and display of relevant facilities.
A system that allows users to input their current location and destination, acquires route information, defines a specified search range, compares restaurant information with route data, and displays results in list or map format, enabling efficient restaurant discovery.
Enables users to quickly and conveniently find restaurants along their travel route with detailed information, reducing the time and effort required for meal planning.
Smart Images

Figure 2026047976000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document No. 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, the method including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the conventional technology, when a user searches for a restaurant for dining on the way from the current location to the destination, a lot of effort is required. Specifically, since the user has to manually check a map and check each restaurant along the route one by one, it takes time and labor. Also, due to the lack of cooperation with an appropriate restaurant information service, the required information may not be obtained. The object of this invention is to provide a system that eliminates such effort and inconvenience and enables a user to efficiently find a restaurant on the route it is traveling.
Means for Solving the Problems
[0005] This invention solves the problem with a system that includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, and means for displaying the comparison results. Furthermore, by including means for displaying the comparison results in list format or map format, and means for displaying detailed information of the restaurants in the comparison results, the system enables the user to efficiently find restaurants along the route, providing even greater convenience.
[0006] A "user" is someone who uses this system to input their current location and destination and search for a place to eat.
[0007] "Current location" refers to the point where the user begins their search for food, and is synonymous with the starting point.
[0008] The term "destination" refers to the place the user ultimately wants to reach, and is synonymous with the goal.
[0009] "Route information" refers to detailed coordinate data and route information related to the user's travel path from their current location to their destination.
[0010] "Map services" refer to online map services that provide route information and location information. Examples include Google® Maps API and OpenStreetMap API.
[0011] The "specified range" refers to the search range entered by the user, and is defined as an area with a polygon region having a certain width on both sides of the path.
[0012] "Restaurant information" refers to information that includes detailed data such as the name, address, genre, rating, and business hours of restaurants acquired within the specified scope.
[0013] "Matching" is the process of comparing acquired restaurant information with route information to select restaurants located along or near the route.
[0014] "Matching results" refer to data including a list of restaurants selected through the matching process and their location information on a map.
[0015] "Display" refers to presenting the matching results to the user and visualizing them in a list or map format. [Brief explanation of the drawing]
[0016] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11] This is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12]It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when combined with an emotion engine. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when combined with an emotion engine.
Mode for Carrying Out the Invention
[0017] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0018] First, the language used in the following description will be explained.
[0019] In the following embodiments, a processor with a reference number (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0020] In the following embodiments, a RAM (Random Access Memory) with a reference number is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0021] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0022] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0023] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0024] [First Embodiment]
[0025] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0026] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0027] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0028] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0029] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0030] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0031] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0032] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0033] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0034] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0035] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0036] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0037] The system of the present invention enables users to efficiently find restaurants on their way from their current location to their destination. An embodiment of this system will be described below.
[0038] Natural language explanation of program processing
[0039] The program of this system is processed as follows:
[0040] 1. Receive user input.
[0041] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0042] 2. Obtain route information
[0043] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0044] 3. Set the specified range.
[0045] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0046] 4. Obtain restaurant information
[0047] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0048] 5. Perform verification.
[0049] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0050] 6. Display the results to the user.
[0051] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Detailed information such as name, address, genre, rating, and business hours is displayed for each restaurant.
[0052] Specific example
[0053] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0054] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0055] The device sends this information to the server.
[0056] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[0057] The server sets a 5km search range for the route and defines this range as a polygon region.
[0058] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0059] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, ramen shops and cafes located near the route might be selected.
[0060] The device displays restaurants to the user in list or map format. Users can easily find restaurants along their route and view detailed information.
[0061] This system allows users to easily find restaurants along their route from their current location to their destination, enabling quick meal planning.
[0062] The following describes the processing flow.
[0063] Step 1:
[0064] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[0065] Step 2:
[0066] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[0067] Step 3:
[0068] The server accesses the map service API to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[0069] Step 4:
[0070] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[0071] Step 5:
[0072] The server accesses the restaurant information service API and searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0073] Step 6:
[0074] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[0075] Step 7:
[0076] The server generates a list of restaurants selected through matching and sends this list to the terminal. This list includes detailed information about each restaurant, such as its name, address, genre, rating, and business hours.
[0077] Step 8:
[0078] The terminal displays a list of restaurants received from the server to the user. There are two display formats: list view and map view, allowing the user to view detailed information about each restaurant.
[0079] (Example 1)
[0080] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0081] For many users, efficiently finding restaurants and other facilities along the way from their current location to their destination is a challenge. Traditional systems provide route information and facility information separately, requiring users to integrate the information themselves, which is not only time-consuming but also increases the risk of missing suitable facilities. Furthermore, there has been no efficient way to search for and display facilities within a certain range along a route. Therefore, there is a need for a method that allows users to easily find facilities along their route.
[0082] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0083] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring location information within the specified range, means for comparing the acquired location information with the route information, and means for displaying the comparison results. This makes it possible for the user to efficiently find restaurants and other facilities on their way from their current location to their destination.
[0084] "Current location" refers to the user's current location.
[0085] "Destination" refers to the point that the user is trying to reach.
[0086] "Geographic information services" refer to external services that provide geographic information and calculate route information.
[0087] "Route information" refers to information that shows the path from your current location to your destination.
[0088] "Specified range" refers to the search range set on both sides of the route.
[0089] "Location information" refers to information about facilities and shops located within a specified area.
[0090] "Matching" refers to comparing route information with location information to find matching points.
[0091] "Matching result" refers to the matching location information obtained during the matching process.
[0092] The system of the present invention enables users to efficiently find locations while traveling from their current location to their destination. Specific embodiments for carrying out the invention are described below.
[0093] This system consists of three main components: the user, the terminal, and the server. The system operates when the user uses a terminal such as a smartphone or tablet to input their current location and destination.
[0094] The user first launches the application and enters their current location and destination. This information is sent from the device to the server based on the location information entered by the user. The server receives this data and uses a geographic information service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information. The obtained route information includes multiple coordinate data points.
[0095] The server then sets specified search ranges on both sides of the route based on the acquired route information. For example, it sets a 5km range for each point along the route and defines this range as a polygon region. This polygon region is maintained as an internal data structure and serves as the basis for searching for location information within the specified range.
[0096] The core processing involves the server retrieving location information within this polygon region. This is done using APIs from location information services (e.g., Google Places API, Yelp API, Zomato API). The server calls these APIs to obtain detailed information such as the name, address, rating, and genre of places within the specified range.
[0097] The acquired location information is then compared with route information by the server, and locations on the route or within a certain distance from the route are selected. The server uses a distance calculation method to determine whether a location is on the route. This comparison result is sent to the terminal in JSON format.
[0098] The device analyzes the received matching results and displays them to the user. The display format can be either a list or a map, allowing the user to see locations close to their route on the map. Furthermore, when the user taps on a displayed location, detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0099] Specific example
[0100] For example, suppose a user searches for a route from Marunouchi 1-chome, Chiyoda-ku, Tokyo to Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo, and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0101] 1. The user enters their current location "Marunouchi 1-chome, Chiyoda-ku, Tokyo" and their destination "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo" into the app and sets the search range to "within 5km".
[0102] 2. The device sends this information to the server.
[0103] 3. The server uses a geographic information service API to obtain route information from the current location to the destination. This route includes detailed coordinate data.
[0104] 4. The server sets a 5km search range based on the route information and defines this range as a polygon region.
[0105] 5. The server obtains location information within the specified range through the location information provision service API.
[0106] 6. The server compares the location information it has acquired with the route information and selects a location that is on the route or within a certain distance from the route.
[0107] 7. The device displays location information to the user in list or map format. The user can view detailed information from the map or list.
[0108] This allows users to efficiently find their location while on their way from their current location to their destination.
[0109] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0110] Step 1: Receive user input
[0111] The user launches the application, enters their current location and destination, and sets the search range. The input data includes the current location as "Marunouchi 1-chome, Chiyoda-ku, Tokyo," the destination as "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo," and a search range of "5km." The specific action involves the user entering this information into the smartphone's input field and tapping the "Search" button. The input data is saved on the device and used in the next step.
[0112] Step 2: Obtain route information
[0113] The device sends data entered by the user, including the current location, destination, and search area, to the server. The server uses a geographic information service API (e.g., Google Maps API) to obtain route information from the current location to the destination. The input data consists of the current location and destination, and the server sends a request to the API, obtaining multiple route points (coordinate data) as output. This coordinate data indicates how the route progresses.
[0114] Step 3: Set the specified range.
[0115] Based on the route information acquired by the server, a specified search range is set on both sides of the route. The server generates a 5km buffer for each coordinate point and connects them to create a band-shaped polygon region. The coordinate data of the route points is used as input data, and the generated polygon region is obtained as output. The polygon region is stored as an internal data structure and used to search for restaurant information in the next step.
[0116] Step 4: Obtain restaurant information
[0117] The server calls a location information service API (e.g., Google Places API) to retrieve restaurant information within the polygon region. The input data used is the latitude and longitude information of the polygon region. The output is in JSON format and includes information such as the restaurant's name, address, rating, and genre. The server parses this information and temporarily stores it in its internal database.
[0118] Step 5: Perform verification
[0119] The server compares acquired restaurant information with route information. Specifically, it calculates the distance to route points and selects restaurants that are on the route or within a certain distance from the route. The input data consists of restaurant information and route point coordinate data, and the output is filtered restaurant information. In this process, a distance calculation method is used to determine the exact location.
[0120] Step 6: Display the results to the user.
[0121] The device displays the matching results sent from the server to the user. Filtered restaurant information sent from the server is used as input data. As output, the user can view the restaurant information in list or map format. Specifically, when the user taps a restaurant on the list, its detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0122] This series of processes allows users to efficiently find restaurants along their route.
[0123] (Application Example 1)
[0124] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0125] Traditionally, there was no system that allowed users to find restaurants along their route from their current location to their destination and place orders on the spot. This made it difficult for users to efficiently find restaurants while traveling, order meals in advance, and receive them quickly. Furthermore, the lack of a way to check restaurant menus along the route and order in real time resulted in low user convenience. Therefore, there is a need to provide an environment where users can efficiently plan meals and order smoothly while traveling.
[0126] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0127] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, and means for displaying the comparison results to the user, as well as allowing the user to check restaurant menus from the search results and place orders in real time. This makes it possible for the user to find restaurants on their way from their current location to their destination, place orders efficiently, and receive their meals in line with their arrival time.
[0128] A "user" is an individual or group that uses this system and is the person who enters their current location and destination.
[0129] "Current location" refers to the user's current location at that moment, and is the location acquired by this system as initial information.
[0130] The "destination" refers to the final place the user intends to reach, and is the endpoint for this system to calculate the route.
[0131] A "map service" is an external online map platform that provides route information and geographic information, including, for example, online map APIs.
[0132] "Route information" refers to data about the route or path from the current location to the destination, and includes multiple coordinate points.
[0133] The "specified range" is a search area set on both sides of a route based on route information, and is a band-shaped polygonal region indicating a predetermined distance.
[0134] "Restaurant information" refers to detailed data about restaurants, including location, name, genre, rating, and business hours.
[0135] "Matching" is the process of comparing acquired restaurant information with route information to determine which restaurants match.
[0136] A "menu" is a list of the dishes and drinks offered by a restaurant, and includes detailed items and prices.
[0137] "Real-time" refers to a state where processing is performed immediately in response to user actions, meaning that the results are reflected instantly when the user places an order.
[0138] "Ordering" refers to the process of purchasing food and beverages selected from a restaurant's menu.
[0139] The present invention provides a system that allows users to efficiently find restaurants on their way from their current location to their destination, view restaurant menus from search results, and place orders in real time. A specific embodiment of this system will now be described.
[0140] Natural language explanation of program processing
[0141] The main processes of this system are carried out as follows:
[0142] 1. User input:
[0143] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0144] 2. Obtaining route information:
[0145] The terminal sends user input data to the server. The server uses a map service API (e.g., an online map API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0146] 3. Setting the specified range:
[0147] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0148] 4. Obtaining restaurant information:
[0149] The server uses an API from a restaurant information service (e.g., an online restaurant information API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0150] 5. Perform verification:
[0151] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0152] 6. Displaying results and ordering functions:
[0153] The terminal displays the matching results sent from the server to the user. The user can view restaurants along their route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks on the spot.
[0154] Specific example
[0155] For example, suppose a user searches for a route from Shinjuku Station to Shibuya Station, finds restaurants within a 5km radius along that route, and wants to place an order. In this case, the system would process the request in the following steps.
[0156] The user enters Shinjuku Station (current location) and Shibuya Station (destination) into the app and sets a search range of within 5km.
[0157] The device sends this information to the server.
[0158] The server uses a map service API to obtain route information from Shinjuku Station to Shibuya Station. This route includes detailed coordinate data, such as Shinjuku Station → Yoyogi → Harajuku → Shibuya Station.
[0159] The server sets a 5km search range for the route and defines this range as a polygon region.
[0160] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0161] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, cafes and restaurants located near the route may be selected.
[0162] The device displays restaurants along the user's route in a list or map format, and the user checks the restaurant menus and places an order.
[0163] Example of a prompt
[0164] By inputting the following prompts into the generating AI model, you can generate the code and procedures necessary to implement the system's processing.
[0165] Write a Python program that retrieves route information from the current location to a destination and searches for restaurants within 5km of that route. The program should use a map service API and a restaurant information service API to retrieve restaurant information along the specified route, display the name and address of each restaurant, and include a function for the user to view menus and place orders.
[0166] The above describes the embodiments for carrying out the present invention. This system enables users to efficiently find restaurants while on the go and place orders in real time.
[0167] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0168] Step 1:
[0169] The user launches the application and enters their current location and destination. They also specify a search area (e.g., within 5km). The input data includes the current location, destination, and search area. This information forms the basis of the system's setup.
[0170] Step 2:
[0171] The terminal sends user input data to the server. The server sends a request to a map service API (e.g., an online map API) to obtain route information from the current location to the destination. In this process, route information including multiple route points is output, with the coordinates of the current location and destination as input.
[0172] Step 3:
[0173] The server sets specified search ranges on both sides of the route based on the acquired route information. Specifically, it generates a strip-shaped polygon region with a width of 5 km on both sides of the route. In this process, the route information and the set search range are used as input, and the data of the polygon region is output.
[0174] Step 4:
[0175] The server sends a request to a restaurant information service API (e.g., an online restaurant information API) to find restaurants within a specified range. At this time, the latitude and longitude information of the generated polygon area is used as input, and restaurant information within the specified range is output.
[0176] Step 5:
[0177] The server compares the acquired restaurant information with the route information. Specifically, it uses a distance calculation method to select restaurants that are on the route or within a certain distance from the route. This process uses the acquired restaurant information and route information as input and outputs a list of restaurants that exist on the route.
[0178] Step 6:
[0179] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks. In this step, the matching results and menu information are used as input, and the displayed restaurant information and the user's order are output.
[0180] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0181] This invention enables users to efficiently find restaurants on their way from their current location to their destination, and further, by combining it with an emotion engine that recognizes the user's emotions, it recommends restaurants that are appropriate to the user's emotions. An embodiment of this system will be described below.
[0182] Natural language explanation of program processing
[0183] The program of this system is processed as follows:
[0184] 1. Receive user input.
[0185] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[0186] 2. Obtain route information
[0187] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[0188] 3. Set the specified range.
[0189] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0190] 4. Obtain restaurant information
[0191] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0192] 5. Perform verification.
[0193] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0194] 6. Recognize the user's emotions.
[0195] The device collects user emotional data through user input, actions, and sensors (e.g., camera, microphone). This includes facial expressions, voice tone, and input patterns.
[0196] 7. Analysis using an emotion engine
[0197] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, it determines the user's current emotional state (e.g., joy, sadness, stress).
[0198] 8. Emotion-based recommendations
[0199] The server recommends restaurants that are appropriate for the user's emotional state, based on the analysis results of the emotion engine. This recommendation is then compared with route information and acquired restaurant information to select the most suitable establishment.
[0200] 9. Display the results to the user.
[0201] The device displays matching results and sentiment-based recommendations sent from the server to the user. Users can view restaurants along their route in list or map format, and detailed information about each restaurant is displayed.
[0202] Specific example
[0203] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0204] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0205] The device sends this information to the server.
[0206] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[0207] The server sets a 5km search range for the route and defines this range as a polygon region.
[0208] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0209] The server compares the restaurant information it has acquired with the route information and selects the restaurant closest to it.
[0210] The device collects user emotional data, and the server analyzes that data using an emotion engine. For example, it might determine if the user is feeling stressed.
[0211] Based on the analysis results of the emotion engine, the server recommends relaxing cafes and tranquil restaurants suitable for stress relief.
[0212] The device displays restaurants to the user in list or map format. The user can then view detailed information and choose a suitable restaurant.
[0213] This system allows users to efficiently find restaurants that are best suited to their individual emotional state while traveling from their current location to their destination.
[0214] The following describes the processing flow.
[0215] Step 1:
[0216] The user launches the application and enters their current location and destination in the input fields. They also set a search range (e.g., within 5km).
[0217] Step 2:
[0218] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[0219] Step 3:
[0220] The server accesses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (latitude and longitude) along the route.
[0221] Step 4:
[0222] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[0223] Step 5:
[0224] The server accesses restaurant information service APIs (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0225] Step 6:
[0226] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[0227] Step 7:
[0228] The device collects user emotional data. This emotional data is collected through methods such as input content, voice tone, and facial expression analysis.
[0229] Step 8:
[0230] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, the user's current emotional state (e.g., joy, sadness, stress) is determined.
[0231] Step 9:
[0232] The server recommends the perfect restaurant based on the analysis results. For example, if the user is feeling stressed, a cafe with a comfortable interior or a quiet restaurant will be recommended.
[0233] Step 10:
[0234] The server sends the final list, including these recommendations, to the user's device. This list contains detailed information such as the restaurant's name, address, genre, rating, and opening hours, based on the user's emotional state.
[0235] Step 11:
[0236] The device displays matching results and sentiment-based recommendations sent from the server. Users can view restaurants along their route in list or map format, and detailed information about each restaurant can also be displayed.
[0237] (Example 2)
[0238] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0239] In today's busy lifestyle, it is difficult for users to quickly and efficiently find suitable restaurants while on the go. Furthermore, there is a lack of systems that recommend restaurants while considering the emotional state of users during their travels. As a result, it often takes a long time for users to find restaurants that meet their needs, leading to inconvenience.
[0240] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0241] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring store information within the specified range, means for comparing the acquired store information with the route information, means for collecting user emotion data, means for determining the user's emotion using an emotion analysis engine, means for recommending stores based on the user's emotional state, and means for displaying the comparison results and recommendation results. This makes it possible for the user to instantly find a restaurant that is best suited to their emotional state at any given time while traveling from their current location to their destination.
[0242] A "user" refers to an individual who operates this system and inputs their current location, destination, and search range.
[0243] "Current location" refers to the location information of the starting point that the user enters into the system.
[0244] "Destination" refers to the location information of the final destination that the user enters into the system.
[0245] "Geographic information services" refer to external APIs or services that provide route information and map-related data.
[0246] "Route information" refers to latitude and longitude data related to the route from the starting point to the destination.
[0247] "Specified range" refers to the search range set on both sides of the route, and usually means a band-shaped area with a specific distance between it and the destination.
[0248] "Store information" refers to data about restaurants or other establishments located within a specified area. Specifically, this includes store name, address, rating, reviews, etc.
[0249] "Matching" refers to the process of comparing acquired store information with route information to select stores located along or near the route.
[0250] "Emotional data" refers to data related to emotions that is collected based on the user's facial expressions, voice tone, input patterns, etc.
[0251] An "emotion analysis engine" refers to software or a service that analyzes emotional data to determine a user's emotional state.
[0252] "Recommendation" refers to the process of suggesting stores that are suitable for the user's emotional state based on the results of an emotion analysis engine.
[0253] "Display" refers to the process of visually presenting matching results and recommendation results on the user's device in list or map format.
[0254] This invention is a system that allows users to efficiently find restaurants on their way from their current location to their destination. Furthermore, by combining it with an emotion engine that recognizes the user's emotions, it aims to meet the user's needs by recommending restaurants that are suitable for the user's emotions. A detailed embodiment of this system is shown below.
[0255] First, the user enters their current location and destination. They launch the application provided by the user and enter their current location and destination in the text boxes. They can also set a search range (e.g., within 5km). This allows users to easily input the necessary information.
[0256] Secondly, the terminal sends the user's input data to the server. The server uses geographic information services (e.g., map provision APIs) to obtain route information from the current location to the destination. Examples of such geographic information services include the Google Maps API and the OpenStreetMap API. The obtained route information includes latitude and longitude data from the starting point to the destination.
[0257] Thirdly, the server defines a specified range on the route based on the route information it has acquired. A band-shaped polygonal region with a specific distance (e.g., 5km) on both sides of the route is generated. This determines the search range for stores (restaurants, etc.) located along the route. This range is set as a buffer zone with a fixed distance on both sides, relative to the center line of the route.
[0258] Fourth, the server retrieves store information within a specified range. Using store information APIs (e.g., Google Places API, Yelp API, Zomato API), the server searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area, and retrieves data on restaurants within this range. The retrieved data includes details such as the store name, address, and user rating.
[0259] Fifth, the server compares the acquired store information with the route information. Distance calculation methods (e.g., Haverstein distance or Euclidean distance) are used to determine the specific location and calculate how far each restaurant is from the route. This allows the server to select restaurants that are on or near the route.
[0260] Sixth, the device collects user emotional data. This data is collected through sensors such as cameras and microphones, and facial expressions, voice tone, and input patterns are analyzed. This allows the user's current emotional state to be understood in real time.
[0261] Seventh, the server uses an emotion engine to determine the user's emotions. Using an emotion analysis API (e.g., Microsoft® Azure® Emotion API, IBM Watson® Tone Analyzer), the server analyzes the collected emotion data to determine the user's emotional state.
[0262] Eighth, the server recommends restaurants that are suitable for the user's emotional state based on the analysis results. For example, it recommends a relaxing cafe to a user who is feeling stressed, and a lively restaurant to a user who is feeling happy.
[0263] Finally, ninth, the device displays matching and recommendation results to the user. Users can view this information in list or map format. Detailed information includes store name, address, rating, and reviews. When the user selects detailed information, the navigation function displays the route to the selected store.
[0264] Specific example
[0265] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0266] 1. The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0267] 2. The device sends this information to the server.
[0268] 3. The server uses a geographic information service API to obtain route information from Tokyo Station to Shinjuku Station.
[0269] 4. The server sets a 5km search range for the route and defines this range as a polygon region.
[0270] 5. The server retrieves restaurant information within the specified range via the restaurant information provision API. This data includes details for each restaurant.
[0271] 6. The server compares the acquired store information with the route information and selects the restaurant closest to it.
[0272] 7. The device collects user emotion data, and the server analyzes that data using an emotion engine. For example, it might determine that the user is feeling stressed.
[0273] 8. Based on the emotion analysis results, the server recommends relaxing cafes or quiet restaurants suitable for stress relief.
[0274] 9. The device displays restaurants to the user in list or map format. The user can view detailed information and choose a suitable restaurant. It also displays the route to the restaurant using the navigation function.
[0275] Examples of prompts for generative AI models
[0276] "A user is searching for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. This user is currently stressed. Please recommend relaxing cafes or quiet restaurants."
[0277] By inputting prompts in this format into the AI model, the system can recommend restaurants suitable for the target user. The use of specific prompts further improves the accuracy and usefulness of the AI model.
[0278] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0279] Step 1: User input
[0280] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km). The input data includes the current location, destination, and search range.
[0281] Specific actions:
[0282] The user inputs "Tokyo Station" and "Shinjuku Station" into the text fields for "Current Location" and "Destination" respectively, and selects "5 km" from the search range dropdown.
[0283] The input data is saved in JSON format on the terminal and is ready to be sent to the server.
[0284] Input: Current Location (Tokyo Station), Destination (Shinjuku Station), Search Range (5 km)
[0285] Output: Input data in JSON format
[0286] Step 2: Obtain route information
[0287] The terminal sends the user's input data to the server. The server uses the Geographic Information Service API to obtain the route information from the current location to the destination.
[0288] Specific operations:
[0289] The terminal sends the input data in JSON format to the server.
[0290] The server sends a request to the Geographic Information Service API to obtain the route information from "Tokyo Station" to "Shinjuku Station".
[0291] Input: User input data (current location, destination, search range)
[0292] Output: Route information (latitude and longitude data)
[0293] Step 3: Define the specified range
[0294] Based on the route information obtained by the server, a polygon area with the specified search range (5 km) on both sides of the route is generated.
[0295] Specific operations:
[0296] The server calculates the center line of the route and sets a 5-km buffer on both sides of it.
[0297] A polygon area is generated and defined as the search range.
[0298] Input: Route information
[0299] Output: Polygon area (search range)
[0300] Step 4: Obtain store information
[0301] The server uses the store information providing API to search for and obtain the information of restaurants within the generated polygon area.
[0302] Specific operations:
[0303] The server sends the polygon area to the store information providing API and makes a request.
[0304] <000蒸す0959>The obtained store information includes the store name, address, user evaluation, etc.
[0305] Input: Polygon area
[0306] Output: Store information (store name, address, evaluation, etc.)
[0307] Step 5: Match the store information with the route information
[0308] The server matches the obtained store information with the route information and selects the stores on or near the route.
[0309] Specific operations:
[0310] The server uses a distance calculation method (such as the Haversine distance or Euclidean distance) to calculate how far each store's location is from the route.
[0311] List up the stores within the specified distance from the route.
[0312] Input: Store information, route information
[0313] Output: Matched store list
[0314] Step 6: Collect user sentiment data.
[0315] The device collects user emotion data through sensors such as cameras and microphones.
[0316] Specific actions:
[0317] The device captures the user's facial expressions with its camera and records their voice with its microphone.
[0318] The system also records user input patterns such as taps and swipes and transmits them as sensor data.
[0319] Input: User's facial expressions, voice, input patterns
[0320] Output: Sentiment data
[0321] Step 7: Analyze emotions with an emotion analysis engine.
[0322] The server uses an emotion analysis engine to analyze the collected emotion data and determine the user's emotional state.
[0323] Specific actions:
[0324] The server sends data to an emotion analysis API, which analyzes emotions from facial expressions and voice.
[0325] The analysis results determine emotional states such as "joy," "sadness," and "stress."
[0326] Input: Sentiment data
[0327] Output: Emotional state (joy, sadness, stress, etc.)
[0328] Step 8: Make emotionally driven recommendations.
[0329] Based on the analysis results, the server recommends restaurants that are suitable for the user's emotional state.
[0330] Specific actions:
[0331] Based on the matched list of stores and the user's emotional state, the server makes recommendations such as, "For users who are feeling stressed, here are some relaxing cafes."
[0332] Generate a list of recommendations with priority.
[0333] Input: Matched store list, emotional status
[0334] Output: Recommendation List
[0335] Step 9: Display the results to the user.
[0336] The terminal displays the matching results and recommendation results sent from the server to the user.
[0337] Specific actions:
[0338] The device displays recommended stores in list or map format.
[0339] Allow users to view detailed information about each store (address, rating, reviews).
[0340] When a user selects detailed information, the navigation function displays the route to the specified store.
[0341] Input: Recommendation list
[0342] Output: Store information and route information displayed to the user
[0343] (Application Example 2)
[0344] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0345] When users search for routes from their current location to their destination, it is difficult to efficiently find restaurants along the route. Furthermore, there is a lack of systems that not only find restaurants but also recommend appropriate restaurants based on the user's current emotional state. Current navigation systems provide information uniformly without considering the user's emotions, making it difficult to make recommendations that meet the user's needs.
[0346] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, means for displaying the comparison results, means for collecting user emotion data using a microphone and a camera, emotion analysis means for analyzing the collected emotion data to determine the user's emotional state, and means for recommending restaurants suitable for the emotional state. As a result, the user can efficiently find a restaurant that is best suited to their emotional state while on their way from their current location to their destination.
[0347] A "user" is an individual who uses the system to search for a route from their current location to their destination and find a suitable restaurant.
[0348] "Current location" refers to the location where the user is situated when using the system.
[0349] A "destination" is the final place that a user is trying to reach using the system.
[0350] A "map service" is a server that provides location information and is used to obtain route information, information about nearby facilities, and so on.
[0351] "Route information" refers to detailed information such as the route, distance, and estimated time from your current location to your destination.
[0352] "Specified range" refers to the range of the route specified by the user that will be searched.
[0353] "Restaurant information" refers to detailed information about restaurants, such as their location, type, business hours, and ratings.
[0354] "Matching" refers to comparing acquired restaurant information with route information and selecting restaurants that fall within a specified range.
[0355] A "microphone" is a device used to collect sound. It is part of the means of acquiring user emotion data.
[0356] A "camera" is a device used to capture images and videos. It is also a means of acquiring user emotional data.
[0357] "Emotional data" refers to information collected using microphones and cameras, based on the user's facial expressions, tone of voice, and other similar data.
[0358] "Emotional analysis" refers to the process of analyzing collected emotional data to determine the user's current emotional state.
[0359] "Emotional state" refers to the user's psychological state based on analyzed emotional data, and includes emotions such as joy, sadness, and stress.
[0360] "Recommendation" refers to identifying and presenting restaurants that are suitable for a user's emotional state.
[0361] The following describes an embodiment for carrying out this invention. First, the system is configured as follows: The user inputs their current location and destination, and obtains route information in cooperation with a map service. Based on the obtained route information, a specified range is defined, and restaurant information within that range is obtained. Then, the obtained restaurant information is compared with the route information, and the comparison result is displayed. Furthermore, the user's emotional data is collected using a microphone and camera, and the collected emotional data is analyzed to determine the user's current emotional state. A suitable restaurant is recommended to the user according to that emotional state.
[0362] Hardware and software
[0363] Hardware:
[0364] Autonomous vehicles: Function as part of the navigation system and display.
[0365] Microphone: Collects the user's voice tone.
[0366] Camera: Collects the user's facial expressions.
[0367] software:
[0368] Map service APIs (e.g., Google Maps API, OpenStreetMap API): Retrieve route information and restaurant information.
[0369] Emotion recognition engine: Analyzes user emotion data to determine the current emotional state.
[0370] Data processing and data calculation
[0371] The server uses a map service API to obtain route information based on the user's entered current location and destination. This route information includes latitude and longitude data along the route. Based on the obtained route information, a specified area is defined. This area is defined as a polygon region with a fixed distance width centered on the route. Next, the server uses a restaurant information service API to obtain restaurant information within that polygon region. The obtained restaurant information is compared with the route information, and the most suitable restaurant for the user is selected.
[0372] To determine the user's current emotional state, a microphone and camera collect the user's voice tone and facial expressions. The collected data is sent to an emotion recognition engine, which analyzes the user's emotional state. After the emotional state is determined, the server selects and recommends the most suitable restaurant for that state. This recommendation result is displayed on the vehicle's display and communicated to the user.
[0373] Specific example
[0374] For example, when a user travels from Tokyo Station to Shinjuku Station, route information is entered into the navigation system of an autonomous vehicle. If the system determines that the user is experiencing stress, the emotion recognition engine analyzes the information. Based on these results, the server recommends relaxing cafes or quiet restaurants that can help alleviate the user's stress.
[0375] Example of a prompt:
[0376] Please find restaurants along the route from Tokyo Station to Shinjuku Station. Since the user may be experiencing stress at this time, please recommend relaxing cafes or quiet restaurants.
[0377] This format allows users to efficiently find restaurants that best suit their emotional state while on their way from their current location to their destination.
[0378] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0379] Step 1:
[0380] The system provides users with a way to input their current location and destination, and allows them to set a search range (e.g., within 5km).
[0381] Specific operation: The user enters their current location and destination into the vehicle's navigation system and specifies the search area.
[0382] Input: Current location, destination, search area.
[0383] Output: Current location, destination, and search range are sent to the server.
[0384] Step 2:
[0385] A means of obtaining route information in conjunction with a map service, and the act of obtaining that information.
[0386] Specific operation: The device calls a map service API (e.g., Google Maps API) to obtain route information from its current location to its destination.
[0387] Input: Current location, destination.
[0388] Data processing: The map service API calculates coordinate data (latitude and longitude) along the route and determines the optimal route.
[0389] Output: Route information (multiple coordinate data).
[0390] Step 3:
[0391] Define a specified range on the route based on the acquired route information.
[0392] Specific operation: Based on the route information acquired by the server, the specified search ranges on both sides of the route are set as polygon regions.
[0393] Input: Route information, search range.
[0394] Data processing: A strip-shaped region of a fixed width is generated along the path, and this polygon region is defined.
[0395] Output: Polygon region (specified range).
[0396] Step 4:
[0397] Retrieve restaurant information within the specified range.
[0398] Specific operation: The server uses a restaurant information service API (e.g., Google Places API) to search for restaurant information within the polygon area.
[0399] Input: Polygon region.
[0400] Data processing: The restaurant information service API collects restaurant information within the polygon area.
[0401] Output: Restaurant information.
[0402] Step 5:
[0403] The acquired restaurant information is compared with route information.
[0404] Specific operation: The server compares the acquired restaurant information with the route information and selects a restaurant within the specified range.
[0405] Input: Restaurant information, route information.
[0406] Data calculation: Use distance calculation methods to compare the location of each restaurant with its location along the route.
[0407] Output: Matching results (list of restaurants along the route).
[0408] Step 6:
[0409] The system uses microphones and cameras to collect user emotion data.
[0410] Specific operation: The device's microphone and camera collect the user's voice tone and facial expressions.
[0411] Input: User's voice tone and facial expression.
[0412] Output: Emotional data (voice and facial expression data).
[0413] Step 7:
[0414] An emotion analysis method is used to analyze collected emotion data and determine the user's emotional state.
[0415] Specific operation: The server uses an emotion recognition engine to analyze the collected emotion data and determine the user's emotional state.
[0416] Input: Sentiment data.
[0417] Data processing: The emotion recognition engine analyzes voice tone and facial expressions to determine the user's emotional state (e.g., stress, joy).
[0418] Output: Emotional state.
[0419] Step 8:
[0420] We recommend restaurants that are suitable for your emotional state.
[0421] Specific operation: The server selects the most suitable restaurant based on the user's emotional state and recommends it to the user.
[0422] Input: Emotional state, matching result.
[0423] Data processing: Filter restaurants based on emotional state (e.g., select restaurants suitable for stress relief).
[0424] Output: Recommendation results (list of the best restaurants).
[0425] Step 9:
[0426] Display the matching results and recommendation results.
[0427] Specific operation: The terminal displays the matching and recommendation results sent from the server. Users can view them in list or map format.
[0428] Input: Matching results, recommendation results.
[0429] Output: Displayed list of restaurants and their details.
[0430] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0431] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0432] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0433] [Second Embodiment]
[0434] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0435] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0436] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0437] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0438] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0439] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0440] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0441] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0442] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0443] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0444] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0445] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0446] The system of the present invention enables users to efficiently find restaurants on their way from their current location to their destination. An embodiment of this system will be described below.
[0447] Natural language explanation of program processing
[0448] The program of this system is processed as follows:
[0449] 1. Receive user input.
[0450] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0451] 2. Obtain route information
[0452] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0453] 3. Set the specified range.
[0454] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0455] 4. Obtain restaurant information
[0456] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0457] 5. Perform verification.
[0458] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0459] 6. Display the results to the user.
[0460] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Detailed information such as name, address, genre, rating, and business hours is displayed for each restaurant.
[0461] Specific example
[0462] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0463] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0464] The device sends this information to the server.
[0465] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[0466] The server sets a 5km search range for the route and defines this range as a polygon region.
[0467] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0468] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, ramen shops and cafes located near the route might be selected.
[0469] The device displays restaurants to the user in list or map format. Users can easily find restaurants along their route and view detailed information.
[0470] This system allows users to easily find restaurants along their route from their current location to their destination, enabling quick meal planning.
[0471] The following describes the processing flow.
[0472] Step 1:
[0473] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[0474] Step 2:
[0475] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[0476] Step 3:
[0477] The server accesses the map service API to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[0478] Step 4:
[0479] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[0480] Step 5:
[0481] The server accesses the restaurant information service API and searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0482] Step 6:
[0483] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[0484] Step 7:
[0485] The server generates a list of restaurants selected through matching and sends this list to the terminal. This list includes detailed information about each restaurant, such as its name, address, genre, rating, and business hours.
[0486] Step 8:
[0487] The terminal displays a list of restaurants received from the server to the user. There are two display formats: list view and map view, allowing the user to view detailed information about each restaurant.
[0488] (Example 1)
[0489] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0490] For many users, efficiently finding restaurants and other facilities along the way from their current location to their destination is a challenge. Traditional systems provide route information and facility information separately, requiring users to integrate the information themselves, which is not only time-consuming but also increases the risk of missing suitable facilities. Furthermore, there has been no efficient way to search for and display facilities within a certain range along a route. Therefore, there is a need for a method that allows users to easily find facilities along their route.
[0491] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0492] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring location information within the specified range, means for comparing the acquired location information with the route information, and means for displaying the comparison results. This makes it possible for the user to efficiently find restaurants and other facilities on their way from their current location to their destination.
[0493] "Current location" refers to the user's current location.
[0494] "Destination" refers to the point that the user is trying to reach.
[0495] "Geographic information services" refer to external services that provide geographic information and calculate route information.
[0496] "Route information" refers to information that shows the path from your current location to your destination.
[0497] "Specified range" refers to the search range set on both sides of the route.
[0498] "Location information" refers to information about facilities and shops located within a specified area.
[0499] "Matching" refers to comparing route information with location information to find matching points.
[0500] "Matching result" refers to the matching location information obtained during the matching process.
[0501] The system of the present invention enables users to efficiently find locations while traveling from their current location to their destination. Specific embodiments for carrying out the invention are described below.
[0502] This system consists of three main components: the user, the terminal, and the server. The system operates when the user uses a terminal such as a smartphone or tablet to input their current location and destination.
[0503] The user first launches the application and enters their current location and destination. This information is sent from the device to the server based on the location information entered by the user. The server receives this data and uses a geographic information service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information. The obtained route information includes multiple coordinate data points.
[0504] The server then sets specified search ranges on both sides of the route based on the acquired route information. For example, it sets a 5km range for each point along the route and defines this range as a polygon region. This polygon region is maintained as an internal data structure and serves as the basis for searching for location information within the specified range.
[0505] The core processing involves the server retrieving location information within this polygon region. This is done using APIs from location information services (e.g., Google Places API, Yelp API, Zomato API). The server calls these APIs to obtain detailed information such as the name, address, rating, and genre of places within the specified range.
[0506] The acquired location information is then compared with route information by the server, and locations on the route or within a certain distance from the route are selected. The server uses a distance calculation method to determine whether a location is on the route. This comparison result is sent to the terminal in JSON format.
[0507] The device analyzes the received matching results and displays them to the user. The display format can be either a list or a map, allowing the user to see locations close to their route on the map. Furthermore, when the user taps on a displayed location, detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0508] Specific example
[0509] For example, suppose a user searches for a route from Marunouchi 1-chome, Chiyoda-ku, Tokyo to Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo, and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0510] 1. The user enters their current location "Marunouchi 1-chome, Chiyoda-ku, Tokyo" and their destination "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo" into the app and sets the search range to "within 5km".
[0511] 2. The device sends this information to the server.
[0512] 3. The server uses a geographic information service API to obtain route information from the current location to the destination. This route includes detailed coordinate data.
[0513] 4. The server sets a 5km search range based on the route information and defines this range as a polygon region.
[0514] 5. The server obtains location information within the specified range through the location information provision service API.
[0515] 6. The server compares the location information it has acquired with the route information and selects a location that is on the route or within a certain distance from the route.
[0516] 7. The device displays location information to the user in list or map format. The user can view detailed information from the map or list.
[0517] This allows users to efficiently find their location while on their way from their current location to their destination.
[0518] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0519] Step 1: Receive user input
[0520] The user launches the application, enters their current location and destination, and sets the search range. The input data includes the current location as "Marunouchi 1-chome, Chiyoda-ku, Tokyo," the destination as "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo," and a search range of "5km." The specific action involves the user entering this information into the smartphone's input field and tapping the "Search" button. The input data is saved on the device and used in the next step.
[0521] Step 2: Obtain route information
[0522] The device sends data entered by the user, including the current location, destination, and search area, to the server. The server uses a geographic information service API (e.g., Google Maps API) to obtain route information from the current location to the destination. The input data consists of the current location and destination, and the server sends a request to the API, obtaining multiple route points (coordinate data) as output. This coordinate data indicates how the route progresses.
[0523] Step 3: Set the specified range.
[0524] Based on the route information acquired by the server, a specified search range is set on both sides of the route. The server generates a 5km buffer for each coordinate point and connects them to create a band-shaped polygon region. The coordinate data of the route points is used as input data, and the generated polygon region is obtained as output. The polygon region is stored as an internal data structure and used to search for restaurant information in the next step.
[0525] Step 4: Obtain restaurant information
[0526] The server calls a location information service API (e.g., Google Places API) to retrieve restaurant information within the polygon region. The input data used is the latitude and longitude information of the polygon region. The output is in JSON format and includes information such as the restaurant's name, address, rating, and genre. The server parses this information and temporarily stores it in its internal database.
[0527] Step 5: Perform verification
[0528] The server compares acquired restaurant information with route information. Specifically, it calculates the distance to route points and selects restaurants that are on the route or within a certain distance from the route. The input data consists of restaurant information and route point coordinate data, and the output is filtered restaurant information. In this process, a distance calculation method is used to determine the exact location.
[0529] Step 6: Display the results to the user.
[0530] The device displays the matching results sent from the server to the user. Filtered restaurant information sent from the server is used as input data. As output, the user can view the restaurant information in list or map format. Specifically, when the user taps a restaurant on the list, its detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0531] This series of processes allows users to efficiently find restaurants along their route.
[0532] (Application Example 1)
[0533] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0534] Traditionally, there was no system that allowed users to find restaurants along their route from their current location to their destination and place orders on the spot. This made it difficult for users to efficiently find restaurants while traveling, order meals in advance, and receive them quickly. Furthermore, the lack of a way to check restaurant menus along the route and order in real time resulted in low user convenience. Therefore, there is a need to provide an environment where users can efficiently plan meals and order smoothly while traveling.
[0535] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0536] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, and means for displaying the comparison results to the user, as well as allowing the user to check restaurant menus from the search results and place orders in real time. This makes it possible for the user to find restaurants on their way from their current location to their destination, place orders efficiently, and receive their meals in line with their arrival time.
[0537] A "user" is an individual or group that uses this system and is the person who enters their current location and destination.
[0538] "Current location" refers to the user's current location at that moment, and is the location acquired by this system as initial information.
[0539] The "destination" refers to the final place the user intends to reach, and is the endpoint for this system to calculate the route.
[0540] A "map service" is an external online map platform that provides route information and geographic information, including, for example, online map APIs.
[0541] "Route information" refers to data about the route or path from the current location to the destination, and includes multiple coordinate points.
[0542] The "specified range" is a search area set on both sides of a route based on route information, and is a band-shaped polygonal region indicating a predetermined distance.
[0543] "Restaurant information" refers to detailed data about restaurants, including location, name, genre, rating, and business hours.
[0544] "Matching" is the process of comparing acquired restaurant information with route information to determine which restaurants match.
[0545] A "menu" is a list of the dishes and drinks offered by a restaurant, and includes detailed items and prices.
[0546] "Real-time" refers to a state where processing is performed immediately in response to user actions, meaning that the results are reflected instantly when the user places an order.
[0547] "Ordering" refers to the process of purchasing food and beverages selected from a restaurant's menu.
[0548] The present invention provides a system that allows users to efficiently find restaurants on their way from their current location to their destination, view restaurant menus from search results, and place orders in real time. A specific embodiment of this system will now be described.
[0549] Natural language explanation of program processing
[0550] The main processes of this system are carried out as follows:
[0551] 1. User input:
[0552] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0553] 2. Obtaining route information:
[0554] The terminal sends user input data to the server. The server uses a map service API (e.g., an online map API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0555] 3. Setting the specified range:
[0556] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0557] 4. Obtaining restaurant information:
[0558] The server uses an API from a restaurant information service (e.g., an online restaurant information API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0559] 5. Perform verification:
[0560] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0561] 6. Displaying results and ordering functions:
[0562] The terminal displays the matching results sent from the server to the user. The user can view restaurants along their route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks on the spot.
[0563] Specific example
[0564] For example, suppose a user searches for a route from Shinjuku Station to Shibuya Station, finds restaurants within a 5km radius along that route, and wants to place an order. In this case, the system would process the request in the following steps.
[0565] The user enters Shinjuku Station (current location) and Shibuya Station (destination) into the app and sets a search range of within 5km.
[0566] The device sends this information to the server.
[0567] The server uses a map service API to obtain route information from Shinjuku Station to Shibuya Station. This route includes detailed coordinate data, such as Shinjuku Station → Yoyogi → Harajuku → Shibuya Station.
[0568] The server sets a 5km search range for the route and defines this range as a polygon region.
[0569] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0570] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, cafes and restaurants located near the route may be selected.
[0571] The device displays restaurants along the user's route in a list or map format, and the user checks the restaurant menus and places an order.
[0572] Example of a prompt
[0573] By inputting the following prompts into the generating AI model, you can generate the code and procedures necessary to implement the system's processing.
[0574] Write a Python program that retrieves route information from the current location to a destination and searches for restaurants within 5km of that route. The program should use a map service API and a restaurant information service API to retrieve restaurant information along the specified route, display the name and address of each restaurant, and include a function for the user to view menus and place orders.
[0575] The above describes the embodiments for carrying out the present invention. This system enables users to efficiently find restaurants while on the go and place orders in real time.
[0576] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0577] Step 1:
[0578] The user launches the application and enters their current location and destination. They also specify a search area (e.g., within 5km). The input data includes the current location, destination, and search area. This information forms the basis of the system's setup.
[0579] Step 2:
[0580] The terminal sends user input data to the server. The server sends a request to a map service API (e.g., an online map API) to obtain route information from the current location to the destination. In this process, route information including multiple route points is output, with the coordinates of the current location and destination as input.
[0581] Step 3:
[0582] The server sets specified search ranges on both sides of the route based on the acquired route information. Specifically, it generates a strip-shaped polygon region with a width of 5 km on both sides of the route. In this process, the route information and the set search range are used as input, and the data of the polygon region is output.
[0583] Step 4:
[0584] The server sends a request to a restaurant information service API (e.g., an online restaurant information API) to find restaurants within a specified range. At this time, the latitude and longitude information of the generated polygon area is used as input, and restaurant information within the specified range is output.
[0585] Step 5:
[0586] The server compares the acquired restaurant information with the route information. Specifically, it uses a distance calculation method to select restaurants that are on the route or within a certain distance from the route. This process uses the acquired restaurant information and route information as input and outputs a list of restaurants that exist on the route.
[0587] Step 6:
[0588] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks. In this step, the matching results and menu information are used as input, and the displayed restaurant information and the user's order are output.
[0589] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0590] This invention enables users to efficiently find restaurants on their way from their current location to their destination, and further, by combining it with an emotion engine that recognizes the user's emotions, it recommends restaurants that are appropriate to the user's emotions. An embodiment of this system will be described below.
[0591] Natural language explanation of program processing
[0592] The program of this system is processed as follows:
[0593] 1. Receive user input.
[0594] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[0595] 2. Obtain route information
[0596] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[0597] 3. Set the specified range.
[0598] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0599] 4. Obtain restaurant information
[0600] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0601] 5. Perform verification.
[0602] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0603] 6. Recognize the user's emotions.
[0604] The device collects user emotional data through user input, actions, and sensors (e.g., camera, microphone). This includes facial expressions, voice tone, and input patterns.
[0605] 7. Analysis using an emotion engine
[0606] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, it determines the user's current emotional state (e.g., joy, sadness, stress).
[0607] 8. Emotion-based recommendations
[0608] The server recommends restaurants that are appropriate for the user's emotional state, based on the analysis results of the emotion engine. This recommendation is then compared with route information and acquired restaurant information to select the most suitable establishment.
[0609] 9. Display the results to the user.
[0610] The device displays matching results and sentiment-based recommendations sent from the server to the user. Users can view restaurants along their route in list or map format, and detailed information about each restaurant is displayed.
[0611] Specific example
[0612] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0613] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0614] The device sends this information to the server.
[0615] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[0616] The server sets a 5km search range for the route and defines this range as a polygon region.
[0617] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0618] The server compares the restaurant information it has acquired with the route information and selects the restaurant closest to it.
[0619] The device collects user emotional data, and the server analyzes that data using an emotion engine. For example, it might determine if the user is feeling stressed.
[0620] Based on the analysis results of the emotion engine, the server recommends relaxing cafes and tranquil restaurants suitable for stress relief.
[0621] The device displays restaurants to the user in list or map format. The user can then view detailed information and choose a suitable restaurant.
[0622] This system allows users to efficiently find restaurants that are best suited to their individual emotional state while traveling from their current location to their destination.
[0623] The following describes the processing flow.
[0624] Step 1:
[0625] The user launches the application and enters their current location and destination in the input fields. They also set a search range (e.g., within 5km).
[0626] Step 2:
[0627] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[0628] Step 3:
[0629] The server accesses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (latitude and longitude) along the route.
[0630] Step 4:
[0631] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[0632] Step 5:
[0633] The server accesses restaurant information service APIs (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0634] Step 6:
[0635] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[0636] Step 7:
[0637] The device collects user emotional data. This emotional data is collected through methods such as input content, voice tone, and facial expression analysis.
[0638] Step 8:
[0639] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, the user's current emotional state (e.g., joy, sadness, stress) is determined.
[0640] Step 9:
[0641] The server recommends the perfect restaurant based on the analysis results. For example, if the user is feeling stressed, a cafe with a comfortable interior or a quiet restaurant will be recommended.
[0642] Step 10:
[0643] The server sends the final list, including these recommendations, to the user's device. This list contains detailed information such as the restaurant's name, address, genre, rating, and opening hours, based on the user's emotional state.
[0644] Step 11:
[0645] The device displays matching results and sentiment-based recommendations sent from the server. Users can view restaurants along their route in list or map format, and detailed information about each restaurant can also be displayed.
[0646] (Example 2)
[0647] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0648] In today's busy lifestyle, it is difficult for users to quickly and efficiently find suitable restaurants while on the go. Furthermore, there is a lack of systems that recommend restaurants while considering the emotional state of users during their travels. As a result, it often takes a long time for users to find restaurants that meet their needs, leading to inconvenience.
[0649] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0650] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring store information within the specified range, means for comparing the acquired store information with the route information, means for collecting user emotion data, means for determining the user's emotion using an emotion analysis engine, means for recommending stores based on the user's emotional state, and means for displaying the comparison results and recommendation results. This makes it possible for the user to instantly find a restaurant that is best suited to their emotional state at any given time while traveling from their current location to their destination.
[0651] A "user" refers to an individual who operates this system and inputs their current location, destination, and search range.
[0652] "Current location" refers to the location information of the starting point that the user enters into the system.
[0653] "Destination" refers to the location information of the final destination that the user enters into the system.
[0654] "Geographic information services" refer to external APIs or services that provide route information and map-related data.
[0655] "Route information" refers to latitude and longitude data related to the route from the starting point to the destination.
[0656] "Specified range" refers to the search range set on both sides of the route, and usually means a band-shaped area with a specific distance between it and the destination.
[0657] "Store information" refers to data about restaurants or other establishments located within a specified area. Specifically, this includes store name, address, rating, reviews, etc.
[0658] "Matching" refers to the process of comparing acquired store information with route information to select stores located along or near the route.
[0659] "Emotional data" refers to data related to emotions that is collected based on the user's facial expressions, voice tone, input patterns, etc.
[0660] An "emotion analysis engine" refers to software or a service that analyzes emotional data to determine a user's emotional state.
[0661] "Recommendation" refers to the process of suggesting stores that are suitable for the user's emotional state based on the results of an emotion analysis engine.
[0662] "Display" refers to the process of visually presenting matching results and recommendation results on the user's device in list or map format.
[0663] This invention is a system that allows users to efficiently find restaurants on their way from their current location to their destination. Furthermore, by combining it with an emotion engine that recognizes the user's emotions, it aims to meet the user's needs by recommending restaurants that are suitable for the user's emotions. A detailed embodiment of this system is shown below.
[0664] First, the user enters their current location and destination. They launch the application provided by the user and enter their current location and destination in the text boxes. They can also set a search range (e.g., within 5km). This allows users to easily input the necessary information.
[0665] Secondly, the terminal sends the user's input data to the server. The server uses geographic information services (e.g., map provision APIs) to obtain route information from the current location to the destination. Examples of such geographic information services include the Google Maps API and the OpenStreetMap API. The obtained route information includes latitude and longitude data from the starting point to the destination.
[0666] Thirdly, the server defines a specified range on the route based on the route information it has acquired. A band-shaped polygonal region with a specific distance (e.g., 5km) on both sides of the route is generated. This determines the search range for stores (restaurants, etc.) located along the route. This range is set as a buffer zone with a fixed distance on both sides, relative to the center line of the route.
[0667] Fourth, the server retrieves store information within a specified range. Using store information APIs (e.g., Google Places API, Yelp API, Zomato API), the server searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area, and retrieves data on restaurants within this range. The retrieved data includes details such as the store name, address, and user rating.
[0668] Fifth, the server compares the acquired store information with the route information. Distance calculation methods (e.g., Haverstein distance or Euclidean distance) are used to determine the specific location and calculate how far each restaurant is from the route. This allows the server to select restaurants that are on or near the route.
[0669] Sixth, the device collects user emotional data. This data is collected through sensors such as cameras and microphones, and facial expressions, voice tone, and input patterns are analyzed. This allows the user's current emotional state to be understood in real time.
[0670] Seventh, the server uses an emotion engine to determine the user's emotions. Using an emotion analysis API (e.g., Microsoft Azure Emotion API, IBM Watson Tone Analyzer), the server analyzes the collected emotion data to determine the user's emotional state.
[0671] Eighth, the server recommends restaurants that are suitable for the user's emotional state based on the analysis results. For example, it recommends a relaxing cafe to a user who is feeling stressed, and a lively restaurant to a user who is feeling happy.
[0672] Finally, ninth, the device displays matching and recommendation results to the user. Users can view this information in list or map format. Detailed information includes store name, address, rating, and reviews. When the user selects detailed information, the navigation function displays the route to the selected store.
[0673] Specific example
[0674] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0675] 1. The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0676] 2. The device sends this information to the server.
[0677] 3. The server uses a geographic information service API to obtain route information from Tokyo Station to Shinjuku Station.
[0678] 4. The server sets a 5km search range for the route and defines this range as a polygon region.
[0679] 5. The server retrieves restaurant information within the specified range via the restaurant information provision API. This data includes details for each restaurant.
[0680] 6. The server compares the acquired store information with the route information and selects the restaurant closest to it.
[0681] 7. The device collects user emotion data, and the server analyzes that data using an emotion engine. For example, it might determine that the user is feeling stressed.
[0682] 8. Based on the emotion analysis results, the server recommends relaxing cafes or quiet restaurants suitable for stress relief.
[0683] 9. The device displays restaurants to the user in list or map format. The user can view detailed information and choose a suitable restaurant. It also displays the route to the restaurant using the navigation function.
[0684] Examples of prompts for generative AI models
[0685] "A user is searching for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. This user is currently stressed. Please recommend relaxing cafes or quiet restaurants."
[0686] By inputting prompts in this format into the AI model, the system can recommend restaurants suitable for the target user. The use of specific prompts further improves the accuracy and usefulness of the AI model.
[0687] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0688] Step 1: User input
[0689] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km). The input data includes the current location, destination, and search range.
[0690] Specific actions:
[0691] The user enters "Tokyo Station" and "Shinjuku Station" in the "Current Location" and "Destination" text fields respectively, and selects "5km" from the search range dropdown.
[0692] The input data is saved on the device in JSON format and is ready to be sent to the server.
[0693] Input: Current location (Tokyo Station), Destination (Shinjuku Station), Search range (5km)
[0694] Output: Input data in JSON format
[0695] Step 2: Obtain route information
[0696] The terminal sends user input data to the server. The server uses a geographic information service API to obtain route information from the current location to the destination.
[0697] Specific actions:
[0698] The terminal sends input data in JSON format to the server.
[0699] The server sends a request to the geographic information service API to obtain route information from "Tokyo Station" to "Shinjuku Station".
[0700] Input: User input data (current location, destination, search area)
[0701] Output: Route information (latitude and longitude data)
[0702] Step 3: Define the specified range
[0703] Based on the route information acquired by the server, a polygon region is generated with a specified search range (5km) on both sides of the route.
[0704] Specific actions:
[0705] The server calculates the centerline of the route and sets up 5km buffers on both sides of it.
[0706] A polygon region is generated and defined as the search area.
[0707] Input: Route information
[0708] Output: Polygon region (search area)
[0709] Step 4: Obtain store information
[0710] The server uses a store information provision API to search for and retrieve restaurant information within the generated polygon area.
[0711] Specific actions:
[0712] The server sends a polygon region to the store information provision API and makes a request.
[0713] The acquired store information includes store name, address, and user ratings.
[0714] Input: Polygon region
[0715] Output: Store information (store name, address, rating, etc.)
[0716] Step 5: Match store information with route information.
[0717] The server compares the acquired store information with route information and selects stores that are on or near the route.
[0718] Specific actions:
[0719] The server uses distance calculation methods (such as Haverstein distance or Euclidean distance) to determine how far each store is from the route.
[0720] List stores that are within a specified distance from the route.
[0721] Input: Store information, route information
[0722] Output: Matched store list
[0723] Step 6: Collect user sentiment data.
[0724] The device collects user emotion data through sensors such as cameras and microphones.
[0725] Specific actions:
[0726] The device captures the user's facial expressions with its camera and records their voice with its microphone.
[0727] The system also records user input patterns such as taps and swipes and transmits them as sensor data.
[0728] Input: User's facial expressions, voice, input patterns
[0729] Output: Sentiment data
[0730] Step 7: Analyze emotions with an emotion analysis engine.
[0731] The server uses an emotion analysis engine to analyze the collected emotion data and determine the user's emotional state.
[0732] Specific actions:
[0733] The server sends data to an emotion analysis API, which analyzes emotions from facial expressions and voice.
[0734] The analysis results determine emotional states such as "joy," "sadness," and "stress."
[0735] Input: Sentiment data
[0736] Output: Emotional state (joy, sadness, stress, etc.)
[0737] Step 8: Make emotionally driven recommendations.
[0738] Based on the analysis results, the server recommends restaurants that are suitable for the user's emotional state.
[0739] Specific actions:
[0740] Based on the matched list of stores and the user's emotional state, the server makes recommendations such as, "For users who are feeling stressed, here are some relaxing cafes."
[0741] Generate a list of recommendations with priority.
[0742] Input: Matched store list, emotional status
[0743] Output: Recommendation List
[0744] Step 9: Display the results to the user.
[0745] The terminal displays the matching results and recommendation results sent from the server to the user.
[0746] Specific actions:
[0747] The device displays recommended stores in list or map format.
[0748] Allow users to view detailed information about each store (address, rating, reviews).
[0749] When a user selects detailed information, the navigation function displays the route to the specified store.
[0750] Input: Recommendation list
[0751] Output: Store information and route information displayed to the user
[0752] (Application Example 2)
[0753] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0754] When users search for routes from their current location to their destination, it is difficult to efficiently find restaurants along the route. Furthermore, there is a lack of systems that not only find restaurants but also recommend appropriate restaurants based on the user's current emotional state. Current navigation systems provide information uniformly without considering the user's emotions, making it difficult to make recommendations that meet the user's needs.
[0755] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, means for displaying the comparison results, means for collecting user emotion data using a microphone and a camera, emotion analysis means for analyzing the collected emotion data to determine the user's emotional state, and means for recommending restaurants suitable for the emotional state. As a result, the user can efficiently find a restaurant that is best suited to their emotional state while on their way from their current location to their destination.
[0756] A "user" is an individual who uses the system to search for a route from their current location to their destination and find a suitable restaurant.
[0757] "Current location" refers to the location where the user is situated when using the system.
[0758] A "destination" is the final place that a user is trying to reach using the system.
[0759] A "map service" is a server that provides location information and is used to obtain route information, information about nearby facilities, and so on.
[0760] "Route information" refers to detailed information such as the route, distance, and estimated time from your current location to your destination.
[0761] "Specified range" refers to the area within the route specified by the user that will be searched.
[0762] "Restaurant information" refers to detailed information about restaurants, such as their location, type, business hours, and ratings.
[0763] "Matching" refers to comparing acquired restaurant information with route information and selecting restaurants that fall within a specified range.
[0764] A "microphone" is a device used to collect sound. It is part of the means of acquiring user emotion data.
[0765] A "camera" is a device used to capture images and videos. It is also a means of acquiring user emotional data.
[0766] "Emotional data" refers to information collected using microphones and cameras, such as the user's facial expressions and tone of voice.
[0767] "Emotional analysis" refers to the process of analyzing collected emotional data to determine the user's current emotional state.
[0768] "Emotional state" refers to the user's psychological state based on analyzed emotional data, and includes emotions such as joy, sadness, and stress.
[0769] "Recommendation" refers to identifying and presenting restaurants that are suitable for a user's emotional state.
[0770] The following describes an embodiment for carrying out this invention. First, the system is configured as follows: The user inputs their current location and destination, and obtains route information in cooperation with a map service. Based on the obtained route information, a specified range is defined, and restaurant information within that range is obtained. Then, the obtained restaurant information is compared with the route information, and the comparison result is displayed. Furthermore, the user's emotional data is collected using a microphone and camera, and the collected emotional data is analyzed to determine the user's current emotional state. A suitable restaurant is recommended to the user according to that emotional state.
[0771] Hardware and software
[0772] Hardware:
[0773] Autonomous vehicles: Function as part of the navigation system and display.
[0774] Microphone: Collects the user's voice tone.
[0775] Camera: Collects the user's facial expressions.
[0776] software:
[0777] Map service APIs (e.g., Google Maps API, OpenStreetMap API): Retrieve route information and restaurant information.
[0778] Emotion recognition engine: Analyzes user emotion data to determine the current emotional state.
[0779] Data processing and data calculation
[0780] The server uses a map service API to obtain route information based on the user's entered current location and destination. This route information includes latitude and longitude data along the route. Based on the obtained route information, a specified area is defined. This area is defined as a polygon region with a fixed distance width centered on the route. Next, the server uses a restaurant information service API to obtain restaurant information within that polygon region. The obtained restaurant information is compared with the route information, and the most suitable restaurant for the user is selected.
[0781] To determine the user's current emotional state, a microphone and camera collect the user's voice tone and facial expressions. The collected data is sent to an emotion recognition engine, which analyzes the user's emotional state. After the emotional state is determined, the server selects and recommends the most suitable restaurant for that state. This recommendation result is displayed on the vehicle's display and communicated to the user.
[0782] Specific example
[0783] For example, when a user travels from Tokyo Station to Shinjuku Station, route information is entered into the navigation system of an autonomous vehicle. If the system determines that the user is experiencing stress, the emotion recognition engine analyzes the information. Based on these results, the server recommends relaxing cafes or quiet restaurants that can help alleviate the user's stress.
[0784] Example of a prompt:
[0785] Please find restaurants along the route from Tokyo Station to Shinjuku Station. Since the user may be experiencing stress at this time, please recommend relaxing cafes or quiet restaurants.
[0786] This format allows users to efficiently find restaurants that best suit their emotional state while on their way from their current location to their destination.
[0787] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0788] Step 1:
[0789] The system provides users with a way to input their current location and destination, and allows them to set a search range (e.g., within 5km).
[0790] Specific operation: The user enters their current location and destination into the vehicle's navigation system and specifies the search area.
[0791] Input: Current location, destination, search area.
[0792] Output: Current location, destination, and search range are sent to the server.
[0793] Step 2:
[0794] A means of obtaining route information in conjunction with a map service, and the act of obtaining that information.
[0795] Specific operation: The device calls a map service API (e.g., Google Maps API) to obtain route information from its current location to its destination.
[0796] Input: Current location, destination.
[0797] Data processing: The map service API calculates coordinate data (latitude and longitude) along the route and determines the optimal route.
[0798] Output: Route information (multiple coordinate data).
[0799] Step 3:
[0800] Define a specified range on the route based on the acquired route information.
[0801] Specific operation: Based on the route information acquired by the server, the specified search ranges on both sides of the route are set as polygon regions.
[0802] Input: Route information, search range.
[0803] Data processing: A strip-shaped region of a fixed width is generated along the path, and this polygon region is defined.
[0804] Output: Polygon region (specified range).
[0805] Step 4:
[0806] Retrieve restaurant information within the specified range.
[0807] Specific operation: The server uses a restaurant information service API (e.g., Google Places API) to search for restaurant information within the polygon area.
[0808] Input: Polygon region.
[0809] Data processing: The restaurant information service API collects restaurant information within the polygon area.
[0810] Output: Restaurant information.
[0811] Step 5:
[0812] The acquired restaurant information is compared with route information.
[0813] Specific operation: The server compares the acquired restaurant information with the route information and selects a restaurant within the specified range.
[0814] Input: Restaurant information, route information.
[0815] Data calculation: Use distance calculation methods to compare the location of each restaurant with its location along the route.
[0816] Output: Matching results (list of restaurants along the route).
[0817] Step 6:
[0818] The system uses microphones and cameras to collect user emotion data.
[0819] Specific operation: The device's microphone and camera collect the user's voice tone and facial expressions.
[0820] Input: User's voice tone and facial expression.
[0821] Output: Emotional data (voice and facial expression data).
[0822] Step 7:
[0823] An emotion analysis method is used to analyze collected emotion data and determine the user's emotional state.
[0824] Specific operation: The server uses an emotion recognition engine to analyze the collected emotion data and determine the user's emotional state.
[0825] Input: Sentiment data.
[0826] Data processing: The emotion recognition engine analyzes voice tone and facial expressions to determine the user's emotional state (e.g., stress, joy).
[0827] Output: Emotional state.
[0828] Step 8:
[0829] We recommend restaurants that are suitable for your emotional state.
[0830] Specific operation: The server selects the most suitable restaurant based on the user's emotional state and recommends it to the user.
[0831] Input: Emotional state, matching result.
[0832] Data processing: Filter restaurants based on emotional state (e.g., select restaurants suitable for stress relief).
[0833] Output: Recommendation results (list of the best restaurants).
[0834] Step 9:
[0835] Display the matching results and recommendation results.
[0836] Specific operation: The terminal displays the matching and recommendation results sent from the server. Users can view them in list or map format.
[0837] Input: Matching results, recommendation results.
[0838] Output: Displayed list of restaurants and their details.
[0839] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0840] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0841] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0842] [Third Embodiment]
[0843] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0844] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0845] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0846] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0847] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0848] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0849] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0850] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0851] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0852] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0853] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0854] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0855] The system of the present invention enables users to efficiently find restaurants on their way from their current location to their destination. An embodiment of this system will be described below.
[0856] Natural language explanation of program processing
[0857] The program of this system is processed as follows:
[0858] 1. Receive user input.
[0859] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0860] 2. Obtain route information
[0861] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0862] 3. Set the specified range.
[0863] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0864] 4. Obtain restaurant information
[0865] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0866] 5. Perform verification.
[0867] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0868] 6. Display the results to the user.
[0869] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Detailed information such as name, address, genre, rating, and business hours is displayed for each restaurant.
[0870] Specific example
[0871] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0872] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[0873] The device sends this information to the server.
[0874] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[0875] The server sets a 5km search range for the route and defines this range as a polygon region.
[0876] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0877] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, ramen shops and cafes located near the route might be selected.
[0878] The device displays restaurants to the user in list or map format. Users can easily find restaurants along their route and view detailed information.
[0879] This system allows users to easily find restaurants along their route from their current location to their destination, enabling quick meal planning.
[0880] The following describes the processing flow.
[0881] Step 1:
[0882] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[0883] Step 2:
[0884] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[0885] Step 3:
[0886] The server accesses the map service API to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[0887] Step 4:
[0888] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[0889] Step 5:
[0890] The server accesses the restaurant information service API and searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[0891] Step 6:
[0892] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[0893] Step 7:
[0894] The server generates a list of restaurants selected through matching and sends this list to the terminal. This list includes detailed information about each restaurant, such as its name, address, genre, rating, and business hours.
[0895] Step 8:
[0896] The terminal displays a list of restaurants received from the server to the user. There are two display formats: list view and map view, allowing the user to view detailed information about each restaurant.
[0897] (Example 1)
[0898] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0899] For many users, efficiently finding restaurants and other facilities along the way from their current location to their destination is a challenge. Traditional systems provide route information and facility information separately, requiring users to integrate the information themselves, which is not only time-consuming but also increases the risk of missing suitable facilities. Furthermore, there has been no efficient way to search for and display facilities within a certain range along a route. Therefore, there is a need for a method that allows users to easily find facilities along their route.
[0900] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0901] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring location information within the specified range, means for comparing the acquired location information with the route information, and means for displaying the comparison results. This makes it possible for the user to efficiently find restaurants and other facilities on their way from their current location to their destination.
[0902] "Current location" refers to the user's current location.
[0903] "Destination" refers to the point that the user is trying to reach.
[0904] "Geographic information services" refer to external services that provide geographic information and calculate route information.
[0905] "Route information" refers to information that shows the path from your current location to your destination.
[0906] "Specified range" refers to the search range set on both sides of the route.
[0907] "Location information" refers to information about facilities and shops located within a specified area.
[0908] "Matching" refers to comparing route information with location information to find matching points.
[0909] "Matching result" refers to the matching location information obtained during the matching process.
[0910] The system of the present invention enables users to efficiently find locations while traveling from their current location to their destination. Specific embodiments for carrying out the invention are described below.
[0911] This system consists of three main components: the user, the terminal, and the server. The system operates when the user uses a terminal such as a smartphone or tablet to input their current location and destination.
[0912] The user first launches the application and enters their current location and destination. This information is sent from the device to the server based on the location information entered by the user. The server receives this data and uses a geographic information service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information. The obtained route information includes multiple coordinate data points.
[0913] The server then sets specified search ranges on both sides of the route based on the acquired route information. For example, it sets a 5km range for each point along the route and defines this range as a polygon region. This polygon region is maintained as an internal data structure and serves as the basis for searching for location information within the specified range.
[0914] The core processing involves the server retrieving location information within this polygon region. This is done using APIs from location information services (e.g., Google Places API, Yelp API, Zomato API). The server calls these APIs to obtain detailed information such as the name, address, rating, and genre of places within the specified range.
[0915] The acquired location information is then compared with route information by the server, and locations on the route or within a certain distance from the route are selected. The server uses a distance calculation method to determine whether a location is on the route. This comparison result is sent to the terminal in JSON format.
[0916] The device analyzes the received matching results and displays them to the user. The display format can be either a list or a map, allowing the user to see locations close to their route on the map. Furthermore, when the user taps on a displayed location, detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0917] Specific example
[0918] For example, suppose a user searches for a route from Marunouchi 1-chome, Chiyoda-ku, Tokyo to Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo, and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[0919] 1. The user enters their current location "Marunouchi 1-chome, Chiyoda-ku, Tokyo" and their destination "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo" into the app and sets the search range to "within 5km".
[0920] 2. The device sends this information to the server.
[0921] 3. The server uses a geographic information service API to obtain route information from the current location to the destination. This route includes detailed coordinate data.
[0922] 4. The server sets a 5km search range based on the route information and defines this range as a polygon region.
[0923] 5. The server obtains location information within the specified range through the location information provision service API.
[0924] 6. The server compares the location information it has acquired with the route information and selects a location that is on the route or within a certain distance from the route.
[0925] 7. The device displays location information to the user in list or map format. The user can view detailed information from the map or list.
[0926] This allows users to efficiently find their location while on their way from their current location to their destination.
[0927] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0928] Step 1: Receive user input
[0929] The user launches the application, enters their current location and destination, and sets the search range. The input data includes the current location as "Marunouchi 1-chome, Chiyoda-ku, Tokyo," the destination as "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo," and a search range of "5km." The specific action involves the user entering this information into the smartphone's input field and tapping the "Search" button. The input data is saved on the device and used in the next step.
[0930] Step 2: Obtain route information
[0931] The device sends data entered by the user, including the current location, destination, and search area, to the server. The server uses a geographic information service API (e.g., Google Maps API) to obtain route information from the current location to the destination. The input data consists of the current location and destination, and the server sends a request to the API, obtaining multiple route points (coordinate data) as output. This coordinate data indicates how the route progresses.
[0932] Step 3: Set the specified range.
[0933] Based on the route information acquired by the server, a specified search range is set on both sides of the route. The server generates a 5km buffer for each coordinate point and connects them to create a band-shaped polygon region. The coordinate data of the route points is used as input data, and the generated polygon region is obtained as output. The polygon region is stored as an internal data structure and used to search for restaurant information in the next step.
[0934] Step 4: Obtain restaurant information
[0935] The server calls a location information service API (e.g., Google Places API) to retrieve restaurant information within the polygon region. The input data used is the latitude and longitude information of the polygon region. The output is in JSON format and includes information such as the restaurant's name, address, rating, and genre. The server parses this information and temporarily stores it in its internal database.
[0936] Step 5: Perform verification
[0937] The server compares acquired restaurant information with route information. Specifically, it calculates the distance to route points and selects restaurants that are on the route or within a certain distance from the route. The input data consists of restaurant information and route point coordinate data, and the output is filtered restaurant information. In this process, a distance calculation method is used to determine the exact location.
[0938] Step 6: Display the results to the user.
[0939] The device displays the matching results sent from the server to the user. Filtered restaurant information sent from the server is used as input data. As output, the user can view the restaurant information in list or map format. Specifically, when the user taps a restaurant on the list, its detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[0940] This series of processes allows users to efficiently find restaurants along their route.
[0941] (Application Example 1)
[0942] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0943] Traditionally, there was no system that allowed users to find restaurants along their route from their current location to their destination and place orders on the spot. This made it difficult for users to efficiently find restaurants while traveling, order meals in advance, and receive them quickly. Furthermore, the lack of a way to check restaurant menus along the route and order in real time resulted in low user convenience. Therefore, there is a need to provide an environment where users can efficiently plan meals and order smoothly while traveling.
[0944] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0945] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, and means for displaying the comparison results to the user, as well as allowing the user to check restaurant menus from the search results and place orders in real time. This makes it possible for the user to find restaurants on their way from their current location to their destination, place orders efficiently, and receive their meals in line with their arrival time.
[0946] A "user" is an individual or group that uses this system and is the person who enters their current location and destination.
[0947] "Current location" refers to the user's current location at that moment, and is the location acquired by this system as initial information.
[0948] The "destination" refers to the final place the user intends to reach, and is the endpoint for this system to calculate the route.
[0949] A "map service" is an external online map platform that provides route information and geographic information, including, for example, online map APIs.
[0950] "Route information" refers to data about the route or path from the current location to the destination, and includes multiple coordinate points.
[0951] The "specified range" is a search area set on both sides of a route based on route information, and is a band-shaped polygonal region indicating a predetermined distance.
[0952] "Restaurant information" refers to detailed data about restaurants, including location, name, genre, rating, and business hours.
[0953] "Matching" is the process of comparing acquired restaurant information with route information to determine which restaurants match.
[0954] A "menu" is a list of the dishes and drinks offered by a restaurant, and includes detailed items and prices.
[0955] "Real-time" refers to a state where processing is performed immediately in response to user actions, meaning that the results are reflected instantly when the user places an order.
[0956] "Ordering" refers to the process of purchasing food and beverages selected from a restaurant's menu.
[0957] The present invention provides a system that allows users to efficiently find restaurants on their way from their current location to their destination, view restaurant menus from search results, and place orders in real time. A specific embodiment of this system will now be described.
[0958] Natural language explanation of program processing
[0959] The main processes of this system are carried out as follows:
[0960] 1. User input:
[0961] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[0962] 2. Obtaining route information:
[0963] The terminal sends user input data to the server. The server uses a map service API (e.g., an online map API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[0964] 3. Setting the specified range:
[0965] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[0966] 4. Obtaining restaurant information:
[0967] The server uses an API from a restaurant information service (e.g., an online restaurant information API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[0968] 5. Perform verification:
[0969] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[0970] 6. Displaying results and ordering functions:
[0971] The terminal displays the matching results sent from the server to the user. The user can view restaurants along their route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks on the spot.
[0972] Specific example
[0973] For example, suppose a user searches for a route from Shinjuku Station to Shibuya Station, finds restaurants within a 5km radius along that route, and wants to place an order. In this case, the system would process the request in the following steps.
[0974] The user enters Shinjuku Station (current location) and Shibuya Station (destination) into the app and sets a search range of within 5km.
[0975] The device sends this information to the server.
[0976] The server uses a map service API to obtain route information from Shinjuku Station to Shibuya Station. This route includes detailed coordinate data, such as Shinjuku Station → Yoyogi → Harajuku → Shibuya Station.
[0977] The server sets a 5km search range for the route and defines this range as a polygon region.
[0978] The server retrieves restaurant information within a specified range via a restaurant information service API.
[0979] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, cafes and restaurants located near the route may be selected.
[0980] The device displays restaurants along the user's route in a list or map format, and the user checks the restaurant menus and places an order.
[0981] Example of a prompt
[0982] By inputting the following prompts into the generating AI model, you can generate the code and procedures necessary to implement the system's processing.
[0983] Write a Python program that retrieves route information from the current location to a destination and searches for restaurants within 5km of that route. The program should use a map service API and a restaurant information service API to retrieve restaurant information along the specified route, display the name and address of each restaurant, and include a function for the user to view menus and place orders.
[0984] The above describes the embodiments for carrying out the present invention. This system enables users to efficiently find restaurants while on the go and place orders in real time.
[0985] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0986] Step 1:
[0987] The user launches the application and enters their current location and destination. They also specify a search area (e.g., within 5km). The input data includes the current location, destination, and search area. This information forms the basis of the system's setup.
[0988] Step 2:
[0989] The terminal sends user input data to the server. The server sends a request to a map service API (e.g., an online map API) to obtain route information from the current location to the destination. In this process, route information including multiple route points is output, with the coordinates of the current location and destination as input.
[0990] Step 3:
[0991] The server sets specified search ranges on both sides of the route based on the acquired route information. Specifically, it generates a strip-shaped polygon region with a width of 5 km on both sides of the route. In this process, the route information and the set search range are used as input, and the data of the polygon region is output.
[0992] Step 4:
[0993] The server sends a request to a restaurant information service API (e.g., an online restaurant information API) to find restaurants within a specified range. At this time, the latitude and longitude information of the generated polygon area is used as input, and restaurant information within the specified range is output.
[0994] Step 5:
[0995] The server compares the acquired restaurant information with the route information. Specifically, it uses a distance calculation method to select restaurants that are on the route or within a certain distance from the route. This process uses the acquired restaurant information and route information as input and outputs a list of restaurants that exist on the route.
[0996] Step 6:
[0997] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks. In this step, the matching results and menu information are used as input, and the displayed restaurant information and the user's order are output.
[0998] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0999] This invention enables users to efficiently find restaurants on their way from their current location to their destination, and further, by combining it with an emotion engine that recognizes the user's emotions, it recommends restaurants that are appropriate to the user's emotions. An embodiment of this system will be described below.
[1000] Natural language explanation of program processing
[1001] The program of this system is processed as follows:
[1002] 1. Receive user input.
[1003] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[1004] 2. Obtain route information
[1005] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[1006] 3. Set the specified range.
[1007] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[1008] 4. Obtain restaurant information
[1009] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[1010] 5. Perform verification.
[1011] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[1012] 6. Recognize the user's emotions.
[1013] The device collects user emotional data through user input, actions, and sensors (e.g., camera, microphone). This includes facial expressions, voice tone, and input patterns.
[1014] 7. Analysis using an emotion engine
[1015] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, it determines the user's current emotional state (e.g., joy, sadness, stress).
[1016] 8. Emotion-based recommendations
[1017] The server recommends restaurants that are appropriate for the user's emotional state, based on the analysis results of the emotion engine. This recommendation is then compared with route information and acquired restaurant information to select the most suitable establishment.
[1018] 9. Display the results to the user.
[1019] The device displays matching results and sentiment-based recommendations sent from the server to the user. Users can view restaurants along their route in list or map format, and detailed information about each restaurant is displayed.
[1020] Specific example
[1021] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1022] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[1023] The device sends this information to the server.
[1024] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[1025] The server sets a 5km search range for the route and defines this range as a polygon region.
[1026] The server retrieves restaurant information within a specified range via a restaurant information service API.
[1027] The server compares the restaurant information it has acquired with the route information and selects the restaurant closest to it.
[1028] The device collects user emotional data, and the server analyzes that data using an emotion engine. For example, it might determine if the user is feeling stressed.
[1029] Based on the analysis results of the emotion engine, the server recommends relaxing cafes and tranquil restaurants suitable for stress relief.
[1030] The device displays restaurants to the user in list or map format. The user can then view detailed information and choose a suitable restaurant.
[1031] This system allows users to efficiently find restaurants that are best suited to their individual emotional state while traveling from their current location to their destination.
[1032] The following describes the processing flow.
[1033] Step 1:
[1034] The user launches the application and enters their current location and destination in the input fields. They also set a search range (e.g., within 5km).
[1035] Step 2:
[1036] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[1037] Step 3:
[1038] The server accesses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (latitude and longitude) along the route.
[1039] Step 4:
[1040] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[1041] Step 5:
[1042] The server accesses restaurant information service APIs (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[1043] Step 6:
[1044] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[1045] Step 7:
[1046] The device collects user emotional data. This emotional data is collected through methods such as input content, voice tone, and facial expression analysis.
[1047] Step 8:
[1048] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, the user's current emotional state (e.g., joy, sadness, stress) is determined.
[1049] Step 9:
[1050] The server recommends the perfect restaurant based on the analysis results. For example, if the user is feeling stressed, a cafe with a comfortable interior or a quiet restaurant will be recommended.
[1051] Step 10:
[1052] The server sends the final list, including these recommendations, to the user's device. This list contains detailed information such as the restaurant's name, address, genre, rating, and opening hours, based on the user's emotional state.
[1053] Step 11:
[1054] The device displays matching results and sentiment-based recommendations sent from the server. Users can view restaurants along their route in list or map format, and detailed information about each restaurant can also be displayed.
[1055] (Example 2)
[1056] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1057] In today's busy lifestyle, it is difficult for users to quickly and efficiently find suitable restaurants while on the go. Furthermore, there is a lack of systems that recommend restaurants while considering the emotional state of users during their travels. As a result, it often takes a long time for users to find restaurants that meet their needs, leading to inconvenience.
[1058] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1059] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring store information within the specified range, means for comparing the acquired store information with the route information, means for collecting user emotion data, means for determining the user's emotion using an emotion analysis engine, means for recommending stores based on the user's emotional state, and means for displaying the comparison results and recommendation results. This makes it possible for the user to instantly find a restaurant that is best suited to their emotional state at any given time while traveling from their current location to their destination.
[1060] A "user" refers to an individual who operates this system and inputs their current location, destination, and search range.
[1061] "Current location" refers to the location information of the starting point that the user enters into the system.
[1062] "Destination" refers to the location information of the final destination that the user enters into the system.
[1063] "Geographic information services" refer to external APIs or services that provide route information and map-related data.
[1064] "Route information" refers to latitude and longitude data related to the route from the starting point to the destination.
[1065] "Specified range" refers to the search range set on both sides of the route, and usually means a band-shaped area with a specific distance between it and the destination.
[1066] "Store information" refers to data about restaurants or other establishments located within a specified area. Specifically, this includes store name, address, rating, reviews, etc.
[1067] "Matching" refers to the process of comparing acquired store information with route information to select stores located along or near the route.
[1068] "Emotional data" refers to data related to emotions that is collected based on the user's facial expressions, voice tone, input patterns, etc.
[1069] An "emotion analysis engine" refers to software or a service that analyzes emotional data to determine a user's emotional state.
[1070] "Recommendation" refers to the process of suggesting stores that are suitable for the user's emotional state based on the results of an emotion analysis engine.
[1071] "Display" refers to the process of visually presenting matching results and recommendation results on the user's device in list or map format.
[1072] This invention is a system that allows users to efficiently find restaurants on their way from their current location to their destination. Furthermore, by combining it with an emotion engine that recognizes the user's emotions, it aims to meet the user's needs by recommending restaurants that are suitable for the user's emotions. A detailed embodiment of this system is shown below.
[1073] First, the user enters their current location and destination. They launch the application provided by the user and enter their current location and destination in the text boxes. They can also set a search range (e.g., within 5km). This allows users to easily input the necessary information.
[1074] Secondly, the terminal sends the user's input data to the server. The server uses geographic information services (e.g., map provision APIs) to obtain route information from the current location to the destination. Examples of such geographic information services include the Google Maps API and the OpenStreetMap API. The obtained route information includes latitude and longitude data from the starting point to the destination.
[1075] Thirdly, the server defines a specified range on the route based on the route information it has acquired. A band-shaped polygonal region with a specific distance (e.g., 5km) on both sides of the route is generated. This determines the search range for stores (restaurants, etc.) located along the route. This range is set as a buffer zone with a fixed distance on both sides, relative to the center line of the route.
[1076] Fourth, the server retrieves store information within a specified range. Using store information APIs (e.g., Google Places API, Yelp API, Zomato API), the server searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area, and retrieves data on restaurants within this range. The retrieved data includes details such as the store name, address, and user rating.
[1077] Fifth, the server compares the acquired store information with the route information. Distance calculation methods (e.g., Haverstein distance or Euclidean distance) are used to determine the specific location and calculate how far each restaurant is from the route. This allows the server to select restaurants that are on or near the route.
[1078] Sixth, the device collects user emotional data. This data is collected through sensors such as cameras and microphones, and facial expressions, voice tone, and input patterns are analyzed. This allows the user's current emotional state to be understood in real time.
[1079] Seventh, the server uses an emotion engine to determine the user's emotions. Using an emotion analysis API (e.g., Microsoft Azure Emotion API, IBM Watson Tone Analyzer), the server analyzes the collected emotion data to determine the user's emotional state.
[1080] Eighth, the server recommends restaurants that are suitable for the user's emotional state based on the analysis results. For example, it recommends a relaxing cafe to a user who is feeling stressed, and a lively restaurant to a user who is feeling happy.
[1081] Finally, ninth, the device displays matching and recommendation results to the user. Users can view this information in list or map format. Detailed information includes store name, address, rating, and reviews. When the user selects detailed information, the navigation function displays the route to the selected store.
[1082] Specific example
[1083] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1084] 1. The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[1085] 2. The device sends this information to the server.
[1086] 3. The server uses a geographic information service API to obtain route information from Tokyo Station to Shinjuku Station.
[1087] 4. The server sets a 5km search range for the route and defines this range as a polygon region.
[1088] 5. The server retrieves restaurant information within the specified range via the restaurant information provision API. This data includes details for each restaurant.
[1089] 6. The server compares the acquired store information with the route information and selects the restaurant closest to it.
[1090] 7. The device collects user emotion data, and the server analyzes that data using an emotion engine. For example, it might determine that the user is feeling stressed.
[1091] 8. Based on the emotion analysis results, the server recommends relaxing cafes or quiet restaurants suitable for stress relief.
[1092] 9. The device displays restaurants to the user in list or map format. The user can view detailed information and choose a suitable restaurant. It also displays the route to the restaurant using the navigation function.
[1093] Examples of prompts for generative AI models
[1094] "A user is searching for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. This user is currently stressed. Please recommend relaxing cafes or quiet restaurants."
[1095] By inputting prompts in this format into the AI model, the system can recommend restaurants suitable for the target user. The use of specific prompts further improves the accuracy and usefulness of the AI model.
[1096] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1097] Step 1: User input
[1098] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km). The input data includes the current location, destination, and search range.
[1099] Specific actions:
[1100] The user enters "Tokyo Station" and "Shinjuku Station" in the "Current Location" and "Destination" text fields respectively, and selects "5km" from the search range dropdown.
[1101] The input data is saved on the device in JSON format and is ready to be sent to the server.
[1102] Input: Current location (Tokyo Station), Destination (Shinjuku Station), Search range (5km)
[1103] Output: Input data in JSON format
[1104] Step 2: Obtain route information
[1105] The terminal sends user input data to the server. The server uses a geographic information service API to obtain route information from the current location to the destination.
[1106] Specific actions:
[1107] The terminal sends input data in JSON format to the server.
[1108] The server sends a request to the geographic information service API to obtain route information from "Tokyo Station" to "Shinjuku Station".
[1109] Input: User input data (current location, destination, search area)
[1110] Output: Route information (latitude and longitude data)
[1111] Step 3: Define the specified range
[1112] Based on the route information acquired by the server, a polygon region is generated with a specified search range (5km) on both sides of the route.
[1113] Specific actions:
[1114] The server calculates the centerline of the route and sets up 5km buffers on both sides of it.
[1115] A polygon region is generated and defined as the search area.
[1116] Input: Route information
[1117] Output: Polygon region (search area)
[1118] Step 4: Obtain store information
[1119] The server uses a store information provision API to search for and retrieve restaurant information within the generated polygon area.
[1120] Specific actions:
[1121] The server sends a polygon region to the store information provision API and makes a request.
[1122] The acquired store information includes store name, address, and user ratings.
[1123] Input: Polygon region
[1124] Output: Store information (store name, address, rating, etc.)
[1125] Step 5: Match store information with route information.
[1126] The server compares the acquired store information with route information and selects stores that are on or near the route.
[1127] Specific actions:
[1128] The server uses distance calculation methods (such as Haverstein distance or Euclidean distance) to determine how far each store is from the route.
[1129] List stores that are within a specified distance from the route.
[1130] Input: Store information, route information
[1131] Output: Matched store list
[1132] Step 6: Collect user sentiment data.
[1133] The device collects user emotion data through sensors such as cameras and microphones.
[1134] Specific actions:
[1135] The device captures the user's facial expressions with its camera and records their voice with its microphone.
[1136] The system also records user input patterns such as taps and swipes and transmits them as sensor data.
[1137] Input: User's facial expressions, voice, input patterns
[1138] Output: Sentiment data
[1139] Step 7: Analyze emotions with an emotion analysis engine.
[1140] The server uses an emotion analysis engine to analyze the collected emotion data and determine the user's emotional state.
[1141] Specific actions:
[1142] The server sends data to an emotion analysis API, which analyzes emotions from facial expressions and voice.
[1143] The analysis results determine emotional states such as "joy," "sadness," and "stress."
[1144] Input: Sentiment data
[1145] Output: Emotional state (joy, sadness, stress, etc.)
[1146] Step 8: Make emotionally driven recommendations.
[1147] Based on the analysis results, the server recommends restaurants that are suitable for the user's emotional state.
[1148] Specific actions:
[1149] Based on the matched list of stores and the user's emotional state, the server makes recommendations such as, "For users who are feeling stressed, here are some relaxing cafes."
[1150] Generate a list of recommendations with priority.
[1151] Input: Matched store list, emotional status
[1152] Output: Recommendation List
[1153] Step 9: Display the results to the user.
[1154] The terminal displays the matching results and recommendation results sent from the server to the user.
[1155] Specific actions:
[1156] The device displays recommended stores in list or map format.
[1157] Allow users to view detailed information about each store (address, rating, reviews).
[1158] When a user selects detailed information, the navigation function displays the route to the specified store.
[1159] Input: Recommendation list
[1160] Output: Store information and route information displayed to the user
[1161] (Application Example 2)
[1162] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1163] When users search for routes from their current location to their destination, it is difficult to efficiently find restaurants along the route. Furthermore, there is a lack of systems that not only find restaurants but also recommend appropriate restaurants based on the user's current emotional state. Current navigation systems provide information uniformly without considering the user's emotions, making it difficult to make recommendations that meet the user's needs.
[1164] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, means for displaying the comparison results, means for collecting user emotion data using a microphone and a camera, emotion analysis means for analyzing the collected emotion data to determine the user's emotional state, and means for recommending restaurants suitable for the emotional state. As a result, the user can efficiently find a restaurant that is best suited to their emotional state while on their way from their current location to their destination.
[1165] A "user" is an individual who uses the system to search for a route from their current location to their destination and find a suitable restaurant.
[1166] "Current location" refers to the location where the user is situated when using the system.
[1167] A "destination" is the final place that a user is trying to reach using the system.
[1168] A "map service" is a server that provides location information and is used to obtain route information, information about nearby facilities, and so on.
[1169] "Route information" refers to detailed information such as the route, distance, and estimated time from your current location to your destination.
[1170] "Specified range" refers to the area within the route specified by the user that will be searched.
[1171] "Restaurant information" refers to detailed information about restaurants, such as their location, type, business hours, and ratings.
[1172] "Matching" refers to comparing acquired restaurant information with route information and selecting restaurants that fall within a specified range.
[1173] A "microphone" is a device used to collect sound. It is part of the means of acquiring user emotion data.
[1174] A "camera" is a device used to capture images and videos. It is also a means of acquiring user emotional data.
[1175] "Emotional data" refers to information collected using microphones and cameras, such as the user's facial expressions and tone of voice.
[1176] "Emotional analysis" refers to the process of analyzing collected emotional data to determine the user's current emotional state.
[1177] "Emotional state" refers to the user's psychological state based on analyzed emotional data, and includes emotions such as joy, sadness, and stress.
[1178] "Recommendation" refers to identifying and presenting restaurants that are suitable for a user's emotional state.
[1179] The following describes an embodiment for carrying out this invention. First, the system is configured as follows: The user inputs their current location and destination, and obtains route information in cooperation with a map service. Based on the obtained route information, a specified range is defined, and restaurant information within that range is obtained. Then, the obtained restaurant information is compared with the route information, and the comparison result is displayed. Furthermore, the user's emotional data is collected using a microphone and camera, and the collected emotional data is analyzed to determine the user's current emotional state. A suitable restaurant is recommended to the user according to that emotional state.
[1180] Hardware and software
[1181] Hardware:
[1182] Autonomous vehicles: Function as part of the navigation system and display.
[1183] Microphone: Collects the user's voice tone.
[1184] Camera: Collects the user's facial expressions.
[1185] software:
[1186] Map service APIs (e.g., Google Maps API, OpenStreetMap API): Retrieve route information and restaurant information.
[1187] Emotion recognition engine: Analyzes user emotion data to determine the current emotional state.
[1188] Data processing and data calculation
[1189] The server uses a map service API to obtain route information based on the user's entered current location and destination. This route information includes latitude and longitude data along the route. Based on the obtained route information, a specified area is defined. This area is defined as a polygon region with a fixed distance width centered on the route. Next, the server uses a restaurant information service API to obtain restaurant information within that polygon region. The obtained restaurant information is compared with the route information, and the most suitable restaurant for the user is selected.
[1190] To determine the user's current emotional state, a microphone and camera collect the user's voice tone and facial expressions. The collected data is sent to an emotion recognition engine, which analyzes the user's emotional state. After the emotional state is determined, the server selects and recommends the most suitable restaurant for that state. This recommendation result is displayed on the vehicle's display and communicated to the user.
[1191] Specific example
[1192] For example, when a user travels from Tokyo Station to Shinjuku Station, route information is entered into the navigation system of an autonomous vehicle. If the system determines that the user is experiencing stress, the emotion recognition engine analyzes the information. Based on these results, the server recommends relaxing cafes or quiet restaurants that can help alleviate the user's stress.
[1193] Example of a prompt:
[1194] Please find restaurants along the route from Tokyo Station to Shinjuku Station. Since the user may be experiencing stress at this time, please recommend relaxing cafes or quiet restaurants.
[1195] This format allows users to efficiently find restaurants that best suit their emotional state while on their way from their current location to their destination.
[1196] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1197] Step 1:
[1198] The system provides users with a way to input their current location and destination, and allows them to set a search range (e.g., within 5km).
[1199] Specific operation: The user enters their current location and destination into the vehicle's navigation system and specifies the search area.
[1200] Input: Current location, destination, search area.
[1201] Output: Current location, destination, and search range are sent to the server.
[1202] Step 2:
[1203] A means of obtaining route information in conjunction with a map service, and the act of obtaining that information.
[1204] Specific operation: The device calls a map service API (e.g., Google Maps API) to obtain route information from its current location to its destination.
[1205] Input: Current location, destination.
[1206] Data processing: The map service API calculates coordinate data (latitude and longitude) along the route and determines the optimal route.
[1207] Output: Route information (multiple coordinate data).
[1208] Step 3:
[1209] Define a specified range on the route based on the acquired route information.
[1210] Specific operation: Based on the route information acquired by the server, the specified search ranges on both sides of the route are set as polygon regions.
[1211] Input: Route information, search range.
[1212] Data processing: A strip-shaped region of a fixed width is generated along the path, and this polygon region is defined.
[1213] Output: Polygon region (specified range).
[1214] Step 4:
[1215] Retrieve restaurant information within the specified range.
[1216] Specific operation: The server uses a restaurant information service API (e.g., Google Places API) to search for restaurant information within the polygon area.
[1217] Input: Polygon region.
[1218] Data processing: The restaurant information service API collects restaurant information within the polygon area.
[1219] Output: Restaurant information.
[1220] Step 5:
[1221] The acquired restaurant information is compared with route information.
[1222] Specific operation: The server compares the acquired restaurant information with the route information and selects a restaurant within the specified range.
[1223] Input: Restaurant information, route information.
[1224] Data calculation: Use distance calculation methods to compare the location of each restaurant with its location along the route.
[1225] Output: Matching results (list of restaurants along the route).
[1226] Step 6:
[1227] The system uses microphones and cameras to collect user emotion data.
[1228] Specific operation: The device's microphone and camera collect the user's voice tone and facial expressions.
[1229] Input: User's voice tone and facial expression.
[1230] Output: Emotional data (voice and facial expression data).
[1231] Step 7:
[1232] An emotion analysis method is used to analyze collected emotion data and determine the user's emotional state.
[1233] Specific operation: The server uses an emotion recognition engine to analyze the collected emotion data and determine the user's emotional state.
[1234] Input: Sentiment data.
[1235] Data processing: The emotion recognition engine analyzes voice tone and facial expressions to determine the user's emotional state (e.g., stress, joy).
[1236] Output: Emotional state.
[1237] Step 8:
[1238] We recommend restaurants that are suitable for your emotional state.
[1239] Specific operation: The server selects the most suitable restaurant based on the user's emotional state and recommends it to the user.
[1240] Input: Emotional state, matching result.
[1241] Data processing: Filter restaurants based on emotional state (e.g., select restaurants suitable for stress relief).
[1242] Output: Recommendation results (list of the best restaurants).
[1243] Step 9:
[1244] Display the matching results and recommendation results.
[1245] Specific operation: The terminal displays the matching and recommendation results sent from the server. Users can view them in list or map format.
[1246] Input: Matching results, recommendation results.
[1247] Output: Displayed list of restaurants and their details.
[1248] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1249] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1250] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[1251] [Fourth Embodiment]
[1252] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[1253] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1254] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1255] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[1256] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[1257] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[1258] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[1259] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[1260] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[1261] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1262] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1263] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[1264] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1265] The system of the present invention enables users to efficiently find restaurants on their way from their current location to their destination. An embodiment of this system will be described below.
[1266] Natural language explanation of program processing
[1267] The program of this system is processed as follows:
[1268] 1. Receive user input.
[1269] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[1270] 2. Obtain route information
[1271] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[1272] 3. Set the specified range.
[1273] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[1274] 4. Obtain restaurant information
[1275] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[1276] 5. Perform verification.
[1277] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[1278] 6. Display the results to the user.
[1279] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Detailed information such as name, address, genre, rating, and business hours is displayed for each restaurant.
[1280] Specific example
[1281] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1282] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[1283] The device sends this information to the server.
[1284] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[1285] The server sets a 5km search range for the route and defines this range as a polygon region.
[1286] The server retrieves restaurant information within a specified range via a restaurant information service API.
[1287] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, ramen shops and cafes located near the route might be selected.
[1288] The device displays restaurants to the user in list or map format. Users can easily find restaurants along their route and view detailed information.
[1289] This system allows users to easily find restaurants along their route from their current location to their destination, enabling quick meal planning.
[1290] The following describes the processing flow.
[1291] Step 1:
[1292] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[1293] Step 2:
[1294] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[1295] Step 3:
[1296] The server accesses the map service API to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[1297] Step 4:
[1298] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[1299] Step 5:
[1300] The server accesses the restaurant information service API and searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[1301] Step 6:
[1302] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[1303] Step 7:
[1304] The server generates a list of restaurants selected through matching and sends this list to the terminal. This list includes detailed information about each restaurant, such as its name, address, genre, rating, and business hours.
[1305] Step 8:
[1306] The terminal displays a list of restaurants received from the server to the user. There are two display formats: list view and map view, allowing the user to view detailed information about each restaurant.
[1307] (Example 1)
[1308] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1309] For many users, efficiently finding restaurants and other facilities along the way from their current location to their destination is a challenge. Traditional systems provide route information and facility information separately, requiring users to integrate the information themselves, which is not only time-consuming but also increases the risk of missing suitable facilities. Furthermore, there has been no efficient way to search for and display facilities within a certain range along a route. Therefore, there is a need for a method that allows users to easily find facilities along their route.
[1310] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[1311] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring location information within the specified range, means for comparing the acquired location information with the route information, and means for displaying the comparison results. This makes it possible for the user to efficiently find restaurants and other facilities on their way from their current location to their destination.
[1312] "Current location" refers to the user's current location.
[1313] "Destination" refers to the point that the user is trying to reach.
[1314] "Geographic information services" refer to external services that provide geographic information and calculate route information.
[1315] "Route information" refers to information that shows the path from your current location to your destination.
[1316] "Specified range" refers to the search range set on both sides of the route.
[1317] "Location information" refers to information about facilities and shops located within a specified area.
[1318] "Matching" refers to comparing route information with location information to find matching points.
[1319] "Matching result" refers to the matching location information obtained during the matching process.
[1320] The system of the present invention enables users to efficiently find locations while traveling from their current location to their destination. Specific embodiments for carrying out the invention are described below.
[1321] This system consists of three main components: the user, the terminal, and the server. The system operates when the user uses a terminal such as a smartphone or tablet to input their current location and destination.
[1322] The user first launches the application and enters their current location and destination. This information is sent from the device to the server based on the location information entered by the user. The server receives this data and uses a geographic information service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information. The obtained route information includes multiple coordinate data points.
[1323] The server then sets specified search ranges on both sides of the route based on the acquired route information. For example, it sets a 5km range for each point along the route and defines this range as a polygon region. This polygon region is maintained as an internal data structure and serves as the basis for searching for location information within the specified range.
[1324] The core processing involves the server retrieving location information within this polygon region. This is done using APIs from location information services (e.g., Google Places API, Yelp API, Zomato API). The server calls these APIs to obtain detailed information such as the name, address, rating, and genre of places within the specified range.
[1325] The acquired location information is then compared with route information by the server, and locations on the route or within a certain distance from the route are selected. The server uses a distance calculation method to determine whether a location is on the route. This comparison result is sent to the terminal in JSON format.
[1326] The device analyzes the received matching results and displays them to the user. The display format can be either a list or a map, allowing the user to see locations close to their route on the map. Furthermore, when the user taps on a displayed location, detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[1327] Specific example
[1328] For example, suppose a user searches for a route from Marunouchi 1-chome, Chiyoda-ku, Tokyo to Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo, and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1329] 1. The user enters their current location "Marunouchi 1-chome, Chiyoda-ku, Tokyo" and their destination "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo" into the app and sets the search range to "within 5km".
[1330] 2. The device sends this information to the server.
[1331] 3. The server uses a geographic information service API to obtain route information from the current location to the destination. This route includes detailed coordinate data.
[1332] 4. The server sets a 5km search range based on the route information and defines this range as a polygon region.
[1333] 5. The server obtains location information within the specified range through the location information provision service API.
[1334] 6. The server compares the location information it has acquired with the route information and selects a location that is on the route or within a certain distance from the route.
[1335] 7. The device displays location information to the user in list or map format. The user can view detailed information from the map or list.
[1336] This allows users to efficiently find their location while on their way from their current location to their destination.
[1337] The flow of the specific processing in Example 1 will be explained using Figure 11.
[1338] Step 1: Receive user input
[1339] The user launches the application, enters their current location and destination, and sets the search range. The input data includes the current location as "Marunouchi 1-chome, Chiyoda-ku, Tokyo," the destination as "Nishi-Shinjuku 2-chome, Shinjuku-ku, Tokyo," and a search range of "5km." The specific action involves the user entering this information into the smartphone's input field and tapping the "Search" button. The input data is saved on the device and used in the next step.
[1340] Step 2: Obtain route information
[1341] The device sends data entered by the user, including the current location, destination, and search area, to the server. The server uses a geographic information service API (e.g., Google Maps API) to obtain route information from the current location to the destination. The input data consists of the current location and destination, and the server sends a request to the API, obtaining multiple route points (coordinate data) as output. This coordinate data indicates how the route progresses.
[1342] Step 3: Set the specified range.
[1343] Based on the route information acquired by the server, a specified search range is set on both sides of the route. The server generates a 5km buffer for each coordinate point and connects them to create a band-shaped polygon region. The coordinate data of the route points is used as input data, and the generated polygon region is obtained as output. The polygon region is stored as an internal data structure and used to search for restaurant information in the next step.
[1344] Step 4: Obtain restaurant information
[1345] The server calls a location information service API (e.g., Google Places API) to retrieve restaurant information within the polygon region. The input data used is the latitude and longitude information of the polygon region. The output is in JSON format and includes information such as the restaurant's name, address, rating, and genre. The server parses this information and temporarily stores it in its internal database.
[1346] Step 5: Perform verification
[1347] The server compares acquired restaurant information with route information. Specifically, it calculates the distance to route points and selects restaurants that are on the route or within a certain distance from the route. The input data consists of restaurant information and route point coordinate data, and the output is filtered restaurant information. In this process, a distance calculation method is used to determine the exact location.
[1348] Step 6: Display the results to the user.
[1349] The device displays the matching results sent from the server to the user. Filtered restaurant information sent from the server is used as input data. As output, the user can view the restaurant information in list or map format. Specifically, when the user taps a restaurant on the list, its detailed information (name, address, rating, genre, business hours, etc.) is displayed.
[1350] This series of processes allows users to efficiently find restaurants along their route.
[1351] (Application Example 1)
[1352] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1353] Traditionally, there was no system that allowed users to find restaurants along their route from their current location to their destination and place orders on the spot. This made it difficult for users to efficiently find restaurants while traveling, order meals in advance, and receive them quickly. Furthermore, the lack of a way to check restaurant menus along the route and order in real time resulted in low user convenience. Therefore, there is a need to provide an environment where users can efficiently plan meals and order smoothly while traveling.
[1354] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[1355] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, and means for displaying the comparison results to the user, as well as allowing the user to check restaurant menus from the search results and place orders in real time. This makes it possible for the user to find restaurants on their way from their current location to their destination, place orders efficiently, and receive their meals in line with their arrival time.
[1356] A "user" is an individual or group that uses this system and is the person who enters their current location and destination.
[1357] "Current location" refers to the user's current location at that moment, and is the location acquired by this system as initial information.
[1358] The "destination" refers to the final place the user intends to reach, and is the endpoint for this system to calculate the route.
[1359] A "map service" is an external online map platform that provides route information and geographic information, including, for example, online map APIs.
[1360] "Route information" refers to data about the route or path from the current location to the destination, and includes multiple coordinate points.
[1361] The "specified range" is a search area set on both sides of a route based on route information, and is a band-shaped polygonal region indicating a predetermined distance.
[1362] "Restaurant information" refers to detailed data about restaurants, including location, name, genre, rating, and business hours.
[1363] "Matching" is the process of comparing acquired restaurant information with route information to determine which restaurants match.
[1364] A "menu" is a list of the dishes and drinks offered by a restaurant, and includes detailed items and prices.
[1365] "Real-time" refers to a state where processing is performed immediately in response to user actions, meaning that the results are reflected instantly when the user places an order.
[1366] "Ordering" refers to the process of purchasing food and beverages selected from a restaurant's menu.
[1367] The present invention provides a system that allows users to efficiently find restaurants on their way from their current location to their destination, view restaurant menus from search results, and place orders in real time. A specific embodiment of this system will now be described.
[1368] Natural language explanation of program processing
[1369] The main processes of this system are carried out as follows:
[1370] 1. User input:
[1371] The user launches the application and enters their current location and destination in the on-screen input fields. They also select a search range (e.g., within 5km). This information serves as the system's starting point.
[1372] 2. Obtaining route information:
[1373] The terminal sends user input data to the server. The server uses a map service API (e.g., an online map API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (route points).
[1374] 3. Setting the specified range:
[1375] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[1376] 4. Obtaining restaurant information:
[1377] The server uses an API from a restaurant information service (e.g., an online restaurant information API) to find restaurants within a specified range. The request includes the latitude and longitude information of the generated polygon area.
[1378] 5. Perform verification:
[1379] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[1380] 6. Displaying results and ordering functions:
[1381] The terminal displays the matching results sent from the server to the user. The user can view restaurants along their route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks on the spot.
[1382] Specific example
[1383] For example, suppose a user searches for a route from Shinjuku Station to Shibuya Station, finds restaurants within a 5km radius along that route, and wants to place an order. In this case, the system would process the request in the following steps.
[1384] The user enters Shinjuku Station (current location) and Shibuya Station (destination) into the app and sets a search range of within 5km.
[1385] The device sends this information to the server.
[1386] The server uses a map service API to obtain route information from Shinjuku Station to Shibuya Station. This route includes detailed coordinate data, such as Shinjuku Station → Yoyogi → Harajuku → Shibuya Station.
[1387] The server sets a 5km search range for the route and defines this range as a polygon region.
[1388] The server retrieves restaurant information within a specified range via a restaurant information service API.
[1389] The server matches the restaurant information it has acquired with the route information and selects the restaurant closest to the user's location. For example, cafes and restaurants located near the route may be selected.
[1390] The device displays restaurants along the user's route in a list or map format, and the user checks the restaurant menus and places an order.
[1391] Example of a prompt
[1392] By inputting the following prompts into the generating AI model, you can generate the code and procedures necessary to implement the system's processing.
[1393] Write a Python program that retrieves route information from the current location to a destination and searches for restaurants within 5km of that route. The program should use a map service API and a restaurant information service API to retrieve restaurant information along the specified route, display the name and address of each restaurant, and include a function for the user to view menus and place orders.
[1394] The above describes the embodiments for carrying out the present invention. This system enables users to efficiently find restaurants while on the go and place orders in real time.
[1395] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1396] Step 1:
[1397] The user launches the application and enters their current location and destination. They also specify a search area (e.g., within 5km). The input data includes the current location, destination, and search area. This information forms the basis of the system's setup.
[1398] Step 2:
[1399] The terminal sends user input data to the server. The server sends a request to a map service API (e.g., an online map API) to obtain route information from the current location to the destination. In this process, route information including multiple route points is output, with the coordinates of the current location and destination as input.
[1400] Step 3:
[1401] The server sets specified search ranges on both sides of the route based on the acquired route information. Specifically, it generates a strip-shaped polygon region with a width of 5 km on both sides of the route. In this process, the route information and the set search range are used as input, and the data of the polygon region is output.
[1402] Step 4:
[1403] The server sends a request to a restaurant information service API (e.g., an online restaurant information API) to find restaurants within a specified range. At this time, the latitude and longitude information of the generated polygon area is used as input, and restaurant information within the specified range is output.
[1404] Step 5:
[1405] The server compares the acquired restaurant information with the route information. Specifically, it uses a distance calculation method to select restaurants that are on the route or within a certain distance from the route. This process uses the acquired restaurant information and route information as input and outputs a list of restaurants that exist on the route.
[1406] Step 6:
[1407] The terminal displays the matching results sent from the server to the user. The user can view restaurants along the route in list or map format. Furthermore, the user can view restaurant menus in real time and order selected dishes and drinks. In this step, the matching results and menu information are used as input, and the displayed restaurant information and the user's order are output.
[1408] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1409] This invention enables users to efficiently find restaurants on their way from their current location to their destination, and further, by combining it with an emotion engine that recognizes the user's emotions, it recommends restaurants that are appropriate to the user's emotions. An embodiment of this system will be described below.
[1410] Natural language explanation of program processing
[1411] The program of this system is processed as follows:
[1412] 1. Receive user input.
[1413] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km).
[1414] 2. Obtain route information
[1415] The device sends user input data to the server. The server uses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data (latitude and longitude) along the route.
[1416] 3. Set the specified range.
[1417] Based on the route information acquired by the server, specified search areas are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route. This determines the search area for restaurants located along the route.
[1418] 4. Obtain restaurant information
[1419] The server uses APIs from restaurant information services (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[1420] 5. Perform verification.
[1421] The server compares the acquired restaurant information with route information and selects restaurants that are located along the route or within a certain distance from the route. In this process, a distance calculation method is used to determine the specific location.
[1422] 6. Recognize the user's emotions.
[1423] The device collects user emotional data through user input, actions, and sensors (e.g., camera, microphone). This includes facial expressions, voice tone, and input patterns.
[1424] 7. Analysis using an emotion engine
[1425] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, it determines the user's current emotional state (e.g., joy, sadness, stress).
[1426] 8. Emotion-based recommendations
[1427] The server recommends restaurants that are appropriate for the user's emotional state, based on the analysis results of the emotion engine. This recommendation is then compared with route information and acquired restaurant information to select the most suitable establishment.
[1428] 9. Display the results to the user.
[1429] The device displays matching results and sentiment-based recommendations sent from the server to the user. Users can view restaurants along their route in list or map format, and detailed information about each restaurant is displayed.
[1430] Specific example
[1431] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1432] The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[1433] The device sends this information to the server.
[1434] The server uses a map service API to obtain route information from Tokyo Station to Shinjuku Station. This route includes detailed coordinate data, such as Tokyo Station → Yurakucho → Yotsuya → Shinjuku Station.
[1435] The server sets a 5km search range for the route and defines this range as a polygon region.
[1436] The server retrieves restaurant information within a specified range via a restaurant information service API.
[1437] The server compares the restaurant information it has acquired with the route information and selects the restaurant closest to it.
[1438] The device collects user emotional data, and the server analyzes that data using an emotion engine. For example, it might determine if the user is feeling stressed.
[1439] Based on the analysis results of the emotion engine, the server recommends relaxing cafes and tranquil restaurants suitable for stress relief.
[1440] The device displays restaurants to the user in list or map format. The user can then view detailed information and choose a suitable restaurant.
[1441] This system allows users to efficiently find restaurants that are best suited to their individual emotional state while traveling from their current location to their destination.
[1442] The following describes the processing flow.
[1443] Step 1:
[1444] The user launches the application and enters their current location and destination in the input fields. They also set a search range (e.g., within 5km).
[1445] Step 2:
[1446] The device sends user input data to the server. This includes information about the current location, destination, and search area.
[1447] Step 3:
[1448] The server accesses a map service API (e.g., Google Maps API, OpenStreetMap API) to obtain route information from the current location to the destination. Specifically, it collects multiple coordinate data points (latitude and longitude) along the route.
[1449] Step 4:
[1450] Based on the route information acquired by the server, specified search ranges are set on both sides of the route. For example, a strip-shaped polygon region with a width of 5 km is generated on both sides of the route.
[1451] Step 5:
[1452] The server accesses restaurant information service APIs (e.g., Google Places API, Yelp API, Zomato API) to search for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area.
[1453] Step 6:
[1454] The server compares the restaurant information it has acquired with the route information. This comparison uses a distance calculation method to determine whether each restaurant is located on or near the route.
[1455] Step 7:
[1456] The device collects user emotional data. This emotional data is collected through methods such as input content, voice tone, and facial expression analysis.
[1457] Step 8:
[1458] The server uses an emotion engine to analyze the collected emotion data. Based on the analysis results, the user's current emotional state (e.g., joy, sadness, stress) is determined.
[1459] Step 9:
[1460] The server recommends the perfect restaurant based on the analysis results. For example, if the user is feeling stressed, a cafe with a comfortable interior or a quiet restaurant will be recommended.
[1461] Step 10:
[1462] The server sends the final list, including these recommendations, to the user's device. This list contains detailed information such as the restaurant's name, address, genre, rating, and opening hours, based on the user's emotional state.
[1463] Step 11:
[1464] The device displays matching results and sentiment-based recommendations sent from the server. Users can view restaurants along their route in list or map format, and detailed information about each restaurant can also be displayed.
[1465] (Example 2)
[1466] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1467] In today's busy lifestyle, it is difficult for users to quickly and efficiently find suitable restaurants while on the go. Furthermore, there is a lack of systems that recommend restaurants while considering the emotional state of users during their travels. As a result, it often takes a long time for users to find restaurants that meet their needs, leading to inconvenience.
[1468] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1469] In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a geographic information service, means for defining a specified range on the route based on the acquired route information, means for acquiring store information within the specified range, means for comparing the acquired store information with the route information, means for collecting user emotion data, means for determining the user's emotion using an emotion analysis engine, means for recommending stores based on the user's emotional state, and means for displaying the comparison results and recommendation results. This makes it possible for the user to instantly find a restaurant that is best suited to their emotional state at any given time while traveling from their current location to their destination.
[1470] A "user" refers to an individual who operates this system and inputs their current location, destination, and search range.
[1471] "Current location" refers to the location information of the starting point that the user enters into the system.
[1472] "Destination" refers to the location information of the final destination that the user enters into the system.
[1473] "Geographic information services" refer to external APIs or services that provide route information and map-related data.
[1474] "Route information" refers to latitude and longitude data related to the route from the starting point to the destination.
[1475] "Specified range" refers to the search range set on both sides of the route, and usually means a band-shaped area with a specific distance between it and the destination.
[1476] "Store information" refers to data about restaurants or other establishments located within a specified area. Specifically, this includes store name, address, rating, reviews, etc.
[1477] "Matching" refers to the process of comparing acquired store information with route information to select stores located along or near the route.
[1478] "Emotional data" refers to data related to emotions that is collected based on the user's facial expressions, voice tone, input patterns, etc.
[1479] An "emotion analysis engine" refers to software or a service that analyzes emotional data to determine a user's emotional state.
[1480] "Recommendation" refers to the process of suggesting stores that are suitable for the user's emotional state based on the results of an emotion analysis engine.
[1481] "Display" refers to the process of visually presenting matching results and recommendation results on the user's device in list or map format.
[1482] This invention is a system that allows users to efficiently find restaurants on their way from their current location to their destination. Furthermore, by combining it with an emotion engine that recognizes the user's emotions, it aims to meet the user's needs by recommending restaurants that are suitable for the user's emotions. A detailed embodiment of this system is shown below.
[1483] First, the user enters their current location and destination. They launch the application provided by the user and enter their current location and destination in the text boxes. They can also set a search range (e.g., within 5km). This allows users to easily input the necessary information.
[1484] Secondly, the terminal sends the user's input data to the server. The server uses geographic information services (e.g., map provision APIs) to obtain route information from the current location to the destination. Examples of such geographic information services include the Google Maps API and the OpenStreetMap API. The obtained route information includes latitude and longitude data from the starting point to the destination.
[1485] Thirdly, the server defines a specified range on the route based on the route information it has acquired. A band-shaped polygonal region with a specific distance (e.g., 5km) on both sides of the route is generated. This determines the search range for stores (restaurants, etc.) located along the route. This range is set as a buffer zone with a fixed distance on both sides, relative to the center line of the route.
[1486] Fourth, the server retrieves store information within a specified range. Using store information APIs (e.g., Google Places API, Yelp API, Zomato API), the server searches for restaurants within the generated polygon area. The request includes the latitude and longitude information of the polygon area, and retrieves data on restaurants within this range. The retrieved data includes details such as the store name, address, and user rating.
[1487] Fifth, the server compares the acquired store information with the route information. Distance calculation methods (e.g., Haverstein distance or Euclidean distance) are used to determine the specific location and calculate how far each restaurant is from the route. This allows the server to select restaurants that are on or near the route.
[1488] Sixth, the device collects user emotional data. This data is collected through sensors such as cameras and microphones, and facial expressions, voice tone, and input patterns are analyzed. This allows the user's current emotional state to be understood in real time.
[1489] Seventh, the server uses an emotion engine to determine the user's emotions. Using an emotion analysis API (e.g., Microsoft Azure Emotion API, IBM Watson Tone Analyzer), the server analyzes the collected emotion data to determine the user's emotional state.
[1490] Eighth, the server recommends restaurants that are suitable for the user's emotional state based on the analysis results. For example, it recommends a relaxing cafe to a user who is feeling stressed, and a lively restaurant to a user who is feeling happy.
[1491] Finally, ninth, the device displays matching and recommendation results to the user. Users can view this information in list or map format. Detailed information includes store name, address, rating, and reviews. When the user selects detailed information, the navigation function displays the route to the selected store.
[1492] Specific example
[1493] For example, suppose a user searches for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. In this case, the following process would be performed.
[1494] 1. The user enters Tokyo Station (current location) and Shinjuku Station (destination) into the app and sets a search range of within 5km.
[1495] 2. The device sends this information to the server.
[1496] 3. The server uses a geographic information service API to obtain route information from Tokyo Station to Shinjuku Station.
[1497] 4. The server sets a 5km search range for the route and defines this range as a polygon region.
[1498] 5. The server retrieves restaurant information within the specified range via the restaurant information provision API. This data includes details for each restaurant.
[1499] 6. The server compares the acquired store information with the route information and selects the restaurant closest to it.
[1500] 7. The device collects user emotion data, and the server analyzes that data using an emotion engine. For example, it might determine that the user is feeling stressed.
[1501] 8. Based on the emotion analysis results, the server recommends relaxing cafes or quiet restaurants suitable for stress relief.
[1502] 9. The device displays restaurants to the user in list or map format. The user can view detailed information and choose a suitable restaurant. It also displays the route to the restaurant using the navigation function.
[1503] Examples of prompts for generative AI models
[1504] "A user is searching for a route from Tokyo Station to Shinjuku Station and wants to find restaurants within a 5km radius of that route. This user is currently stressed. Please recommend relaxing cafes or quiet restaurants."
[1505] By inputting prompts in this format into the AI model, the system can recommend restaurants suitable for the target user. The use of specific prompts further improves the accuracy and usefulness of the AI model.
[1506] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1507] Step 1: User input
[1508] The user launches the application and enters their current location and destination. They also set a search range (e.g., within 5km). The input data includes the current location, destination, and search range.
[1509] Specific actions:
[1510] The user enters "Tokyo Station" and "Shinjuku Station" in the "Current Location" and "Destination" text fields respectively, and selects "5km" from the search range dropdown.
[1511] The input data is saved on the device in JSON format and is ready to be sent to the server.
[1512] Input: Current location (Tokyo Station), Destination (Shinjuku Station), Search range (5km)
[1513] Output: Input data in JSON format
[1514] Step 2: Obtain route information
[1515] The terminal sends user input data to the server. The server uses a geographic information service API to obtain route information from the current location to the destination.
[1516] Specific actions:
[1517] The terminal sends input data in JSON format to the server.
[1518] The server sends a request to the geographic information service API to obtain route information from "Tokyo Station" to "Shinjuku Station".
[1519] Input: User input data (current location, destination, search area)
[1520] Output: Route information (latitude and longitude data)
[1521] Step 3: Define the specified range
[1522] Based on the route information acquired by the server, a polygon region is generated with a specified search range (5km) on both sides of the route.
[1523] Specific actions:
[1524] The server calculates the centerline of the route and sets up 5km buffers on both sides of it.
[1525] A polygon region is generated and defined as the search area.
[1526] Input: Route information
[1527] Output: Polygon region (search area)
[1528] Step 4: Obtain store information
[1529] The server uses a store information provision API to search for and retrieve restaurant information within the generated polygon area.
[1530] Specific actions:
[1531] The server sends a polygon region to the store information provision API and makes a request.
[1532] The acquired store information includes store name, address, and user ratings.
[1533] Input: Polygon region
[1534] Output: Store information (store name, address, rating, etc.)
[1535] Step 5: Match store information with route information.
[1536] The server compares the acquired store information with route information and selects stores that are on or near the route.
[1537] Specific actions:
[1538] The server uses distance calculation methods (such as Haverstein distance or Euclidean distance) to determine how far each store is from the route.
[1539] List stores that are within a specified distance from the route.
[1540] Input: Store information, route information
[1541] Output: Matched store list
[1542] Step 6: Collect user sentiment data.
[1543] The device collects user emotion data through sensors such as cameras and microphones.
[1544] Specific actions:
[1545] The device captures the user's facial expressions with its camera and records their voice with its microphone.
[1546] The system also records user input patterns such as taps and swipes and transmits them as sensor data.
[1547] Input: User's facial expressions, voice, input patterns
[1548] Output: Sentiment data
[1549] Step 7: Analyze emotions with an emotion analysis engine.
[1550] The server uses an emotion analysis engine to analyze the collected emotion data and determine the user's emotional state.
[1551] Specific actions:
[1552] The server sends data to an emotion analysis API, which analyzes emotions from facial expressions and voice.
[1553] The analysis results determine emotional states such as "joy," "sadness," and "stress."
[1554] Input: Sentiment data
[1555] Output: Emotional state (joy, sadness, stress, etc.)
[1556] Step 8: Make emotionally driven recommendations.
[1557] Based on the analysis results, the server recommends restaurants that are suitable for the user's emotional state.
[1558] Specific actions:
[1559] Based on the matched list of stores and the user's emotional state, the server makes recommendations such as, "For users who are feeling stressed, here are some relaxing cafes."
[1560] Generate a list of recommendations with priority.
[1561] Input: Matched store list, emotional status
[1562] Output: Recommendation List
[1563] Step 9: Display the results to the user.
[1564] The terminal displays the matching results and recommendation results sent from the server to the user.
[1565] Specific actions:
[1566] The device displays recommended stores in list or map format.
[1567] Allow users to view detailed information about each store (address, rating, reviews).
[1568] When a user selects detailed information, the navigation function displays the route to the specified store.
[1569] Input: Recommendation list
[1570] Output: Store information and route information displayed to the user
[1571] (Application Example 2)
[1572] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1573] When users search for routes from their current location to their destination, it is difficult to efficiently find restaurants along the route. Furthermore, there is a lack of systems that not only find restaurants but also recommend appropriate restaurants based on the user's current emotional state. Current navigation systems provide information uniformly without considering the user's emotions, making it difficult to make recommendations that meet the user's needs.
[1574] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for the user to input their current location and destination, means for acquiring route information in cooperation with a map service, means for defining a specified range on the route based on the acquired route information, means for acquiring restaurant information within the specified range, means for comparing the acquired restaurant information with the route information, means for displaying the comparison results, means for collecting user emotion data using a microphone and a camera, emotion analysis means for analyzing the collected emotion data to determine the user's emotional state, and means for recommending restaurants suitable for the emotional state. As a result, the user can efficiently find a restaurant that is best suited to their emotional state while on their way from their current location to their destination.
[1575] A "user" is an individual who uses the system to search for a route from their current location to their destination and find a suitable restaurant.
[1576] "Current location" refers to the location where the user is situated when using the system.
[1577] A "destination" is the final place that a user is trying to reach using the system.
[1578] A "map service" is a server that provides location information and is used to obtain route information, information about nearby facilities, and so on.
[1579] "Route information" refers to detailed information such as the route, distance, and estimated time from your current location to your destination.
[1580] "Specified range" refers to the area within the route specified by the user that will be searched.
[1581] "Restaurant information" refers to detailed information about restaurants, such as their location, type, business hours, and ratings.
[1582] "Matching" refers to comparing acquired restaurant information with route information and selecting restaurants that fall within a specified range.
[1583] A "microphone" is a device used to collect sound. It is part of the means of acquiring user emotion data.
[1584] A "camera" is a device used to capture images and videos. It is also a means of acquiring user emotional data.
[1585] "Emotional data" refers to information collected using microphones and cameras, such as the user's facial expressions and tone of voice.
[1586] "Emotional analysis" refers to the process of analyzing collected emotional data to determine the user's current emotional state.
[1587] "Emotional state" refers to the user's psychological state based on analyzed emotional data, and includes emotions such as joy, sadness, and stress.
[1588] "Recommendation" refers to identifying and presenting restaurants that are suitable for a user's emotional state.
[1589] The following describes an embodiment for carrying out this invention. First, the system is configured as follows: The user inputs their current location and destination, and obtains route information in cooperation with a map service. Based on the obtained route information, a specified range is defined, and restaurant information within that range is obtained. Then, the obtained restaurant information is compared with the route information, and the comparison result is displayed. Furthermore, the user's emotional data is collected using a microphone and camera, and the collected emotional data is analyzed to determine the user's current emotional state. A suitable restaurant is recommended to the user according to that emotional state.
[1590] Hardware and software
[1591] Hardware:
[1592] Autonomous vehicles: Function as part of the navigation system and display.
[1593] Microphone: Collects the user's voice tone.
[1594] Camera: Collects the user's facial expressions.
[1595] software:
[1596] Map service APIs (e.g., Google Maps API, OpenStreetMap API): Retrieve route information and restaurant information.
[1597] Emotion recognition engine: Analyzes user emotion data to determine the current emotional state.
[1598] Data processing and data calculation
[1599] The server uses a map service API to obtain route information based on the user's entered current location and destination. This route information includes latitude and longitude data along the route. Based on the obtained route information, a specified area is defined. This area is defined as a polygon region with a fixed distance width centered on the route. Next, the server uses a restaurant information service API to obtain restaurant information within that polygon region. The obtained restaurant information is compared with the route information, and the most suitable restaurant for the user is selected.
[1600] To determine the user's current emotional state, a microphone and camera collect the user's voice tone and facial expressions. The collected data is sent to an emotion recognition engine, which analyzes the user's emotional state. After the emotional state is determined, the server selects and recommends the most suitable restaurant for that state. This recommendation result is displayed on the vehicle's display and communicated to the user.
[1601] Specific example
[1602] For example, when a user travels from Tokyo Station to Shinjuku Station, route information is entered into the navigation system of an autonomous vehicle. If the system determines that the user is experiencing stress, the emotion recognition engine analyzes the information. Based on these results, the server recommends relaxing cafes or quiet restaurants that can help alleviate the user's stress.
[1603] Example of a prompt:
[1604] Please find restaurants along the route from Tokyo Station to Shinjuku Station. Since the user may be experiencing stress at this time, please recommend relaxing cafes or quiet restaurants.
[1605] This format allows users to efficiently find restaurants that best suit their emotional state while on their way from their current location to their destination.
[1606] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1607] Step 1:
[1608] The system provides users with a way to input their current location and destination, and allows them to set a search range (e.g., within 5km).
[1609] Specific operation: The user enters their current location and destination into the vehicle's navigation system and specifies the search area.
[1610] Input: Current location, destination, search area.
[1611] Output: Current location, destination, and search range are sent to the server.
[1612] Step 2:
[1613] A means of obtaining route information in conjunction with a map service, and the act of obtaining that information.
[1614] Specific operation: The device calls a map service API (e.g., Google Maps API) to obtain route information from its current location to its destination.
[1615] Input: Current location, destination.
[1616] Data processing: The map service API calculates coordinate data (latitude and longitude) along the route and determines the optimal route.
[1617] Output: Route information (multiple coordinate data).
[1618] Step 3:
[1619] Define a specified range on the route based on the acquired route information.
[1620] Specific operation: Based on the route information acquired by the server, the specified search ranges on both sides of the route are set as polygon regions.
[1621] Input: Route information, search range.
[1622] Data processing: A strip-shaped region of a fixed width is generated along the path, and this polygon region is defined.
[1623] Output: Polygon region (specified range).
[1624] Step 4:
[1625] Retrieve restaurant information within the specified range.
[1626] Specific operation: The server uses a restaurant information service API (e.g., Google Places API) to search for restaurant information within the polygon area.
[1627] Input: Polygon region.
[1628] Data processing: The restaurant information service API collects restaurant information within the polygon area.
[1629] Output: Restaurant information.
[1630] Step 5:
[1631] The acquired restaurant information is compared with route information.
[1632] Specific operation: The server compares the acquired restaurant information with the route information and selects a restaurant within the specified range.
[1633] Input: Restaurant information, route information.
[1634] Data calculation: Use distance calculation methods to compare the location of each restaurant with its location along the route.
[1635] Output: Matching results (list of restaurants along the route).
[1636] Step 6:
[1637] The system uses microphones and cameras to collect user emotion data.
[1638] Specific operation: The device's microphone and camera collect the user's voice tone and facial expressions.
[1639] Input: User's voice tone and facial expression.
[1640] Output: Emotional data (voice and facial expression data).
[1641] Step 7:
[1642] An emotion analysis method is used to analyze collected emotion data and determine the user's emotional state.
[1643] Specific operation: The server uses an emotion recognition engine to analyze the collected emotion data and determine the user's emotional state.
[1644] Input: Sentiment data.
[1645] Data processing: The emotion recognition engine analyzes voice tone and facial expressions to determine the user's emotional state (e.g., stress, joy).
[1646] Output: Emotional state.
[1647] Step 8:
[1648] We recommend restaurants that are suitable for your emotional state.
[1649] Specific operation: The server selects the most suitable restaurant based on the user's emotional state and recommends it to the user.
[1650] Input: Emotional state, matching result.
[1651] Data processing: Filter restaurants based on emotional state (e.g., select restaurants suitable for stress relief).
[1652] Output: Recommendation results (list of the best restaurants).
[1653] Step 9:
[1654] Display the matching results and recommendation results.
[1655] Specific operation: The terminal displays the matching and recommendation results sent from the server. Users can view them in list or map format.
[1656] Input: Matching results, recommendation results.
[1657] Output: Displayed list of restaurants and their details.
[1658] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1659] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1660] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[1661] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1662] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[1663] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[1664] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[1665] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[1666] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[1667] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[1668] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[1669] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[1670] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[1671] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1672] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[1673] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[1674] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[1675] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[1676] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[1677] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[1678] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[1679] The following is further disclosed regarding the embodiments described above.
[1680] (Claim 1)
[1681] A means for the user to input their current location and destination,
[1682] A means of obtaining route information in conjunction with a map service,
[1683] A means for defining a specified range on the route based on acquired route information,
[1684] A means of obtaining restaurant information within a specified range,
[1685] A means of matching acquired restaurant information with route information,
[1686] A means for displaying the matching results,
[1687] A system that includes this.
[1688] (Claim 2)
[1689] The system according to claim 1, comprising means for displaying the matching results in list format or map format.
[1690] (Claim 3)
[1691] The system according to claim 1, comprising means for displaying detailed information of restaurants as a result of the matching process.
[1692] "Example 1"
[1693] (Claim 1)
[1694] A means for the user to input their current location and destination,
[1695] A means of obtaining route information in conjunction with geographic information services,
[1696] A means for defining a specified range on the route based on acquired route information,
[1697] A means of obtaining location information within a specified range,
[1698] A means for comparing acquired location information with route information,
[1699] A means for displaying the matching results,
[1700] A system that includes this.
[1701] (Claim 2)
[1702] The system according to claim 1, comprising means for displaying the matching results in list format or map format.
[1703] (Claim 3)
[1704] The system according to claim 1, comprising means for displaying location details of the matching result.
[1705] "Application Example 1"
[1706] (Claim 1)
[1707] A means for the user to input their current location and destination,
[1708] A means of obtaining route information in conjunction with a map service,
[1709] A means for defining a specified range on the route based on acquired route information,
[1710] A means of obtaining restaurant information within a specified range,
[1711] A means of matching acquired restaurant information with route information,
[1712] The system displays the matching results to the user, and also provides a means for the user to view restaurant menus from the search results and place orders in real time.
[1713] A system that includes this.
[1714] (Claim 2)
[1715] The system according to claim 1, further comprising means for displaying matching results in list or map format, and for the user to select a restaurant menu and place an order.
[1716] (Claim 3)
[1717] The system according to claim 1, further comprising means for displaying detailed restaurant information of the matching results and menu information of the restaurant.
[1718] "Example 2 of combining an emotion engine"
[1719] (Claim 1)
[1720] A means for the user to input their current location and destination,
[1721] A means of obtaining route information in conjunction with geographic information services,
[1722] A means for defining a specified range on the route based on acquired route information,
[1723] A means of obtaining store information within a specified range,
[1724] A means of matching acquired store information with route information,
[1725] Means for collecting user sentiment data,
[1726] A means of determining a user's emotions using an emotion analysis engine,
[1727] A method for recommending stores based on the user's emotional state,
[1728] Means for displaying matching results and recommendation results,
[1729] A system that includes this.
[1730] (Claim 2)
[1731] The system according to claim 1, comprising means for displaying the matching results and recommendation results in list format or map format.
[1732] (Claim 3)
[1733] The system according to claim 1, comprising means for displaying store details of matching results and recommendation results.
[1734] "Application example 2 when combining with an emotional engine"
[1735] (Claim 1)
[1736] A means for the user to input their current location and destination,
[1737] A means of obtaining route information in conjunction with a map service,
[1738] A means for defining a specified range on the route based on acquired route information,
[1739] A means of obtaining restaurant information within a specified range,
[1740] A means of matching acquired restaurant information with route information,
[1741] A means for displaying the matching results,
[1742] A means of collecting user emotion data using a microphone and a camera,
[1743] An emotion analysis means that analyzes collected emotion data to determine the user's emotional state,
[1744] A means of recommending restaurants that are suitable for one's emotional state,
[1745] A system that includes this.
[1746] (Claim 2)
[1747] The system according to claim 1, comprising means for displaying the matching results in list format or map format.
[1748] (Claim 3)
[1749] The system according to claim 1, comprising means for displaying detailed restaurant information and recommendation information based on sentiment analysis of the matching results. [Explanation of Symbols]
[1750] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means for the user to input their current location and destination, A means of obtaining route information in conjunction with a map service, A means for defining a specified range on the route based on acquired route information, A means of obtaining restaurant information within a specified range, A means of matching acquired restaurant information with route information, A means for displaying the matching results, A system that includes this.
2. The system according to claim 1, comprising means for displaying the matching results in list format or map format.
3. The system according to claim 1, comprising means for displaying detailed information of restaurants as a result of the matching process.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A