Accelerated object labeling using prior geometry knowledge
By utilizing prior geometric knowledge and pre-trained object detectors, the tagging of objects in the image is automatically accelerated, and the problem of inefficient marking of repeated objects in the prior art is solved, and a faster and more efficient object marking process is achieved.
Patent Information
- Application Number
- CN202011164956.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-29
- Filing Date
- 2020-10-27
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2040-10-27
AI Technical Summary
The prior art is inefficient when tagging duplicate objects in images, requiring manual tagging of each object instance, which is time-consuming and expensive.
Using prior geometry knowledge, object tags are automatically accelerated through pre-trained object detectors and bounding boxes propagation techniques, and tags are propagated to all object instances in the image.
It significantly reduces the time and manual participation of object tags, improves tagging efficiency, and achieves faster object instance annotations.
Smart Images

Figure CN112749697B_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to the field of object labeling, and more particularly to accelerated object labeling using a priori geometric knowledge. Background Art
[0002] Object detection and labeling is the process of finding and identifying objects in image and / or video data. Object detection and labeling can be done using deep learning tools and techniques. Object labeling can employ crowdsourcing to individually label the location of each object in the image. Summary of the invention
[0003] Aspects of embodiments of the present invention disclose a method, computer program product, and computer system for propagating labels of objects in an image. A processor receives an image. The processor performs normalization of the image. The processor runs the image through a pre-trained object detector. The processor receives a set of detected objects from the pre-trained object detector. The processor determines the width and height dimensions of a bounding box for each detected object in the set of detected objects. The processor uses a priori geometric knowledge of the placement of the bounding boxes to propagate the label of each instance of each detected object in the image using the corresponding bounding box. The processor inverses the normalization of the labeled image. The processor outputs the labeled image. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 A block diagram of an object tagging computing environment is depicted in accordance with an embodiment of the present invention.
[0005] Figure 2 A flow chart depicting the steps of an object labeling procedure according to an embodiment of the present invention.
[0006] Figure 3 A graph depicting experimental results for labeling repeated objects in images according to an embodiment of the present invention.
[0007] Figure 4 A block diagram of a computing device of an object tagging computing environment is depicted in accordance with an embodiment of the present invention. DETAILED DESCRIPTION
[0008] Embodiments of the present invention recognize that many real-world applications of object detection / classification require supervised training on specific datasets for fine-tuned performance. Supervised training using deep learning tools typically requires large amounts of labeled data that is often done by crowdsourcing, which is expensive and time consuming. Existing tools for object labeling can be inefficient and time consuming for repeated objects in images because each instance of the object must be manually labeled. Embodiments of the present invention leverage human knowledge about the arrangement of objects in an image to spread some annotated examples to all instances of objects in the image. Embodiments of the present invention provide an accelerated data labeling method that leverages existing geometric knowledge of object annotation in computer vision systems. Embodiments of the present invention leverage pre-trained object detection and existing geometric knowledge of object locations to efficiently propagate labels for faster object instance annotation.
[0009] The present invention will now be described in detail with reference to the accompanying drawings.
[0010] Figure 1 Depicted is a functional block diagram illustrating an object tagging computing environment 100 in accordance with an embodiment of the present invention. Figure 1 Only an illustration of one embodiment of the present invention is provided, and no limitation on the environments in which different embodiments may be implemented is implied. In the depicted embodiment, the object tagging computing environment 100 includes a server 110 and a computing device 130 interconnected by a network 120. The network 120 may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and may include wired, wireless, or fiber optic connections. In general, the network 120 may be any combination of connections and protocols that will support communications between the server 110 and the computing device 130. The object tagging computing environment 100 may include additional servers, computers, or other devices not shown.
[0011] The server 110 runs the object marking program 112 and uses the database 114 to store and / or transmit data. In the described embodiment, the server 110 houses the object marking program 112 and the database 114. In other embodiments (not shown), the object marking program 112 and the database 114 may be housed on separate computing devices. In some embodiments, the server 110 may be a management server, a web server, or any other electronic device or computing system capable of receiving and transmitting data. In some embodiments, the server 110 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a smart phone, or any programmable electronic device capable of communicating with the computer device 130 via the network 120. In other embodiments, the server 110 represents a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. The server 110 may include, for example, Figure 4Components described in further detail in .
[0012] The object labeling program 112 operates as a program for accelerating object labeling using prior geometric knowledge. In one embodiment, the object labeling program 112 receives an image. In one embodiment, the object labeling program 112 normalizes the image to a preset geometric distribution. In one embodiment, the object labeling program 112 runs the image through a pre-trained object detector. In one embodiment, the object labeling program 112 removes outlier detections based on prior geometric knowledge. In one embodiment, the object labeling program 112 uses prior geometric knowledge to perform accelerated labeling of objects in the image. In one embodiment, the normalization of the object labeling program 112 image is reversed. In one embodiment, the object labeling program 112 outputs a labeled image. In the described embodiment, the object labeling program 112 resides on the server 110. In other embodiments, the object labeling program 112 may reside on another computing device (not shown) as long as the object labeling program 112 has access to the network 120.
[0013] The database 114 serves as a repository for data received, used, and / or output by the object labeling program 112. The data received, used, and / or generated by the object labeling program 112 may include, but is not limited to, images and any data related to the images received by the object labeling program 112; labeled images and any data related to the labeled images output by the object labeling program 112; a priori geometric knowledge and / or arrangement of objects used by the object labeling program 112, which may be preset by the user through the user interface 132; a histogram showing the height and width of the detected bounding boxes most frequently observed by the pre-trained object detector, which is updated for each image input into the system; and any other data used by the object labeling program 112. The database 114 may be implemented with any type of storage device capable of storing data and configuration files that can be accessed and utilized by the server 110, such as a database server, a hard drive, or flash memory. In one embodiment, the database 114 is accessed by the object labeling program 112, the server 110, and / or the user computing device 130 to store and / or access data. In the described embodiment, the database 114 resides on the server 110. In another embodiment, the database 114 may reside elsewhere within the object tagging computing environment 100 , as long as the database 114 has access to the network 120 .
[0014] The user computing device 130 operates to run a user interface 132 through which a user can input images, set presets, select objects to be tagged in an image, and / or view output tagged images. In some embodiments, the user computing device 130 can be, but is not limited to, an electronic device such as a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a smart phone, or any programmable electronic device capable of running the user interface 132 and communicating (i.e., sending and receiving data) with the server 110 and the object tagging program 112 via the network 120. In some embodiments, the user computing device 130 represents one or more programmable electronic devices or a combination of programmable electronic devices capable of executing machine-readable program instructions and communicating with the server 110 and / or other computing devices (not shown) within the object tagging computing environment 100 via a network such as the network 120. In one embodiment, the user computing device 130 represents one or more devices associated with a user. In the depicted embodiment, the user computing device 130 includes an instance of the user interface 132. The user computing device 130 may include, for example, Figure 4 Components described in further detail in .
[0015] The user interface 132 operates as a local user interface on the user computing device 130, through which the user can input an image, input a geometric distribution of the image, input preset geometric knowledge and / or arrangement of objects in the image, select objects to be marked in the image, and / or view an output marked image. In some embodiments, the user interface 132 is a graphical user interface (GUI), a web user interface (WUI), and / or a voice user interface (VUI), which can display (i.e., visually) or present (i.e., audibly) an alert including information (such as graphics, text, and / or sound) sent to the user from the object marking program 112 via the network 120. In an embodiment, the user interface 132 enables the user to input an image, input a geometric distribution of the image, input preset geometric knowledge and / or arrangement of objects in the image, select objects to be marked in the image, and / or view an output marked image. In one embodiment, the user interface 132 is capable of sending and receiving data (i.e., sending and receiving data to and from the object marking program 112 via the network 120, respectively).
[0016] Figure 2 A flowchart 200 depicts the steps of the object labeling program 112 according to an embodiment of the present invention. In the described embodiment, the object labeling program 112 receives an image, performs normalization of the image, runs the image through a pre-trained object detector, removes outlier detections based on prior geometric knowledge, performs accelerated labeling of objects in the image using prior geometric knowledge, reverses the normalization of the image, and outputs a labeled image. It should be understood that Figure 2The process shown in shows one possible iteration of the process flow, which is repeated for each image received by object labeling program 112 .
[0017] In step 210, the object labeling program 112 receives the image. In one embodiment, the object labeling program 112 receives the image input by the user through the user interface 132 on the user computing device 130. In one embodiment, the object labeling program 112 receives the image from the database 114. In one embodiment, the object labeling program 112 receives the geometric distribution of the image preset by the user through the user interface 132. In one embodiment, the object labeling program 112 receives the prior geometric knowledge and / or arrangement of the objects in the image preset by the user through the user interface 132.
[0018] In step 220, object labeling program 112 performs normalization of the image. In one embodiment, object labeling program 112 performs normalization of the image to a preset geometric distribution, i.e., through perspective correction. For example, object labeling program 112 normalizes the image using an affine transformation to correct for perspective distortion of the image. In one embodiment, object labeling program 112 normalizes the image to a preset geometric distribution received from a user via user interface 132. In one embodiment, object labeling program 112 performs normalization of the image by applying a pre-processing spatial distortion of the image so that the image conforms to the prior geometric knowledge received in step 210.
[0019] In step 230, object labeling program 112 runs the image through a pre-trained object detector. In one embodiment, object labeling program 112 runs the image through a pre-trained object detector that is trained on a dataset of images that have labeled instances of desired objects. The pre-trained object detector gives the locations of objects in the image based on the dataset on which the detector was trained. In an embodiment, the parameters of the pre-trained object detector are learned on a labeled dataset of images that gives a set of locations of a set of bounding boxes that are labels for detected objects. An example of a pre-trained object detector used in embodiments of the present invention is It is a prior art real-time object detection system. Typically, during application, there is a high domain gap between the dataset used to train the pre-trained detector and the image that is run through the detector, so the pre-trained object detector may output outlier detections and may miss detections that make steps 240 and 250 necessary. In one embodiment, object labeling program 112 receives a set of detected objects for an image from a pre-trained object detector.
[0020] In step 240, the object labeling program 112 removes outlier detections made by the pre-trained object detector. In one embodiment, the object labeling program 112 removes outlier detections made by the pre-trained object detector in step 230. In one embodiment, the object labeling program 112 examines a set of detected objects of an image received from a pre-trained object detector. In one embodiment, the object labeling program 112 uses a histogram, which is a statistical measure of the most frequently observed heights and widths of a set of bounding boxes detected by the pre-trained object detector for the set of detected objects, which is updated for each image input to the object labeling program 112. A bounding box is a rectangular area in an image with height and width dimensions that shows the location of the desired / detected object in the image and serves as a label. In one embodiment, the object labeling program 112 uses a histogram to retain only bounding boxes with dimensions that are similar to the average height and weight statistics in the histogram. In one embodiment, the object labeling program 112 uses a histogram stored in the database 114 to remove outlier detections of objects, which are outliers of the height and width of the most frequently observed objects in the histogram. In one embodiment, object labeling program 112 removes outlier detections that have less likely characteristic distributions of the detected objects.
[0021] In step 250, object labeling program 112 performs accelerated labeling of objects in the image. In one embodiment, object labeling program 112 performs accelerated labeling of objects in the image by determining the height and width dimensions of a bounding box for a first instance of each desired object based on the histogram, and then propagating the bounding box to each instance of the object in the image using a priori geometric knowledge of the bounding box placement.
[0022] In one embodiment, the object labeling program 112 performs accelerated label propagation for uniform arrangement of objects. In one embodiment, the object labeling program 112 performs accelerated labeling of one or more objects using propagation of bounding boxes. A bounding box is a rectangular area with height and width dimensions that outlines the location where the desired object is located in the image and acts as a label. In one embodiment, the object labeling program 112 determines the height and width dimensions of at least one bounding box based on a histogram. In one embodiment, the object labeling program 112 determines the average height and width dimensions of the bounding boxes based on the histogram and filters the bounding boxes that are closest to the commonly occurring height and width dimensions. In one embodiment, the object labeling program 112 identifies the bounding box using (x, y, w, h), where (x, y) are the coordinates of the center of the bounding box and (w, h) represent the width and height of the bounding box. In one embodiment, a bounding box can be identified as (x+dx, y, w, h) relative to another bounding box, where the horizontal position has been shifted by an amount dx. In another embodiment, a bounding box can be identified as (x, y+dy, w, h) relative to another bounding box, where the vertical position has been shifted by an amount dy.
[0023] In an embodiment, object labeling program 112 propagates bounding boxes based on a priori geometric knowledge of bounding box placement, i.e., the geometric arrangement of objects in the image. For example, for an image of products in a vending machine, object labeling program 112 propagates bounding boxes based on the rectangular arrangement of products in the vending machine image. In an embodiment, object labeling program 112 propagates bounding boxes by selecting objects with height h 0 and width w 0 The template bounding box, find the number of small bounding boxes N that fit the drag area W, where use The gaps between the boxes are found and the propagated bounding boxes are propagated using the following equation (1) to constrain the propagated bounding boxes.
[0024] x i =x 0 +i*dw,sty i =y 0 (1)
[0025] In another embodiment, object labeling program 112 performs accelerated label propagation for uneven placement of objects. In another embodiment, object labeling program 112 performs accelerated label propagation for uneven placement of objects using feature matching with a reference image. In this embodiment, when receiving an image to be labeled, object labeling program 112 receives a reference image in step 210. In one embodiment, object labeling program 112 finds reference feature φ ref =f φ (x ref), process (2) is used to determine region proposals, and non-maximum suppression is performed on the heatmap created to detect the bounding box of the detected object. In this process, the image is divided into different small parts, and features are extracted from each small part. For all parts, the features are compared with the reference features φ ref The features are matched, and features that match well get high scores, while features that do not match well get low scores, thus creating a heat map.
[0026] for i in 1 to h:
[0027] for j in 1 to w:
[0028] (i)Crop the area around the pixel(i,j)
[0029] (ii) Compute score, S ij =(φ ref ,φ ij ) (2)
[0031] In step 260, object labeling program 112 reverses the normalization of the image. In one embodiment, object labeling program 112 reverses the normalization performed on the now labeled image in step 220. For example, object labeling program 112 reverses the affine transformation of the image completed in step 220. In another example, object labeling program 112 reverses the perspective correction performed on the image in step 220.
[0032] In step 270, object labeling program 112 outputs the labeled image. In one embodiment, object labeling program 112 outputs the labeled image to a user via user interface 132 on user computing device 130. In one embodiment, object labeling program 112 outputs the labeled image to another computing device (not shown).
[0033] Figure 3 Table 300 shows experimental results for marking repeated objects in an image according to an embodiment of the present invention. Table 300 shows the results of using Figure 2Experimental results of labeling vending machine bottles using the object labeling program 112 described in (labeled as proposed) compared to a baseline approach in which a drag-and-drop template bounding box is used on each object where the user clicks on the center of the object. For User 1, the average time was reduced from 63.5 seconds to 31.43 seconds, and the average number of clicks was reduced from 36.75 to 25.75. For User 2, the average time was reduced from 68.3 seconds to 28.5 seconds, and the average number of clicks was reduced from 38.25 to 21.75. Table 300 shows a 54.5% reduction in labeling time without overhead and a 46.13% reduction with overhead compared to the baseline approach.
[0034] Figure 4 A block diagram of a computer 400 suitable for server 110 and user computing device 130 is depicted in accordance with an illustrative embodiment of the present invention. It should be understood that Figure 4 This merely provides an illustration of one implementation and does not imply any limitation with respect to the environments in which different embodiments may be implemented.Many modifications to the described environments are possible.
[0035] Computer 400 includes a communications fabric 402 that provides communications between cache 416, memory 406, permanent storage 408, communications unit 410, and input / output (I / O) interface 412. Communications fabric 402 may be implemented using any architecture designed to transfer data and / or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within the system. For example, communications fabric 402 may be implemented using one or more buses or crossbar switches.
[0036] Memory 406 and permanent storage 408 are computer-readable storage media. In this embodiment, memory 406 includes random access memory (RAM). In general, memory 406 may include any suitable volatile or non-volatile computer-readable storage media. Cache 416 is a fast memory that enhances the performance of computer processor 404 by saving recently accessed data and data from memory 406 that is close to accessing data.
[0037] The object marking program 112 may be stored in the persistent storage 408 and the memory 406 for execution and / or access by one or more corresponding computer processors 404 via the cache 416. In one embodiment, the persistent storage 408 includes a magnetic hard drive. As an alternative or in addition to the magnetic hard drive, the persistent storage 408 may include a solid-state hard drive, a semiconductor memory device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0038] The media used by permanent storage 408 also may be removable. For example, a removable hard drive may be used for permanent storage 408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer to another computer-readable storage medium that is also part of permanent storage 408.
[0039] In these examples, communications unit 410 provides communications with other data processing systems or devices. In these examples, communications unit 410 includes one or more network interface cards. Communications unit 410 may provide communications using one or both of physical and wireless communications links. Programs such as object marking program 112 may be downloaded to persistent storage 408 via communications unit 410.
[0040] The I / O interface 412 allows input and output of data with other devices that may be connected to the computing device 130 and the server 110. For example, the I / O interface 412 may provide a connection to an external device 418 such as a keyboard, a keypad, a touch screen, and / or some other suitable input device. The external device 418 may also include a portable computer-readable storage medium, such as a thumb drive, a portable optical or magnetic disk, and a memory card. Software and data for practicing embodiments of the present invention may be stored on such a portable computer-readable storage medium and may be loaded onto the persistent storage device 408 via (one or more) I / O interface 412. The I / O interface 412 is also connected to a display 420.
[0041] Display 420 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.
[0042] The object marking program 112 described herein is identified based on the application program implemented in a specific embodiment of the present invention. However, it should be understood that any specific program terminology herein is used for convenience only, and thus the present invention should not be limited to use only in any specific application identified and / or implied by such terminology.
[0043] The present invention may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.
[0044] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0045] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0046] The computer program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present invention.
[0047] Various aspects of the present invention are described herein with reference to the flow charts and / or block diagrams of the methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each box of the flow chart and / or block diagram and the combination of each box in the flow chart and / or block diagram can be implemented by computer-readable program instructions.
[0048] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0049] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0050] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present invention. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.
[0051] The embodiments of the present invention have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for propagating a label of an object in an image, performed by one or more processors, the method comprising: receiving, by one or more processors, the image; performing normalization of the image by one or more processors; running the image through a pre-trained object detector by one or more processors; receiving, by one or more processors, a set of detected objects from the pre-trained object detector; determining, by one or more processors, a width dimension and a height dimension of a bounding box for each detected object in the set of detected objects; propagating, by one or more processors, a label for each instance of each detected object in the image with a corresponding bounding box using a priori geometric knowledge of bounding box placement, wherein the prior geometric knowledge is a geometric arrangement of objects in the image, and the propagating for the corresponding bounding box comprises: Select a template bounding box with height h0 and width w0; Find the number N of small bounding boxes that fit the drag area W, where use Find the gaps between boxes and the bounding boxes propagated using the following equality constraints x i =x0+i*dw,s.t.y i =y0; inverting, by one or more processors, the normalization of the image; and The labeled image is output by one or more processors. 2 . The method of claim 1 , wherein the normalization of the image applies a pre-processed spatial distortion of the image to make the image conform to the a priori geometric knowledge.
3. The method of claim 1, wherein parameters of the pre-trained object detector are learned on a second labeled image dataset to obtain a set of locations of a set of bounding boxes.
4. The method according to claim 1, further comprising: One or more outlier detections are removed, by one or more processors, from the set of detected objects based on the histogram.
5. The method of claim 4, wherein the histogram is a statistical measure of a set of observed heights and widths of a set of bounding boxes for the set of detected objects by the pre-trained object detector. The method according to claim 1 , wherein the priori geometric knowledge is preset by a user through a user interface.
7. The method of claim 1, wherein outputting the marked image comprises: The marked image is sent by one or more processors to a user computing device.
8. A computer system, comprising: one or more processors; one or more computer readable memories; as well as Program instructions stored on one or more computer-readable storage media for execution by at least one of one or more computer processors, the program instructions being executable by a processor of a computer to perform the method of any one of claims 1-7.
9. A computer program product, the computer program product comprising: one or more computer-readable storage media; as well as The program instructions stored on the one or more computer-readable storage media can be executed by a processor of a computer to perform the method of any one of claims 1-7.
10. A computer system comprising modules for executing the steps of the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Computer implemented method and system for automatically detecting target objects in 3D image
CN109003267A
Captioning a region of an image
US20180329892A1