Parking Slot Annotation

A method, a computer program product and an apparatus for annotating parking slots in a map representing an overhead view of a at least partially drivable area. The method comprises presenting the map to a user, defining a parking sequence object in the map by obtaining a user selection in the map of a start point and of an end point and determining an orientation angle. The method further comprises determining, based on the parking sequence object, a plurality of parking slot objects equidistant along a line defined between the start point and the end point, and positioned in an identical angle with respect to the line being defined based on the orientation angle. The identified parking slot objects are presented on the map and utilized in training parking slot detection models for identifying parking slots in maps.

TECHNICAL FIELD

The present disclosure relates to parking slot detection in general, and to parking slot annotation, in particular.

BACKGROUND

With the ever-increasing pace of urbanization, the demand for efficient parking solutions is becoming paramount to mitigate the challenges arising from limited parking availability in urban environments. Conventional parking experiences often entail frustrating and time-consuming quests for available parking spaces, exacerbating congestion and environmental concerns. Current parking systems, predominantly relying on manual methods or rudimentary sensor technologies, frequently provide inaccurate information regarding parking space availability. This inefficiency underscores the pressing need for enhancement through the integration of advanced computer vision techniques for parking slot detection.

Computer vision, an interdisciplinary domain, is dedicated to enabling machines to interpret and comprehend visual data. It encompasses the development of algorithms and methodologies aimed at analyzing, processing, and extracting meaningful insights from images or video streams. In the context of parking slot detection, computer vision algorithms offer the capability to differentiate between vacant and occupied parking spaces, facilitate real-time monitoring of parking occupancy, and deliver timely updates to users, thereby significantly improving overall parking management efficiency.

BRIEF SUMMARY

One exemplary embodiment of the disclosed subject matter is a method for annotating parking slots in a map, the method comprising: presenting the map to a user, the map representing an overhead view of a at least partially drivable area; defining a parking sequence object in the map, wherein said defining comprises: obtaining a user selection in the map of a start point and of an end point; and determining an orientation angle; determining, based on the parking sequence object, a plurality of parking slot objects, the plurality of parking slot objects are equidistant along a line defined between the start point and the end point, the plurality of parking slot objects are positioned in an identical angle with respect to the line, wherein the identical angle is defined based on the orientation angle; presenting over the map the plurality of parking slot objects; and utilizing the plurality of parking slot objects in training a parking slot detection model, the parking slot detection model is a digital product that is configured to identify parking slots in maps.

Optionally, the map is a perception map, the perception map comprises at least a parking area segmentation layer and a driving area segmentation layer, wherein the perception map is presented with a different visual indication to different layers.

Optionally, the start point and the end point are located in locations defined in the parking area segmentation layer as parking areas.

Optionally, said obtaining user selection comprises verifying that each point in the line defined by the start point and the end point is located in a location defined in the parking area segmentation layer as parking areas, whereby verifying that the plurality of parking slot objects are located in a continuous parkable area.

Optionally, said defining the parking sequence object comprises defining an occupancy class of the parking sequence object, the occupancy class of the parking sequence object is selected from a group including at least a vacant parking class and an occupied parking class, wherein said determining the plurality of parking slot objects comprises assigning to each parking slot object of the plurality of parking slot objects the occupancy class of the parking sequence object.

Optionally, said determining the plurality of parking slot objects comprises: determining for each parking slot object of the plurality of parking slot objects an occupancy class, the occupancy class of the parking sequence object is selected from a group including at least a vacant parking class and an occupied parking class.

Optionally, said determining for each parking slot object the occupancy class comprises: determining a default occupancy class for all parking slot objects; and enabling the user to modify the default occupancy class of a parking slot object.

Optionally, said determining for each parking slot object the occupancy class comprises: automatically determining, based on the map, an occupancy class for each parking slot object of the plurality of parking slot objects; and enabling the user to modify the automatically determined occupancy class of a parking slot object.

Optionally, said determining the plurality of parking slot objects comprises determining, based on the orientation angle, a length of the line and dimensions of parking slot objects, a number of parking slot objects represented by the parking sequence object.

Optionally, the method further comprises: obtaining a user modification of the orientation angle, whereby obtaining a modified parking sequence object; determining a second plurality of parking slot objects represented by the modified parking sequence object; and presenting over the map the second plurality of parking slot objects instead of the plurality of parking slot objects.

Optionally, a number of parking slot objects in the second plurality of parking slot objects is different than a number of parking slot objects in the plurality of plurality of parking slot objects.

Optionally, said determining the orientation angle is performed automatically based on information from the map.

Optionally, said determining the orientation angle is performed automatically based an orientation angle of one or more other parking sequence objects defined over the map.

