EP2102814A2 - Systeme de traitement d'image a macro cellule morphologique - Google Patents

Systeme de traitement d'image a macro cellule morphologique

Info

Publication number
EP2102814A2
EP2102814A2 EP07858742A EP07858742A EP2102814A2 EP 2102814 A2 EP2102814 A2 EP 2102814A2 EP 07858742 A EP07858742 A EP 07858742A EP 07858742 A EP07858742 A EP 07858742A EP 2102814 A2 EP2102814 A2 EP 2102814A2
Authority
EP
European Patent Office
Prior art keywords
morphological
cells
image
cell
macro
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP07858742A
Other languages
German (de)
English (en)
Inventor
Eva Dokladalova
Philippe Fauvel
Stéphane GUYETANT
Christophe Clienti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
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 Commissariat a lEnergie Atomique CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of EP2102814A2 publication Critical patent/EP2102814A2/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/155Segmentation; Edge detection involving morphological operators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/63Scene text, e.g. street names
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/625License plates

Definitions

  • the present invention relates to a morphological macro cell image processing system.
  • the present invention aims to use nonlinear image processing techniques based in particular on the theory of mathematical morphology and in particular erosion and expansion operations to process linear structuring elements of large sizes (which may range, for example, from 3 at 256 pixels) at high speeds.
  • the invention further relates more particularly to a system for detecting objects with repeating patterns consisting of letters, numbers or symbols.
  • the basic principle of erosion and expansion operations is based on “min” and “max” operations. It consists in comparing the image to be analyzed with respect to a set of known geometry, called the structuring element, which is moved so that its origin passes through all the positions of the image, to highlight certain characteristics of the image. it.
  • the center of the structuring element determines the value where will be stored the "min” or the "max” according to a given neighborhood.
  • ⁇ B (f (x)) inf ⁇ f (xy)), ye B ⁇ (1)
  • f (x-y) represents the translation of the structuring element onto the image.
  • f (x) the minimum value that it takes in the domain of the structuring element B, with each new displacement of B.
  • the dilation of an image is the dual operation of erosion. It is defined as follows:
  • Composite transformations are constructed by composing and chaining basic transformations. With operations such as subtraction, supremum or infimum, a wide variety of treatments can be performed.
  • the gradient results from a subtraction between the original image and an eroded or dilated image.
  • An opening is made by the dilation of the original image followed by the erosion applied to the result.
  • a closure is defined as a dual transformation.
  • a more advanced transformation makes it possible to construct sequential alternating filters.
  • the principle is to alternately chain openings and closures with increasing sizes of B.
  • top hat A composite transformation called “top hat” is defined in two ways: the top hat by closing or black (BTH) ("black top hat” or “close top hat”), and the top hat by opening or white (WHT) ("white top hat” or “open top hat”).
  • BTH black top hat
  • WHT opening or white
  • the WHT is equal to the difference of the original image and the opening operation. It makes it possible to keep the clear objects of the image exceeding a certain threshold.
  • the BTH is equal to the difference between the closure and the original image. It keeps dark objects in the image below a certain threshold.
  • the invention aims in particular to make it possible optimally to perform data processing in an image stream such as a stream of video signals, and to be able to easily adapt the image processing performed.
  • linear structuring elements makes it possible to set up the parallelism at the level of the lines / columns of an image because the treatment of each line / column is independent of the others.
  • the implementation is based on a method independent of the size of the structuring element with a constant execution time.
  • the invention thus relates to a morphological macro cell image processing system, characterized in that it comprises: an image acquisition device for creating a digital image in grayscale, comprising a matrix of m lines and n columns coded on b bits, m, n and b being integers,
  • a set of memories a dynamically reconfigurable calculation block for performing image processing, the calculation units and the data paths that can be reconfigured during execution between each unit processing,
  • the calculation block comprises: an integer k, k being greater than 1, of Macro Cells
  • Morphological each comprising a set of elementary morphological cells organized into b parallel branches with an integer number e of stages, each cell performing an elementary function of erosion, expansion or identity based on the use of linear structuring elements, the functionality of each morphological cell and the size of the structuring elements being dynamically programmable and the parallel streams originating from the elementary morphological cells being recombined at the output by an arithmetic and logic unit; at least one data parallelization system for the parallel processing of several rows or several columns, comprising two buffer modules and a pipeline-coupled demultiplexer on a set of synchronous stages for breaking a word into p parallel data streams and connected to the p entries of morphological macro cells,
  • At least one system for reconstructing the image from an integer z of parallel output streams of the macro morphological cells comprising two buffer modules and a multiplexer chained in pipeline over a set of stages and connected to synchronous outputs of the morphological macro cells, and in that the elementary morphological cells as well as the morphological macro cells are provided with a control and communication mechanism with the control system making it possible to selectively stop the execution of a processing according to the availability of the data, and then resume processing without losing data in pipeline chaining.
  • the system comprises an integer f of data parallelization systems and image reconstruction systems to allow processing on f x p parallel data streams.
  • each morphological cell comprises first and second processing units for performing processing according to first and second passes in different processing directions, and a buffer module is interposed between the first and second processing units.
  • the first and second processing units each comprise a propagation unit, an edge effects management unit and specific processing and a delay line.
  • a morphological macro cell comprises at least two branches with two linked morphological cells each providing erosion, dilation and / or identity functions, as well as an arithmetic and logic unit so as to define by reconfiguration compound type operators. closure or opening, top hat by opening, top hat by closure and / or gradient.
  • the erosion and expansion functions are supplemented by the identity function and a logical / arithmetic unit to create compound operators for performing filtering, image enhancement, outlines and detection of objects.
  • the invention relates to the use of such a morphological macro cell image processing system comprising at least two morphological macrocytes linked together and combined with arithmetic / logic units to perform image processing such as gradient, nonlinear filters, sequential alternating filters, contrast modification.
  • the invention also relates more particularly to a system for detecting objects provided with repeating patterns consisting of letters, numbers or symbols, characterized in that it comprises a reconfigurable system for morphological macro-cell image processing of the defined type. above and in that it comprises a first image processing module and a second image processing module.
  • the first image processing module comprises a first opening / closing module, a second opening / closing module, and an arithmetic / logic unit for making comparisons with respect to thresholds. , an intersection module and a line opening module.
  • the second image processing module comprises an opening / closing module.
  • the system according to the invention is advantageously applied to the detection of license plates.
  • FIG. 1 is a block diagram of an image processing system according to the invention
  • FIG. 2 is a block diagram showing the structure of a morphological cell, which provides treatment in two passes,
  • FIG. 3 is a block diagram showing the structure of the elements constituting the first pass of the treatment of the morphological cell of FIG. 2;
  • FIG. 4 shows the electronic structure of a morphological cell such as that of FIG. 2, - Figure 5 shows the general architecture of a morphological macro cell (MCM),
  • MCM morphological macro cell
  • FIG. 6 shows the electronic structure of a morphological macro cell performing the function of an operator of dilation, erosion, opening or closure,
  • FIG. 7 shows the architecture of a morphological macro cell providing the function of an operator composed of a gradient, an opening, a closure, a top hat by closure or opening (Tophat)
  • FIG. 8 shows the electronic structure of a morphological macro cell performing the function of a operator of the top hat type by opening
  • FIG. 9 is a diagram showing the principle of on-line addressing of the pixels in parallel;
  • FIG. 10 is a diagram showing the principle of a line / column transformation of the pixel vectors,
  • FIG. 11 is a diagram showing the architecture of the row / column conversion system
  • FIG. 12 is a diagram showing the principle of a column / line transformation of the pixel vectors
  • FIG. 13 is a diagram showing the architecture of the column / row conversion system of the pixels
  • FIG. 14 shows an example of a three-stage multiplexer that can be used in the architecture of FIG. 13;
  • FIG. 15 shows an example of a source image;
  • FIG. 16 shows an exemplary image at the output of a row / column parallelization buffer stage
  • FIG. 17 shows an example of a calculated image
  • FIG. 18 shows an example of a computed image reorganized after a column / line parallelization
  • FIG. 19 shows the result of an expansion treatment of size 3 according to a linear treatment in constant time in two passes
  • FIG. 20 is a block diagram showing the various steps of a license plate detection method using the architecture of the image processing system according to the invention and a example image that can be subjected to a license plate detection process,
  • FIG. 21 is an example of an image obtained after treatment of the image of FIG. 20 according to the method according to the invention.
  • FIG. 22 is an enlarged view of the zone detected in FIG.
  • FIG. 23 is another exemplary image subjected to a license plate detection processing
  • FIG. 24 is a processed image corresponding to the image of FIG. 23 subjected to a horizontal opening and to a thresholding
  • FIG. 25 is a processed image corresponding to the image of FIG. 23 subjected to a horizontal closure and to a thresholding
  • FIG. 26 is a processed image corresponding to the intersection of the processed images of FIGS. 24 and 25,
  • FIG. 27 is a processed image corresponding to the image of FIG. 26 after horizontal erosion and dilation
  • FIG. 28 is a processed image corresponding to the image of FIG. 27 after vertical erosion and dilation, the white zone indicating the position of the license plate,
  • Fig. 29 is a block diagram showing the architecture of a license plate locating system.
  • Fig. 30 is a block diagram showing an exemplary image processing system applied to license plate detection.
  • FIG. 1 shows in a synthetic way the main components of an image processing system according to the invention, with a sensor 1 or image acquisition module, a control system 2 placed in a static zone, a calculation block 3 placed in a dynamically reconfigurable zone, memories 4, 5 and a communication system 6.
  • the image acquisition device 1 makes it possible to create a digital image in grayscale, comprising a matrix of m lines and n columns encoded on b bits (m, n and b being integers).
  • the control system 2 is responsible for transferring data from the image acquisition system 1 to the memories 4, 5 or directly to the calculation block. At the same time, the control system 2 manages the flow control to the calculation block 3 and sends the data with a specific addressing according to the needs thereof.
  • the calculation block 3, which is powered by a data stream from the control system, may be devoid of addressing function. On the other hand, it is essential that the calculation block 3 is equipped with a mechanism for freezing the associated clock, so that the control system can interrupt the flow of data at any moment and then allow the processing process to be resumed. without loss of data.
  • the architecture of Figure 2 thus differs from that of a microprocessor and approaches a systolic structure in which the data from the memory enters the computing units to be processed before being returned to memory.
  • Each of the calculation units can be reconfigured between each treatment (type of processing, size of the structuring element, size of the image, function of the arithmetic / logical units). In addition, it is possible to create several data paths in order to perform different treatments on an image.
  • FIGS. 2 to 4 a morphological cell which constitutes a basic component of the calculation block 3 and makes it possible to carry out erosion or linear expansion with a structuring element centered and a programmable element size and a size d parametric image.
  • Figure 2 shows the internal structure of a morphological cell constituting an operator.
  • the morphological cell of Figure 2 comprises first and second units 10, 20 which perform two passes of the treatment.
  • Each of the first and second units 10, 20 comprises three main components, namely: a propagation unit 11, respectively 21,
  • a maximum detection comparator circuit 14, 24 is furthermore included in the units 10, 20.
  • a buffer module 30 is interposed between the units 10 and 20.
  • the processing during a pass in the first unit 10 or the second unit 20 takes place in three stages.
  • the output of the specific processing unit 12, 22 is calculated so that the propagation unit 11, 21 can take into account edge effects.
  • the propagation unit 11, 21 propagates the pixels according to their values, the size of the structuring element and the output of the specific processing unit 12, 22.
  • the result of the propagation is compared in the circuits 14, 24 with the source pixels recorded in the delay line 13, 23 to keep the maximum.
  • FIG. 3 shows in more detail an exemplary embodiment 100 of the first unit 10 performing a first pass.
  • the unit 100 shown in FIG. 3 comprises a pixel input which is connected to an input circuit 110 of the edge effects management unit and specific processing operations, to a register 101 which is itself connected to a circuit. 113 of the propagation unit, and a delay line 103.
  • a register 105 stores a Nbse value corresponding to half the size of the structuring element.
  • a register 106 stores a value NbColumns corresponding to the number of columns to be processed in a calculation line.
  • the output of the register 106 is connected to the input of a counter 107 comprising an end of line output connected on the one hand to the circuit 110 and on the other hand, via a delay register 109 and a logic gate 112, to the circuit 113.
  • the output of the register 105 is connected to the input of a counter 108, an output of which is connected to the input of a logic gate 116 whose other input is connected to the output of a comparator circuit 115.
  • the output of the logic gate 116 is also connected to the circuit 113.
  • the edge effects and specific processing management unit includes at the output a register 102 which stores a value T corresponding to the result given for the specific treatment of edge effects.
  • the propagation unit comprises a register 114 which stores a value G which is then applied to an input of the comparator 115 and to an input of the comparator 104 determining a maximum.
  • Delay line 103 is outputted to a register 117 which is itself connected to another input of comparator 104, the output of which is connected by a register 118 to the pixel output.
  • the outputs of the registers 101 and 102 are connected to the inputs of the comparator 111 whose output is connected to the circuit 110.
  • a reset terminal of the counter 108 is connected to an input of the logic gate 112 and to the output of the logic gate 116.
  • the unit 100 further comprises an address generator 119 of the buffer circuit.
  • the processing of one pixel lasts three clock cycles, but this pipeline structure is capable of processing one pixel per cycle.
  • T is calculated in the first cycle. This value is then directed to the propagation unit.
  • the calculation of G is done in the second cycle. To guarantee the rate of one pixel per cycle, care must be taken to work well with the input pixel which corresponds to the value of T generated in the first cycle. This is the reason why G is fed with a delayed input pixel value of a cycle (presence of a register 101).
  • the third cycle the maximum between the output G of the register 114 and the output of the register 117 associated with the delay line 103 is calculated.
  • the delay line 103 must have a size of NbSe + 2 because the two must be taken into account. previous cycles for the calculation of G.
  • the unit which ensures the second pass is almost identical to the unit 100 which has just been described.
  • the only difference lies in the calculation of the specific unit that is performed on all the pixels of a line and in the address generator 119 which generates a read address of the buffer instead of a write address.
  • a dual port memory can be used.
  • the write address of the input pixel is at zero during the initialization phase of the operator, and the read address is at the address indicated by the value of the register Nbse.
  • the addresses are incremented to always have a difference between the addresses of Nbse + 1.
  • an additional register is present at the output of the memory. This register can be included in it by the synthesizer to ensure a higher operating frequency.
  • the goal is to create an operator with fully pipeline data flow. It is necessary that the processing passes execute at the same time.
  • the two units 10, 20 can not process at a given instant the same line because the processing of a line is done in both directions. Indeed, the first pass treats a line from left to right and the second pass reuses the result of the first pass but with a sweep from right to left. So as not to stop the pipeline during the processing of a line, it is then necessary to use a buffer 30 composed of two memories which are inverted at each arrival of a new line in the operator ("ping pong" mode) .
  • the write addresses in buffer 30 (for the first pass) and buffer reads 30 (for the second pass) are handled by the address generators of each of the units 10, 20.
  • Figure 4 shows the complete architecture of a basic operator of a morphological cell.
  • the description of the signals used, in the context of the exemplary embodiment, is as follows:
  • the pixel input and pixel output circuits are identified by the references 15 and 25 respectively, and the delay lines of the units 10 and 20 by the references 13 and 23 respectively.
  • the calculation block uses morphological macro-cells (MCM) which themselves comprise several elementary morphological cells (CM) such as the one just described and can thus produce compound operators, such as a morphological gradient, an opening, a closure, a top hat by closure or a top hat by opening, from elementary morphological cells ensuring erosion, dilation or identity.
  • MCM morphological macro-cells
  • CM elementary morphological cells
  • FIG. 5 schematically illustrates the architecture of a morphological macro cell 50 which may comprise a first branch f with several stages of morphological cells 51, 52 and a second branch g in parallel with also several stages of morphological cells 61, 62 .
  • Morphological cells 51, 52 or 61, 62 are designed to be chained and are associated in the pipeline form. It may be noted that the morphological cells 51, 52, 61, 62 may themselves be replaced by morphological macro cells to produce new morphological macro-cells constituting more complex operators than those already mentioned. In all cases, the more complex operators are built by "end-to-end" basic operators, which is a relatively simple structure to achieve. In the architecture of FIG. 5, the morphological cells 51, 52, 61, 62 provide the functions of erosion, dilation or identity based on the use of linear structuring elements.
  • each morphological cell 51, 52, 61, 62 and the size of the structuring elements are dynamically programmable and the parallel flows originating from the elementary morphological cells 51, 52, 61, 62 of the different branches f, g are recombined at the output by a arithmetic and logical unit 70.
  • the elementary morphological cells 51, 52, 61, 62 as well as the morphological macro cells 50 are provided with a control and communication mechanism with the control system making it possible to selectively stop the execution of a treatment as a function of the data availability, and then resume processing without losing data in pipeline chaining.
  • Figure 6 shows the electronic structure of a morphological macro cell 150 providing an opening operator.
  • the morphological cells 151, 161 of a first stage perform an erosion while the morphological cells 152, 162 of a second stage perform a dilation.
  • the electronic structure of a morphological macro cell producing a closing operator would be analogous, but in this case the morphological cells 151, 161 of a first stage perform a dilation while the morphological cells 152, 162 of a second floor achieve erosion.
  • Figure 7 shows the general architecture of a morphological macro cell 250 realizing a so-called top hat operator.
  • a first branch f comprises morphological cells 251, 252 which, depending on whether they provide erosion and then dilation or dilation followed by erosion, open or close.
  • a second branch comprises morphological cells 253, 254 providing an identity.
  • a subtracter 270 is disposed at the output of the morphological macro cell 250.
  • the morphological macro cell 250 takes an image into an input stream, in fact an opening or a closure (cells 251 and 252) and subtracts the output from the flow of the cell 252 with the output of the stream of the cells 253 and 254 representing the identity.
  • the treatment sequence that is to say the sequence of cells 251 and
  • the 252 must be related to the direction of the subtraction (if the cell 251 erodes and the cell 252 dilates, which represents an opening, subtract the output of the cell 252 at the output of the cell 254 representing 'identity).
  • Figure 8 shows the electronic structure of the morphological macro cell 250 of the top hat operator.
  • a “Mempix” component plays the role of cells 253, 254 and constitutes the identity operator to which the number of stages to be covered (two stages in the case in question) is specified.
  • the "Mempix” component can thus be used very easily in a morphological macro cell of variable length.
  • the pixel vector is a line vector. It is therefore necessary to perform a transformation on the pixels to have a column vector in the case of online processing. If the source pixel vector is a column vector, it must be transformed into a row vector to perform column processing. In the case of column processing with pixel line vectors, it is considered that the system that manages the sending of the video stream is capable of handling an online addressing rather than a column, as shown in FIG. 9. (In the case of online processing with pixel vectors in column, column addressing must be maintained).
  • the pixels Pi, P 2 represent the vectors of pixels already sent, the pixels P 3 , the vector of pixels being sent and the remaining pixels the vectors of pixels to be sent.
  • the value of the address in such a type of addressing is incremented by one line size at each clock stroke. This type of treatment makes it possible to dispense with the use of a line / column and column / line transformation.
  • FIGS. 10 to 18 a line vector of pixels of size 4 is considered. Calculations are therefore carried out on 4 lines at a time, in the case of an online processing.
  • Figure 10 shows the principle used. At first, the buffer 31 is filled with the pixels to be processed. The filling is done successively in each memory, that is to say that when the first is full, we go to the next. As soon as the four memories are filled, this operation is continued in the buffer 32 and at the same time one pixel is recovered per line of the buffer 31 at each clock stroke. Indeed, at each instant (once the initialized system), we write four pixels in line and we read four pixels in column, which are sent to four macro-morphological cells MCM1, MCM2, MCM3, MCM4.
  • Figure 11 shows the architecture of a pixel-to-column conversion system, exemplified by a four-pixel, 32-bit source line vector.
  • a circuit 303 constitutes an address and memory selection generator associated with the buffers 301 and 302 and with the multiplexer 304.
  • the architecture implemented in the example of Figure 11 is composed of eight memories of the size of a line which constitute the buffers 301 and 302. Each memory has two ports: a 32-bit input port and a 8-bit output port. To sequentially fill the eight memories, the "chipselect" selection inputs are controlled independently. The pixels are read in packets of four memories to recover the pixel column vector.
  • the addresses are continuously incremented and their values indicate when to select a memory and how the multiplexer 304 should be configured.
  • the outputs of the multiplexer 304 are thus directed directly to four identical macro-morphological cells MCM1, MCM2, MCM3, MCM4 which perform the processing on four lines at a time. But a similar structure must be put in place to reconstruct the data (still in the flow) as originally granted.
  • the column / line transformation of the pixel vectors is illustrated in FIG. 12 with buffers 131, 132.
  • the column / line transformation is analogous to the row / column transformation, except that pixels of different lines are received and the 'We send back to the system that sent the original image, pixels in line.
  • Figure 12 shows the general principle of this transformation. We consider here a column vector of 4 input pixels and a line vector of 4 pixels output.
  • Figure 13 shows the architecture implemented.
  • the 4 pixels resulting from the morphological macro cells MCM1, MCM2, MCM3, MCM4 are written in each line of the buffer 311 or 312.
  • the 4 pixels are read sequentially in each of the memories of the buffer 312 or 311.
  • the selection inputs "chip select" managing the writing of the treated pixels control the memories in packets of four (since we saw previously that it is necessary to write the pixels in each line).
  • the addresses are constantly incremented and the selection of the memory for the outgoing pixels is performed by a multiplexer 314 8 * 32 bits to 32 bits.
  • the circuit 313 is an address generator and memory selection.
  • a multiplexer such as multiplexer 314 can be made in a three-stage pipeline form, as shown in FIG. 14, with registers 411 to 417 associated with elementary multiplexers 401 to 407 at each stage for delaying the commands to each floor and ensure proper operation of the system.
  • the first stage thus comprises the multiplexers 401 to 404 to which the registers 411 to 414 are associated at the output
  • the second stage comprises the multiplexers 405, 406 with which the registers 415, 416 are associated at the output
  • the third stage comprises the multiplexer 407 with which the register 417 is associated at the output.
  • a register 421 also provides a control delay for the second stage with respect to the first stage and registers 422, 423 provide a double delay for the third stage with respect to the first stage.
  • Figures 15 to 18 illustrate in a particular example the operation of the parallelization system implemented in the context of the present invention.
  • Figure 15 shows a source image 41 with m lines and n columns (8 rows and 8 columns in the example shown), and a pixel vector of b bits (4 bits A0, BO, CO, DO) in the example shown ).
  • Figure 16 shows the image 42 at the output of the parallelization buffer after a line / column parallelization.
  • Figure 17 shows a computed image 43 with four bits A 1 O input, A 1 I, A'2, A'3 coming in parallel with the four morphological macrocells MCMO, MCM1, MCM2, MCM3.
  • Figure 18 shows the computed image 44 rearranged after a column / line parallelization from the calculated image of Figure 17.
  • the lines of the image are processed independently.
  • the parallelization system exploits this parallelism to process several lines at a time.
  • the pixels are sent in the form of line vectors (example: (AO, A1, A2, A3)) These four pixels can then be processed in data stream by the four morphological macro cells present on the circuit (FIG.
  • the inverse transformation is carried out in order to rearrange the pixels as in the source image (FIGS. 17 and 18).
  • a scan is carried out in the forward direction (from left to right) for the first pass and a scan in the indirect meaning for the second pass.
  • Each of the passes handles pixel propagation and edge effects based on the size of the structuring element and the size of the line.
  • the difference between passes is in the treatment of edge effects.
  • the first pass processes the edge effects at the end of a line while the second pass propagates the edge effects permanently in the line.
  • edge effects makes it possible to memorize the pixels to be taken into account in the next propagation of the same line.
  • a square structuring element can be decomposed into two perpendicular linear structuring elements.
  • the image processing system according to the invention can be applied to video surveillance and in particular to the detection of objects with repeating patterns consisting of letters, numbers or symbols, such as for example license plates.
  • the image processing system according to the invention applied to the detection of a text at a given resolution, implements only a treatment with linear structuring elements.
  • Figure 21 shows, by way of example, on the left an image to be treated I, which is a view from the front of a motor vehicle, and on the right an image J which is the result of the treatment and where only appears the license plate J of the original image I.
  • Figure 20 shows the general structure of the image processing system according to the invention applied to the detection of license plates.
  • the input signal is applied to two parallel processing branches comprising a line opening module 81 followed by a thresholding module 83 with respect to a value a and the other a module 82 for closing the line. line followed by a thresholding module 84 with respect to a value b.
  • the outputs of the thresholding modules 83, 84 are applied to an intersection module 85 followed by a line opening module 86, itself followed by a column opening module 87.
  • the different morphological modules are configurable so that you can process all image sizes. Indeed, the choice of the size of the structuring elements is a function of the image resolution. The larger the image, the more pixels there will be to represent a license plate.
  • Figure 22 shows an enlarged example of the license plate of Figure 21.
  • the alternation of black pixels and white pixels will identify the plate J in the image I.
  • Tf we define the pseudo-period To, Tf as being the distance of the repetitive patterns to a given resolution.
  • the sizes of the structuring elements SE determined by the length of the pseudo-periods To and Tf, are approximately equal to 15, but in order not to be hindered by the characters of low heights, a size is used.
  • the original image is of VGA size (640x480 pixels).
  • each flow is binarized.
  • the pixels lower than the value a of the pixels of the characters are set to one.
  • the closure one sets the pixels that have a value greater than the value b of the pixels of the area around the characters. The intersection of these two flows is then calculated and the image of Figure 26 is obtained.
  • the image of Figure 27 was obtained by performing (in the horizontal direction) an erosion of size 60 followed by an expansion of size 80. It is noted that the area of interest can be altered by this operation. It is therefore necessary to perform the same vertical treatment to correct this alteration and delete the remaining non-interesting areas.
  • the resulting image in Figure 28 shows that the area of interest is now properly covered.
  • Thresholds are also configurable. That's why a pre-treatment, such as a contrast enhancement, can be set up to simplify their settings.
  • Threshold setting can be done iteratively. As the treatment is fast, it is possible to imagine to test several different thresholds until finding a plate in the image. (At a fixed resolution, a plate almost always has the same surface if the observation point does not change as in the case of roadside radars).
  • the implemented architecture uses, for the openings / closures, morphological macro cells 181, 182 such as those introduced previously, and a calculation unit 185 which performs the thresholding and the intersection of the flows.
  • the start of the second phase implies that the treatment of the first phase is completely finished. This situation makes it possible to pool the resources of the architecture. Thus, it is possible to reuse the last online opening of the first phase to achieve the opening in column of the second phase by modifying the data path. This change is possible because all Morphological macro cell parameters (size of the structuring element, image size, treatment type, ...) are stored in registers. At the end of the first phase, the data path is modified and the registers are loaded with the new values (change of the size of the image because it is returned 90 ° or 270 °, and the size of the images. structuring elements).
  • Figure 29 shows the architecture of the previously described system. Note the presence of a multiplexer 188, to perform the modification of the data path, which is controlled by the system for managing the sending and receiving of the video stream.
  • the parameter registers are also controlled by the management system.
  • the multiplexer 188 and the registers are loaded with the new parameters of the column processing. The processing is restarted with this new configuration of the architecture, and the received image corresponds to the final image of the treatment.
  • Figure 30 shows an example of a functional view of a license plate detection chain.
  • the image to be processed can be sent by a network 201 such as Ethernet.
  • a processor 202 records the received image in memories 204.
  • Memory direct access units 205, 206 are configured by the processor 202 to send the original image and to receive the image processed by the hardware processing block 203. Once the processing is finished, the image is sent back by the Ethernet network 201 for observation of the result.
  • the memory of the processor 202 can not send all the clock cycles of the pixels to be processed because the memory bus is shared with other components of the processor.
  • the detection architecture of plate easily supports this problem because the treatment can be frozen at any time.
  • the operating frequency can be 50 MHz, and the processing of a 356x356 image can then be performed in 15 ms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)

