DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 04/22/2025 was considered by the examiner.
Priority
This application claims benefit of foreign priority under 35 U.S.C. 119(a)-(d) of Application No. PCT/CN2024/098254, filed in China on 06/07/2024.
Claim Interpretation
Claim 1 requires various circuits. Consistent with MPEP 2181 and the MIT v. Abacus decision 462 F. 3d 1344 (Fed Cir 2006) cited therein, “circuits” are understood to be hardware elements. See MIT at 1357. In at least one embodiment (an ASIC) the present application describes circuits.
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitations uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier.
Claim 8 and 14 recite the limitations of many variations of “a system”. These limitations have been interpreted under 112(f) as a means plus function because of the combination of the non-structural, generic placeholder “a system”, as well as their respective functional languages that include “for performing simulation operations”, “for performing light transport simulation”, “for hosting one or more real-time streaming applications”, etc. and is being interpreted respectively as “a system(s) on a chip (SoC) 704; the SoC 704 may include CPU(s) 706, GPU(s) 708, processor(s) 710, cache(s) 712, accelerator(s) 714, data store(s) 716, and/or other components and features not illustrated” that corresponds to the structure found in the disclosure (Par. [0127] and Fig. 9).
Claim 9 requires “processing units” and “memory units”. These elements are treated a means-plus-function as well.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-2, 4-10, 12-16, and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Nister et al. (U.S. Patent App. Pub No. 2023/0341234 A1, hereafter referred as Nister) in view of Lopes et al. (NPL: Fast block distributed CUDA implementation of the Hungarian algorithm, hereafter referred as Lopes).
Regarding Claim 1:
Nister teaches one or more processors comprising: one or more circuits ([0244] “ASICs”} to: generate a graph of a cost matrix associating a plurality of first object elements with a plurality of second object elements, the graph comprising a plurality of first nodes representing rows of the cost matrix and a plurality of second nodes representing columns of the cost matrix (Nister: Par. [0041]; In this way, the route planner 120 constructs a directed graph approximation (“graph approximation” or “directed graph data structure”) of a road network using a first map (e.g., best map available, such as an HD map, a GPS map, etc.). The graph approximation can include nodes and edges associated with the road network. The nodes in the graph may correspond to GPS coordinates in a simple version of the road network. The edges may connect the nodes together. Each edge may be annotated with an expected equivalent time (e.g., an amount of time to traverse the nodes associated with the respective edge). As such, the expected equivalent time on an edge may be set equal to the average expected cost spent traversing the edge. The graph approximation can include auxiliary information such as traffic conditions, turn difficulties, etc. The auxiliary information can include information from a fleet of cars regarding traffic conditions, and the route planner 120 may be executed in a drive system in the vehicle or in a cloud computing location. The graph approximation may take into account one or more optimization categories.); determine a matching between the plurality of first nodes and the plurality of second nodes based at least on the cost matrix (Nister: Par. [0048]; The edges connect the nodes, and each edge may be annotated with an expected equivalent time 114. For example, the expected equivalent time 114 on an edge may be the cost that on average is expected to be spent traversing the edge; [0105]; If the local lanes are generated by other methods, such as the ones generated purely by live perception, a matching can be performed between the map-based lanes and the live-perceived lanes, so that large lane graph nodes can be assigned to the live-perceived lanes. Assigning the nodes to the plurality lanes is performed in order to derive an expected equivalent time reward of each of the plurality of lanes, and the expected equivalent time reward 114 (e.g., 40 secs, 0 secs, 0 secs) can be the node expected equivalent time reward 114 minus the equivalent time cost between the current vehicle location (the box with a letter e in FIG. 4B) and the node, truncated at zero seconds. The equivalent time cost between the current vehicle location and a node can be determined based on local live perception that lane planner 110 does not consider.); and perform, using the updated matching, one or more object perception operations for at least a subset of object elements from one or more of the plurality of first object elements or the plurality of second object elements (Nister: Par. [0055]; A primary mechanism for forming the large lane graph 130 includes mapping and/or perception operations. The large lane graph 130 may be generated with values on the edges (e.g., value informed by averages, averages adapted by time of day, averages informed by current conditions learned from a fleet of vehicles), and the edges near a current position of the vehicle 700 may be further augmented using averages informed by live perception of a plurality of factors (e.g., velocities, occupation of lanes, and states of traffic lights).).
Nister fails to teach update the matching by generating, based at least on the matching, an alternating tree that represents a path from a given second node along one or more edges connected with the given second node, and performing one or more matrix multiplications based at least on the alternating tree to detect an unmatched second node of the graph for which to update the matching.
Lopes, like Nister, is directed to cost matrices. Lopes does teach to teach update the matching by generating, based at least on the matching, an alternating tree that represents a path from a given second node along one or more edges connected with the given second node (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Now find a path through the graph from an unmatched worker to an unmatched task. This path is called an alternating path because it will alternate between going from to and then from to . After finding this path, we can traverse it and star the un-starred edges and un-star the starred edges, resulting in one more star or match. Repeat this step until there are no more alternating paths. This will result in a maximum matching.), and performing one or more matrix multiplications based at least on the alternating tree to detect an unmatched second node of the graph for which to update the matching (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Finally, repeat the maximum matching phase and dual update phase until a perfect matching is found. Each time a dual update is performed grows until eventually a new alternating path is found. For each new alternating path found the number of matches grows until a perfect matching if found, proving the convergence of the algorithm.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Nister to utilize the alternating path technique, as taught by Lopes, to arrive at the claimed invention discussed above. Such a modification is the result of combining prior art elements according to known methods to yield predictable results. As taught by Lopes, the proposed modification allows for fast implementation for moderate size problems (Lopes: Abstract).
In regards to Claim 2, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the one or more circuits are to determine the matching by: identifying, by each first node and using a respective processing thread of a plurality of processing threads, a second node of the plurality of second nodes with which the first node is connected; and selecting, by each second node, the first node that identified the second node (Lopes: 4.2. Step 2 - Initial matching; If the matrix size is greater than the maximum number of threads, then each thread will process more than one zero. Otherwise, each thread will process one zero and try and make it starred, covering its row and column. Once a zero is covered it cannot be selected for starring, so the process of selecting the zero and starring its row and its columns should be atomic.).
In regards to Claim 4, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the plurality of first object elements comprise estimated bounding boxes generated by an object detector, the plurality of second object elements comprise reference bounding boxes, and the one more circuits are to update the object detector based at least on the updated matching (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 5, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the plurality of first object elements correspond to data from a sensor of a vehicle (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 6, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the one or more circuits are to update the matching by adding a match between the unmatched second node and a first node corresponding to the unmatched second node to the matching (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Now find a path through the graph from an unmatched worker to an unmatched task. This path is called an alternating path because it will alternate between going from to and then from to . After finding this path, we can traverse it and star the un-starred edges and un-star the starred edges, resulting in one more star or match. Repeat this step until there are no more alternating paths. This will result in a maximum matching; There will be zeros marked as prime that will not be part of an alternating path, but if at step 5 one starts at an unmatched row and goes through the marked path in the graph using the primes, this time in the forward direction, it will always reach an unmatched column which is the actual goal.).
In regards to Claim 7, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the one or more circuits are to determine the matching based on identifying respective matches between the plurality of first nodes and plurality of second nodes that satisfy a feasibility criterion (Nister: Par. [0065]; Moreover, the higher density and speed of vehicles may lower a likelihood of success for lane changes into a lane, now or in the future. This may be reflected by live perception informing the editing of lane change edges. In embodiments, higher speed or absence of vehicles may advantage one lane (or the nodes thereof) over another lane, which may be reflected by live perception informing the editing of lane keep edges. In some example, the closest set of edges may be edited by the behavior planner based on their immediate feasibility.).
In regards to Claim 8, Nister as modified by Lopes further teaches the one or more processors of claim 1, wherein the one or more processors are comprised in at least one of: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for performing digital twin operations; a system for performing light transport simulation; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system for presenting at least one of augmented reality content, virtual reality content, or mixed reality content; a system for hosting one or more real-time streaming applications; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational Al operations; a system comprising one or more large language models (LLMs); a system comprising one or more vision language models (VLMs); a system for generating synthetic data; a system incorporating one or more virtual machines (VMs); a system implemented at least partially in a data center; or a system implemented at least partially using cloud computing resources (Nister: Par. [0023-0024]; Further, the systems and methods described herein may be used for a variety of purposes, by way of example and without limitation, for machine control, machine locomotion, machine driving, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and surveillance, autonomous or semi-autonomous machine applications, deep learning, environment simulation, data center processing, conversational AI, light transport simulation (e.g., ray-tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing and/or any other suitable applications; Disclosed embodiments may be comprised in a variety of different systems such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine), systems implemented using a robot, aerial systems, medial systems, boating systems, smart area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems implemented using an edge device, systems incorporating one or more virtual machines (VMs), systems for performing synthetic data generation operations, systems implemented at least partially in a data center, systems for performing conversational AI operations, systems for performing light transport simulation, systems for performing collaborative content creation for 3D assets, systems implemented at least partially using cloud computing resources, and/or other types of systems.).
Regarding Claim 9:
Nister as modified by Lopes further teaches a system comprising: one or more processing units; and one or more memory units storing instructions that, when executed by the one or more processing units, cause the one or more processing units to execute operations comprising: generating a graph of a cost matrix associating a plurality of first object elements with a plurality of second object elements, the graph comprising a plurality of first nodes representing rows of the cost matrix and a plurality of second nodes representing columns of the cost matrix (Nister: Par. [0041]; In this way, the route planner 120 constructs a directed graph approximation (“graph approximation” or “directed graph data structure”) of a road network using a first map (e.g., best map available, such as an HD map, a GPS map, etc.). The graph approximation can include nodes and edges associated with the road network. The nodes in the graph may correspond to GPS coordinates in a simple version of the road network. The edges may connect the nodes together. Each edge may be annotated with an expected equivalent time (e.g., an amount of time to traverse the nodes associated with the respective edge). As such, the expected equivalent time on an edge may be set equal to the average expected cost spent traversing the edge. The graph approximation can include auxiliary information such as traffic conditions, turn difficulties, etc. The auxiliary information can include information from a fleet of cars regarding traffic conditions, and the route planner 120 may be executed in a drive system in the vehicle or in a cloud computing location. The graph approximation may take into account one or more optimization categories.); determining a matching between the plurality of first nodes and the plurality of second nodes based at least on the cost matrix (Nister: Par. [0048]; The edges connect the nodes, and each edge may be annotated with an expected equivalent time 114. For example, the expected equivalent time 114 on an edge may be the cost that on average is expected to be spent traversing the edge; [0105]; If the local lanes are generated by other methods, such as the ones generated purely by live perception, a matching can be performed between the map-based lanes and the live-perceived lanes, so that large lane graph nodes can be assigned to the live-perceived lanes. Assigning the nodes to the plurality lanes is performed in order to derive an expected equivalent time reward of each of the plurality of lanes, and the expected equivalent time reward 114 (e.g., 40 secs, 0 secs, 0 secs) can be the node expected equivalent time reward 114 minus the equivalent time cost between the current vehicle location (the box with a letter e in FIG. 4B) and the node, truncated at zero seconds. The equivalent time cost between the current vehicle location and a node can be determined based on local live perception that lane planner 110 does not consider.); updating the matching by generating, based at least on the matching, an alternating tree that represents a path from a given second node along one or more edges connected with the given second node (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Now find a path through the graph from an unmatched worker to an unmatched task. This path is called an alternating path because it will alternate between going from to and then from to . After finding this path, we can traverse it and star the un-starred edges and un-star the starred edges, resulting in one more star or match. Repeat this step until there are no more alternating paths. This will result in a maximum matching.), and performing one or more matrix multiplications based at least on the alternating tree to detect an unmatched second node of the graph for which to update the matching (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Finally, repeat the maximum matching phase and dual update phase until a perfect matching is found. Each time a dual update is performed grows until eventually a new alternating path is found. For each new alternating path found the number of matches grows until a perfect matching if found, proving the convergence of the algorithm.); and performing, using the updated matching, one or more object perception operations for at least a subset of object elements from one or more of the plurality of first object elements or the plurality of second object elements (Nister: Par. [0055]; A primary mechanism for forming the large lane graph 130 includes mapping and/or perception operations. The large lane graph 130 may be generated with values on the edges (e.g., value informed by averages, averages adapted by time of day, averages informed by current conditions learned from a fleet of vehicles), and the edges near a current position of the vehicle 700 may be further augmented using averages informed by live perception of a plurality of factors (e.g., velocities, occupation of lanes, and states of traffic lights).).
In regards to Claim 10, Nister as modified by Lopes further teaches the system of claim 9, wherein the one or more processing units are to determine the matching by: identifying, by each first node and using a respective processing thread of a plurality of processing threads, a second node of the plurality of second nodes with which the first node is connected; and selecting, by each second node, the first node that identified the second node (Lopes: 4.2. Step 2 - Initial matching; If the matrix size is greater than the maximum number of threads, then each thread will process more than one zero. Otherwise, each thread will process one zero and try and make it starred, covering its row and column. Once a zero is covered it cannot be selected for starring, so the process of selecting the zero and starring its row and its columns should be atomic.).
In regards to Claim 12, Nister as modified by Lopes further teaches the system of claim 9, wherein the plurality of first object elements comprise estimated bounding boxes generated by an object detector, the plurality of second object elements comprise reference bounding boxes, and the one more processing units are to update the object detector based at least on the updated matching (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 13, Nister as modified by Lopes further teaches the system of claim 9, wherein the plurality of first object elements correspond to data from a sensor of a vehicle (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 14, Nister as modified by Lopes further teaches the system of claim 9, wherein the system is comprised in at least one of: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for performing digital twin operations; a system for performing light transport simulation; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system for generating or presenting at least one of augmented reality content, virtual reality content, or mixed reality content; a system for hosting one or more real-time streaming applications; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational Al operations; a system comprising one or more large language models (LLMs); a system comprising one or more vision language models (VLMs); a system for generating synthetic data; a system incorporating one or more virtual machines (VMs); a system implemented at least partially in a data center; or a system implemented at least partially using cloud computing resources (Nister: Par. [0023-0024]; Further, the systems and methods described herein may be used for a variety of purposes, by way of example and without limitation, for machine control, machine locomotion, machine driving, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and surveillance, autonomous or semi-autonomous machine applications, deep learning, environment simulation, data center processing, conversational AI, light transport simulation (e.g., ray-tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing and/or any other suitable applications; Disclosed embodiments may be comprised in a variety of different systems such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine), systems implemented using a robot, aerial systems, medial systems, boating systems, smart area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems implemented using an edge device, systems incorporating one or more virtual machines (VMs), systems for performing synthetic data generation operations, systems implemented at least partially in a data center, systems for performing conversational AI operations, systems for performing light transport simulation, systems for performing collaborative content creation for 3D assets, systems implemented at least partially using cloud computing resources, and/or other types of systems.).
Regarding Claim 15:
Nister as modified by Lopes further teaches a method comprising: generating a graph of a cost matrix associating a plurality of first object elements with a plurality of second object elements, the graph comprising a plurality of first nodes representing rows of the cost matrix and a plurality of second nodes representing columns of the cost matrix (Nister: Par. [0041]; In this way, the route planner 120 constructs a directed graph approximation (“graph approximation” or “directed graph data structure”) of a road network using a first map (e.g., best map available, such as an HD map, a GPS map, etc.). The graph approximation can include nodes and edges associated with the road network. The nodes in the graph may correspond to GPS coordinates in a simple version of the road network. The edges may connect the nodes together. Each edge may be annotated with an expected equivalent time (e.g., an amount of time to traverse the nodes associated with the respective edge). As such, the expected equivalent time on an edge may be set equal to the average expected cost spent traversing the edge. The graph approximation can include auxiliary information such as traffic conditions, turn difficulties, etc. The auxiliary information can include information from a fleet of cars regarding traffic conditions, and the route planner 120 may be executed in a drive system in the vehicle or in a cloud computing location. The graph approximation may take into account one or more optimization categories.); determining a matching between the plurality of first nodes and the plurality of second nodes based at least on the cost matrix (Nister: Par. [0048]; The edges connect the nodes, and each edge may be annotated with an expected equivalent time 114. For example, the expected equivalent time 114 on an edge may be the cost that on average is expected to be spent traversing the edge; [0105]; If the local lanes are generated by other methods, such as the ones generated purely by live perception, a matching can be performed between the map-based lanes and the live-perceived lanes, so that large lane graph nodes can be assigned to the live-perceived lanes. Assigning the nodes to the plurality lanes is performed in order to derive an expected equivalent time reward of each of the plurality of lanes, and the expected equivalent time reward 114 (e.g., 40 secs, 0 secs, 0 secs) can be the node expected equivalent time reward 114 minus the equivalent time cost between the current vehicle location (the box with a letter e in FIG. 4B) and the node, truncated at zero seconds. The equivalent time cost between the current vehicle location and a node can be determined based on local live perception that lane planner 110 does not consider.); updating the matching by generating, based at least on the matching, an alternating tree that represents a path from a given second node along one or more edges connected with the given second node (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Now find a path through the graph from an unmatched worker to an unmatched task. This path is called an alternating path because it will alternate between going from to and then from to . After finding this path, we can traverse it and star the un-starred edges and un-star the starred edges, resulting in one more star or match. Repeat this step until there are no more alternating paths. This will result in a maximum matching.), and performing one or more matrix multiplications based at least on the alternating tree to detect an unmatched second node of the graph for which to update the matching (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Finally, repeat the maximum matching phase and dual update phase until a perfect matching is found. Each time a dual update is performed grows until eventually a new alternating path is found. For each new alternating path found the number of matches grows until a perfect matching if found, proving the convergence of the algorithm.); and performing, using the updated matching, one or more object perception operations for at least a subset of object elements from one or more of the plurality of first object elements or the plurality of second object elements (Nister: Par. [0055]; A primary mechanism for forming the large lane graph 130 includes mapping and/or perception operations. The large lane graph 130 may be generated with values on the edges (e.g., value informed by averages, averages adapted by time of day, averages informed by current conditions learned from a fleet of vehicles), and the edges near a current position of the vehicle 700 may be further augmented using averages informed by live perception of a plurality of factors (e.g., velocities, occupation of lanes, and states of traffic lights).).
In regards to Claim 16, Nister as modified by Lopes further teaches the method of claim 15, further comprising: identifying, by each first node and using a respective processing thread of a plurality of processing threads, a second node of the plurality of second nodes with which the first node is connected; and selecting, by each second node, the first node that identified the second node (Lopes: 4.2. Step 2 - Initial matching; If the matrix size is greater than the maximum number of threads, then each thread will process more than one zero. Otherwise, each thread will process one zero and try and make it starred, covering its row and column. Once a zero is covered it cannot be selected for starring, so the process of selecting the zero and starring its row and its columns should be atomic.).
In regards to Claim 18, Nister as modified by Lopes further teaches the method of claim 15, wherein the plurality of first object elements comprise estimated bounding boxes generated by an object detector, the plurality of second object elements comprise reference bounding boxes, and method comprises updating the object detector based at least on the updated matching (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 19, Nister as modified by Lopes further teaches the method of claim 15, wherein the plurality of first object elements correspond to data from a sensor of a vehicle (Nister: Par. [0158]; The neural network may take as its input at least some subset of parameters, such as bounding box dimensions, ground plane estimate obtained (e.g. from another subsystem), inertial measurement unit (IMU) sensor 766 output that correlates with the vehicle 700 orientation, distance, 3D location estimates of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), among others.).
In regards to Claim 20, Nister as modified by Lopes further teaches the method of claim 15, further comprising updating, by the one or more processors, the matching by adding a match between the unmatched second node and a first node corresponding to the unmatched second node to the matching (Lopes: 2.2. Proof that proposed formulation of the HA solves the LAP problem; Now find a path through the graph from an unmatched worker to an unmatched task. This path is called an alternating path because it will alternate between going from to and then from to . After finding this path, we can traverse it and star the un-starred edges and un-star the starred edges, resulting in one more star or match. Repeat this step until there are no more alternating paths. This will result in a maximum matching; There will be zeros marked as prime that will not be part of an alternating path, but if at step 5 one starts at an unmatched row and goes through the marked path in the graph using the primes, this time in the forward direction, it will always reach an unmatched column which is the actual goal.).
Allowable Subject Matter
Claims 3, 11, and 17 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter:
Claims 3, 11, and 17 recite, in some variation, wherein the one or more circuits are to: generate a first bit array to represent the alternating tree; and perform the one or more matrix multiplications, using a plurality of processing threads, as one or more bitwise matrix multiplications of a matrix comprising the first bit array and a plurality of second bit arrays. The cited art of record does not teach or suggest such a combination of features.
Because the cited art of record, alone or in combination, does not teach or suggest each and every feature of dependent Claims 3, 11, and 17, these claims would be allowable.
Pertinent Art
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Juffa et al. (U.S. Patent App. Pub No. 2010/0325187 A1) teaches efficient matrix multiplication operations on parallel processing devices.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RENAE BITOR whose telephone number is (703)756-5563. The examiner can normally be reached Monday to Friday: 8:00 - 5:30 but off the 1st Friday of the biweek.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, GREG MORSE can be reached on (571)272-3838. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/RENAE A BITOR/Examiner, Art Unit 2663
/GREGORY A MORSE/Supervisory Patent Examiner, Art Unit 2698