Optionally, said determining the orientation angle comprises obtaining the orientation angle from the user.

Optionally, the parking slot detection model is trained to identify parking sequence objects based on the parking sequence object, in addition to being trained to identify parking slot objects based on the plurality of parking slot objects.

Optionally, the parking sequence object is a compact representation of the plurality of parking slot objects, whereby storage volume utilized in storing parking sequence objects is reduced compared to storage volume utilized for storing a corresponding set of plurality of parking slot objects.

Optionally, the map is a satellite image.

Another exemplary embodiment of the disclosed subject matter is a computerized apparatus having a hardware processor, the processor the hardware processor being coupled to a memory, being hardware processor adapted to perform the steps of: presenting the map to a user, the map representing an overhead view of a at least partially drivable area; defining a parking sequence object in the map, wherein said defining comprises: obtaining a user selection in the map of a start point and of an end point; and determining an orientation angle; determining, based on the parking sequence object, a plurality of parking slot objects, the plurality of parking slot objects are equidistant along a line defined between the start point and the end point, the plurality of parking slot objects are positioned in an identical angle with respect to the line, wherein the identical angle is defined based on the orientation angle; presenting over the map the plurality of parking slot objects; and utilizing the plurality of parking slot objects in training a parking slot detection model, the parking slot detection model is a digital product that is configured to identify parking slots in maps.

Yet another exemplary embodiment of the disclosed subject matter is a computer program product comprising a non-transitory computer readable storage medium retaining program instructions, which program instructions when read by a processor, cause the processor to perform a method comprising: presenting the map to a user, the map representing an overhead view of a at least partially drivable area; defining a parking sequence object in the map, wherein said defining comprises: obtaining a user selection in the map of a start point and of an end point; and determining an orientation angle; determining, based on the parking sequence object, a plurality of parking slot objects, the plurality of parking slot objects are equidistant along a line defined between the start point and the end point, the plurality of parking slot objects are positioned in an identical angle with respect to the line, wherein the identical angle is defined based on the orientation angle; presenting over the map the plurality of parking slot objects; and utilizing the plurality of parking slot objects in training a parking slot detection model, the parking slot detection model is a digital product that is configured to identify parking slots in maps.

DETAILED DESCRIPTION

One technical problem dealt with by the disclosed subject matter is to improve automatic identification and localization of valid parking slots, particularly in unstructured parking areas. Parking spaces may not always be clearly defined or structured, especially in open spaces or unconventional parking scenarios. Automatic parking techniques may face challenges in unstructured parking areas due to several reasons, such as lack of clear boundaries, variability in parking layout, existing of obstacles and irregularities, unexpected environmental conditions, or the like. Unstructured parking areas may lack clearly defined boundaries for individual parking spaces. Without clear markings or delineations, it may become difficult for both automatic parking systems to identify and navigate to available parking slots and for human drivers to select appropriate parking locations that provide efficient space utilization of the parking area.

Another technical problem dealt with by the disclosed subject matter is to enable dynamic annotation of parking slot without reliance on pre-defined on-surface markings, such as road markings outlining parking boundaries. In some exemplary embodiments, parking slots may exhibit diverse designs, including parallel, perpendicular, tilted spaces, or hybrid layouts within the same parking area. One parking area may be arranged in multiple arrangements, thereby accommodating different number of parking slots, in different orientations, different arrangement, or the like. It may be required to enable dynamic adjustment of parking configurations to suit different needs and accommodate varying numbers of vehicles.

Yet another technical problem dealt with by the disclosed subject matter is to efficiently train parking slot detection models, and specially ANN-based object detection models to identify parking slot objects. Technical solutions, such as the solutions disclosed in patent application No. U.S. Ser. No. 18/609,536, titled: “PARKING SPOT DETECTION”, filed on Mar. 19, 2024, which is hereby incorporated by reference in its entirety without giving rise to disavowment; may utilize elevated perception maps and ANN-based object detector for automatically identifying parking slot objects. The elevated perception maps may be utilized to represent the surrounding area around a vehicle. The elevated perception map may comprise multiple functional layers. Each pixel in the elevated perception map may be associated with a predetermined relative location to the vehicle. The elevated perception map may comprise a plurality of functional layers. The values of pixels at different layers may indicate infrastructure segments or objects located at corresponding relative locations to the vehicle, such as driving paths infrastructure layers, parking area segmentation layer, vehicle object layer, pedestrian layers, or the like. These layers aid in identifying parking areas and classifying parking slots based on the presence of other vehicles or objects or availability of parking areas in the surrounding area. An ANN may be utilized to detect parking slot objects within the elevated perception maps. The ANN may be trained to detect parking slot objects within the parking area segmentation layer, which is indicative of sub-areas in the surrounding area around the vehicle in which vehicles can park.

