Abstract:
A method for processing an image of a patch panel includes: a) receiving an initial image; b) determining multiple ports of the patch panel are aligned in a desired orientation in the initial image; c) processing the initial image to identify edge lines perpendicular to the desired orientation; d) processing the edge lines to identify a port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation; e) processing the port hypothesis to determine an estimated port quantity for the multiple ports; and f) processing the port hypothesis to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines. An apparatus associated therewith includes an input/output and pre-processing modules and detection, hypothesis, estimating, and scoring processors.

Description:
BACKGROUND 
     The present exemplary embodiment relates generally to processing an image of a patch panel to estimate a quantity of patch panel ports (e.g., connectors, receptacles, etc.) in the image, a gap dimension between the ports, and a port dimension. The exemplary embodiment finds particular application in providing the estimated port quantity, estimated gap dimension, and estimated port dimension in electronic form to a label printer to facilitate printing of a patch panel label with identifying information for the corresponding ports. It also finds particular application in merging the image processing capability with a wireless camera device (e.g., smartphone, tablet, etc.). However, it is to be appreciated that the exemplary embodiments described herein are also amenable to other applications, such as merging the image processing capability with a label printer with or without an embedded camera device. 
     Patch panels are commonly used in data centers to connect remote clients to servers. Patch panels enable huge data throughput efficiently. The data connections at patch panels can be complex because there can be tens of ports (e.g., RJ-45 connectors) at a single patch panel and tens, or even hundreds of patch panels in a data center. Labeling the ports on the patch panels is usually necessary for installation and maintenance of the patch panel and corresponding data connections. 
     Labeling the ports on the patch panel requires obtaining the number of ports; sizes of the ports, and inter-port distances. A traditional way to achieve this is to use a measuring tape and manually entering the quantity and measurements for a label printer to generate the labels. While this is not a difficult task, doing hundreds or even thousands of labels this way can be tedious and inefficient. 
     INCORPORATION BY REFERENCE 
     The following documents are fully incorporated herein by reference: 1) U.S. Pat. App. Publication No. 2012/0189190 to Bala et al.; 2) U.S. Pat. App. Publication No. 2013/0293734 to Fan et al., Ser. No. 13/461,014, filed May 1, 2012, Product Identification Using Mobile Device; 3) U.S. Pat. App. Publication No. 2014/0211023 to Fan et al., Ser. No. 13/753,790, filed Jan. 30, 2013, Methods and Systems for Detecting an Object Borderline; and 4) RFP 67653 Optical Object Recognition and Feature Mapping by Mobile Devices, NineSigma, Response Due Date Nov. 23, 2011, 2 pages. 
     BRIEF DESCRIPTION 
     In one aspect, a method for processing an image of a patch panel is provided. In one embodiment, the method includes: a) receiving an initial image of a patch panel from an image source device at an image processor; b) determining multiple ports of the patch panel are aligned within a predetermined threshold of a desired orientation in the initial image; c) processing the initial image using a detection algorithm to identify edge lines that are perpendicular to the desired orientation; d) processing the edge lines in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation, the estimated port gap based at least in part on a distance between a first pair of adjacent edge lines, the estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair; e) processing the first port hypothesis in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size; and f) processing the first port hypothesis in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size. 
     In another aspect, an apparatus for processing an image of a patch panel is provided. In one embodiment, the apparatus includes: an input/output module configured to receive an initial image of a patch panel from an image source device; a pre-processing module configured to determine multiple ports of the patch panel are aligned within a predetermined threshold of a desired orientation in the initial image; a detection processor configured to process the initial image using a detection algorithm to identify edge lines that are perpendicular to the desired orientation; a hypothesis processor configured to process the edge lines in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation, the estimated port gap based at least in part on a distance between a first pair of adjacent edge lines, the estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair; an estimating processor configured to process the first port hypothesis in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size; and a scoring processor configured to process the first port hypothesis in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size. 
     In yet another aspect, a non-transitory computer-readable medium storing program instructions that, when executed by a computer, cause a corresponding computer-controlled device to perform a method for processing an image of a patch panel. In one embodiment, the method includes: a) determining multiple ports of a patch panel are aligned within a predetermined threshold of a desired orientation in an initial image; b) processing the initial image using a detection algorithm to identify edge lines that are perpendicular to the desired orientation; c) processing the edge lines in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation, the estimated port gap based at least in part on a distance between a first pair of adjacent edge lines, the estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair; d) processing the first port hypothesis in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size; and e) processing the first port hypothesis in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a view of a portion of an exemplary embodiment of a patch panel; 
         FIG. 2  is a view of a portion of another exemplary embodiment of a patch panel; 
         FIG. 3  is a flowchart of an exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 4  is a screen view with an exemplary marker on a preview screen of a camera device prepared to capture an image of a patch panel; 
         FIG. 5  is a screen view with another exemplary marker on a preview screen of a camera device prepared to capture an image of a patch panel; 
         FIG. 6  is a screen view with yet another exemplary marker on a preview screen of a camera device prepared to capture an image of a patch panel; 
         FIG. 7  is an exemplary region of interest extracted from a patch panel image captured by the camera device in relation to the screen view of  FIG. 4 ; 
         FIG. 8  is an exemplary edge map showing vertical edges from edge detection processing of the region of interest of  FIG. 7 ; 
         FIG. 9  is an exemplary image showing vertical lines overlaid on the region of interest of  FIG. 7 ; 
         FIG. 10  is a listing of a portion of pseudo code associated with processing an image of a patch panel to estimate a port quantity, gap dimension, and port dimension; 
         FIG. 11  is an exemplary image showing certain vertical lines overlaid on an image of a patch panel with four ports; 
         FIG. 12  is an exemplary image showing vertical lines and horizontal line segments overlaid on the image of  FIG. 11 ; 
         FIG. 13  is an exemplary image showing other vertical lines overlaid on the image of  FIG. 11 ; 
         FIG. 14  is an exemplary image showing a combination of vertical lines overlaid on an image of a patch panel with eight ports, four of which are occupied by cables; 
         FIG. 15  is an exemplary image showing another combination of vertical lines overlaid on the image of  FIG. 14 ; 
         FIG. 16  is an exemplary image showing yet another combination of vertical lines overlaid on the image of  FIG. 14 ; 
         FIG. 17  is an exemplary image showing still another combination of vertical lines overlaid on the image of  FIG. 14 ; 
         FIG. 18  is a flowchart of an exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 19 , in conjunction with  FIG. 18 , is a flowchart of another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 20 , in conjunction with  FIG. 18 , is a flowchart of yet another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 21 , in conjunction with  FIG. 18 , is a flowchart of still another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 22 , in conjunction with  FIG. 18 , is a flowchart of still yet another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 23 , in conjunction with  FIG. 18 , is a flowchart of another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 24 , in conjunction with  FIGS. 18 and 23 , is a flowchart of yet another exemplary embodiment of a process for processing an image of a patch panel; 
         FIG. 25  is a block diagram of an exemplary embodiment of an image processor for processing an image of a patch panel; and 
         FIG. 26  is a flowchart of an exemplary embodiment of a process for processing an image of a patch panel performed by a computer-controlled device in response to a computer executing program instructions stored on a non-transitory computer-readable medium. 
     
    
    
     DETAILED DESCRIPTION 
     This disclosure describes various embodiments of methods and configurations of an electronic device with an image processor for processing an image of a patch panel to estimate a quantity of patch panel ports (e.g., connectors, receptacles, etc.) in the image, a gap dimension between the ports, and a port dimension. The estimated port quantity, estimated gap dimension, and estimated port dimension can be provided to a label printer in electronic form to facilitate printing of a patch panel label with identifying information for the corresponding ports. The image processing capability can be implemented in any electronic device. For example, the image processing capability can be embedded in a wireless camera device (e.g., smartphone, tablet, etc.). The image processing capability can also be embedded within a label printer with or without an embedded camera device. 
     In one embodiment, the method estimates the size of ports (port length), inter-port distance (gap length) and number of ports from an image captured using a mobile phone. A set of markers may be provided in a user interface for the mobile phone to assist the user in better localization of ports and to avoid confusion in cases of multiple groups of ports. A region of interest can be extracted from the image based on the marker locations. This image is then fed into edge detection algorithm to extract vertical edges. A horizontal profile of the edge map can be used to extract vertical lines in the image. Various image processing techniques are used to estimate port length, gap length and number of ports. For example, a search based error minimization algorithm can be used to choose a hypothesis for the estimates from multiple hypotheses using a scoring approach to determine minimum error for the estimates. 
     Patch panels are used in data centers to connect servers and remote clients. Due to the complexity of these data connections, there can be tens of connectors (e.g., RJ-45) originating from a single patch panel, with tens, or even hundreds of such panels in a data center. The complexity of these data centers requires labeling of individual ports on these panels to facilitate installation and maintenance. 
     Typically, ports on a patch panel are divided into groups. Within each group, there may be different numbers of ports (e.g., 4, 6, 8, etc.). To generate a label, one usually prints a single strip for a port group with dividers to separate different ports. Therefore, in order to correctly print out the label, both the dimensions of the ports and inter-port distances have to be measured accurately. 
     With reference to  FIG. 1 , an example of patch panel includes a 4-port group on the top and a 6-port group on the bottom. Notably, the inter-port distances for the port group on the top and the port group on the bottom are different. The resulting label strips, which are also present in  FIG. 1 , look different in terms of unit port length. In  FIG. 2 , two groups of eight ports are shown. 
     A traditional way to obtain measurements for patch panel labels is to use a measuring tape and subsequently input the measurements into a label printer to generate the labels. While this is not a difficult task, doing hundreds or even thousands of these labels in this way can be tedious and inefficient. An alternative approach is to utilize a camera-equipped electronic device, such as a smartphone, to take an image of the to-be-labeled ports and automatically estimate the dimensions of the ports. See  FIGS. 1 and 2  for examples of images of patch panels. These estimated measurements from the image can be sent to the label printer without manual input. 
     Estimating dimensions from an image of the ports requires segmenting and analyzing the image. Challenges involved in this process vary from localizing the ports, handling perspective/rotation distortion, lighting conditions to images of ports covered with wires. For example, in  FIG. 1 , it is unclear which group of ports the user is aiming at. On the other hand,  FIG. 2  illustrates a scenario where there are background clutters. In particular, several ports on the right of the group are occupied with Ethernet cables. As a result, it is difficult to accurately determine the number of ports as well as the boundary of the group. 
     The various embodiments of methods and electronic devices for processing an image of a patch panel Invention described herein automate the process of printing labels for patch panel images by estimating the required dimension using image processing algorithms. 
     With reference to  FIG. 3 , an exemplary embodiment for processing an image of a patch panel shows the overview of the process  300 . Markers are provided in the user interface to allow users to make some alignment during the capture process. To some extent, this reduces the distortion due to perspective and rotation. Various types of markers can be used to guide the user to capture a group of ports. For example, the marker can be overlaid on a preview frame of the camera.  FIGS. 4-6  show several examples of markers in which the port group to be captured is horizontal. It is understood that the markers can be easily extended to vertical port groups or port groups with arbitrary orientation or rotation. 
     With reference to  FIG. 4 , a marker scenario is shown with a horizontal straight line segment with starting and ending points depicted by two short vertical lines. In this case, the user is interested in the 6-port group on the top shown at the center of the image. The starting and ending points in this marker are particularly useful if, immediately adjacent to the port group of interest, additional ports belonging to a different group are also present. Without the starting and ending points in the marker, there might be confusion in determining the number of ports, as the adjacent group is geographically close to the group of interest. Hence, for certain scenarios, it is beneficial to introduce the starting and an ending mark along with the straight line marker to limit the range for which the analysis will be carried out. The starting and ending points can be fixed relative to the view finder frame. The user will be instructed to align them with the port group by moving the camera and/or adjusting the zoom factor. Alternatively, the UI can ask the user to tap on the screen to indicate starting and ending points. 
     With reference to  FIG. 5 , a horizontal straight line marker is shown in the center of the view finder. The user is then instructed to align the line with the port group that he/she intends to measure. In this case, although the final image has three different port groups present, there is no confusion about which group is to be analyzed because of the straight line marker. Also, the post-processing will be faster and more robust, because now there is no need to analyze the entire image and search for candidate port groups. The analysis can be simply carried out at the center region associated with the straight line marker. 
     With reference to  FIG. 6 , a rectangular box can be shown in the view finder so the user can similarly align the box with the port group when he/she is capturing the image. Alternatively, the size and aspect ratio of the rectangular box can be editable via the touch screen so as to better fit the geometric characteristic of the port group. 
     Extracting a region of interest from the patch panel image can be accomplished with the help of the markers. The height of the region of interest may a quarter of the width.  FIG. 4  shows an example image of a patch panel with markers overlaid on the image.  FIG. 7  shows an example of the region of interest extracted from the patch panel image of  FIG. 4 . 
     The extracted region of interest from the patch panel image is converted to grayscale. Vertical edges are extracted using an edge detector, such as the well-known Canny edge detector, to create an edge map.  FIG. 8  shows an example of vertical edges in an edge map. From this edge map, a horizontal profile is calculated. Columns with a value greater than a predetermined threshold (e.g., 0.3 times a maximum value for the image were used in experiments) are considered a vertical line. This might result in many lines which not necessarily associated with edges of the patch panel ports (for example, because of blurriness in the edges). Consecutive lines may be combined to get a final set of vertical lines.  FIG. 9  shows a patch panel image with the vertical lines overlaid. 
     A hypothesis search begins with a hypothesis of gap length by choosing the first vertical line as the start line of the gap and the second vertical line as its end line. Other pairs of lines with similar gap lengths (candidate gap lines) are identified. Then, port lengths are calculated as distance between first candidate gap line and next five candidate gap lines. This gives a set of five hypotheses (or less if there are less number of candidate gap lines). By keeping the start line same and varying only end line, a set of hypotheses can be identified. This can be repeated by varying the start line from first vertical line to the last vertical line. For each hypothesis, a score can be calculated. The hypothesis with the minimum score is the returned as the identify the estimated measurements with the best fit. 
     In order to find the best hypothesis, the image processing technique includes a scoring function that gives a best score when the hypothesis is correct and/or close to correct (e.g., best fit). First, the vertical lines can be classified into two classes based on the transition from dark to bright pixels (e.g., start of a gap) or vice-versa (e.g., end of a gap). The basis assumption behind this classification is that the port is darker than the gap between the ports. This assumption can be referred to as the dark ports assumption. A starting point in the image is chosen for the scoring algorithm and then moved port length pixels to calculate the error by measuring the distance between the resulting estimated position for the start of the next gap and the nearest line with corresponding class label. Next, the scoring algorithm moves gap length pixels and calculates the error in the same manner. This is repeat for the given number of ports and the score is calculated as the mean score across all ports for the corresponding hypothesis. This procedure is repeated by varying the starting line. The score with the minimum value is returned.  FIG. 10  shows an example of pseudo code that can accomplish the scoring function used for this problem. 
       FIG. 11  shows vertical lines and corresponding class information for the scoring function. Lines  1 ,  3 ,  6 , and  9  are classified as lines associated with the start of a gap between ports. Lines  2 ,  4 ,  5 ,  7 ,  8 , and  10  are classified as lines associated with the end of a gap between ports. 
       FIG. 12  shows the result after one iteration of scoring function with a starting point chosen being identified by the line with an arrow. Red (dashed) lines are predicted by the algorithm. Green (solid) lines are detected from the image. Horizontal line segments between vertical lines are the errors for this particular starting point and hypothesis. The final score for this iteration of the hypothesis is an average of all the errors. 
       FIG. 13  shows the final results of the hypothesis search. Green (dashed) lines are predicted by the algorithm. Red (solid) lines are lines detected from the image that are closest to a predicted line. Blue (dotted) lines are locations where the predicted and detected lines match. 
     The assumption that the port is darker than the gap between ports might fail in some of the cases. For example, a dark port may be covered by a bright shield (see  FIGS. 14-17 ). This can be overcome by reversing the definition of start of gap which was previously defined as a line associated with a dark to bright transition to a line associated with a bright to dark transition and vice-versa for the end of gap line classification. This is referred to as the bright port assumption. The score can be obtained for both dark port and bright port assumptions. If the score from the dark port assumption is better than the bright port assumption, the results from the dark port assumption are used. If not, the algorithm can take each port found by the bright port assumption and find edges inside the port that correspond to the actual port lines.  FIGS. 14-17  illustrate this procedure. 
       FIG. 14  shows the vertical lines detected from the image.  FIG. 15  shows a best fit result using the dark port assumption. Green (dashed) lines are predicted by the algorithm. Red (solid) lines are lines detected from the image that are closest to a predicted line. Blue (dotted) lines are locations where the predicted and detected lines match. 
       FIG. 16  shows a best fit result using the bright port assumption, but without adjustment to guessed lines. Green (dashed) lines are predicted by the algorithm. Red (solid) lines are lines detected from the image that are closest to a predicted line. Blue (dotted) lines are locations where the predicted and detected lines match. 
       FIG. 17  shows a best fit result using the bright port assumption with adjustment to guessed lines. The guessed lines are adjusted to get more accurate port and gap lines. Green (dashed) lines are predicted by the algorithm. Red (solid) lines are lines detected from the image that are closest to a predicted line. Blue (dotted) lines are locations where the predicted and detected lines match. 
     The port length and gap length are obtained in terms of number of pixels. A conversion to actual dimensions (e.g., millimeters (mm)) is needed in to provide the label printer with meaningful patch panel dimension information. Here, we assume that the length of port is known (e.g., 12.4 mm) and use this information to calculate the physical gap length. 
     Experiments were performed on a dataset of 45 patch panel images and a total of 75 region of interests extracted from those images. Each image may contain multiple port groups. The port and gap length in pixels was manually extracted and then physical gap length was calculated to use as ground truth for the experiments. Gap length for 61 out of 75 images was calculated correctly within 0.5 mm margin of error and 68 were classified correctly within 1.0 mm margin of error. 
     With reference to  FIG. 18 , an exemplary embodiment of a process  1800  for processing an image of a patch panel begins at  1802  where an initial image of a patch panel is received from an image source device at an image processor. At  1804 , the process determines that multiple ports of the patch panel are aligned within a predetermined threshold of a desired orientation in the initial image. Next, the initial image is processed using a detection algorithm to identify edge lines that are perpendicular to the desired orientation ( 1806 ). At  1808 , the edge lines are processed in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation. The estimated port gap based at least in part on a distance between a first pair of adjacent edge lines. The estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair. At  1810 , the first port hypothesis is processed in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size. Next, the first port hypothesis is processed in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size ( 1812 ). 
     In another embodiment of the process  1800 , the detection algorithm includes an edge detection algorithm. In this embodiment, the process  1800  also includes generating a grayscale image of the patch panel based at least in part on the initial image. Next, linear edges are extracted from the grayscale image using the edge detection algorithm to form an edge map associated with the initial image. In yet another embodiment of the process, positions of the edge lines in the initial image are in relation to a reference point on the reference axis that relates to the desired orientation and an image parameter that relates to a distance measure along the reference axis. 
     With reference to  FIGS. 18 and 19 , in another embodiment of a process  1900  for processing an image of a patch panel, the image source device includes a camera device. In this embodiment, the process  1900  begins at  1902  where the initial image is captured using the camera device. At  1904 , the initial image is at least temporarily stored in a storage device accessible to the camera device. The process  1900  includes the process  1800  of  FIG. 18  by continuing from  1904  to  1802 . In another embodiment, the process  1900  also includes presenting a marker on a view finder or preview screen of the camera device to guide the capturing of the initial image in order to facilitate alignment of the multiple ports of the patch panel in the initial image in conjunction with the capturing. In yet another embodiment of the process  1900 , the camera device and image processor are integrated within a wireless device. 
     With reference to  FIGS. 18 and 20 , another embodiment of a process  2000  for processing an image of a patch panel includes the process  1800  of  FIG. 18  and continues from  1802  to  2002  where a region of interest is extracted from the initial image to form a regional image. At  2004 , the regional image is used instead of the initial image in conjunction with the determining in  1804  and the processing in  1806  through  1812 . In yet another embodiment of the process  2000 , the region of interest is shaped like a parallelogram in which a first set of parallel sides is four times greater than a second set of parallel sides that are perpendicular to the first set. 
     With reference to  FIGS. 18 and 21 , another embodiment of a process  2100  for processing an image of a patch panel includes the process  1800  of  FIG. 18  and continues from  1802  to  2102  where the process determines the multiple ports are not aligned within the predetermined threshold of the desired orientation in the initial image. Next, the initial image is processed to create an aligned image of the patch panel in which multiple ports of the patch panel are aligned within the predetermined threshold of the desired orientation ( 2104 ). At  2106 , the aligned image is used instead of the initial image in conjunction with the processing in  1806  through  1812 . 
     In yet another embodiment of the process  2100 , the detection algorithm includes an edge detection algorithm. In this embodiment, the process  2100  also includes generating a grayscale image of the patch panel based at least in part on the initial image. Next, linear edges are extracted from the grayscale image using the edge detection algorithm to form an edge map associated with the initial image. Next, the initial image is adjusted to form the aligned image based at least in part on the linear edges. 
     With reference to  FIGS. 18 and 22 , in another embodiment of a process  2200  for processing an image of a patch panel, the estimated port gap and the estimated port size are represented using an image parameter for the initial image that relates to a distance measure. In this embodiment, the process  2200  includes the process  1800  of  FIG. 18  by continuing from  1812  to  2202  where the estimated port gap and the estimated port size are converted to corresponding physical dimensions for the multiple ports of the patch panel using a conversion algorithm based at least in part on a known port dimension for the multiple ports. At  2204 , the known port dimension is correlated to the estimated port size to determine a conversion factor between the distance measures relating to the image parameter and the physical dimensions for the multiple ports. Next, an estimated gap dimension is calculated based at least in part on the estimated port gap and the conversion factor ( 2206 ). At  2208 , the estimated port quantity, estimated gap dimension, and known port dimension are provided to a label printer in conjunction with labeling the multiple ports of the patch panel. 
     In yet another embodiment of the process  2200 , the multiple ports comprise at least one of RF-45 connectors or sockets, eight position eight contact (8P8C) connectors or sockets, and modular connectors or sockets. In still another embodiment of the process  2200 , the known port dimension is 12.4 millimeters. In still yet another embodiment of the process  2200 , the image parameter is pixels and distance measures for the image parameter are expressed in pixel quantity. 
     With reference to  FIGS. 18 and 23 , another embodiment of a process  2300  for processing an image of a patch panel includes the process  1800  of  FIG. 18  and continues from  1812  to  2302  where the edge lines are processed in relation to the initial image using the hypothesis algorithm to identify a first hypotheses set that includes the first port hypothesis and additional port hypotheses. Each additional port hypothesis including the estimated port gap and an alternate estimated port size for the multiple ports along the desired orientation based at least in part on an alternate distance between a given edge line pair and an adjacent edge line pair. The given and adjacent edge line pairs for the corresponding additional port hypothesis have distances between the corresponding edge lines within a predetermined range of the estimated port gap. At  2304 , the processing in  1810  is repeated for each additional port hypothesis in the first hypotheses set to determine a corresponding estimated port quantity for the corresponding additional port hypothesis. Next, the processing in  1812  is repeated for each additional port hypothesis in the first hypotheses set to identify a corresponding alternate estimation error for the corresponding additional port hypothesis ( 2306 ). At  2308 , the estimation errors for the first hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first hypotheses set. 
     With reference to  FIGS. 18 ,  23 , and  24 , another embodiment of a process  2400  for processing an image of a patch panel includes the processes  1800 ,  2300  of  FIGS. 18 and 23  and continues from  2308  to  2402  where the edge lines are processed in relation to the initial image using the hypothesis algorithm to identify additional hypotheses sets. Each additional hypotheses set including a plurality of further port hypotheses. Each further port hypothesis including an alternate estimated port gap between the multiple ports along the desired orientation based at least in part on an alternate distance between an alternate pair of adjacent edge lines. Each further port hypothesis for each additional hypotheses set including the corresponding alternate estimated port gap and a further estimated port size for the multiple ports along the desired orientation based at least in part on a further distance between a given alternate edge line pair and an adjacent alternate edge line pair. The given and adjacent alternate edge line pairs for the corresponding further port hypothesis have distances between the corresponding edge lines within a predetermined range of the corresponding alternate estimated port gap. At  2404 , the processing in  1810  is repeated for each further port hypothesis in each additional hypotheses set to determine a corresponding further estimated port quantity for the corresponding further port hypothesis. Next, the processing in  1812  is repeated for each further port hypothesis in each additional hypotheses set to identify a corresponding further estimation error for the corresponding further port hypothesis ( 2406 ). At  2408 , the estimation errors for each hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the corresponding hypotheses set. Next, the estimation errors for the corresponding port hypothesis from each hypotheses set that minimizes the estimation error for the corresponding hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first and additional hypotheses sets ( 2410 ). 
     With reference to  FIG. 25 , an exemplary embodiment of an image processor  2500  for processing an image of a patch panel includes an input/output module  2502 , a pre-processing module  2504 , a detection processor  2506 , a hypothesis processor  2508 , an estimating processor  2510 , and a scoring processor  2512 . The input/output module  2502  configured to receive an initial image of a patch panel from an image source device  2514 . The pre-processing module  2504  configured to determine multiple ports of the patch panel are aligned within a predetermined threshold of a desired orientation in the initial image. The detection processor  2506  configured to process the initial image using a detection algorithm to identify edge lines that are perpendicular to the desired orientation. The hypothesis processor  2508  configured to process the edge lines in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation. The estimated port gap based at least in part on a distance between a first pair of adjacent edge lines. The estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair. The estimating processor  2510  configured to process the first port hypothesis in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size. The scoring processor  2512  configured to process the first port hypothesis in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size. 
     In another embodiment, the image processor  2500  and the image source device  2514  are co-located within an electronic device. In this embodiment, the image source device  2514  includes a camera device  2516  configured to capture the initial image and to at least temporarily store the initial image in a storage device  2518 . The camera device  2516  may include the storage device  2518 . Alternatively, the storage device  2518  may be separate from the camera device  2516  within the image source device  1514 . In a further embodiment, the camera device  2516  is also configured to present a marker on a view finder or preview screen to guide the capturing of the initial image in order to facilitate alignment of the multiple ports of the patch panel in the initial image in conjunction with the capturing. In another further embodiment, the combination of the image processor  2500  and the image source device  2514  with the camera device  2515  may be provided in a wireless device, such as a smartphone, tablet, or any suitable wireless device. 
     In yet another embodiment of the image processor  2500 , the pre-processing module  2504  is also configured to extract a region of interest from the initial image to form a regional image. In this embodiment, the regional image is used by the detection processor  2506 , hypothesis processor  2508 , estimating processor  2510 , and scoring processor  2512  instead of the initial image in conjunction with determining the multiple ports are aligned, identifying the edge lines, processing the edge lines, and processing the first port hypothesis. In a further embodiment, the region of interest is shaped like a parallelogram in which a first set of parallel sides is four times greater than a second set of parallel sides that are perpendicular to the first set. 
     In still another embodiment of the image processor  2500 , the detection algorithm includes an edge detection algorithm. In this embodiment, the detection processor  2506  is also configured to generate a grayscale image of the patch panel based at least in part on the initial image and extract linear edges from the grayscale image using the edge detection algorithm to form an edge map associated with the initial image. 
     In still yet another embodiment of the image processor  2500 , the pre-processing module  2504  is also configured to determine the multiple ports are not aligned within the predetermined threshold of the desired orientation in the initial image. In this embodiment, the pre-processing module  2504  and detection processor  2506  are also configured to cooperate in processing the initial image to create an aligned image of the patch panel in which multiple ports of the patch panel are aligned within the predetermined threshold of the desired orientation. In the embodiment being described, the aligned image is used by the detection processor  2506 , hypothesis processor  2508 , estimating processor  2510 , and scoring processor  2512  instead of the initial image in conjunction with identifying the edge lines, processing the edge lines, and processing the first port hypothesis. 
     In a further embodiment, the detection algorithm includes an edge detection algorithm. In this embodiment, the detection processor  2506  is also configured to generate a grayscale image of the patch panel based at least in part on the initial image, extract linear edges from the grayscale image using the edge detection algorithm to form an edge map associated with the initial image. In the embodiment being described, the pre-processing module  2504  is also configured to adjust the initial image to form the aligned image based at least in part on the linear edges. 
     In another embodiment of the image processor  2500 , positions of the edge lines in the initial image are in relation to a reference point on the reference axis that relates to the desired orientation and an image parameter that relates to a distance measure along the reference axis. 
     In yet another embodiment of the image processor  2500 , the estimated port gap and the estimated port size are represented using an image parameter for the initial image that relates to a distance measure. In this embodiment, the image processor  2500  also includes a conversion module  2520  configured to convert the estimated port gap and the estimated port size to corresponding physical dimensions for the multiple ports of the patch panel using a conversion algorithm based at least in part on a known port dimension for the multiple ports. 
     In a further embodiment, the conversion module  2520  is also configured to correlate the known port dimension to the estimated port size to determine a conversion factor between the distance measures relating to the image parameter and the physical dimensions for the multiple ports and calculate an estimated gap dimension based at least in part on the estimated port gap and the conversion factor. In an even further embodiment, the input/output module  2502  is also configured to provide the estimated port quantity, estimated gap dimension, and known port dimension to a label printer  2522  in conjunction with labeling the multiple ports of the patch panel. 
     In another further embodiment, the multiple ports comprise at least one of RF-45 connectors or sockets, eight position eight contact (8P8C) connectors or sockets, and modular connectors or sockets. In yet another further embodiment, the known port dimension is 12.4 millimeters. In still another further embodiment, the image parameter is pixels and distance measures for the image parameter expressed in pixel quantity. 
     In still another embodiment of the image processor  2500 , the hypothesis processor  2508  is also configured to process the edge lines in relation to the initial image using the hypothesis algorithm to identify a first hypotheses set that includes the first port hypothesis and additional port hypotheses. Each additional port hypothesis including the estimated port gap and an alternate estimated port size for the multiple ports along the desired orientation based at least in part on an alternate distance between a given edge line pair and an adjacent edge line pair. The given and adjacent edge line pairs for the corresponding additional port hypothesis have distances between the corresponding edge lines within a predetermined range of the estimated port gap. In this embodiment, the estimating processor  2510  is also configured to process each additional port hypothesis in the first hypotheses set in relation to the initial image using the estimation algorithm to determine a corresponding alternate estimated port quantity for the corresponding additional port hypothesis. In the embodiment being described, the scoring processor  2512  is also configured to process each additional port hypothesis in the first hypotheses set in relation to the initial image using the scoring algorithm to identify a corresponding alternate estimation error between expected and detected edge line positions based at least in part on the corresponding alternate estimated port quantity, the estimated port gap, and the corresponding alternate estimated port size for the corresponding additional port hypothesis. In this embodiment, the scoring processor  2512  is also configured to process the estimation errors for the first hypotheses set using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first hypotheses set. 
     In a further embodiment of the image processor  2500 , the hypothesis processor  2508  is also configure to process the edge lines in relation to the initial image using the hypothesis algorithm to identify additional hypotheses sets. Each additional hypotheses set including a plurality of further port hypotheses. Each further port hypothesis including an alternate estimated port gap between the multiple ports along the desired orientation based at least in part on an alternate distance between an alternate pair of adjacent edge lines. Each further port hypothesis for each additional hypotheses set including the corresponding alternate estimated port gap and a further estimated port size for the multiple ports along the desired orientation based at least in part on a further distance between a given alternate edge line pair and an adjacent alternate edge line pair. The given and adjacent alternate edge line pairs for the corresponding further port hypothesis have distances between the corresponding edge lines within a predetermined range of the corresponding alternate estimated port gap. In this embodiment, the estimating processor  2510  is also configured to process each further port hypothesis in each additional hypotheses set in relation to the initial image using the estimation algorithm to determine a corresponding further estimated port quantity for the corresponding further port hypothesis. In the embodiment being described, the scoring processor  2512  is also configured to process each further port hypothesis in each additional hypotheses set in relation to the initial image using the scoring algorithm to identify a corresponding further estimation error between expected and detected edge line positions based at least in part on the corresponding further estimated port quantity, the corresponding alternate estimated port gap, and the corresponding further estimated port size for the corresponding further port hypothesis. In this embodiment, the scoring processor  2512  is also configured to process the estimation errors for each hypotheses set using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the corresponding hypotheses set. In the embodiment being described, the scoring processor  2512  is also configured to process the estimation errors for the corresponding port hypothesis from each hypotheses set that minimizes the estimation error for the corresponding hypotheses set using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first and additional hypotheses sets. 
     With reference again to  FIG. 26 , an exemplary embodiment of a non-transitory computer-readable medium storing program instructions that, when executed by a computer, cause a corresponding computer-controlled device in a P2P network to perform a process  2600  for processing an image of a patch panel that begins at  2602  where the process determines multiple ports of a patch panel are aligned within a predetermined threshold of a desired orientation in an initial image. At  2604 , the initial image is processed using a detection algorithm to identify edge lines that are perpendicular to the desired orientation. Next, the edge lines are processed in relation to the initial image using a hypothesis algorithm to identify a first port hypothesis that includes an estimated port gap between the multiple ports along the desired orientation and an estimated port size for the multiple ports along the desired orientation ( 2606 ). The estimated port gap based at least in part on a distance between a first pair of adjacent edge lines. The estimated port size based at least in part on a distance between the first edge line pair and another edge line adjacent to the first edge line pair. At  2608 , the first port hypothesis is processed in relation to the initial image using an estimating algorithm to determine an estimated port quantity for the multiple ports based at least in part on the estimated port gap and the estimated port size. Next, the first port hypothesis in relation to the initial image using a scoring algorithm to identify an estimation error between expected and detected edge line positions in relation to a reference axis perpendicular to the edge lines based at least in part on the estimated port quantity, estimated port gap, and estimated port size ( 2610 ). 
     In another embodiment of the non-transitory computer readable medium, the process  2600  also includes capturing the initial image using the camera device. Next, the initial image is at least temporarily stored in a storage device accessible to the camera device. In a further embodiment, the process also includes presenting a marker on a view finder or preview screen of the camera device to guide the capturing of the initial image in order to facilitate alignment of the multiple ports of the patch panel in the initial image in conjunction with the capturing. 
     In yet another embodiment of the non-transitory computer readable medium, the process  2600  also includes extracting a region of interest from the initial image to form a regional image. In this embodiment, the regional image is used instead of the initial image in conjunction with the determining in  2602  and the processing in  2604  through  2610 . 
     In still another embodiment of the non-transitory computer readable medium, the process  2600  also includes determining the desired orientation in the initial image is not aligned within the predetermined threshold. Next, the initial image is processed to create an aligned image of the patch panel in which multiple ports of the patch panel are aligned within the predetermined threshold of the desired orientation. In this embodiment, the aligned image is used instead of the initial image in conjunction with the processing in  2604  through  2610 . 
     In still yet another embodiment of the non-transitory computer readable medium, the estimated port gap and the estimated port size are represented using an image parameter for the initial image that relates to a distance measure. In this embodiment, the process  2600  also includes converting the estimated port gap and the estimated port size to corresponding physical dimensions for the multiple ports of the patch panel using a conversion algorithm based at least in part on a known port dimension for the multiple ports. 
     In a further embodiment, the process  2600  also includes correlating the known port dimension to the estimated port size to determine a conversion factor between the distance measures relating to the image parameter and the physical dimensions for the multiple ports. Next, an estimated gap dimension is calculated based at least in part on the estimated port gap and the conversion factor. In an even further embodiment, the process  2600  also includes providing the estimated port quantity, estimated gap dimension, and known port dimension to a label printer in conjunction with labeling the multiple ports of the patch panel. 
     In another further embodiment, the process also includes processing the edge lines in relation to the initial image using the hypothesis algorithm to identify a first hypotheses set that includes the first port hypothesis and additional port hypotheses. Each additional port hypothesis including the estimated port gap and an alternate estimated port size for the multiple ports along the desired orientation based at least in part on an alternate distance between a given edge line pair and an adjacent edge line pair. The given and adjacent edge line pairs for the corresponding additional port hypothesis have distances between the corresponding edge lines within a predetermined range of the estimated port gap. Next, the processing in  2608  is repeated for each additional port hypothesis in the first hypotheses set to determine a corresponding estimated port quantity for the corresponding additional port hypothesis. Then, the processing in  2610  is repeated for each additional port hypothesis in the first hypotheses set to identify a corresponding alternate estimation error for the corresponding additional port hypothesis. Next, the estimation errors for the first hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first hypotheses set. 
     In an even further embodiment, the process  2600  also includes processing the edge lines in relation to the initial image using the hypothesis algorithm to identify additional hypotheses sets. Each additional hypotheses set including a plurality of further port hypotheses. Each further port hypothesis including an alternate estimated port gap between the multiple ports along the desired orientation based at least in part on an alternate distance between an alternate pair of adjacent edge lines. Each further port hypothesis for each additional hypotheses set including the corresponding alternate estimated port gap and a further estimated port size for the multiple ports along the desired orientation based at least in part on a further distance between a given alternate edge line pair and an adjacent alternate edge line pair. The given and adjacent alternate edge line pairs for the corresponding further port hypothesis have distances between the corresponding edge lines within a predetermined range of the corresponding alternate estimated port gap. Next, the processing in  2608  is repeated for each further port hypothesis in each additional hypotheses set to determine a corresponding further estimated port quantity for the corresponding further port hypothesis. Then, the processing in  2610  is repeated for each further port hypothesis in each additional hypotheses set to identify a corresponding further estimation error for the corresponding further port hypothesis. Next, the estimation errors for each hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the corresponding hypotheses set. Then, the estimation errors for the corresponding port hypothesis from each hypotheses set that minimizes the estimation error for the corresponding hypotheses set are processed using the scoring algorithm to identify the corresponding port hypothesis that minimizes the estimation error for the first and additional hypotheses sets. 
     It will be appreciated that several of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.