WO2009022984A1 - Method and system for real time hough transform - Google Patents

Method and system for real time hough transform Download PDF

Info

Publication number
WO2009022984A1
WO2009022984A1 PCT/SG2007/000253 SG2007000253W WO2009022984A1 WO 2009022984 A1 WO2009022984 A1 WO 2009022984A1 SG 2007000253 W SG2007000253 W SG 2007000253W WO 2009022984 A1 WO2009022984 A1 WO 2009022984A1
Authority
WO
WIPO (PCT)
Prior art keywords
angle
line
processing system
image processing
angle range
Prior art date
Application number
PCT/SG2007/000253
Other languages
French (fr)
Inventor
Kit Wai Chan
Piao Chun Phang
Boon Khoon Seow
Original Assignee
Nanyang Polytechnic
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanyang Polytechnic filed Critical Nanyang Polytechnic
Priority to PCT/SG2007/000253 priority Critical patent/WO2009022984A1/en
Publication of WO2009022984A1 publication Critical patent/WO2009022984A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation

Definitions

  • the present invention relates to image processing.
  • the invention relates to a method and system for real time Hough transform.
  • Hough transform is a feature extraction technique used in digital image processing. It can identify discontinuous lines in an image despite the presence of surrounding noise. The detected lines can be used for higher-level feature extraction, such as identification of different shapes. It is also used as image registration for the purpose of image mosaicking.
  • FIG. IA shows a straight line 10 in a Cartesian space.
  • the line 10 can be represented by a formula (1):
  • r represents length of a normal from the origin to the line 10 and ⁇ represents the orientation or angle of the normal with respect to X-axis.
  • FIG. IB 5 for any one point within the Cartesian space, such as point 11, there are unlimited number of lines 12 passing therethrogh.
  • Each of these lines has an r and a that relative to the origin and can be used to plot a sinusoidal curve 30 for each point 11 in a Hough space as shown in FIG. 1C.
  • the Hough space shows a number of sinusoidal curves 30, each for one point that lie on the line 10. In the Hough space, it can be observed that the sinusoidal curves intersect at a specific r and a which is the r and a of line 10 in the Hough space as described above.
  • the Hough transform finds a common for each point, i.e. the intersection 35 between the sinusoidal curves of each point 11, to determine the line 10.
  • a number of lines in a fix angle interval are sampled for practical reason.
  • the Hough space is quantised into N ⁇ by N r accumulator cells, where ⁇ is the quantised value of a, N ⁇ is the number of a quantisation levels, while N r is the number of r quantization levels.
  • Each of the accumulator cells is catered for storing vote counts of the possible (r, ⁇ ) for each point in the Hough space. By finding the corresponding (r, ⁇ ) with the highest vote count, the most likely line can be extracted.
  • the Hough space is a (r, ⁇ ) plane or a (r, ⁇ ) plane for plotting the respective r and ⁇ (or ⁇ ) for the normal of the respective line generated for each edge pixel.
  • the vertical axis represents the length, r, for up to the length of a longest possible length available, i.e. diagonal length of the frame.
  • the horizontal axis represents the angle, ⁇ or ⁇ , where a E [0, ⁇ ] and ⁇ G [0, 2"], where n is the number of bit.
  • the point of interest in an image for Hough transform is commonly edge pixels for which each edge pixel (x, y), the Hough transform computes r( ⁇ ) coordinates in the Hough space. The coordinates are accumulated subsequently and determines the required r( ⁇ ) based on votes of the r( ⁇ ).
  • the computational complexity in Hough transform can be expressed as formula (2):
  • i N e N ⁇ l N e E (0, W-H) (2) [0011] where i represents a number of computational iterations required to be performed in a single image, N e is the number of edge pixels and Ne is the number of quantisation levels in Hough space.
  • the Hough transform involves high computational complexity. It is unfeasible for many standalone devices that have limited resources to perform the Hough transform computation, especially for real time vision applications.
  • the present invention provides a method for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video.
  • the method comprises generating an angle range based on the reference angle; and processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of the angle range.
  • the method may further comprise setting the corresponding line as the reference line for processing a further subsequent image for identifying a further corresponding line, wherein a new angle range may be provided based on an angle represented the corresponding line in the Hough space.
  • processing may comprise scanning edge pixels of the subsequent image. It is also possible that the processing further comprises the step of detecting the edge pixels on the subsequent image.
  • the method may further comprise generating a plurality of lines passing through each edge pixel, wherein each of the line may have a normal with a (r, ⁇ ) in the Hough space, wherein r represents the length of the normal from an origin and ⁇ represents an angle of the normal with respect of X-axis within the angle range.
  • the method may further comprise accumulating vote counts for each (r, ⁇ ) obtained.
  • the corresponding line has a (r, ⁇ ) in Hough space with the highest vote count.
  • the angle range is smaller than a half circle.
  • the angle range may be smaller than a straight angle or an right angle. It is also possible that the angle range is substantially ⁇ 5° of the reference angle.
  • the method may further comprise proving accumulation cells for all possible (r, ⁇ ) for the image, each of the accumulation cells storing a vote count, wherein the accumulator cells may be arranged in an one- dimensional array.
  • an image processing system for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video, system comprises processor for processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of an angle range, wherein the angle range is provided based on the reference angle.
  • the processor may further process a further subsequent image for identifying a further corresponding line by setting the corresponding line as the reference line, wherein a new angle range may be provided based on an angle represented the corresponding line in the Hough space.
  • the processor may further scan edge pixels of the subsequent image. It is possible that the processor further detects the edge pixels on the subsequent image.
  • the processor may further generate a plurality of lines passing through each edge pixel, wherein each of the line may have a normal with a (r, ⁇ ) in the Hough space, wherein r represents the length of the normal from an origin and ⁇ represents an angle of the normal with respect of X- axis within the angle range.
  • the processor may further accumulate vote counts for each (r, ⁇ ) obtained.
  • the corresponding line may have a (r, ⁇ ) in Hough space with the highest vote count.
  • the processor may identify the reference line with a Hough transform comprises detecting edge pixels on the one of the plurality of images of the video; scanning each edge pixel; generating a plurality of lines passing through each edge pixel within a half circle; and obtaining the reference line based on the highest vote count of an (r, ⁇ ) of a normal of each line.
  • the angle range may be smaller than a half circle.
  • the angle range may also be smaller than a right angle. It is also possible that the angle range is substantially ⁇ 5° of the reference angle.
  • the image processing system may further comprises accumulation cells for storing vote counts for each of all possible (r, ⁇ ) for the image, wherein the accumulator cells is arranged in an one-dimensional array.
  • the present invention provide a video processing system, comprises an image processing system in accordance with the above aspect.
  • FIG. IA and IB shows the parameter r and ⁇ , in the normal representation of a line in an image with X-axis as the image width and Y-axis as the image height;
  • FIG. 1C shows the mapping of image space to a Hough space
  • FIG. 2A, 2B, 2C, 2D illustrates the tracking of the maximum line for a consecutive of two image frames;
  • FIG. 3 A is the timing diagram for the output signal of the digital image sensor for one frame;
  • FIG. 3B is the timing diagram forone row of data;
  • FIG. 3C is the timing diagram for scanning eight angles within one pixel clock cycle;
  • FIG. 4 shows a method of detecting a line with a longest length within a video frame with the image processing system in accordance with one embodiment of the present invention
  • FIG. 5 illustrates the top level hardware architecture for Hough transform in accordance with the present invention
  • FIG. 6A illustrates the details architecture of compute Hough block in accordance with a specific embodiment of the present invention
  • FIG. 6B illustrates the mapping of 2D memory array to reduced 2D memory and finally to reduced ID memory in accordance with a specific embodiment of the present invention.
  • FIG. 7 shows the architecture of the Accumulation module in accordance with a specific embodiment of the present invention.
  • FIGs. 2A-D illustrate a process of identifying features for a video with an image processing system in accordance with one embodiment of the present invention.
  • the video has a fix resolution with a height and a width defined in pixels.
  • the video contains a plurality of sequential images or frames with a frame rate, of which, two frames are shown in FIG. 2A and FIG. 2C herein for illustration.
  • some features of the video (or images) can be identified and determined in real time.
  • the video can be a full color video stream, but for the purpose of performing the Hough transform in accordance with the present embodiment, a grayscale video, for example, is provided herewith.
  • FIG. 2A exemplifies a first frame 201 taken from the grayscale video.
  • the first frame 201 has a width and a height that are defined in terms of pixels.
  • the image processing system can be used to identify features, such as straight lines, featured within the first frame 201. It is understood that the image processing system can be used to identify all or specific straight lines. For the purpose of illustration, not limitation, only a longest straight line within the first frame 201 is identified.
  • FIG. 2B illustrates a processed first frame 203 that is obtained by performing an edge detection process over the first frame 203.
  • the edge detection process for digital image processing is used for marking points in a digital image at which the luminous intensity changes sharply.
  • the edge detection filtered out information that may be regarded as less relevant while preserving the important structural properties/edges of the first frame 201. Areas with the information filtered out are presented on the processed first frame 203 as blank spaces, and the important structural properties/edges are provided on the processed first frame 203 as edge pixels or black dots.
  • Numerous edge detection methods and systems are known in the art and any such edge detection processes can be desired and thus such processes are not discussed herein.
  • a Hough transform is performed to scan the edge pixels to identify lines 205 and 206 featured on the first image 202.
  • a Hough transform is performed to scan the edge pixels to identify lines 205 and 206 featured on the first image 202.
  • a plurality of lines passing through each edge pixel are generated and a respective (r, ⁇ ) of each line in the Hough space are recorded.
  • the number of lines generated depending on the intensity of lines required, for example, if 1° interval is required, 180 lines are generated within the full circle about each edge pixel.
  • a curve is generated in Hough space for each edge pixel. The curve generated interests in peaks in the Hough space. Each of these peaks represented the lines 205 and 206 of the first frame 201.
  • the line 205 is also represented as MAX_THETA(n-l).
  • the line 205 is used as a reference line for processing the subsequent frame.
  • FIG. 2C shows a second frame 202 of the video.
  • the second frame 202 is a subsequent frame of the first frame 201 in a continuous scene.
  • videos may have different frame rates, commonly ranging from six or eight frames per second (fps) to 120fps or more. For example, a common 25p standard video runs at twenty-five progressive frames per second. Each of the frames of such video is displayed in sequence at high frequency, and in most cases, there may not be any significant differences between the succeeding frames, unless there is a change in scenes.
  • FIG. 2C shows a subsequent frame of the first frame 203 that is captured in a low frame rate.
  • FIG. 2D illustrates a processed second frame 204 that is obtained by performing the edge detection process over the second frame 202 to identify edge pixels. The image processing system processes the processed second frame 204 to generate lines within an angle range.
  • the angle range is provided based on the angle, ⁇ , of the line 205 in the Hough space of FIG. 2B for identifying a corresponding line 206. .
  • the image processing system Based on the angle range, the image processing system generates a start line 208, THETA_S, and an end line 209, THETA_E for each edge pixel on the processed second frame 204.
  • the start line 208 and the end line 209 are crossing each other at the edge pixel defining the angle range between the lines 208 and 209.
  • the image processing system For every edge pixel identified in the image, the image processing system generates all possible lines within the THETA_S and THETA_E that pass through each edge pixel.
  • a set of (r, ⁇ ) is obtained for each line, including THETA_S and THETA_E, and stores in memory
  • a curve is generated in a Hough space for each edge pixel.
  • the Hough space for the image processing system requires only a ⁇ -axis of the angle range only.
  • the image processing system determines a highest peak of the intersections of the (r, ⁇ ) curves, and the (r, ⁇ ) at the highest peak is the Hough space representation of the corresponding line 206.
  • the image processing system scans lines with angles that have close proximity to corresponding coordinates along the line 205. That reduces the number of lines to scan, hence reducing the number of computing cycles.
  • the computing cycle can further be reduced by scanning only the edge pixels that have close proximity along the line 205.
  • the angle range is selected depending on applications and computing powers of a processor for processing the image processing system. For example, an approximation range of about ⁇ 5° is estimated to be sufficient for tracking straight lines in adjacent frames.
  • the scan angle range of 9.84° i.e. substantially within ⁇ 5°
  • the interval [0, 2 ⁇ ] are quantized into N, hence
  • r x cos ⁇ + y sin ⁇ , for ( ⁇ s ⁇ ⁇ ⁇ ⁇ e) ,
  • the image processing system when the second processed frame 204 is being processed, the image processing system forms data cells for storing vote counts for all possible (r, ⁇ ) in Hough space. For the frame with 640x480 pixels, in Hough space, the image processing system forms an 800x8 data cells for storing the vote counts, where 800 is a maximum pixel line obtainable from the frame and the 8 represent the number of line to be produced within the acute angle.
  • the image processing system forms an 800x8 data cells for storing the vote counts, where 800 is a maximum pixel line obtainable from the frame and the 8 represent the number of line to be produced within the acute angle.
  • the same approach can be used to process the next subsequent frame and the rest of frames of the video.
  • the image processing system takes the line obtained in the immediate preceding frame as a reference line and processes the frames with a Hough transform within a new angle range. It is to be noted that as the image processing system requires less processing power, the image processing system can be implemented in real time.
  • FIGs. 3A-C shows a timing diagram for an output signal of a digital image sensor in accordance with one embodiment of the present invention.
  • FIG. 3A shows a timing diagram of a full cycle of scanning one video frame.
  • FIG. 3B shows the timing diagram of scanning a single row of pixels.
  • FIG. 3C is the timing diagram to compute eight lines for a particular pixel within one cycle of PCLK_VALID. The computation of Hough equation, voting and searching for maximum vote counts are performed in a single cycle operation on each cycle of CLK_25MHz.
  • FIG. 3A one new frame is processed when the VSYNC has a raised edge. While the frame is processed, one row of valid pixels with 8-bit pixel intensity are scanned when HREF is high.
  • FIG. 3A shows a timing diagram of a full cycle of scanning one video frame.
  • FIG. 3B shows the timing diagram of scanning a single row of pixels.
  • FIG. 3C is the timing diagram to compute eight lines for a particular pixel within one cycle of PCLK_
  • FIG. 3B shows a timing diagram where the HREF is enlarged. Each byte of data is valid when HREF is high. As shown in FIG. 3C, a new pixel arrives at every rising edge of PCLK_VALID, and within a single PCLK V ALID cycle, it consists of eight CLK_25MHz clock cycles.
  • Nr - N 0 (V640 2 + 480 2 ) x 256
  • Nr -N ⁇ yJ640 2 + 480 2 x 8
  • FIG. 4 shows a method of detecting a line with a longest pixel length within a video frame with the image processing system in accordance with one embodiment of the present invention. This method is generally performed after an edge detection process on the video frame.
  • the image processing system is initialized in step 402.
  • a pixel is read at step 404.
  • the method reads if the current pixel is the last pixel. If not, the method activates an iterating function for allowing image processing system to scan through all the pixels.
  • step 408 the read pixel is being checked if it is an edge pixel.
  • the X and/or Y coordinates are increment by one and the method loops back to step 404 to read the next pixel.
  • the image processing system processes the edge pixel to identify a straight line within the video frame.
  • the present invention provides another iterating function for ⁇ s ⁇ ⁇ ⁇ ⁇ e to accumulate voting counts of (r, ⁇ ) to determine the corresponding line to be detected.
  • the ⁇ is first set to ⁇ s in step 409.
  • the ⁇ value is checked to ascertain if it is smaller than ⁇ e+1.
  • the (r, ⁇ ) votes are stored as a function of votes (r, ⁇ ) for later reference.
  • the votes (r , ⁇ ) is checked against a maxvotes value in step 416, and when the votes (r , ⁇ ) are bigger than the maxvotes value, the maxvotes are set to the votes (r, ⁇ ) in step 418.
  • the ⁇ is then incremented by one degree each time in step 420 until it is greater than ⁇ e+1.
  • step 416 when votes (r, ⁇ ) is checked against a value, when the value is found to be smaller than the maxvotes, the image processing system loops back to step 410 to check if the next ⁇ is greater than ⁇ e+1. Steps 410 to 402 are repeated until the present invention has gathered votes for each (r, ⁇ ) within the range of ⁇ s to ⁇ e. In the above process, the image processing system scans all the pixel within the video frame and when an edge pixel is detected, steps 409 to 420 are repeated as described.
  • step 424 when current pixel is the last pixel, in step 424, the (r, ⁇ ) with highest vote will be recorded as a maximum detected (r, ⁇ ), and new ⁇ s and ⁇ e are recorded based on the maximum detected (r, ⁇ ) as a reference for the next video frame.
  • FIG. 5 illustrates a hardware architecture 500 of a device for implementing image processing system in accordance with one embodiment of the present invention.
  • the device can be a generic Programmable Logic Device, such as a Field Programmable Gate Array (FPGA) or the like.
  • the hardware architecture 500 of the device comprises a sine/cosine wave generator 502, an r-generator 504, a theta-S and theta-E generator 506, a clock synchronizer and theta generator 508, a Hough transform processor 510 and a maximum line finder 512.
  • the sine/cosine wave generator 502 is designed to generate values based on an input, THETA.
  • the sine/cosine wave generator 502 receives a 25MHz clock for operation.
  • Outputs of Sin ⁇ and Cos ⁇ from the sine/cosine wave generator 502 is outputted to the r-generator 504 for generating an r-value for processing in the Hough transform processor 510.
  • the clock synchronizer and theta generator 508 is used for generating a THETA value for processing in the Hough transform processor 510.
  • the clock synchronizer and theta generator 508 receives a THETA_S and a THETA_E generated by the THETA_S and THETA-E generator 506.
  • the Hough transform processor 510 has input terminal for receiving the r-signal, the THETA_S signal, the THET A E signal and the theta signal and these values, and in conjunction with the maximum line finder 512, the method of FIG. 4 can be performed to determine and output a maximum theta and a maximum r that correspond to the line to be detected.
  • FIG. 6A illustrates a hardware architecture of the Hough transform processor 510 of FIG. 5 in accordance with one embodiment of the present invention.
  • the Hough transform processor 510 comprises an address mapping module 610 and a accumulator module 620.
  • the address mapping module 610 receives inputs, which includes a theta, a THET A_S, a THETA_E and an r-value, for mapping a 2D memory array to reduced 2D array and finally to reduced one dimension array as shown in FIG. 6B. An output of the address mapping module 610 is sent to the accumulator module
  • the address mapping module 610 further comprises a theta calculator 612 and an address transformer 614.
  • the theta calculator 612 receives inputs theta, theta-S and theta-E for calculating a relative theta, THETA-R.
  • a first cell diagram 670 on the left shows a 800 by 256 cells provided for the Hough transform.
  • a second cell diagram 680 at the center shows a 800 by 8 cells provided for the image processing system in one embodiment.
  • a cell third diagram 690 on the right shows 800 groups of 1 by 7 cells provided for the image processing system in another embodiment, where the third cell diagram 690 is a one dimensional cells of the second cell diagram 680.
  • Each cells of the cell diagrams 670, 680, 690 are used for storing vote counts, vote(r, ⁇ ).
  • a cell address, ADDRIN for each cell can be determined by (r x 8 + ⁇ ).
  • FIG. 7 shows a hardware architecture of the accumulation module 620 of FIG. 6A in accordance with one embodiment of the present invention.
  • the accumulation module 620 comprises a mode selector 710, an address assignor 720, a dual port RAM 730 and an adder 740.
  • the accumulation module 620 is initializing a Hough space to perform vote accumulation for each (r, ⁇ )
  • the address location of (r, ⁇ ) is translated to a one-dimensional address, ADDRIN.
  • the accumulation module 620 outputs an output address, ADDROUT, and a accumulated vote count, NVOTESOUT, for storing in ADDROUT.
  • Two modes are available at mode selector 710: Mode 1 is selected for votes accumulation and Mode 2 is selected when a new frame is to be processed where the vote counts in all data cells are reset to
  • the mode selection is based on the input NRESET and SYN_VALID. During reset or the arrival of a new frame, NRESET and SYNJVALID are triggered respectively.
  • the state is hence set to initialization whereby it increments WR-ADDRB to reset all data cells to zero.
  • the clearing of Hough space is perform at the raising edge of VSYN, which signifies the beginning of a new frame. As such, the Hough space must be completely reset within the available time, i.e. before the arrival of the first pixel.
  • the address assignor 720 receives the ADDRIN signal and outputs an RD_ADDRA and the WR_ADDRB to the dual port RAM 730.
  • the votes (r, ⁇ ) at the relevant address are read from the dual port RAM 730. These votes are incremented by one and rewritten back to the same location of the dual port RAM 730.
  • the output signals, ADDROUT and NVOTESOUT are feedback signals for the computational of maximum votes found in Hough space.
  • the image processing system provides an efficient use of computational cycles, resources and embedded memories of a computing device for perform Hough transform in real-time.
  • Such real-time application includes a straight line tracking in streaming video.
  • This invention relates to the development of an optimized image processing system that is capable of optimizing tracking straight lines in a video stream in real time.
  • the image processing system is able to complete all computational requirements streaming video.
  • the image processing system does not require a high clocking frequency. Hence eliminating many problems relating to power consumption, timing considerations and bandwidth requirements for memories.
  • the present invention has been made to provide a method and system for performing Hough transform in real-time application, for example, in digital video processing.
  • the above embodiments include method and system for the realization of image processing system, implemented using a parallel architecture, to achieve optimization in terms of computational and memory requirements.
  • the r, R, r value and the like represent the length of a normal to a line to be detected from the origin.
  • the theta and ⁇ represent the angle of a normal of the line with respect to X-axis.
  • THETA-S, ⁇ s or the like represent a start of scan angle for the image processing system.
  • THETA-E, ⁇ e or the like represent an end of scan angle for the image processing system.

Abstract

The present invention provides a method and system for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video, the method comprising generating an angle range based on the reference angle; and processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of the angle range.

Description

METHOD AND SYSTEM FOR REAL TIME HOUGH TRANSFORM
Field of the Invention
[0001] The present invention relates to image processing. In particular, the invention relates to a method and system for real time Hough transform.
Background
[0002] Hough transform is a feature extraction technique used in digital image processing. It can identify discontinuous lines in an image despite the presence of surrounding noise. The detected lines can be used for higher-level feature extraction, such as identification of different shapes. It is also used as image registration for the purpose of image mosaicking.
[0003] FIG. IA shows a straight line 10 in a Cartesian space. The line 10 can be represented by a formula (1):
[0004] r = x cos cc + y sin a, (1)
[0005] where r represents length of a normal from the origin to the line 10 and α represents the orientation or angle of the normal with respect to X-axis. As shown in FIG. IB5 for any one point within the Cartesian space, such as point 11, there are unlimited number of lines 12 passing therethrogh. Each of these lines has an r and a that relative to the origin and can be used to plot a sinusoidal curve 30 for each point 11 in a Hough space as shown in FIG. 1C. The Hough space shows a number of sinusoidal curves 30, each for one point that lie on the line 10. In the Hough space, it can be observed that the sinusoidal curves intersect at a specific r and a which is the r and a of line 10 in the Hough space as described above.
[0006] In the Hough space, the Hough transform finds a common for each point, i.e. the intersection 35 between the sinusoidal curves of each point 11, to determine the line 10. When implementing the Hough transform, instead of generating unlimited number of lines for each point, a number of lines in a fix angle interval are sampled for practical reason. The Hough space is quantised into Nθ by Nr accumulator cells, where θ is the quantised value of a, Nθ is the number of a quantisation levels, while Nr is the number of r quantization levels. Each of the accumulator cells is catered for storing vote counts of the possible (r, θ) for each point in the Hough space. By finding the corresponding (r, θ) with the highest vote count, the most likely line can be extracted.
[0007] The Hough space is a (r, α) plane or a (r, θ) plane for plotting the respective r and α (or θ) for the normal of the respective line generated for each edge pixel. The vertical axis represents the length, r, for up to the length of a longest possible length available, i.e. diagonal length of the frame. The horizontal axis represents the angle, α or θ, where a E [0, π] and θ G [0, 2"], where n is the number of bit.
[0008] For each of the point of interest scanned in an image, a sinusoidal curve is required to be computed in the Hough space. Therefore, the Hough transform requires very high processing power. Generally, the detection of straight lines requires to be done in the Hough space with two dimensional memory array. Thus, the memory space requirements and the computing time grow exponentially as the number of parameters and the resolution of the image and the line sampling in Hough transform increase. Very often, the Hough transform involves high computational complexity.
[0009] The point of interest in an image for Hough transform is commonly edge pixels for which each edge pixel (x, y), the Hough transform computes r(θ) coordinates in the Hough space. The coordinates are accumulated subsequently and determines the required r(θ) based on votes of the r(θ). Thus, the computational complexity in Hough transform can be expressed as formula (2):
[0010] i = NeNθl Ne E (0, W-H) (2) [0011] where i represents a number of computational iterations required to be performed in a single image, Ne is the number of edge pixels and Ne is the number of quantisation levels in Hough space.
[0012] Very often, the Hough transform involves high computational complexity. It is unfeasible for many standalone devices that have limited resources to perform the Hough transform computation, especially for real time vision applications.
[0013] Methods relating to the implementation of Hough transform in real time also requires large amount of memories for storing votes. For example, to process VGA images streaming at a frame rate of 30 frame per second, a minimum memory size for processing one frame with a resolution of 640x480 pixels requires:
[0014] NrNa = (V6402 + 4802 ) x 360° = 2S8000hytes
[0015] or, for a quantized Hough space in 8-bits application,
[0016] NrNθ = (V6402 + 4802 ) x 256 = 2Q4800bytes
[0017] As such, implementation of Hough transform in real time often leads to high clock rates and large memories requirements, which none of the both is desirable in any portable embedded systems.
Summary
[0018] In accordance with one aspect, the present invention provides a method for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video. The method comprises generating an angle range based on the reference angle; and processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of the angle range. [0019] In accordance with one embodiment, the method may further comprise setting the corresponding line as the reference line for processing a further subsequent image for identifying a further corresponding line, wherein a new angle range may be provided based on an angle represented the corresponding line in the Hough space.
[0020] In accordance with another embodiment, wherein the processing may comprise scanning edge pixels of the subsequent image. It is also possible that the processing further comprises the step of detecting the edge pixels on the subsequent image.
[0021] In accordance with yet another embodiment, the method may further comprise generating a plurality of lines passing through each edge pixel, wherein each of the line may have a normal with a (r, θ) in the Hough space, wherein r represents the length of the normal from an origin and θ represents an angle of the normal with respect of X-axis within the angle range.
[0022] In yet another embodiment, the method may further comprise accumulating vote counts for each (r, θ) obtained. The corresponding line has a (r, θ) in Hough space with the highest vote count.
[0023] In yet another embodiment, the reference line is identified by a Hough transform comprises the step of detecting edge pixels on the one of the plurality of images of the video; scanning each edge pixel; generating a plurality of lines passing through each edge pixel within a full circle; and obtaining the reference line based on a highest vote count of an (r, θ) of a normal of each line.
[0024] In yet another embodiment, the angle range is smaller than a half circle.
The angle range may be smaller than a straight angle or an right angle. It is also possible that the angle range is substantially ±5° of the reference angle. [0025] In yet another embodiment, the method may further comprise proving accumulation cells for all possible (r, θ) for the image, each of the accumulation cells storing a vote count, wherein the accumulator cells may be arranged in an one- dimensional array.
[0026] In another aspect of the present invention, there is provided an image processing system for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video, system comprises processor for processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of an angle range, wherein the angle range is provided based on the reference angle.
[0027] In accordance with one embodiment, the processor may further process a further subsequent image for identifying a further corresponding line by setting the corresponding line as the reference line, wherein a new angle range may be provided based on an angle represented the corresponding line in the Hough space.
[0028] In accordance with another embodiment, wherein the processor may further scan edge pixels of the subsequent image. It is possible that the processor further detects the edge pixels on the subsequent image.
[0029] In accordance with yet another embodiment, the processor may further generate a plurality of lines passing through each edge pixel, wherein each of the line may have a normal with a (r, θ) in the Hough space, wherein r represents the length of the normal from an origin and θ represents an angle of the normal with respect of X- axis within the angle range.
[0030] In yet another embodiment, the processor may further accumulate vote counts for each (r, θ) obtained. The corresponding line may have a (r, θ) in Hough space with the highest vote count. [0031] In yet another embodiment, the processor may identify the reference line with a Hough transform comprises detecting edge pixels on the one of the plurality of images of the video; scanning each edge pixel; generating a plurality of lines passing through each edge pixel within a half circle; and obtaining the reference line based on the highest vote count of an (r, θ) of a normal of each line.
[0032] In yet another embodiment, the angle range may be smaller than a half circle. The angle range may also be smaller than a right angle. It is also possible that the angle range is substantially ±5° of the reference angle.
[0033] In yet another embodiment, the image processing system may further comprises accumulation cells for storing vote counts for each of all possible (r, θ) for the image, wherein the accumulator cells is arranged in an one-dimensional array.
[0034] In yet another aspect, the present invention provide a video processing system, comprises an image processing system in accordance with the above aspect.
Brief Description of the Drawings
[0035] This invention will be described by way of non-limiting embodiments of the present invention, with reference to the accompanying drawings, in which:
[0036] FIG. IA and IB shows the parameter r and α, in the normal representation of a line in an image with X-axis as the image width and Y-axis as the image height;
[0037] FIG. 1C shows the mapping of image space to a Hough space;
[0038] FIG. 2A, 2B, 2C, 2D illustrates the tracking of the maximum line for a consecutive of two image frames; [0039] FIG. 3 A is the timing diagram for the output signal of the digital image sensor for one frame; FIG. 3B is the timing diagram forone row of data; and FIG. 3C is the timing diagram for scanning eight angles within one pixel clock cycle;
[0040] FIG. 4 shows a method of detecting a line with a longest length within a video frame with the image processing system in accordance with one embodiment of the present invention;
[0041] FIG. 5 illustrates the top level hardware architecture for Hough transform in accordance with the present invention;
[0042] FIG. 6A illustrates the details architecture of compute Hough block in accordance with a specific embodiment of the present invention;
[0043] FIG. 6B illustrates the mapping of 2D memory array to reduced 2D memory and finally to reduced ID memory in accordance with a specific embodiment of the present invention; and
[0044] FIG. 7 shows the architecture of the Accumulation module in accordance with a specific embodiment of the present invention.
Detailed Description
[0045] In line with the above summary, the following description of a number of specific and alternative embodiments are provided to understand the inventive features of the present invention. It shall be apparent to one skilled in the art, however that this invention may be practiced without such specific details. Some of the details may not be described at length so as not to obscure the invention. For ease of reference, common reference numerals will be used throughout the figures when referring to the same or similar features common to the figures.
[0046] FIGs. 2A-D illustrate a process of identifying features for a video with an image processing system in accordance with one embodiment of the present invention. The video has a fix resolution with a height and a width defined in pixels. The video contains a plurality of sequential images or frames with a frame rate, of which, two frames are shown in FIG. 2A and FIG. 2C herein for illustration. With the image processing system, some features of the video (or images) can be identified and determined in real time. The video can be a full color video stream, but for the purpose of performing the Hough transform in accordance with the present embodiment, a grayscale video, for example, is provided herewith.
[0047] FIG. 2A exemplifies a first frame 201 taken from the grayscale video.
The first frame 201 has a width and a height that are defined in terms of pixels. The image processing system can be used to identify features, such as straight lines, featured within the first frame 201. It is understood that the image processing system can be used to identify all or specific straight lines. For the purpose of illustration, not limitation, only a longest straight line within the first frame 201 is identified.
[0048] FIG. 2B illustrates a processed first frame 203 that is obtained by performing an edge detection process over the first frame 203. The edge detection process for digital image processing is used for marking points in a digital image at which the luminous intensity changes sharply. The edge detection filtered out information that may be regarded as less relevant while preserving the important structural properties/edges of the first frame 201. Areas with the information filtered out are presented on the processed first frame 203 as blank spaces, and the important structural properties/edges are provided on the processed first frame 203 as edge pixels or black dots. Numerous edge detection methods and systems are known in the art and any such edge detection processes can be desired and thus such processes are not discussed herein.
[0049] Still referring to FIG. 2B, when the edge detection process is completed, a Hough transform is performed to scan the edge pixels to identify lines 205 and 206 featured on the first image 202. In the Hough transform, a plurality of lines passing through each edge pixel are generated and a respective (r, θ) of each line in the Hough space are recorded. The number of lines generated depending on the intensity of lines required, for example, if 1° interval is required, 180 lines are generated within the full circle about each edge pixel. A curve is generated in Hough space for each edge pixel. The curve generated interests in peaks in the Hough space. Each of these peaks represented the lines 205 and 206 of the first frame 201. To determine these peaks, commonly known methods such as thresholding, relative thresholding or the like may be desired. While the present invention is able to extract the lines 205 and 206, for simplicity, the description herein below focuses only on extracting the line 205, which has the highest peak in the Hough space. The line 205 is also represented as MAX_THETA(n-l). The line 205 is used as a reference line for processing the subsequent frame.
[0050] FIG. 2C shows a second frame 202 of the video. The second frame 202 is a subsequent frame of the first frame 201 in a continuous scene.
[0051] It is understood that videos may have different frame rates, commonly ranging from six or eight frames per second (fps) to 120fps or more. For example, a common 25p standard video runs at twenty-five progressive frames per second. Each of the frames of such video is displayed in sequence at high frequency, and in most cases, there may not be any significant differences between the succeeding frames, unless there is a change in scenes. For illustration purpose, FIG. 2C shows a subsequent frame of the first frame 203 that is captured in a low frame rate. [0052] FIG. 2D illustrates a processed second frame 204 that is obtained by performing the edge detection process over the second frame 202 to identify edge pixels. The image processing system processes the processed second frame 204 to generate lines within an angle range. The angle range is provided based on the angle, θ, of the line 205 in the Hough space of FIG. 2B for identifying a corresponding line 206. . Based on the angle range, the image processing system generates a start line 208, THETA_S, and an end line 209, THETA_E for each edge pixel on the processed second frame 204. The start line 208 and the end line 209 are crossing each other at the edge pixel defining the angle range between the lines 208 and 209. For every edge pixel identified in the image, the image processing system generates all possible lines within the THETA_S and THETA_E that pass through each edge pixel. A set of (r, θ) is obtained for each line, including THETA_S and THETA_E, and stores in memory
, cells. A curve is generated in a Hough space for each edge pixel. As only the lines within the THETA-S and THET A_E (i.e. within the angle range) are generated, the Hough space for the image processing system requires only a θ-axis of the angle range only. In the Hough space, the image processing system determines a highest peak of the intersections of the (r, θ) curves, and the (r, θ) at the highest peak is the Hough space representation of the corresponding line 206.
[0053] The image processing system scans lines with angles that have close proximity to corresponding coordinates along the line 205. That reduces the number of lines to scan, hence reducing the number of computing cycles.
[0054] In accordance with an alternative embodiment, the computing cycle can further be reduced by scanning only the edge pixels that have close proximity along the line 205.
[0055] The angle range is selected depending on applications and computing powers of a processor for processing the image processing system. For example, an approximation range of about ± 5° is estimated to be sufficient for tracking straight lines in adjacent frames. For example, the scan angle range of 9.84° (i.e. substantially within ± 5°) can be calculated as follows. The interval [0, 2π] are quantized into N, hence
[0056] a = ΘAa ,
[0057] where Aa = 2π / Nθ = 2π 1256 = 1.40625°, a E [0, 2π] and 0 e [0, 256]. Consequently, 8 lines can be produced within the 9.84°, and θs and θe are given as, [0058] θs = θs (n-1) - 3 ,
[0059] θe = θs (n-1) + 4 ,
[0060] r = x cos θ + y sin θ, for (θs < θ < θe) ,
[0061] where n is the current frame and θs - θe = 9.84°.
[0062] Still referring to FIG. 2D, when the second processed frame 204 is being processed, the image processing system forms data cells for storing vote counts for all possible (r, θ) in Hough space. For the frame with 640x480 pixels, in Hough space, the image processing system forms an 800x8 data cells for storing the vote counts, where 800 is a maximum pixel line obtainable from the frame and the 8 represent the number of line to be produced within the acute angle. When each pixel within the frame is scanned and processed, votes are added to the data cells of the corresponding pixel length and angle, and the pixel length and the angle with the highest vote is the r and θ of the corresponding line 205.
[0063] The same approach can be used to process the next subsequent frame and the rest of frames of the video. The image processing system takes the line obtained in the immediate preceding frame as a reference line and processes the frames with a Hough transform within a new angle range. It is to be noted that as the image processing system requires less processing power, the image processing system can be implemented in real time.
[0064] FIGs. 3A-C shows a timing diagram for an output signal of a digital image sensor in accordance with one embodiment of the present invention. FIG. 3A shows a timing diagram of a full cycle of scanning one video frame. FIG. 3B shows the timing diagram of scanning a single row of pixels. FIG. 3C is the timing diagram to compute eight lines for a particular pixel within one cycle of PCLK_VALID. The computation of Hough equation, voting and searching for maximum vote counts are performed in a single cycle operation on each cycle of CLK_25MHz. As shown in FIG. 3A, one new frame is processed when the VSYNC has a raised edge. While the frame is processed, one row of valid pixels with 8-bit pixel intensity are scanned when HREF is high. FIG. 3B shows a timing diagram where the HREF is enlarged. Each byte of data is valid when HREF is high. As shown in FIG. 3C, a new pixel arrives at every rising edge of PCLK_VALID, and within a single PCLK V ALID cycle, it consists of eight CLK_25MHz clock cycles.
[0065] With the acute angle of approximately ± 5°, about 97.20% reduction in terms of computational cycles can be achieved when comparing with a full circle (i.e. 360°) scan for each point. In other words, a lower clock frequency can perform the image processing system in real time.
[0066] Secondly, the searching of Hough space is progressively computed along with a voting process for determining a maximum r and θ. As a result, it saves W x H search cycles for obtaining maxjheta and maxjr.
[0067] Thirdly, due to the principle of locality, the scan range cycle is reduced. Consequently, it reduces the Hough space from
[0068] Nr - N0 = (V6402 + 4802 ) x 256
[0069] = 204800 memory locations , to
[0070] Nr -Nθ = yJ6402 + 4802 x 8
[0071] =6400 memory locations [0072] achieving a significant reduction of 96.87% of memory requirements.
[0073] The fourth technique relates to the emulation of full Hough space using a reduced Hough space through a novel mapping technique. Lastly, the translation of the reduced 2D Hough space into actual RAM (one dimensional) is also elaborated. [0074] FIG. 4 shows a method of detecting a line with a longest pixel length within a video frame with the image processing system in accordance with one embodiment of the present invention. This method is generally performed after an edge detection process on the video frame. At start, the image processing system is initialized in step 402. A pixel is read at step 404. At step 406, the method reads if the current pixel is the last pixel. If not, the method activates an iterating function for allowing image processing system to scan through all the pixels. In step 408, the read pixel is being checked if it is an edge pixel. When the read pixel is not an edge pixel, the X and/or Y coordinates are increment by one and the method loops back to step 404 to read the next pixel. When the read pixel is an edge pixel, the image processing system processes the edge pixel to identify a straight line within the video frame. To achieve that, the present invention provides another iterating function for θs ≤ θ < θe to accumulate voting counts of (r, θ) to determine the corresponding line to be detected. Before performing the iterating function, the θ is first set to θs in step 409. In step 410, the θ value is checked to ascertain if it is smaller than θe+1. When the θ is within that range (i.e. between θs and θe), the image processing system computes a line r = x cos θ + y sin θ in step 412 and increments the (r, θ) vote by one in step 414. The (r, θ) votes are stored as a function of votes (r, θ) for later reference. The votes (r , θ) is checked against a maxvotes value in step 416, and when the votes (r , θ) are bigger than the maxvotes value, the maxvotes are set to the votes (r, θ) in step 418. The θ is then incremented by one degree each time in step 420 until it is greater than θe+1. Referring to the step 416 when votes (r, θ) is checked against a value, when the value is found to be smaller than the maxvotes, the image processing system loops back to step 410 to check if the next θ is greater than θe+1. Steps 410 to 402 are repeated until the present invention has gathered votes for each (r, θ) within the range of θs to θe. In the above process, the image processing system scans all the pixel within the video frame and when an edge pixel is detected, steps 409 to 420 are repeated as described.
[0075] Still referring to FIG. 4, when current pixel is the last pixel, in step 424, the (r, θ) with highest vote will be recorded as a maximum detected (r, θ), and new θs and θe are recorded based on the maximum detected (r, θ) as a reference for the next video frame.
[0076] FIG. 5 illustrates a hardware architecture 500 of a device for implementing image processing system in accordance with one embodiment of the present invention. The device can be a generic Programmable Logic Device, such as a Field Programmable Gate Array (FPGA) or the like. The hardware architecture 500 of the device comprises a sine/cosine wave generator 502, an r-generator 504, a theta-S and theta-E generator 506, a clock synchronizer and theta generator 508, a Hough transform processor 510 and a maximum line finder 512. The sine/cosine wave generator 502 is designed to generate values based on an input, THETA. The sine/cosine wave generator 502 receives a 25MHz clock for operation. Outputs of Sin θ and Cos θ from the sine/cosine wave generator 502 is outputted to the r-generator 504 for generating an r-value for processing in the Hough transform processor 510. The clock synchronizer and theta generator 508 is used for generating a THETA value for processing in the Hough transform processor 510. The clock synchronizer and theta generator 508 receives a THETA_S and a THETA_E generated by the THETA_S and THETA-E generator 506. The Hough transform processor 510 has input terminal for receiving the r-signal, the THETA_S signal, the THET A E signal and the theta signal and these values, and in conjunction with the maximum line finder 512, the method of FIG. 4 can be performed to determine and output a maximum theta and a maximum r that correspond to the line to be detected.
[0077] FIG. 6A illustrates a hardware architecture of the Hough transform processor 510 of FIG. 5 in accordance with one embodiment of the present invention.
The Hough transform processor 510 comprises an address mapping module 610 and a accumulator module 620. The address mapping module 610 receives inputs, which includes a theta, a THET A_S, a THETA_E and an r-value, for mapping a 2D memory array to reduced 2D array and finally to reduced one dimension array as shown in FIG. 6B. An output of the address mapping module 610 is sent to the accumulator module
620 performs a voting count for each (r, θ) and output a (r, θ) with the highest voting count. The (r, θ) with the highest voting count corresponds to the line to be detected. [0078] Still referring to FIG. 6A, the address mapping module 610 further comprises a theta calculator 612 and an address transformer 614. The theta calculator 612 receives inputs theta, theta-S and theta-E for calculating a relative theta, THETA-R. The THETAJR. is then send to the address transformer 614 for providing an output ADDRIN based on the following formula: [0079] votes(r, θr) =votes(addrin)
[0080] where addrin = r*8 + θr = r*8 + (θ - θs)
[0081] Referring now to FIG. 6B where data cells are provided for illustrating the data mapping in accordance with one embodiment. A first cell diagram 670 on the left shows a 800 by 256 cells provided for the Hough transform. A second cell diagram 680 at the center shows a 800 by 8 cells provided for the image processing system in one embodiment. A cell third diagram 690 on the right shows 800 groups of 1 by 7 cells provided for the image processing system in another embodiment, where the third cell diagram 690 is a one dimensional cells of the second cell diagram 680. Each cells of the cell diagrams 670, 680, 690 are used for storing vote counts, vote(r, θ). In third cell diagram 690, a cell address, ADDRIN, for each cell can be determined by (r x 8 + θ).
[0082] FIG. 7 shows a hardware architecture of the accumulation module 620 of FIG. 6A in accordance with one embodiment of the present invention. The accumulation module 620 comprises a mode selector 710, an address assignor 720, a dual port RAM 730 and an adder 740. When the accumulation module 620 is initializing a Hough space to perform vote accumulation for each (r, θ), the address location of (r, θ) is translated to a one-dimensional address, ADDRIN. The accumulation module 620 outputs an output address, ADDROUT, and a accumulated vote count, NVOTESOUT, for storing in ADDROUT. Two modes are available at mode selector 710: Mode 1 is selected for votes accumulation and Mode 2 is selected when a new frame is to be processed where the vote counts in all data cells are reset to
0. The mode selection is based on the input NRESET and SYN_VALID. During reset or the arrival of a new frame, NRESET and SYNJVALID are triggered respectively.
The state is hence set to initialization whereby it increments WR-ADDRB to reset all data cells to zero. With reference to FIGs. 3A-C, the clearing of Hough space is perform at the raising edge of VSYN, which signifies the beginning of a new frame. As such, the Hough space must be completely reset within the available time, i.e. before the arrival of the first pixel.
[0083] Still referring to FIG. 7, during the accumulation module 620 is in the accumulation state, i.e. Mode 2, the address assignor 720 receives the ADDRIN signal and outputs an RD_ADDRA and the WR_ADDRB to the dual port RAM 730. The votes (r, θ) at the relevant address are read from the dual port RAM 730. These votes are incremented by one and rewritten back to the same location of the dual port RAM 730. The output signals, ADDROUT and NVOTESOUT, are feedback signals for the computational of maximum votes found in Hough space.
[0084] The image processing system according to the present invention provides an efficient use of computational cycles, resources and embedded memories of a computing device for perform Hough transform in real-time. Such real-time application includes a straight line tracking in streaming video.
[0085] This invention relates to the development of an optimized image processing system that is capable of optimizing tracking straight lines in a video stream in real time. The image processing system is able to complete all computational requirements streaming video. In additional, the image processing system does not require a high clocking frequency. Hence eliminating many problems relating to power consumption, timing considerations and bandwidth requirements for memories.
[0086] The present invention has been made to provide a method and system for performing Hough transform in real-time application, for example, in digital video processing. The above embodiments include method and system for the realization of image processing system, implemented using a parallel architecture, to achieve optimization in terms of computational and memory requirements.
[0087] In the above embodiments, the r, R, r value and the like represent the length of a normal to a line to be detected from the origin. The theta and θ represent the angle of a normal of the line with respect to X-axis. Similarly, THETA-S, θs or the like represent a start of scan angle for the image processing system. Yet, THETA-E, θe or the like represent an end of scan angle for the image processing system.
[0088] While specific embodiments have been described and illustrated, it is understood that many changes, modifications, variations and combinations thereof could be made to the present invention without departing from the scope of the invention.

Claims

Claims
1. A method for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video, the method comprising: generating an angle range based on the reference angle; and processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of the angle range.
2. The method according to claim 1, further comprising setting the corresponding line as the reference line for processing a further subsequent image for identifying a further corresponding line, wherein a new angle range is provided based on an angle represented the corresponding line in the Hough space.
3. The method according to claim 1, wherein the processing comprising scanning edge pixels of the subsequent image.
4. The method according to claim 3, wherein the processing further comprising detecting the edge pixels on the subsequent image.
5. The method according to claim 3, further comprising generating a plurality of lines passing through each edge pixel, wherein each of the line having a normal with a (r, θ) in the Hough space, wherein r represents the length of the normal from an origin and θ represents an angle of the normal with respect of X-axis within the angle range.
6. The method according to claim 5, further comprising accumulating vote counts for each (r, θ) obtained.
7. The method according to claim 6, wherein the corresponding line having a (r, θ) in Hough space with a highest vote count.
8. The method according to claim 1, wherein the reference line is identified by a Hough transform comprising: detecting edge pixels on the one of the plurality of images of the video; scanning each edge pixel; generating a plurality of lines passing through each edge pixel within a full circle; and obtaining the reference line based on a highest vote count of an (r, θ) of a normal of each line.
9. The method according to claim 1, wherein the angle range is smaller than a full circle.
10. The method according to claim 1, wherein the angle range is smaller than a 180° angle.
11. The method according to claim I5 wherein the angle range is smaller than an right angle.
12. The method according to claim 1, wherein the angle range is substantially ±5° of the reference angle.
13. The method according to claim 6, further comprising proving accumulation cells for all possible (r, θ) for the image, each of the accumulation cells stores a vote count, wherein the accumulator cells is arranged in an one-dimensional array.
14. An image processing system for processing a video having a plurality of images, wherein a reference line, represented in term of a reference angle in Hough space, is identified from one of the plurality of images of the video, system comprising: processor for processing a subsequent image of the video to identify a corresponding line in a Hough space having an axis of an angle range, wherein the angle range is provided based on the reference angle.
15. The image processing system according to claim 14, wherein the processor further processing a further subsequent image for identifying a further corresponding line by setting the corresponding line as the reference line, wherein a new angle range is provided based on an angle represented the corresponding line in the Hough space.
16. The image processing system according to claim 15, wherein the processor further scans edge pixels of the subsequent image.
17. The image processing system according to claim 16, wherein the processor further detecting the edge pixels on the subsequent image.
18. The image processing system according to claim 16, wherein the processor further generating a plurality of lines passing through each edge pixel, wherein each of the line having a normal with a (r, θ) in the Hough space, wherein r represents the length of the normal from an origin and θ represents an angle of the normal with respect of X-axis within the angle range.
19. The image processing system according to claim 18, wherein the processor further accumulating vote counts for each (r, θ) obtained.
20. The image processing system according to claim 19, wherein the corresponding line having a (r, θ) in Hough space with a highest vote count.
21. The image processing system according to claim 14, wherein the processor identified the reference line with a Hough transform comprising: detecting edge pixels on the one of the plurality of images of the video; scanning each edge pixel; generating a plurality of lines passing through each edge pixel within a half circle; and obtaining the reference line based on a highest vote count of an (r, θ) of a normal of each line.
22. The image processing system according to claim 145 wherein the angle range is smaller than a half circle.
23. The image processing system according to claim 14, wherein the angle range is smaller than a right angle.
24. The image processing system according to claim 14, wherein the angle range is substantially ±5° of the reference angle.
25. The image processing system according to claim 19, accumulation cells for storing vote counts for each of all possible (r, θ) for the image, wherein the accumulator cells is arranged in an one-dimensional array.
26. A video processing system, comprising an image processing system in accordance with any one of the claims 14-25.
PCT/SG2007/000253 2007-08-14 2007-08-14 Method and system for real time hough transform WO2009022984A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SG2007/000253 WO2009022984A1 (en) 2007-08-14 2007-08-14 Method and system for real time hough transform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2007/000253 WO2009022984A1 (en) 2007-08-14 2007-08-14 Method and system for real time hough transform

Publications (1)

Publication Number Publication Date
WO2009022984A1 true WO2009022984A1 (en) 2009-02-19

Family

ID=40350919

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2007/000253 WO2009022984A1 (en) 2007-08-14 2007-08-14 Method and system for real time hough transform

Country Status (1)

Country Link
WO (1) WO2009022984A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103854279A (en) * 2012-12-03 2014-06-11 美国亚德诺半导体公司 Hough transform for circles
CN112633275A (en) * 2020-12-22 2021-04-09 航天信息股份有限公司 Multi-bill mixed-shooting image correction method and system based on deep learning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953452A (en) * 1992-11-05 1999-09-14 The Johns Hopkins University Optical-digital method and processor for pattern recognition
US6263089B1 (en) * 1997-10-03 2001-07-17 Nippon Telephone And Telegraph Corporation Method and equipment for extracting image features from image sequence
US20060239509A1 (en) * 2005-04-26 2006-10-26 Fuji Jukogyo Kabushiki Kaisha Road line recognition apparatus
US7200282B2 (en) * 2001-12-12 2007-04-03 Sony Corporation Implementation of Hough transform and its application in line detection and video motion analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953452A (en) * 1992-11-05 1999-09-14 The Johns Hopkins University Optical-digital method and processor for pattern recognition
US6263089B1 (en) * 1997-10-03 2001-07-17 Nippon Telephone And Telegraph Corporation Method and equipment for extracting image features from image sequence
US7200282B2 (en) * 2001-12-12 2007-04-03 Sony Corporation Implementation of Hough transform and its application in line detection and video motion analysis
US20060239509A1 (en) * 2005-04-26 2006-10-26 Fuji Jukogyo Kabushiki Kaisha Road line recognition apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAEZ E ET AL: "Global Motion Estimation Algorithm for Video Segmentation", VISUAL COMMUNICATIONS AND IMAGE PROCESSING VCIP '03, pages 1540 - 1550, XP030080771, Retrieved from the Internet <URL:http://www.uco.es/~el1sapee/docs/research/VCIP03.pdf> [retrieved on 20070927] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103854279A (en) * 2012-12-03 2014-06-11 美国亚德诺半导体公司 Hough transform for circles
CN112633275A (en) * 2020-12-22 2021-04-09 航天信息股份有限公司 Multi-bill mixed-shooting image correction method and system based on deep learning
CN112633275B (en) * 2020-12-22 2023-07-18 航天信息股份有限公司 Multi-bill mixed shooting image correction method and system based on deep learning

Similar Documents

Publication Publication Date Title
CN101789122B (en) Method and system for correcting distorted document image
US8608073B2 (en) System and method for robust real-time 1D barcode detection
US8810633B2 (en) Robust image alignment for distributed multi-view imaging systems
US20100158387A1 (en) System and method for real-time face detection using stereo vision
KR101524548B1 (en) Apparatus and method for alignment of images
CN109074657B (en) Target tracking method and device, electronic equipment and readable storage medium
US9245194B2 (en) Efficient line detection method
CN103279952A (en) Target tracking method and device
CN102855649A (en) Method for splicing high-definition image panorama of high-pressure rod tower on basis of ORB (Object Request Broker) feature point
US20140270362A1 (en) Fast edge-based object relocalization and detection using contextual filtering
US9747507B2 (en) Ground plane detection
CN108830133A (en) Recognition methods, electronic device and the readable storage medium storing program for executing of contract image picture
CN108668069B (en) Image background blurring method and device
CN113822942B (en) Method for measuring object size by monocular camera based on two-dimensional code
EP3338249B1 (en) Video image alignment for video stabilization
US9600700B1 (en) Portable electronic device and operation method thereof
US8417057B2 (en) Method of compensating for distortion in text recognition
CN110503002B (en) Face detection method and storage medium
CN112330618B (en) Image offset detection method, device and storage medium
WO2009022984A1 (en) Method and system for real time hough transform
US20140376822A1 (en) Method for Computing the Similarity of Image Sequences
US8433139B2 (en) Image processing apparatus, image processing method and program for segmentation based on a degree of dispersion of pixels with a same characteristic quality
CN115190303A (en) Cloud desktop image processing method and system and related equipment
CN114648564B (en) Visible light and infrared image optimization registration method and system for unsteady state target
Javadi et al. Video stabilization and tampering detection for surveillance systems using homography

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07794264

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07794264

Country of ref document: EP

Kind code of ref document: A1