Abstract

Le système de traitement d'image à macro cellule morphologique comprend : un dispositif d'acquisition d'image, un ensemble de mémoires, un bloc de calcul et un système de contrôle. Le bloc de calcul comprend : k Macro Cellules Morphologiques (50) comprenant chacune un ensemble de cellules morphologiques élémentaires (51, 52, 61, 62) organisées en branches (f, g) parallèles, chaque cellule (51, 52, 61, 62) effectuant une fonction élémentaire d'érosion, de dilatation ou d'identité basée sur l'utilisation d'éléments structurants linéaires, la fonctionnalité de chaque cellule morphologique et la taille des éléments structurants étant dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires étant recombinés en sortie par une unité arithmétique et logique (70). Au moins un système de parallélisation des données pour le traitement en parallèle de plusieurs lignes respectivement plusieurs colonnes permet de décomposer un mot en p flux de données parallèles et reliés aux p entrées de macro cellules morphologiques. Au moins un système de reconstruction de l'image à partir de z flux parallèles de sortie des k macro cellules morphologiques est relié à des sorties synchrones des macro cellules morphologiques, Les cellules morphologiques élémentaires (51, 52, 61, 62) ainsi que les macro cellules morphologiques (50) sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre de données dans le chaînage en pipeline.

Description