One technical solution is to perform annotation of sequences of parking slots, using minimal input, start and end points, and orientation angle, with the system then automatically generating annotations for individual parking slots based on this information. In some exemplary embodiments, a user, e.g., an annotator may be enabled to mark over a map two points defining a parking segment: a start and an end point thereof. A parking segment, also referred to as a parking sequence object, may be a continuous area that contains multiple parking slots arranged adjacently. A “skeleton”, which is a line connecting the start and end points of the parking segment may be generated. This line passes through the center points of all the individual parking slots within the parking segment. Additionally, or alternatively, the annotator may be enabled to specify the orientation angle of the parking segment relative to the line. The orientation angle may be utilized to determine the arrangement of the parking slots within the parking segment. As an example, an angle of 0° corresponds to parallel parking slots, while an angle of 90° corresponds to perpendicular parking slots. Once the start and end points, along with the orientation angle, are provided, the system may automatically generate annotations for all individual parking slots within the parking segment. These annotations may be derived from the line and orientation information.

In some exemplary embodiments, the annotated parking segment, e.g., the parking sequence object, or the plurality of parking slot objects may be utilized in training a parking slot detection model. The parking slot detection model may be a digital product that is configured to identify parking slots in maps. In some exemplary embodiments, the parking slot detection model may be an ANN-based model. The parking slot detection model may be trained to identify first object type representing a sequence of one or more parking slots, e.g., parking sequence objects, and a second object type representing a single parking slot object. In some cases, objects from the first object type which represents a consecutive sequence of one or more parking slots within the parking area, may be a grouping of parking slots that are adjacent to each other or arranged in a specific pattern, or equidistant along a symmetry line, or the like. The parking slot detection model may be trained to identify and delineate these sequences, enabling it to understand the spatial layout of parking areas and recognize larger patterns of available parking spaces. Detecting sequences of parking slots can be particularly useful in scenarios where parking slots are organized in rows or designated sections within a parking lot. The parking slot detection model may further be trained to identify and classify individual parking slots (the second type of parking slot objects), within the sequences of parking slots, or identifying sequences of parking slots of size one. The parking slot detection model may further be trained to determine their occupancy class (vacant, occupied, blocked) based on the information available in the elevated perception maps.

It may be noted that the disclosed technical solution may be applied to other non-parking-related cases, such as annotation of objects having varying sizes and orientations affected by multiple factors. As an example, to perform annotation of sequences of package locations for storage in an automated storage house, using minimal input, start and end points, and orientation angle, or the like.

One technical effect of utilizing the disclosed subject matter is improving computational resources utilization. Utilizing parking sequence objects to represent plurality of parking slots may provide a more efficient and compact representation of parking slots, reduce storage volume utilized in storing parking information. The storage volume utilized for sequence objects representation is reduced compared to storage volume utilized for storing a corresponding set of plurality of parking slot objects.

Another technical effect of utilizing the disclosed subject matter is providing flexibility in defining parking area dimensions while maintaining efficiency and accuracy in annotation of such parking slots. The disclosed solution does not rely on prior assumptions about road markings, parking slot orientation, or size. It directly detects parking slots, making it adaptable to a wide variety of parking lots with different markings or no markings at all. The disclosed subject matter is a single solution that can be seamlessly utilized for all scenarios including paved and non-paved parking areas, without having to identify the specific relevant scenario.

Yet another technical effect of utilizing the disclosed subject matter is enhancing the accuracy, precision of parking slot detection systems in autonomous parking applications, especially in urban areas. The disclosed subject matter enables the accurate detection and localization of parking slot objects through the generation of the perception maps. By dynamically generating the perception map s based on accurate maps that are dynamically updated based on real-time sensor data obtained from sensors mounted on the vehicle, the system ensures accurate and up-to-date information about the surrounding environment. This robust perception enhances the system's responsiveness and reliability in navigating complex driving scenarios. This adaptive representation enhances the versatility of the system, enabling it to adapt to different driving environments and scenarios.

The disclosed subject matter may provide for one or more technical improvements over any pre-existing technique and any technique that has previously become routine or conventional in the art. Additional technical problem, solution and effects may be apparent to a person of ordinary skill in the art in view of the present disclosure.

Referring now to FIGS. 1A-1C showing schematic illustrations of exemplary maps, in accordance with some exemplary embodiments of the disclosed subject matter.