Système de traitement d'image à macro cellule morphologique
La présente invention a pour objet un système de traitement d'image à macro cellule morphologique.
La présente invention vise à utiliser les techniques non linéaires de traitement d'image basées notamment sur la théorie de la morphologie mathématique et notamment les opérations d'érosion et de dilatation pour traiter des éléments structurants linéaires de grandes tailles (pouvant aller par exemple de 3 à 256 pixels) à des cadences importantes.
L'invention concerne encore de façon plus particulière un système de détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles. Le principe de base des opérations d'érosion et de dilatation repose sur des opérations "min" et "max". Il consiste à comparer l'image à analyser par rapport à un ensemble de géométrie connue, appelé élément structurant, que l'on déplace de telle sorte que son origine passe par toutes les positions de l'image, pour mettre en évidence certaines caractéristiques de celle-ci.
Le centre de l'élément structurant (noté B) détermine la valeur où sera stocké le "min" ou le "max" en fonction d'un voisinage donné.
L'érosion d'une image f(x) par un élément structurant B est définie de la manière suivante : εB(f(x))=inf {f(x-y)), ye B} (1 )
Le terme f(x-y) représente la translation de l'élément structurant sur l'image. On attribue à f(x) la valeur minimale qu'elle prend dans le domaine de l'élément structurant B et ce, à chaque nouveau déplacement de B.
La dilatation d'une image est l'opération duale de l'érosion. Elle est définie de la manière suivante :
βB(f(x))=sup (f(x-y)), yeB} (2) On attribue à f(x) la valeur maximale qu'elle prend dans le domaine de B et ce, à chaque nouveau déplacement de B.
Les transformations composées sont construites en composant et chaînant des transformations de base. Avec des opérations comme la soustraction, le supremum ou l'infimum, on peut réaliser une grande variété de traitements.
Le gradient résulte d'une soustraction entre l'image originale et une image érodée ou dilatée. Une ouverture est réalisée par la dilatation de l'image d'origine suivie de l'érosion appliquée au résultat. Une fermeture est définie comme une transformation duale.
Une transformation plus avancée permet de construire des filtres alternés séquentiels. Le principe est d'enchaîner alternativement des ouvertures et des fermetures avec des tailles de B croissantes.
Une transformation composée dite " chapeau haut de forme" est définie de deux façons : le chapeau haut de forme par fermeture ou noir (BTH) ("black top hat" ou "close top hat"), et le chapeau haut de forme par ouverture ou blanc (WHT) ("white top hat" ou "open top hat").
Le WHT est égal à la différence de l'image originale et de opération d'ouverture. Il permet de conserver les objets clairs de l'image dépassant un certain seuil. Le BTH est égal à la différence entre la fermeture et l'image originale. Il permet de conserver les objets foncés de l'image en dessous d'un certain seuil.
L'invention vise en particulier à permettre de réaliser de façon optimale un traitement de données dans un flux d'images tel qu'un flux de signaux vidéo, et à pouvoir facilement adapter le traitement d'image effectué.
L'utilisation des éléments structurants linéaires permet de mettre en place le parallélisme au niveau des lignes/colonnes d'une image car le traitement de chaque ligne/colonne est indépendant des autres.
Avantageusement, la réalisation est basée sur un procédé indépendant de la taille de l'élément structurant avec un temps d'exécution constant.
L'invention concerne ainsi un système de traitement d'image à macro cellule morphologique, caractérisé en ce qu'il comprend : - un dispositif d'acquisition d'image pour créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits, m, n et b étant des entiers,
- un ensemble de mémoires, - un bloc de calcul dynamiquement reconfigurable, pour réaliser des traitements d'image, les unités de calcul et les chemins de données pouvant être reconfigurés pendant l'exécution entre chaque traitement unitaire,
- un système de contrôle assurant le transfert de données entre le dispositif d'acquisition d'images et l'ensemble de mémoire, ainsi que la gestion du contrôle de p flux parallèles de données vers le bloc de calcul et l'envoi des données avec un adressage spécifique en fonction des besoins de celui-ci, avec p entier, en ce que le bloc de calcul comprend : - un nombre entier k, k étant supérieur à 1 , de Macro Cellules
Morphologiques comprenant chacune un ensemble de cellules morphologiques élémentaires organisées en b branches parallèles avec un nombre entier e d'étages, chaque cellule effectuant une fonction élémentaire d'érosion, de dilatation ou d'identité basée sur l'utilisation d'éléments structurants linéaires, la fonctionnalité de chaque cellule morphologique et la taille des éléments structurants étant dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires étant recombinés en sortie par une unité arithmétique et logique, - au moins un système de parallélisation des données pour le traitement en parallèle de plusieurs lignes respectivement plusieurs colonnes, comprenant deux modules tampons et un démultiplexeur chaîné en pipeline sur un ensemble de s étages synchrones pour décomposer un mot en p flux de données parallèles et reliés aux p entrées de macro cellules morphologiques,
- au moins un système de reconstruction de l'image à partir d'un nombre entier z de flux parallèles de sortie des k macro cellules morphologiques, comprenant deux modules tampons et un multiplexeur chaîné en pipeline sur un ensemble de s étages et relié à des sorties synchrones des macro cellules morphologiques, et en ce que les cellules morphologiques élémentaires ainsi que les macro cellules morphologiques sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre de données dans le chaînage en pipeline.
Avantageusement, le système comprend un nombre entier f de systèmes de parallélisation des données et de systèmes de reconstruction d'image pour permettre un traitement sur f x p flux parallèles de données.
Selon une caractéristique préférentielle, les macro cellules morphologiques sont organisées en pipeline sur plusieurs branches à plusieurs étages, les sorties étant combinées par une unité arithmétique et logique. Selon un mode de réalisation particulier, chaque cellule morphologique comprend des premières et deuxièmes unités de traitement pour réaliser un traitement selon des premières et deuxièmes passes dans des sens de traitement différents, et un module tampon est interposé entre les premières et deuxièmes unités de traitement. Dans ce cas, de préférence, les premières et deuxièmes unités de traitement comprennent chacune une unité de propagation, une unité de gestion des effets de bord et des traitements spécifiques et une ligne de retard.
Une macro cellule morphologique comprend au moins deux branches avec deux cellules morphologiques chaînées assurant chacune des fonctions d'érosion, de dilatation et/ou d'identité, ainsi qu'une unité arithmétique et logique de manière à définir par reconfiguration des opérateurs composés de type fermeture ou ouverture, chapeau haut de forme par ouverture, chapeau haut de forme par fermeture et/ou gradient.
Ainsi avantageusement, les fonctions d'érosion et de dilatation sont complétées par la fonction d'identité ainsi qu'une unité logique/arithmétique pour créer des opérateurs composés permettant de réaliser des procédés de filtrage, d'amélioration des images, d'extraction de contours et de détection des objets. L'invention concerne en particulier l'utilisation d'un tel système de traitement d'image à macro cellule morphologique comprenant au moins deux macro cellules morphologiques chaînées entre elles et combinées avec des unités arithmétiques/logiques pour réaliser des traitements d'image tels que le gradient, les filtres non linéaires, les filtres alternés séquentiels, la modification de contraste.
L'invention concerne encore de façon plus particulière un système de détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles, caractérisé en ce qu'il comprend un système reconfigurable de traitement d'image à macro cellule morphologique du type défini ci- dessus et en ce qu'il comprend un premier module de traitement de l'image et un deuxième module de traitement de l'image.
Selon un mode de réalisation particulier, le premier module de traitement de l'image comprend un premier module d'ouverture/fermeture, un deuxième module d'ouverture/fermeture, et une unité arithmétique/logique pour réaliser des comparaisons par rapport à des seuils , un module d'intersection et un module d'ouverture de ligne. Le deuxième module de traitement de l'image comprend un module d'ouverture/fermeture.
Le système selon l'invention est avantageusement appliqué à la détection de plaques d'immatriculation.
D'autres caractéristiques et avantages de l'invention ressortiront de la description suivante de modes particuliers de réalisation, en référence aux dessins annexés, sur lesquels :
- la Figure 1 est un schéma bloc d'un système de traitement d'image selon l'invention,
- la Figure 2 est un schéma bloc montrant la structure d'une cellule morphologique, qui assure un traitement en deux passes,
- la Figure 3 est un schéma bloc montrant la structure des éléments constituant la première passe du traitement de la cellule morphologique de la Figure 2,
- la Figure 4 montre la structure électronique d'une cellule morphologique telle que celle de la Figure 2, - la Figure 5 montre l'architecture générale d'une macro cellule morphologique (MCM),
- la Figure 6 montre la structure électronique d'une macro cellule morphologique assurant la fonction d'un opérateur de dilatation, d'érosion, d'ouverture ou de fermeture,
- la Figure 7 montre l'architecture d'une macro cellule morphologique assurant la fonction d'un opérateur composé de gradient, d'ouverture, de fermeture, de chapeau haut de forme par fermeture ou par ouverture (Tophat), - la Figure 8 montre la structure électronique d'une macro cellule morphologique assurant la fonction d'un opérateur du type chapeau haut de forme par ouverture,
- la Figure 9 est un schéma montrant le principe d'un adressage en ligne des pixels en parallèle, - la Figure 10 est un schéma montrant le principe d'une transformation ligne/colonne des vecteurs de pixels,
- la Figure 11 est un schéma montrant l'architecture du système de conversion ligne/colonne,
- la Figure 12 est un schéma montrant le principe d'une transformation colonne/ligne des vecteurs de pixels,
- la Figure 13 est un schéma montrant l'architecture du système de conversion colonne/ligne des pixels,
- la Figure 14 montre un exemple de multiplexeur à trois étages utilisable dans l'architecture de la Figure 13, - la Figure 15 montre un exemple d'image source,
- la Figure 16 montre un exemple d'image en sortie d'un étage tampon de parallélisation ligne/colonne,
- la Figure 17 montre un exemple d'image calculée,
- la Figure 18 montre un exemple d'image calculée réorganisée après une parallélisation colonne/ ligne,
- la Figure 19 montre le résultat d'un traitement de dilatation de taille 3 selon un traitement linéaire en temps constant en deux passes,
- la Figure 20 est un schéma-bloc montrant les différentes étapes d'un procédé de détection de plaques d'immatriculation utilisant l'architecture du système de traitement d'image selon l'invention et un exemple d'image pouvant être soumise à un traitement de détection de plaque d'immatriculation,
- la Figure 21 est un exemple d'image obtenue après traitement de l'image de la Figure 20 selon le procédé conforme à l'invention,
- la Figure 22 est une vue agrandie de la zone détectée à la Figure 21 ,
- la Figure 23 est un autre exemple d'image soumise à un traitement de détection de plaque d'immatriculation, - la Figure 24 est une image traitée correspondant à l'image de la Figure 23 soumise à une ouverture horizontale et à un seuillage,
- la Figure 25 est une image traitée correspondant à l'image de la Figure 23 soumise à une fermeture horizontale et à un seuillage,
- la Figure 26 est une image traitée correspondant à l'intersection des images traitées des Figures 24 et 25,
- la Figure 27 est une image traitée correspondant à l'image de la Figure 26 après érosion et dilatation horizontales,
- la Figure 28 est une image traitée correspondant à l'image de la Figure 27 après érosion et dilatation verticales, la zone blanche indiquant la position de la plaque d'immatriculation,
- la Figure 29 est un schéma-bloc montrant l'architecture d'un système de localisation de plaque d'immatriculation, et
- la Figure 30 est un schéma-bloc montrant un exemple de système de traitement d'image appliqué à la détection de plaque d'immatriculation.
La Figure 1 montre d'une façon synthétique les principaux composants d'un système de traitement d'image selon l'invention, avec un capteur 1 ou module d'acquisition d'image, un système de contrôle 2 placé dans une zone statique, un bloc de calcul 3 placé dans une zone dynamiquement reconfigurable, des mémoires 4, 5 et un système de communication 6.
Le dispositif d'acquisition d'images 1 permet de créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits (m, n et b étant des nombres entiers). Le système de contrôle 2 est chargé du transfert de données du système d'acquisition d'images 1 vers les mémoires 4, 5 ou directement vers le bloc de calcul. En même temps, le système de contrôle 2 gère le contrôle du flux vers le bloc de calcul 3 et envoie les données avec un adressage spécifique en fonction des besoins de celui- ci. Le bloc de calcul 3, qui est alimenté par un flux de données provenant du système de contrôle, peut être dépourvu de fonction d'adressage. En revanche, il est essentiel que le bloc de calcul 3 soit équipé d'un mécanisme de gel de l'horloge associée, afin que le système de contrôle puisse interrompre le flux de données à tout instant et permette ensuite une reprise du processus de traitement sans perte de données.
L'architecture de la Figure 2 diffère ainsi de celle d'un microprocesseur et se rapproche d'une structure systolique dans laquelle les données issues de la mémoire entrent dans les unités de calcul pour y être traitées avant d'être renvoyées en mémoire.
Chacune des unités de calcul peut être reconfigurée entre chaque traitement (type de traitement, taille de l'élément structurant, taille de l'image, fonction des unités arithmétiques/logiques). De plus, il est possible de créer plusieurs chemins de données afin de réaliser des traitements différents sur une image.
L'utilisation d'éléments structurants linéaires permet d'effectuer le traitement sur plusieurs lignes à la fois grâce à des systèmes de parallélisation qui alimentent les opérateurs. On décrira maintenant en référence aux Figures 2 à 4 une cellule morphologique qui constitue un composant de base du bloc de calcul 3 et permet de réaliser une érosion ou une dilatation linéaire avec un élément structurant centré et une taille programmable d'élément et une taille d'image paramétrable. La Figure 2 montre la structure interne d'une cellule morphologique constituant un opérateur.
La cellule morphologique de la Figure 2 comprend des premières et deuxièmes unités 10, 20 qui réalisent deux passes du traitement. Chacune des première et deuxième unités 10, 20 comprend trois composants principaux, à savoir : - une unité de propagation 11 , respectivement 21 ,
- une unité de gestion des effets de bords et des traitements spécifiques 12, respectivement 22,
- une ligne à retard 13, respectivement 23. Un circuit comparateur de détection de maximum 14, 24 est en outre inclus dans les unités 10, 20.
Un module tampon 30 est intercalé entre les unités 10 et 20. Le traitement lors d'une passe dans la première unité 10 ou la deuxième unité 20 se déroule en trois temps. Dans un premier temps, la sortie de l'unité de traitement spécifique 12, 22 est calculée pour que l'unité de propagation 11 , 21 puisse prendre en compte les effets de bords. Dans un second temps, l'unité de propagation 11 , 21 propage les pixels en fonction de leurs valeurs, de la taille de l'élément structurant et de la sortie de l'unité de traitement spécifique 12, 22. Dans un dernier temps, le résultat de la propagation est comparé dans les circuits 14, 24 avec les pixels sources enregistrés dans la ligne à retard 13, 23 pour conserver le maximum.
La Figure 3 montre de façon plus détaillée un exemple de réalisation 100 de la première unité 10 effectuant une première passe. L'unité 100 représentée sur la Figure 3 comprend une entrée de pixel qui est reliée à un circuit d'entrée 110 de l'unité de gestion des effets de bord et des traitements spécifiques, à un registre 101 lui-même relié à un circuit d'entrée 113 de l'unité de propagation, et à une ligne à retard 103. Un registre 105 stocke une valeur Nbse correspondant à la moitié de la taille de l'élément structurant.
Un registre 106 stocke une valeur NbColonnes correspondant au nombre de colonnes à traiter dans une ligne de calcul.
La sortie du registre 106 est reliée à l'entrée d'un compteur 107 comportant une sortie de fin de ligne reliée d'une part au circuit 110 et d'autre part, par l'intermédiaire d'un registre retardateur 109 et d'une porte logique 112, au circuit 113.
La sortie du registre 105 est reliée à l'entrée d'un compteur 108 dont une sortie est reliée à l'entrée d'une porte logique 116 dont une autre entrée est reliée à la sortie d'un circuit comparateur 115. La sortie de la porte logique 116 est par ailleurs reliée au circuit 113. L'unité de gestion des effets de bord et des traitements spécifiques comprend en sortie un registre 102 qui stocke une valeur T correspondant au résultat donné pour le traitement spécifique des effets de bord. L'unité de propagation comprend un registre 114 qui stocke une valeur G qui est ensuite appliquée sur une entrée du comparateur 115 et sur une entrée du comparateur 104 déterminant un maximum.
La ligne à retard 103 est reliée en sortie à un registre 117 qui est lui-même relié à une autre entrée du comparateur 104, dont la sortie est reliée par un registre 118 à la sortie de pixel.
Les sorties des registres 101 et 102 sont reliées aux entrées du comparateur 111 dont la sortie est reliée au circuit 110.
Une borne de remise à zéro du compteur 108 est reliée à une entrée de la porte logique 112 et à la sortie de la porte logique 116. L'unité 100 comprend en outre un générateur d'adresse 119 du circuit tampon.
Le traitement d'un pixel dure trois cycles d'horloges, mais cette structure pipeline est capable de traiter un pixel par cycle.
On calcule au premier cycle la valeur de T. Cette valeur est ensuite dirigée vers l'unité de propagation. Le calcul de G est fait au second cycle. Pour garantir la cadence d'un pixel par cycle, il faut prendre garde de bien travailler avec le pixel d'entrée qui correspond à la valeur de T générée au premier cycle. C'est la raison pour laquelle on alimente G avec une valeur de pixel d'entrée retardée d'un cycle (présence d'un registre 101 ). Au troisième cycle, on calcule le maximum entre la sortie G du registre 114 et la sortie du registre 117 associé à la ligne à retard 103. La ligne à retard 103 doit avoir une taille de NbSe+2 car il faut prendre en compte les deux cycles précédents pour le calcul de G. L'unité qui assure la seconde passe est presque identique à l'unité 100 qui vient d'être décrite. La seule différence réside dans le calcul de l'unité spécifique qui est réalisé sur tous les pixels d'une ligne et dans le générateur d'adresse 119 qui génère une adresse de lecture du tampon au lieu d'une adresse d'écriture. Pour disposer d'une structure de donnée permettant d'avoir un retard configurable et de grande taille, une mémoire double port peut être employée.
L'adresse d'écriture du pixel d'entrée est à zéro lors de la phase d'initialisation de l'opérateur, et l'adresse de lecture est à l'adresse indiquée par la valeur du registre Nbse. A chaque cycle d'horloge, les adresses sont incrémentées pour toujours avoir une différence entre les adresses de Nbse+1. Pour satisfaire les contraintes du fonctionnement pipeline, qui impose un retard de Nbse+2, un registre supplémentaire est présent en sortie de la mémoire. Ce registre peut être inclus à celle-ci par le synthétiseur pour garantir une fréquence de fonctionnement plus importante.
L'objectif est de créer un opérateur en flot de données entièrement pipeline. Il est nécessaire que les passes du traitement s'exécutent en même temps.
Les deux unités 10, 20 ne peuvent pas traiter à un instant donné la même ligne du fait que le traitement d'une ligne s'effectue dans les deux sens. En effet, la première passe traite une ligne de gauche à droite et la seconde passe réutilise le résultat de la première passe mais avec un balayage de droite à gauche. Pour ne pas stopper le pipeline durant le traitement d'une ligne, il est alors nécessaire d'utiliser un tampon 30 composé de deux mémoires qui sont interverties à chaque arrivée d'une nouvelle ligne dans l'opérateur (mode "ping pong").
Ainsi, à un instant donné, lorsque l'unité 10 de la première passe traite la ligne "n", l'unité 20 de la deuxième passe traite la ligne "n-
1". Les adresses d'écritures dans le tampon 30 (pour la première passe) et de lectures du tampon 30 (pour la seconde passe) sont gérées par les générateurs d'adresses de chacune des unités 10, 20.
La Figure 4 montre l'architecture complète d'un opérateur de base d'une cellule morphologique. La description des signaux employés, dans le cadre de l'exemple de réalisation, est la suivante : - Les entrées :
- "Nbse" : taille du demi élément structurant
- "Start" : lorsqu'elle est à 1, indique que le traitement doit commencer,
- "Pixelin" : pixels à traiter - "Dilate/erode" : indique si l'on doit effectuer une dilatation ou une érosion.
Une entrée "enable", non représentée, peut en outre permettre de geler le traitement lorsque ce signal est à zéro. - Les sorties :
- "Pixready" : indique, lorsqu'il passe à 1 , que la sortie pixelout est valide
- "Lineready" : indique que la première ligne à été traitée
- "newline" : passe à 1 à chaque nouvelle ligne traitée - "pixelout" : pixel traité.
Sur la Figure 4, on a identifié les circuits d'entrée de pixel et de sortie de pixel par les références 15 et 25 respectivement, et les lignes à retard des unités 10 et 20 par les références 13 et 23 respectivement. Selon l'invention, le bloc de calcul met en oeuvre des macro cellules morphologiques (MCM) qui comprennent elles-mêmes plusieurs cellules morphologiques élémentaires (CM) telles que celle qui vient d'être décrite et peuvent ainsi réaliser des opérateurs composés, tels qu'un gradient morphologique, une ouverture, une fermeture, un chapeau haut de forme par fermeture ou un chapeau haut de forme par ouverture, à partir de cellules morphologiques élémentaires assurant une érosion, une dilatation ou une identité.
La Figure 5 illustre de façon schématique l'architecture d'une macro cellule morphologique 50 qui peut comprendre une première branche f avec plusieurs étages de cellules morphologiques 51, 52 et une deuxième branche g en parallèle avec également plusieurs étages de cellules morphologiques 61 , 62.
Les cellules morphologiques 51 , 52 ou 61 , 62 sont conçues pour être chaînées et sont associées sous la forme pipeline. On peut noter que les cellules morphologiques 51 , 52, 61 , 62 peuvent elles-mêmes être remplacées par des macro cellules morphologiques pour réaliser de nouvelles macro cellules morphologiques constituant des opérateurs plus complexes que ceux déjà évoqués. Dans tous les cas, les opérateurs plus complexes sont construits en mettant "bout à bout" des opérateurs de base, ce qui constitue une structure relativement simple à réaliser. Dans l'architecture de la Figure 5, les cellules morphologiques 51 , 52, 61 , 62 assurent les fonctions d'érosion, de dilatation ou d'identité basées sur l'utilisation d'éléments structurants linéaires.
On notera que toutes les cellules morphologiques ou les macro cellules morphologiques d'un même étage (par exemple les cellules 51 et
61 ou les cellules 52 et 62) doivent avoir la même latence pour que le fonctionnement en pipeline permette la combinaison de leurs résultats, par exemple dans leur bloc 70.
La fonctionnalité de chaque cellule morphologique 51 , 52, 61 , 62 et la taille des éléments structurants sont dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires 51 , 52, 61 , 62 des différentes branches f, g sont recombinés en sortie par une unité arithmétique et logique 70.
Les cellules morphologiques élémentaires 51, 52, 61, 62 ainsi que les macro cellules morphologiques 50 sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre des données dans le chaînage en pipeline. La Figure 6 montre la structure électronique d'une macro cellule morphologique 150 réalisant un opérateur d'ouverture.
Dans ce cas, les cellules morphologiques 151 , 161 d'un premier étage réalisent une érosion tandis que les cellules morphologiques 152, 162 d'un deuxième étage réalisent une dilatation. On notera que la structure électronique d'une macro cellule morphologique réalisant un opérateur de fermeture serait analogue, mais dans ce cas les cellules morphologiques 151 , 161 d'un premier étage réalisent une dilatation tandis que les cellules morphologiques 152, 162 d'un deuxième étage réalisent une érosion. La Figure 7 montre l'architecture générale d'une macro cellule morphologique 250 réalisant un opérateur dit chapeau haut de forme ("top hat").
Dans ce cas, une première branche f comprend des cellules morphologiques 251 , 252 qui, selon qu'elles assurent une érosion puis une dilatation ou une dilatation suivie d'une érosion, effectuent une ouverture ou une fermeture. Une seconde branche comprend des cellules morphologiques 253, 254 assurant une identité.
Un soustracteur 270 est disposé en sortie de la macro cellule morphologique 250. Ainsi, la macro cellule morphologique 250 prend en flux d'entrée une image, en fait une ouverture ou une fermeture (cellules 251 et 252) et soustrait la sortie du flux de la cellule 252 avec la sortie du flux des cellules 253 et 254 représentant l'identité.
On réalise ainsi soit la fonction de chapeau haut de forme par ouverture soit la fonction chapeau haut de forme par fermeture. La séquence de traitement, c'est-à-dire l'enchaînement des cellules 251 et
252 doit être en rapport avec le sens de la soustraction (si la cellule 251 réalise une érosion et la cellule 252 une dilatation, ce qui représente une ouverture, il faut soustraire la sortie de la cellule 252 à la sortie de la cellule 254 représentant l'identité).
La Figure 8 montre la structure électronique de la macro cellule morphologique 250 de l'opérateur chapeau haut de forme.
Un composant "Mempix" joue le rôle des cellules 253, 254 et constitue l'opérateur identité auquel on spécifie le nombre d'étages à couvrir (deux étages dans le cas considéré). Le composant "Mempix" peut ainsi être utilisé très facilement dans une macro cellule morphologique de longueur variable.
On décrira maintenant de façon plus particulière le système de parallélisation des données pour le traitement en parallèle de plusieurs lignes, respectivement plusieurs colonnes.
L'utilisation d'éléments structurants linéaires rend la parallélisation des calculs relativement simple. En effet, chaque ligne de l'image est indépendante des autres, ce qui permet de traiter plusieurs lignes en même temps. Cette parallélisation ne peut être effectuée que si le flux d'image source est composé de plusieurs pixels à chaque coup d'horloge.
Généralement, le vecteur de pixels est un vecteur ligne. Il faut donc effectuer une transformation sur les pixels pour disposer d'un vecteur colonne dans le cas d'un traitement en ligne. Si le vecteur pixel source est un vecteur colonne, il faut le transformer en vecteur ligne pour réaliser un traitement colonne. Dans le cas d'un traitement en colonne avec des vecteurs lignes de pixels, on considère que le système qui gère l'envoi du flux vidéo est capable de gérer un adressage en ligne plutôt qu'en colonne, comme le montre la Figure 9. (Dans le cas d'un traitement en ligne avec des vecteurs pixels en colonne, il faut conserver l'adressage en colonne). Sur cette Figure 9, les pixels Pi, P2 représentent les vecteurs de pixels déjà envoyés, les pixels P3, le vecteur de pixels en cours d'envoi et les pixels restants les vecteurs de pixels à envoyer. La valeur de l'adresse dans un tel type d'adressage s'incrémente d'une taille de ligne à chaque coup d'horloge. Ce type de traitement permet de se dispenser de l'utilisation d'une transformation ligne/colonne et colonne/ ligne.
Pour respecter la structure systolique de l'architecture selon l'invention, il faut que les transformations ligne/colonne et colonne/ ligne soient faites dans le flux. La Figure 9 montre un exemple avec 3 lignes et 20 colonnes, mais ces nombres peuvent naturellement être différents.
Dans les Figures 10 à 18, on considère un vecteur ligne de pixels de taille 4. Les calculs sont donc réalisés sur 4 lignes à la fois, dans le cas d'un traitement en ligne. La Figure 10 montre le principe utilisé. Dans un premier temps, le tampon 31 est rempli avec les pixels à traiter. Le remplissage se fait successivement dans chaque mémoire, c'est-à-dire que lorsque la première est pleine, on passe à la suivante. Dès que les quatre mémoires sont remplies, on continue cette opération dans le tampon 32 et en même temps on récupère un pixel par ligne du tampon 31 à chaque coup d'horloge. En effet, à chaque instant (une fois le système initialisé), on écrit quatre pixels en ligne et on lit quatre pixels en colonne, qui sont envoyés vers quatre macro cellules morphologiques MCM1, MCM2, MCM3, MCM4. La Figure 11 montre l'architecture d'un système de conversion ligne/colonne des pixels, avec comme exemple un vecteur ligne source de quatre pixels de 32 bits.
Un circuit 303 constitue un générateur d'adresses et de sélection des mémoires associé aux tampons 301 et 302 et au multiplexeur 304. L'architecture mise en place dans l'exemple de la Figure 11 est composée de huit mémoires de la taille d'une ligne qui constituent les tampons 301 et 302. Chaque mémoire dispose de deux ports : un port d'entrée 32 bits et un port de sortie 8 bits. Pour remplir séquentiellement les huit mémoires, les entrées de sélection "chipselect" sont commandées indépendamment. La lecture des pixels se fait par paquet de quatre mémoires pour ainsi récupérer le vecteur colonne de pixels.
Les adresses sont incrémentées en permanence et leurs valeurs permettent de savoir quand sélectionner une mémoire et comment le multiplexeur 304 doit être configuré.
Les sorties du multiplexeur 304 sont donc dirigées directement vers quatre macro cellules morphologiques identiques MCM1 , MCM2, MCM3, MCM4 qui réalisent le traitement sur quatre lignes à la fois. Mais il faut mettre en place une structure analogue pour reconstruire les données (toujours dans le flux) comme elles ont été octroyées à l'origine.
La transformation colonne/ligne des vecteurs de pixels est illustrée sur la Figure 12 avec des tampons 131 , 132. La transformation colonne/ligne est analogue à la transformation ligne/colonne, sauf que l'on reçoit des pixels de lignes différentes et que l'on renvoie, au système qui a envoyé l'image originale, des pixels en ligne. La Figure 12 montre le principe général de cette transformation. On considère ici un vecteur colonne de 4 pixels en entrée et un vecteur ligne de 4 pixels en sortie.
Comme dans le cas de la transformation précédente, à tout instant on dispose de 4 pixels qui entrent dans le tampon 131 ou 132 et de 4 pixels qui sortent du tampon 132 ou 131.
La Figure 13 montre l'architecture mise en place. Les 4 pixels issus des macro cellules morphologiques MCM1 , MCM2, MCM3, MCM4 sont écrits dans chaque ligne du tampon 311 ou 312. Les 4 pixels sont lus séquentiellement dans chacune des mémoires du tampon 312 ou 311. Les entrées de sélection "chip sélect" gérant l'écriture des pixels traités commandent les mémoires par paquets de quatre (puisque l'on a vu précédemment qu'il faut écrire les pixels dans chaque ligne). Les adresses sont incrémentées en permanence et la sélection de la mémoire pour les pixels sortants est réalisée par un multiplexeur 314 8*32 bits vers 32 bits.
Le circuit 313 est un générateur d'adresses et de sélection des mémoires. On notera qu'un multiplexeur tel que le multiplexeur 314 peut être réalisé sous une forme pipeline sur trois étages, comme représenté sur la Figure 14, avec à chaque étage des registres 411 à 417 associés aux multiplexeurs élémentaires 401 à 407 pour retarder les commandes à chaque étage et garantir un bon fonctionnement du système. Sur la Figure 14, le premier étage comprend ainsi les multiplexeurs 401 à 404 auxquels sont associés en sortie les registres 411 à 414, le deuxième étage comprend les multiplexeurs 405, 406 auxquels sont associés en sortie les registres 415, 416 et le troisième étage comprend le multiplexeur 407 auquel est associé en sortie le registre 417.
Un registre 421 assure également un retard de commande pour le deuxième étage par rapport au premier étage et des registres 422, 423 assurent un retard double pour le troisième étage par rapport au premier étage. Les Figures 15 à 18 illustrent sur un exemple particulier le fonctionnement du système de parallélisation mis en œuvre dans le cadre de la présente invention.
La Figure 15 montre une image source 41 avec m lignes et n colonnes (8 lignes et 8 colonnes dans l'exemple représenté), et un vecteur pixel de b bits (4 bits AO, BO, CO, DO) dans l'exemple représenté).
La Figure 16 montre l'image 42 en sortie du tampon de parallélisation après une parallélisation ligne/colonne.
Quatre bits AO, A1 , A2, A3 sont envoyés en parallèle vers quatre macro cellules morphologiques MCMO, MCM1 , MCM2; MCM3.
La Figure 17 montre une image calculée 43 avec en entrée quatre bits A1O, A1I , A'2, A'3 venant en parallèle des quatre macro cellules morphologiques MCMO, MCM1 , MCM2, MCM3.
La Figure 18 représente l'image calculée 44 réorganisée après une parallélisation colonne/ligne à partir de l'image calculée de la Figure 17. Ainsi, les lignes de l'image sont traitées de façon indépendante. A chaque coup d'horloge, on dispose de 4 pixels de l'image source 41 (Figure 15). Le système de parallélisation permet d'exploiter ce parallélisme pour traiter plusieurs lignes à la fois. Les pixels sont envoyés sous forme de vecteurs lignes (exemple : (AO, A1 , A2, A3}). Ces quatre pixels pourront ensuite être traités en flot de données par les quatre macro cellules morphologiques présentes sur le circuit (Figure
16). En sortie des macro cellules morphologiques, la transformation inverse est effectuée afin de réorganiser les pixels comme dans l'image source (Figures 17 et 18).
Pour mieux expliciter le traitement à temps constant optimisé effectué dans une cellule morphologique de base, telle que la cellule morphologique 50 de la Figure 2 qui comprend un tampon 30 et deux unités fonctionnelles 10, 20 pour effectuer un traitement en deux passes sur les pixels d'une image, on a présenté sur la Figure 19 le résultat après une première passe de calcul puis après une deuxième passe de calcul dans un exemple de dilatation par un élément structurant linéaire de taille 3.
Dans le cadre d'un traitement linéaire en temps constant par rapport à la taille de la fenêtre utilisée, exécuté en deux passes presque identiques, on effectue un balayage dans le sens direct (de gauche à droite) pour la première passe et un balayage dans le sens indirect pour la seconde passe. Chacune des passes traite la propagation des pixels et les effets de bords en fonction de la taille de l'élément structurant et de la taille de la ligne. La différence entre les passes se situe dans le traitement des effets de bords. La première passe traite les effets de bords à la fin d'une ligne tandis que la seconde passe propage les effets de bords en permanence dans la ligne.
Le calcul est fait de la façon suivante : . Calcul de la valeur de la propagation g(x) des pixels d'entrée sur n pixels (où N=2n+1 représente la taille de l'élément structurant), suivant la condition :
S(χ) avec k l'indice de propagation.
Le traitement des effets de bords permet de mémoriser les pixels à prendre en compte dans les prochaines propagations d'une même ligne.
En effet, durant une propagation, il se peut que des valeurs soient "oubliées". Il faut alors les prendre en compte pour les réinjecter par la suite.
Le calcul de la valeur du pixel de sortie d'une passe est : s(x)=max(g(x),f(x-n)).
Dans l'exemple de la Figure 19, on a N=3, donc le décalage et la taille des propagations sont effectués avec une taille de n=1 pixel (par rapport à la formule citée ci-dessus).
On remarque également qu'il est nécessaire d'effectuer la deuxième passe dans le sens opposé à celui de la première (pour pouvoir propager les pixels dans l'autre direction) afin de disposer d'un traitement centré.
Les deux passes n'étant pas tout à fait équivalentes dans l'unité de traitement spécifique, il n'est pas possible de construire des traitements avec des éléments structurants linéaires non centrés en utilisant une taille de n différente entre les deux passes.
La complexité en terme de nombre de min/max est pour une image composée de K lignes et de L colonnes :
2 . K . L On remarque que cette complexité est indépendante de la taille de l'élément structurant.
Pour réaliser un traitement avec une fenêtre rectangulaire, il est nécessaire de réaliser un deuxième traitement mais, cette fois-ci, sur les colonnes de l'image. Un élément structurant carré peut être décomposé en deux éléments structurants linéaires perpendiculaires.
À titre d'exemple, avec un système selon l'invention, dans le cas d'un opérateur de chapeau haut de forme parallélisé, on peut traiter plus de 2500 images par seconde. Ce temps de traitement est indépendant de la taille de l'élément structurant, ce qui rend le système complètement prédictif. Le système de traitement d'image selon l'invention peut être appliqué à de la vidéosurveillance et en particulier à la détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles, tels que par exemple des plaques d'immatriculation. Le système de traitement d'image selon l'invention, appliqué à la détection d'un texte à une résolution donnée, met en œuvre uniquement un traitement avec des éléments structurants linéaires.
Le signal engendré par la présence des motifs répétitifs
(lettres, chiffres, symboles) conduit à observer une certaine périodicité de celui-ci. La recherche et l'identification de cette périodicité permettent de détecter la position d'une plaque d'immatriculation contenant ces symboles dans une image plus large.
La Figure 21 montre à titre d'exemple, sur la gauche une image à traiter I, qui est une vue de l'avant d'un véhicule automobile, et sur la droite une image J qui est le résultat du traitement et où seule apparaît la plaque d'immatriculation J de l'image originale I.
La Figure 20 montre la structure générale du système de traitement d'image selon l'invention appliqué à la détection de plaques d'immatriculation. Le signal d'entrée est appliqué à deux branches de traitement en parallèle comprenant l'une un module 81 d'ouverture de ligne suivi d'un module de seuillage 83 par rapport à une valeur a et l'autre un module 82 de fermeture de ligne suivi d'un module de seuillage 84 par rapport à une valeur b. Les sorties des modules de seuillage 83, 84 sont appliquées à un module d'intersection 85 suivi d'un module 86 d'ouverture de ligne, lui-même suivi d'un module 87 d'ouverture de colonne.
Les différents modules morphologiques sont paramétrables afin de pouvoir traiter toutes les tailles d'image. En effet, le choix de la taille des éléments structurants est fonction de la résolution de limage. Plus l'image est grande et plus il y aura de pixels pour représenter une plaque d'immatriculation.
La Figure 22 montre de façon agrandie l'exemple de plaque d'immatriculation de la Figure 21. L'alternance des pixels noirs et des pixels blancs va permettre de repérer la plaque J dans l'image I. Pour la suite, on définit la pseudo-période To, Tf comme étant la distance des motifs répétitifs à une résolution donnée.
Si l'on part d'un exemple d'image originale telle que celle de la Figure 23, dans un premier temps il faut effectuer une ouverture avec un élément structurant (SE) linéaire de la taille d'une pseudo- période "To" pour éliminer les zones blanches de l'image (Figure 24). L'ouverture va avoir pour effet de propager les valeurs foncées de l'image. Les zones blanches seront donc en partie supprimées de la plaque. On ne distinguera donc plus les caractères. Il faut ensuite effectuer la même opération avec une taille "Tf" mais en réalisant une fermeture sur l'image originale (Figure 25). L'effet engendré par cette opération va cette fois propager les valeurs claires de l'image.
Dans l'exemple représenté ici, les tailles des éléments structurants SE, déterminées par la longueur des pseudo- périodes To et Tf, sont environ égales à 15, mais pour ne pas être gêné par les caractères de faibles hauteurs, une taille 30 est utilisée, pour cet exemple l'image originale étant de taille VGA (640x480 pixels).
Dans un second temps, chaque flux est binarisé. Dans le cas du flux ayant subi l'ouverture, on met à un les pixels inférieurs à la valeur a des pixels des caractères. Dans le cas de la fermeture, on met à un les pixels qui ont une valeur supérieure à la valeur b des pixels de la zone autour des caractères. On fait ensuite le calcul de l'intersection de ces deux flux et on obtient l'image de la Figure 26.
On remarque la présence sur l'image de la Figure 26 de petites zones blanches sans intérêt. Elles peuvent être supprimées en effectuant une ouverture en ligne, pour les zones de faible longueur, et en colonne, pour les zones de faible hauteur. Ces ouvertures peuvent être réalisées en utilisant une taille d'élément structurant plus grande pour la dilatation que pour l'érosion. En effet, c'est l'érosion qui va retirer l'information utile de l'image et la dilatation qui va restaurer la taille normale de la zone d'intérêt. En utilisant une taille de dilatation plus grande, on s'assure que la zone d'intérêt soit correctement couverte.
L'image de la Figure 27 a été obtenue en effectuant (dans le sens horizontal) une érosion de taille 60 suivie d'une dilatation de taille 80. On remarque que la zone d'intérêt peut être altérée par cette opération. Il est donc nécessaire d'effectuer le même traitement vertical pour corriger cette altération et supprimer les zones restantes non intéressantes. On constate sur l'image résultante de la Figure 28 que la zone d'intérêt est maintenant correctement couverte.
Les seuils sont également configurables. C'est la raison pour laquelle un pré-traitement, comme un rehaussement de contraste, peut être mis en place afin de simplifier leurs réglages.
Le réglage des seuils peut être effectué de façon itérative. Comme le traitement est rapide, il est possible d'imaginer de tester plusieurs seuils différents jusqu'à trouver une plaque dans l'image. (A une résolution fixée, une plaque a presque toujours la même surface si le point d'observation ne change pas comme dans le cas des radars situés sur les bords de la route).
Un autre point important à mentionner est le fait de devoir réaliser une ouverture verticale puisqu'il est alors nécessaire de faire une rotation de 90° de l'image pour pouvoir utiliser l'algorithme d'érosion/dilatation à temps constant optimisé.
L'architecture mise en place utilise, pour les ouvertures/fermetures, des macro cellules morphologiques 181 , 182 telles que celles introduites précédemment, et une unité de calcul 185 qui réalise le seuillage et l'intersection des flux.
Après intersection, il est effectué le calcul d'une ouverture en ligne et ensuite celui d'une ouverture en colonne. Cette dernière ne peut être réalisée que lorsque toute l'image est traitée ; on ne peut donc pas la chaîner directement dans le traitement. Le traitement se décompose alors en deux phases :
1ere phase : traitement en ligne de l'image (ouverture/fermeture, seuils, intersection, ouverture) 2eme phase : traitement en colonne de l'image (ouverture).
Le démarrage de la seconde phase implique que le traitement de la première phase soit totalement terminé. Cette situation permet de mutualiser les ressources de l'architecture. Ainsi, il est possible de réutiliser la dernière ouverture en ligne de la première phase pour réaliser l'ouverture en colonne de la seconde phase en modifiant le chemin de données. Cette modification est possible car tous les paramètres des macro cellules morphologiques (taille de l'élément structurant, taille de l'image, type de traitement,...) sont stockés dans des registres. A la fin de la première phase, le chemin de données est modifié et les registres sont chargés avec les nouvelles valeurs (changement de la taille de l'image car celle-ci est retournée de 90° ou 270°, et de la taille des éléments structurants).
La Figure 29 présente l'architecture du système précédemment décrit. On remarque la présence d'un multiplexeur 188, pour réaliser la modification du chemin de données, qui est piloté par le système de gestion de l'envoi et de la réception du flux vidéo. Les registres des paramètres sont eux aussi contrôlés par le système de gestion. A la fin de la première phase, le multiplexeur 188 et les registres sont chargés avec les nouveaux paramètres du traitement en colonne. Le traitement est relancé avec cette nouvelle configuration de l'architecture, et l'image reçue correspond à l'image finale du traitement.
On dispose donc d'une architecture de traitement reconfigurable car les paramètres des cellules macro morphologiques, y compris la macro cellule morphologique 187 pouvant effectuer une ouverture en ligne dans une première phase et une ouverture en colonne dans une deuxième phase), et le chemin de données, peuvent être modifiés pendant le traitement.
La Figure 30 montre un exemple de vue fonctionnelle d'une chaîne de détection de plaque d'immatriculation.
L'image à traiter peut être envoyée par un réseau 201 tel qu'Ethernet.
Un processeur 202 enregistre l'image reçue dans des mémoires 204.
Des unités 205, 206 d'accès direct à la mémoire sont configurées par le processeur 202 pour envoyer l'image originale et pour recevoir l'image traitée par le bloc 203 de traitement matériel. Une fois le traitement terminé, l'image est renvoyée par le réseau Ethernet 201 pour observation du résultat.
La mémoire du processeur 202 ne peut pas envoyer à tous les cycles d'horloges des pixels à traiter, car le bus mémoire est partagé avec d'autres composants du processeur. L'architecture de détection de plaque supporte sans difficulté ce problème car le traitement peut être gelé à tous moments.
A titre d'exemple, la fréquence de fonctionnement peut être de 50 MHz, et le traitement d'une image 356x356 peut alors être réalisé en 15 ms.

Claims

REVENDICATIONS
1. Système de traitement d'image à macro cellule morphologique, caractérisé en ce qu'il comprend :
- un dispositif d'acquisition d'image (1 ) pour créer une image numérique en niveaux de gris, comportant une matrice de m lignes et n colonnes codée sur b bits, m, n et b étant des entiers,
- un ensemble de mémoires (4, 5), - un bloc de calcul (3) dynamiquement reconfigurable, pour réaliser des traitements d'image, les unités de calcul et les chemins de données pouvant être reconfigurés pendant l'exécution entre chaque traitement unitaire,
- un système de contrôle (2) assurant le transfert de données entre le dispositif d'acquisition d'images (1 ) et l'ensemble de mémoire (4,
5), ainsi que la gestion du contrôle de p flux parallèles de données vers le bloc de calcul (3) et l'envoi des données avec un adressage spécifique en fonction des besoins de celui-ci, avec p entier, en ce que le bloc de calcul (3) comprend : - un nombre entier k, k étant supérieur à 1 , de Macro Cellules
Morphologiques (50) comprenant chacune un ensemble de cellules morphologiques élémentaires (51 , 52, 61 , 62) organisées en b branches (f, g) parallèles avec un nombre entier e d'étages, chaque cellule (51 , 52, 61 , 62) effectuant une fonction élémentaire d'érosion, de dilatation ou d'identité basée sur l'utilisation d'éléments structurants linéaires, la fonctionnalité de chaque cellule morphologique et la taille des éléments structurants étant dynamiquement programmables et les flux parallèles issus des cellules morphologiques élémentaires étant recombinés en sortie par une unité arithmétique et logique (70), - au moins un système de parallélisation des données pour le traitement en parallèle de plusieurs lignes respectivement plusieurs colonnes, comprenant deux modules tampons (301 , 302 ; 311 , 312) et un démultiplexeur (304, 314) chaîné en pipeline sur un ensemble de s étages synchrones pour décomposer un mot en p flux de données parallèles et reliés aux p entrées de macro cellules morphologiques (MCM1 , MCM2, MCM3, MCM4), - au moins un système de reconstruction de l'image à partir d'un nombre entier z de flux parallèles de sortie des k macro cellules morphologiques, comprenant deux modules tampons et un multiplexeur chaîné en pipeline sur un ensemble de s1 étages et relié à des sorties synchrones des macro cellules morphologiques, et en ce que les cellules morphologiques élémentaires (51 , 52, 61 , 62) ainsi que les macro cellules morphologiques (50) sont munies d'un mécanisme de contrôle et de communication avec le système de contrôle permettant d'arrêter sélectivement l'exécution d'un traitement en fonction de la disponibilité des données, et de reprendre ensuite le traitement sans perdre de données dans le chaînage en pipeline.
2. Système selon la revendication 1 , caractérisé en ce qu'il comprend un nombre entier f de systèmes de parallélisation des données et de systèmes de reconstruction d'image pour permettre un traitement sur f x p flux parallèles de données.
3. Système selon la revendication 1 ou la revendication 2, caractérisé en ce que les macro cellules morphologiques (50) sont organisées en pipeline sur plusieurs branches à plusieurs étages, les sorties étant combinées par une unité arithmétique et logique.
4. Système selon l'une quelconque des revendications 1 à 3, caractérisé en ce que chaque cellule morphologique comprend des première et deuxième unités de traitement (10, 20) pour réaliser un traitement selon des première et deuxième passes dans des sens de traitement différents, et en ce qu'un module tampon (30) est interposé entre les première et deuxième unités de traitement (10, 20).
5. Système selon la revendication 4, caractérisé en ce que les première et deuxième unités de traitement (10, 20) comprennent chacune une unité de propagation (11 , 21 ), une unité de gestion des effets de bord et des traitements spécifiques (12, 22) et une ligne à retard (13, 23).
6. Système selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'au moins une macro cellule morphologique (150) comprend une cellule morphologique assurant une érosion suivie d'une cellule morphologique assurant une dilatation de manière à définir un opérateur d'ouverture.
7. Système selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'au moins une macro cellule morphologique comprend une cellule morphologique assurant une dilatation suivie d'une cellule morphologique assurant une érosion de manière à définir un opérateur de fermeture.
8. Système selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'au moins une macro cellule morphologique (250) comprend une cellule morphologique (253, 254) assurant une fonction d'identité.
9. Système selon les revendications 6 à 8, caractérisé en ce qu'au moins une macro cellule morphologique (250) comprend des première et deuxième cellules morphologiques (251 , 252) assurant les fonctions d'érosion et de dilatation et des troisième et quatrième cellules morphologiques (253, 254) assurant la fonction d'identité, ainsi qu'un soustracteur (270) pour créer un opérateur d'ouverture de chapeau haut de forme ou un opérateur de fermeture de chapeau haut de forme.
10. Utilisation d'un système selon l'une quelconque des revendications 6 à 9 comprenant au moins deux macro cellules morphologiques chaînées entre elles et combinées avec des unités arithmétiques/logiques pour réaliser des traitements d'image tels que le gradient, les filtres non linéaires, les filtres alternés séquentiels, la modification de contraste.
11. Système de détection d'objets munis de motifs répétitifs constitués de lettres, chiffres ou symboles, caractérisé en ce qu'il comprend un système reconfigurable de traitement d'image à macro cellule morphologique selon l'une quelconque des revendications 1 à 9 et en ce qu'il comprend un premier module (180) de traitement de l'image et un deuxième module (187) de traitement de l'image.
12. Système selon la revendication 11 , caractérisé en ce que le premier module de traitement de l'image comprend un premier module d'ouverture/fermeture (181 ), un deuxième module d'ouverture/fermeture (182), et une unité arithmétique/logique pour réaliser des comparaisons par rapport à des seuils, un module d'intersection (185) et un module d'ouverture de ligne (187).
13. Système selon la revendication 11 , caractérisé en ce que le deuxième module de traitement de l'image comprend un module d'ouverture/fermeture (187).
14. Système selon l'une quelconque des revendications 11 à 13, caractérisé en ce qu'il est appliqué à la détection de plaques d'immatriculation.
EP07858742A 2006-11-28 2007-11-27 Systeme de traitement d'image a macro cellule morphologique Withdrawn EP2102814A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0655151A FR2909204A1 (fr) 2006-11-28 2006-11-28 Systeme de traitement d'image a macro cellule morphologique.
PCT/FR2007/052404 WO2008065302A2 (fr) 2006-11-28 2007-11-27 Systeme de traitement d'image a macro cellule morphologique