Map 110a may be a visual representation of an overhead view of a partially drivable area. In some exemplary embodiments, Map 110a may be a perception map that represents the environment around a vehicle (115) or another observer. Map 110a may comprise representations of streets, drivable roads (111), parking lots (112), pedestrians (113), parking vehicle (104), driving vehicles (115), obstacles, other relevant areas where vehicles can maneuver, or the like. It may be noted that Map 110a may be provided in different types of representations, such as geographical maps, perception maps, images, or the like; and of different types of partially drivable areas, such as in urban areas, in interurban area, open spaces, or the like. As an example, Map 110a may be a map of an urban area, showing streets, intersections, and parking lots. As another example, Map 110a may be an aerial view of an area, displaying roads, parking areas, buildings, or the like. as yet another example, Map 110a may be a satellite image of a suburban neighborhood, illustrating streets, driveways, residential parking spaces, or the like. As yet another example, Map 110a may be a schematic diagram of a parking layout, indicating parking slots, driving lanes, entrance/exit points, or the like. As yet another example, Map 110a may be designed to support autonomous driving, parking assistance, advanced driver assistance systems (ADAS), or the like.

Additionally, or alternatively, Map 110a may be an elevated map, captured from an elevated viewpoint, such as from above Vehicle 115, from the sky, from an airplane, from a drone, or the like. Additionally, or alternatively, Map 110a may be generated based on data captured from other viewpoints.

In some exemplary embodiments, the map may comprise a plurality of segmentation layers. Each layer may be configured to indicated a different type of element of the surrounding area around the Vehicle 115. Such elements may comprise infrastructure elements, such as roads (111), parking areas (112), lanes, paths, crosswalks, or the like. Additionally, or alternatively, the elements may comprise objects, such as vehicles (104), pedestrians (113), signs, obstacle, or the like. In some exemplary embodiments, the map may be presented with a different visual indication to different layers, as an example, a parking area segmentation layer may be presented with a different color or pattern than a driving area segmentation layer.

Additionally, or alternatively, Map 110a may be a satellite image. The satellite image may be an image of Earth collected by imaging satellites operated by governments or businesses around the world, such as Apple Maps image, Google Maps, image, or the like. Satellite images may be captured using cameras or sensors mounted on satellites or other related observers. Satellite images may provide bird's-eye view of large areas of roads, driving environments, urban areas, or the like. Additionally, or alternatively, the map may be generated based on satellite images, in addition to or instead of sensor data. The images may be processed and analyzed to identify infrastructure segments, objects, and other features relevant to parking slot detection and autonomous driving. Additionally, or alternatively, other types of maps may be utilized, such as High-Definition (HD) maps, regular road maps, or the like.

In some exemplary embodiments, a user may be enabled to select using a designated widget, such as Pointer 100a, a Start Point 120a and an End Point 130a on Map 110a. Start Point 120a and End Point 130a may be located in locations in Map 110a that are defined as parking areas (112). The Line 140a connecting between Start Point 120a and End Point 130a may be configured to define a basis on which the parking sequence object to be defined thereon. It may be noted that the entirety of Line 140a is required to be located in a parking area in order to validate that all the parking slot objects are located in parkin areas.

In some exemplary embodiments, a parking sequence object, such as Parking Sequence Object 150b or 160c may be automatically defined between Start Point 120a and End Point 130a. The parking sequence object may comprise a plurality of parking slot objects. The plurality of parking slot objects may be equidistant along Line 140a, such as Slots 151b along Line 140b, and Slots 161c along Line 161c.

In some exemplary embodiments, an orientation angle of the parking sequence object may be determined. In some cases, the orientation angle may be selected by the user, or in a manner enabling a convenient parking in accordance with the drivers' preferences, or the like. Additionally, or alternatively, the orientation angle may be determined in a manner maximizing the number of parking slots in the parking sequence object. Additionally, or alternatively, the orientation angle may be determined based on properties of the parkable area in which Start Point 120a and End Point 130a are located, such as the width thereof, boundaries, or the like. It may be noted that the plurality of parking slot objects may be all positioned in an identical angle with respect to Line 140a. The identical angle may be defined based on the orientation angle. As an example, Map 100b presents a Parking Sequence Object 150b, with an orientation angle having a value of 0° with respect to Line 140b.

In some exemplary embodiments, in response to the user modifying the orientation angle, a modified parking sequence object may be defined. As an example, Map 100c presents a Parking Sequence Object 160c, with an orientation angle having a value of 140° with respect to Line 140c. The number of parking slot objects in Parking Sequence Object 150b is 5, while the number of parking slot objects in Parking Sequence Object 160c is 7.

Referring now to FIG. 2 showing a flowchart diagram of a method, in accordance with some exemplary embodiments of the disclosed subject matter.