Publications (1)

Publication Number Publication Date
EP2102814A2 true EP2102814A2 (fr) 2009-09-23

Family

ID=38218115

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07858742A Withdrawn EP2102814A2 (fr) 2006-11-28 2007-11-27 Systeme de traitement d'image a macro cellule morphologique

Country Status (5)

Country Link
US (1) US20100142855A1 (fr)
EP (1) EP2102814A2 (fr)
JP (1) JP2010511240A (fr)
FR (1) FR2909204A1 (fr)
WO (1) WO2008065302A2 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
FR2935851B1 (fr) * 2008-09-05 2010-10-01 Commissariat Energie Atomique Module reconfigurable et procede de mise en oeuvre de ce module reconfigurable pour realiser des operations morphologiques
US8073281B2 (en) * 2008-12-22 2011-12-06 Canon Kabushiki Kaisha Generating a dilation image utilizing parallel pixel processing
US8150193B2 (en) * 2009-01-13 2012-04-03 Canon Kabushiki Kaisha Generating an erosion image utilizing parallel pixel processing
EP3060880A4 (fr) 2013-10-22 2017-07-05 Polaris Sensor Technologies, Inc. Système et procédé de détection du soleil et de la polarisation du ciel
US12267612B2 (en) * 2020-08-10 2025-04-01 Micron Technology, Inc. Methods and apparatus for integrated image signal processing
CN114095721B (zh) * 2020-08-25 2023-04-28 京东方科技集团股份有限公司 视频坏点检测的方法和装置、计算机可读介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541116A (en) * 1984-02-27 1985-09-10 Environmental Research Institute Of Mi Neighborhood image processing stage for implementing filtering operations
US4760607A (en) * 1986-07-31 1988-07-26 Machine Vision International Corporation Apparatus and method for implementing transformations in grayscale image processing
JP2523222B2 (ja) * 1989-12-08 1996-08-07 ゼロックス コーポレーション 画像縮小/拡大方法及び装置
US6289138B1 (en) * 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008065302A2 *

Also Published As

Publication number Publication date
US20100142855A1 (en) 2010-06-10
JP2010511240A (ja) 2010-04-08
FR2909204A1 (fr) 2008-05-30
WO2008065302A3 (fr) 2008-09-12
WO2008065302A2 (fr) 2008-06-05

Similar Documents

Publication Publication Date Title
EP2102814A2 (fr) Systeme de traitement d'image a macro cellule morphologique
EP0054596B1 (fr) Procédé d'inspection et de tri automatique d'objets présentant des configurations avec des tolérances dimensionnelles et des critères de rejet variables selon l'emplacement, équipement et circuits de mise en oeuvre
FR2586120A1 (fr) Procede et dispositif de transformation sequentielle d'image
FR2780535A1 (fr) Dispositif de traitement de donnees d'acquisition, notamment de donnees d'image
FR2636152A1 (fr) Processeur d'images en pipeline
FR2638924A1 (fr) Procede et circuit de traitement par bloc de signal bidimensionnel d'images animees
FR2635207A1 (fr) Procede et dispositif de traitement d'un signal electrique analogique en vue d'obtenir un signal binaire parametrable representatif de sa composante significative
FR2588142A1 (fr) Systeme permettant le traitement a haute vitesse par convolutions de donnees d'image.
EP0211702B1 (fr) Rétine intégrée à réseau de processeurs
FR2805629A1 (fr) Procede et dispositif de perception automatique
EP0717372B1 (fr) Procédé de sélection de vecteurs de mouvement et dispositif de traitement d'images mettant en oeuvre ledit procédé
EP0298002A1 (fr) Mémoire de transposition pour circuit de traitement de données
EP1269290B1 (fr) Procede de contre-mesure pour un micro-controleur base sur une architecture avec "pipeline"
FR2742248A1 (fr) Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
EP0667969A1 (fr) Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif
EP2901411B1 (fr) Dispositif de decomposition d'images par transformee en ondelettes
FR2723796A1 (fr) Dispositif d'estimation de mouvement
FR2662281A1 (fr) Processeur comprenant un fichier de registres adressables en plusieurs jeux de registres contenus dans des fenetres.
FR2938680A1 (fr) Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal
FR2918190A1 (fr) Dispositif d'adressage pour processeur parallele.
EP0680015A1 (fr) Dispositif d'alimentation en pixels d'une série d'opérateurs d'un circuit de compression d'images mobiles
Minemoto et al. Parallel image processing algorithms based on mathematical morphology using a multiple-imaging system
FR2480007A1 (fr) Systeme optique de lecture de caracteres
EP0573345A1 (fr) Procédé de comparaison de flots de données et dispositif de mise en oeuvre
FR2623927A1 (fr) Procede et dispositif pour la detection et la localisation d'une portion d'image

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20090624

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20090917

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100330