On Step 210, a map representing an overhead view of at least partially drivable area may be presented to a user. In some exemplary embodiments, the map may comprise representations of streets, drivable roads, parking lots, pedestrians, parking vehicle, driving vehicles, obstacles, or other relevant areas where vehicles can maneuver. The user may be a human annotator or professional responsible for parking slot annotations, training data of parking slot detection models, software developer, or the like.

In some exemplary embodiments, the map may be represented to the user through a graphical user interface (GUI) of a software application that enables the user to interact with the map, such as using a pointer device (e.g., mouse, touchpad) to select points, draw lines, or perform other actions.

On Step 220, a parking sequence object may be defined in the map. The parking sequence object may be a digital representation of a sequence or a series of parking slot objects within the map. The parking sequence object may be designed to facilitate the systematic annotation and arrangement of parking slots or spaces within a designated area in the map. The parking sequence object may comprise two or more parking slot objects, indicating their positions and orientations. 345

In some exemplary embodiments, the parking sequence object may be defined by obtaining user input or user-defined parameters, such as a start point, an end point (Step 230), an orientation angle (Step 235), or the like. These parameters may delineate the trajectory along which parking slots are arranged. The parking slot objects in each parking sequence object may be evenly distributed along the trajectory defined by the start and end points of the parking sequence object. The parking slot objects in each parking sequence object may be positioned at an identical angle with respect to the trajectory, ensuring a consistent arrangement of parking slots.

Additionally, or alternatively, the user input may comprise other parameters that define the spatial arrangement and characteristics of parking slots within a designated area of interest, such as a line indicative of the spatial arrangement of the parking slots, by manually drawing or defining the area of the parking sequence object within the map, or the like. Additionally, the user may provide input regarding the orientation angle, which influences the alignment of the parking slots relative to the defined path between the start and end points.

On Step 230, a user selection in the map of a start point and of an end point may be obtained. The user selection may involve interacting with a GUI presented on a device such as a computer, tablet, a smartphone, or the like. The GUI may be utilized to display the map to the user, and to provide tools or controls specifically designed for selecting start and end points on the map, such as by interacting with designated widgets, mouse clicks, touch gestures, stylus input to select the start and end points on the map displayed on the GUI. Visual feedback may be provided to users during the selection process, such as highlighting or marking the selected points on the map to confirm their choices.

In some exemplary embodiments, the start point and the end point are located in locations defined in the parking area segmentation layer as parking areas. By restricting the selection of start and end points to designated parking areas, the system ensures that the parking sequence object accurately represents parking slots within the intended parking zones.

On Step 235, an orientation angle may be determined. The orientation angle may be the angle at which the parking slots are positioned relative to a specified path within the parking sequence object. This angle determines the alignment of the parking slots along the designated path, ensuring a consistent arrangement within the map representation.

In some exemplary embodiments, the orientation angle may be obtained from the user. Users can provide the orientation angle through various means, such as by directly entering the desired orientation angle within a numerical input field, by visually adjusting the orientation angle on the map, or the like.

Additionally, or alternatively, determining the orientation angle may be performed automatically based on information from the map. As an example, the orientation angle may be determined based on road patterns, landmarks, or other features in the map data. The orientation of such elements may be utilized to estimate the orientation angle.

Additionally, or alternatively, determining the orientation angle may be performed automatically based an orientation angle of one or more other parking sequence objects defined over the map, such as for maintaining consistency, symmetry, or the like.

Additionally, or alternatively, the orientation angle may be determined automatically based on an orientation angle a parking vehicle in the parking area in which the parking sequence object is being defined. The alignment of parked vehicles within the parking area may be utilized as a reference for inferring the orientation angle of parking sequence object, as all of the parking slots within the parking sequence object are equidistant along the line defined between the start point and the end point in an identical angle with respect to the line. Accordingly, the existence of a parked vehicle forces the orientation angle. Additionally, or alternatively, the existence of a parked vehicle may also force a location of other parking slot objects within the parking sequence object.

On Step 240, a verification that the plurality of parking slot objects are located in a continuous parkable area may be performed. The verification may be performed by verifying that each point in the line defined by the start point and the end point is located in a location defined in the parking area segmentation layer as parking areas.

On Step 250, a plurality of parking slot objects may be determined based on the parking sequence object. The plurality of parking slot objects may be equidistant along a line defined between the start point and the end point. The plurality of parking slot objects may be oriented in a consistent manner relative to the line. This uniform orientation may be determined based on the orientation angle specified for the parking sequence object. Each parking slot object within parking sequence object may be positioned at the same angle with respect to the line, ensuring that all parking slots are aligned in a uniform direction within the parking segment. This alignment facilitates efficient use of space and helps automatic driving system or human drivers navigate the parking area more easily.

In some exemplary embodiments, a number of parking slot objects represented by the parking sequence object may be determined based on several factors, such as including the orientation angle, the length of the line, the dimensions of the parking slot object, or the like. As the orientation angle defines the arrangement of parking slots within the parking sequence object, it may affect the number of parking slot objects that fit within the area defined the parking sequence object. For example, if the orientation angle is 0°, indicating parallel parking slots, the number of parking slots may be determined differently than if the angle is 90°, indicating perpendicular parking slots. Similarly, the length of the line, or the distance between the start and end points determines the overall span of the parking sequence object. A longer line may accommodate more parking slots compared to a shorter one, assuming other factors remain constant. The dimensions of the parking slot object, such as width and length, may also affect how many slots can fit within the parking sequence object.

On Step 255, an occupancy class may be determined for each parking slot object of the plurality of parking slot objects. The occupancy class of the parking slot object may be selected from a group including at least a vacant parking class and an occupied parking class.

In some exemplary embodiments, occupancy class of the parking slot object may be determined based on an occupancy class of the parking sequence object. The occupancy class of the parking sequence object may be defined by the user, may be set with a default value, or the like. The occupancy class of the parking sequence object may be selected from a group including at least a vacant parking class and an occupied parking class.

In some exemplary embodiments, a default occupancy class may be determined for all parking slot objects. The user may be enabled to modify the default occupancy class of each particular parking slot object separately.

Additionally, or alternatively, an occupancy class for each parking slot object of the plurality of parking slot objects may be determined automatically based on the map. The user may be enabled to modify the automatically determined occupancy class of each particular parking slot object separately.

On Step 260, the plurality of parking slot objects may be presented over the map. In some exemplary embodiments, different colors may be utilized to indicate different occupancy classes of the parking slot objects. The markings of the plurality of parking slot objects may be of adjacent rectangle shapes rotated in accordance with the orientation angle. A special marking may be utilized for marking the defining line of the parking sequence object.

On Step 270, the plurality of parking slot objects may be utilized in training a parking slot detection model. The parking slot detection model may be a digital product that is configured to identify parking slots in maps. The parking slot detection model may be trained to identify parking sequence objects based on the parking sequence object, in addition to being trained to identify parking slot objects based on the plurality of parking slot objects.

In some exemplary embodiments, the parking slot detection model being trained using the plurality of parking slot objects may be an ANN-based model. The ANN-based model may be designed as a deep neural network, CNNS, consisting of multiple layers of interconnected neurons, or the like. It may be noted that parking slot objects may be regarded or considered as physical objects for the purpose of visual detection in this context techniques, despite not having physical features. The outputted detected parking slot objects may be utilized in various ways, such as by autonomous driving system of the vehicle, enabling autonomous parking, or the like.

Additionally, or alternatively, the parking slot detection model being trained using the plurality of parking slot objects may be utilized to detect parking slot objects within elevated perception maps, that are described in in patent application U.S. Ser. No. 18/609,536, titled: “PARKING SPOT DETECTION”, filed on Mar. 19, 2024, which is hereby incorporated by reference in its entirety without giving rise to disavowment. Such parking slot detection model may be trained to detect parking slot objects within a parking area segmentation layer, which is indicative of sub-areas in the surrounding area around the vehicle in which vehicles can park. Such sub-areas may comprise parking blobs that can be subdivided into a plurality of parking slots. The parking slot detection model may be configured to determine locations of parking slot objects within areas that are segmented as parking areas according to the parking area segmentation layer.

Additionally, or alternatively, the parking slot detection model being trained using the plurality of parking slot objects may be trained to detect an occupancy class of each detected parking slot object. The occupancy statuses may be vacant parking slot class, occupied parking status, or the like. The occupancy class of the parking slot object may be determined based on the class of other objects in parking slot object in the parking sequence object, or based on information from the map, or the like. As an example, the plurality of functional layers of the elevated perception map may comprise a vehicle object layer that is indicative of other vehicles that are present in the surrounding area of the vehicle. The parking slot objects occupancy class may be classified as occupied or vacant based on the other vehicles identified based on the vehicle object layer.

In some exemplary embodiments, the parking slot detection model being trained using the plurality of parking slot objects may be trained to identify first object type representing parking sequence objects, and a second object type representing a single parking slot object. In some cases, the slot detection model may be trained to identify and delineate the parking sequence object, enabling it to understand the spatial layout of 490 parking areas and recognize larger patterns of available parking spaces. Detecting sequences of parking slots can be particularly useful in scenarios where parking slots are organized in rows or designated sections within a parking lot. The slot detection model may further be trained to identify and classify individual parking slots (the second type of parking slot objects), within the sequences of parking slot objects, or identifying sequences of parking slots of size one. The slot detection model may further be trained to determine their occupancy class (vacant, occupied, blocked, or the like) based on the information available in the maps.

Referring now to FIG. 3A showing schematic illustration of an exemplary map and markings of annotated parking sequence objects thereon, in accordance with some exemplary embodiments of the disclosed subject matter.

Map 300a may represent an overhead view of a at least partially drivable area, similar to Maps 100a-100c presented in FIGS. 1A-1C. Multiple parking sequence objects may be displayed on Map 300a, such as Parking Sequence Object 310a and Parking Sequence Object 320a. Each of Parking Sequence Object 310a and Parking Sequence Object 320a may be defined based on a start point and an end point (311a and 312a; 321a and 322a; respectively). The start and end points may be manually selected by a user, as described in Step 230 in FIG. 2 and in FIG. 1A. Each of Parking Sequence Object 310a and Parking Sequence Object 320a may comprise a plurality of parking slot objects (such as 319a and 329a) that are equidistant along a line (315a and 510 325a, respectively) defined between the start point and the end point (311a and 312a; 321a and 322; respectively).

In some exemplary embodiments, each of Parking Sequence Object 310a and Parking Sequence Object 320a may have an orientation angle. The orientation angle may be determined based on input provided by the user, or based on properties of the parking area, such as the size of the parking area, the size of the parking vehicle, the required number of parking objects, parking preferences, or the like. The plurality of parking slot objects in each of Parking Sequence Object 310a and Parking Sequence Object 320a may be positioned in an identical angle with respect to the defining line (315a and 325a, respectively). The identical angle may be defined based on the orientation angle determined for the parking sequence object.

In some exemplary embodiments, the orientation angle may be determined in accordance with an orientation of an existing parking vehicle within the parking area that the parking sequence object is being defined therein. As an example, the orientation angle of Parking Sequence Object 310a is forced to be in a value enabling the plurality of parking slot objects to be positioned in angles identical to the angle Vehicle 308a is positioned.

Additionally, or alternatively, instead of obtaining start and end points, the length of Line 315a and Line 325a may be determined based on the orientation angle, along with the dimensions of parking slot objects, a number of parking slot objects represented by the parking sequence object, or the like. As an example, Line 325 may be respective of 3 parking slot objects given a parallel parking orientation angle.

Referring now to FIG. 3B showing schematic illustration of an exemplary map and markings of annotated parking sequence objects thereon, in accordance with some exemplary embodiments of the disclosed subject matter.

Map 350b may represent an overhead view of a at least partially drivable area, similar to Maps 100a-100c presented in FIGS. 1A-1C. Multiple parking sequence objects may be displayed on Map 350b, such as Parking Sequence Object 360b, Parking Sequence Object 370b, Parking Sequence Object 380b and Parking Sequence Object 390b. Each of the parking sequence objects 360b, 370b, 380b and 390b may be defined based on a start point and an end point (361b and 362b, 371b and 372b, 381b and 382b; 391a and 392b; respectively). The start and end points may be manually selected by a user, as described in Step 230 in FIG. 2 and in FIG. 1A. Each of the parking sequence objects 360b, 370b, 380b and 390b may comprise a plurality of parking slot objects (such as 379b and 399b) that are equidistant along a line (365b, 375b, 385b and 395b, respectively) defined between the start point and the end point thereof. It may be noted that each of start and end point 361b and 362b, 371b and 372b, 381b and 382b; 391a and 392b of each of parking sequence objects 360b, 370b, 380b and 390b is required to be located in a in locations defined as parking area segmentation layer in Map 350b. It may be also required that each point in the line defined by the start point and the end point, such as Line 365b defined by Start Point 361B and End Point 362b, is located in a location defined in the parking area segmentation layer, so as to verifying that the plurality of parking slot objects comprised by Parking Sequence Object 360b are located in a continuous parkable area. However, it may not always be applicable. As an example, both Start Point 381b and End Point 382b are located within parking area segmentation layer in Map 350b, so are all the points in Line 385b. However, Parking Slot Object 389 is not located entirely in a continuous parkable area. In such a case, Parking Slot Object 389 may be marked differently, or classified as non-applicable parking slot, or the like.

It may be noted that it may be easier to utilize Parking Sequence Object 360b for example, as a compact representation of a plurality of parking slot objects, instead of storing the corresponding set of the plurality of parking slot objects therein.

In some exemplary embodiments, an occupancy class may be assigned for each parking sequence object. The occupancy class may be selected from a group including at least a vacant parking class, an occupied parking class, a non-applicable parking class, or the like. In some exemplary embodiments, an occupancy class may be determining for each parking slot object of the plurality of parking slot objects separately. A default occupancy class may be determined for all parking slot objects within the parking sequence object, then the user may be enabled to modify the default occupancy class of a parking slot object. As An example, the default occupancy class may be vacant and the user may be enabled to manually modify the occupancy class of Parking Slot Object 363b to occupied. Additionally, or alternatively, an occupancy class for each parking slot object of the plurality of parking slot objects may be automatically determined based on the map, and then the user may be enabled to modify the automatically determined occupancy class of a parking slot object. As an example, the occupancy class of each of the parking slot objects in Parking Sequence Object 370b may be determined automatically based on visual analysis techniques, machine learning, object detections, or the like, of Map 350b, so 378b may be assigned with occupied while 379b with vacant.

Referring now to FIG. 4 showing a block diagram of apparatuses, in accordance with some exemplary embodiments of the disclosed subject matter.

An Apparatus 400 may be configured to support annotating parking slots in maps, and training of parking slot detection models, in accordance with the disclosed subject matter. In some exemplary embodiments, Apparatus 400 may comprise one or more Processor(s) 402. Processor 402 may be a Central Processing Unit (CPU), a microprocessor, an electronic circuit, an Integrated Circuit (IC) or the like. Processor 402 may be utilized to perform computations required by Apparatus 400 or any of its subcomponents.

In some exemplary embodiments of the disclosed subject matter, Apparatus 400 may comprise an Input/Output (I/O) module 405. I/O Module 405 may be utilized to provide an output to and receive input from a User 490, a Device 495, a sensor, a vehicle, or the like, such as, for example presenting maps to User 490 via Device 495, similar to Maps 110a, 110b and 110c presented in FIGS. 1A-1c, Maps 310a and 350b presented in FIGS. 3A and 3B, or the like, providing training data to other devices, or the like.

In some exemplary embodiments, Apparatus 400 may comprise Memory 407. Memory 407 may be a hard disk drive, a Flash disk, a Random-Access Memory (RAM), a memory chip, or the like. In some exemplary embodiments, Memory 407 may retain program code operative to cause Processor 402 to perform acts associated with any of the subcomponents of Apparatus 400.

In some exemplary embodiments, Annotation Module 410 may be configured to annotating parking slots in maps by integrating the functionalities of Parking Sequence Object Detection Module 420, and Orientation Angle Defining Module 430. Parking Sequence Object Detection Module 410 may be configured to facilitates user interaction by enabling the selection of start and end points within the map, delineating the area where parking sequence objects will be defined. Users, such as User 490, can utilize a GUI in Device 495 to interact with the map, selecting points that mark the beginning and end of a parking segment. These points serve as the foundational elements for defining the trajectory or the line along which parking slot objects will be arranged. Orientation Angle Defining Module 430 may be configured to define the orientation angle for the parking sequence object, which influences the alignment of parking slots within the defined segment. It may obtain the orientation angle from User 490 via I/O Module 405, or automatically based on map information or existing parking sequence objects.

Verification Module 440 may be configured to verify that the selected start and end points define a continuous parking area within the map. It ensures that all parking slot objects are located in a continuous parkable area, enhancing the accuracy of the annotation process.

Occupancy Class Determination Module 450 may be configured to determine the occupancy class for each parking slot object within the parking sequence object. It assigns occupancy classes such as vacant or occupied based on user input or automated analysis of map data.

Learning Module 470 may be configured to utilize annotated parking slot sequence objects for training one or more Parking Slot Detection Models 480 to identify objects representing sequences of one or more parking slots, or to identify objects of single parking slot objects. Additionally, or alternatively, Learning Module 470 to train Parking Slot Detection Models 480 to detect occupancy classes of each detected parking slot object. Additionally, or alternatively, data obtained from annotation Module 410 may be stored in designated Databases 460 for future training of other detection models, for annotation, or the like.

It is noted that the disclosed subject matter is not limited to parking slot annotations. In some exemplary embodiments, a skeleton can be applied to annotate other objects that are sequentially arranged. As an example, one may utilize a skeleton object to annotate available slots to insert totes in a warehouse, e.g., on shelves. As another example, a container terminal can be annotated with locations where cargo containers can be placed, identifying specific sets of cargo containers, or the like. As yet another example, sequence of similar objects may be annotated in supermarket aisles, library shelves, vineyards and orchards, or the like.