text:
|Publication number
|Publication type
|Application number
|Publication date
|18 Apr 1978
|Filing date
|10 Feb 1976
|Priority date
|14 Feb 1975
|Also published as
|Publication number
|Alain Chehikian, Gerard Bouvier
|Original Assignee
|Agence Nationale De Valorisation De La Recherche
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (5), Referenced by (4), Classifications (7)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention relates to pattern recognition systems which are used more particulary for the automatic reading of printed or typed texts.
It relates more specifically to systems in which the reading of the characters is performed in such a way that there is a system of binary numbers for each character, whereby each binary number corresponds to the presence or absence of an element of the character in a specific zone of elementary surface.
In these systems the reading or acquisition device supplies for each character a certain number of binary data, which together correspond to the character in question. This number, which depends on the sharpness of definition of the character is relatively high, for example 256.
No matter whether the acquisition of the character in the form of P binary numbers has been performed with a view to the subsequent restoring of the character or with a view to its recognition for processing in a data processor (case of a number automatically "read" at the input of a calculation circuit), in the known machines all the said data must be retained because the character is only identifiable by all the said data.
The present invention has for its object a system for processing the said P data for the purpose of recognising the data, which makes it possible to reduce the number of useful data characterizing a given character.
Hereinafter, with a view to making the terminology more readily comprehensible, the term "character" is used both to designate the actual pattern to be recognised and to designate the P binary numbers corresponding thereto in the acquisition process.
In addition, the term "point" will be used to designate a geometrical point of the character, as well as to designate a memory point, i.e. the binary number corresponding to a particular elementary zone.
For the greater clarity of the text and to facilitate comprehension, it is assumed hereinafter that the zones of the character to which the P binary numbers correspond have been defined by the respectively horizontal and vertical coordinate axes.
The system according to the invention sucessively performs
A first stage of the system effects a segment point transformation, whereby the data defining the character at the output of this stage are separated in accordance with the orientation of the character at the point in question.
A second stage effects the reduction of the data, whereby the total number of data obtained is the sum of the numbers of location zones for each segment direction. For the recognition of the alphanumerical characters (64 characters: 27 small letters, 27 capital letters and 10 figures) it was found useful to define 21 zones: six zones for the location of positively inclined diagonals (sloping to the right) and six zones for the location of negatively inclined diagonals (sloping to the left), six zones for the location of the vertical lines and three zones for the location of the horizontal lines.
At the output of this stage, the character is characterized by T binary variables, 21 in the case of alphanumerical characters, each of them indicating the presence or absence of a given orientation segment in a given zone.
The third stage substantially effects a code conversion or decoding in accordance with the intended use, which can be brought about by a simple combinatory logic when the number of characters to be recognised is small, as is the case for all standard alphanumerical characters. In the case of more complex or more numerous characters (cyrillic alphabet, ideographs, etc.) code conversion will be more advantageously performed by comparing the values of the binary variables with stored blocks of values equal to the values of these variables. The said blocks correspond respectively to the different characters to be recognised.
A processing device according to the invention comprises:
a circuit for calculating the integrals of the memory points located on either side of a given mesh apex (as defined hereinafter) in accordance with the horizontal, vertical, positively inclined diagonal and negatively inclined diagonal direction;
a circuit for assigning these points to a horizontal, vertical or oblique segment, by comparing the various integrals obtained and eliminating incorrect indications by controlling the presence of at least one adjacent point on the segment retained for a mesh apex point;
a circuit for calculating the zones defining for each character a certain number of zones by comparing the coordinates of all the points;
a circuit for locating the various segments in the said zones, supplying binary variables characterizing the character;
a system of elementary logic circuits ensuring the decoding of these variables.
In the special case where the characters have been obtained by means of the acquisition device described in French Pat. Specification No. 73.46285, filed by the Applicant on Dec. 26th 1973 and entitled "Text acquisition device for pattern recognition machine" in which the information on a character is obtained in series by scanning along the Cartesian coordinates and is stored in a memory with series output and access, with 256 addresses, a circuit for calculating the integrals, has two series-parallel registers with eight outputs, respectively for the horizontal and vertical coordinates of the points. Four adders carry out the calculations of the integrals along the horizontal, vertical, positively inclined diagonals and negatively inclined diagonal segments (taking as the origin the apex of a mesh defined by four elementary acquisition surfaces).
The zone calculating circuit has two parallel-parallel registers defining the sub-block occupied by the character and calculating circuits defining the coordinates of the limits of the various location zones.
The circuit for assigning the segments to the various zones, i.e. the definition of the variables characterizing the character comprises coincidence circuits for the address of one segment with any random address in the zone in question.
The decoding circuit comprises a system of logic circuits expressing the simultaneous presence of certain of these variables and the absence of certain others.
A control logic ensures the automatic transmission of data from the acquisition memory to the recognition circuits.
In the particular case in question, the data relative to one character are reduced from 256 acquisition values to 21 binary values, so that data storage is considerably simplified. Moreover, the decoding circuits are reduced to a simple combination of elementary logic circuits.
Other objects of the present invention will become apparent from the following description. The accompanying drawings show by way of illustration preferred embodiments of the present invention.
In the drawings:
FIG. 1 is a diagram of a character pattern;
FIG. 2 is a simplified diagram of the system according to the invention;
FIGS. 3a-3d illustrate the location zones;
FIG. 4 is a more detailed synoptic diagram of the system;
FIG. 5 diagrammatically illustrates a complete shape recognition device according to the invention;
FIG. 6 is a block diagram of an embodiment of one of the circuits of FIG. 5;
FIG. 6a is a detail of FIG. 6;
FIG. 7 shows the algorithm effected by circuit 60 of FIG. 6;
FIG. 8 is an explanatory diagram;
FIGS. 9, 10a, 10b; 11a and 11b, are flow charts of the circuits of FIG. 6;
FIGS. 12, 13 and 14 are explanatory diagrams;
FIG. 15 is a block diagram of one of the circuits of FIG. 6;
FIG. 16 illustrates a preferred embodiment of the circuit in FIG. 15;
FIGS. 17, 18 and 19 together illustrate the flow chart of the circuit of FIG 16;
FIG. 20 is a simplified block diagram of one of the circuits of FIG. 6;
FIG. 21 illustrates an embodiment of the circuit of FIG. 20;
FIG. 22 is a flow chart of the circuit of FIG. 21;
FIG. 23 shows an embodiment of one of the circuits of FIG. 16;
FIGS. 24a and 24b are explanatory diagrams;
FIG. 25 is the flow chart of the circuit of FIG. 23;
FIGS. 26, 27 and 28 are block diagrams of the circuits of FIG. 6;
FIGS. 29, 30, 31, 32 and 33 are diagrams representing as a function of time various signals involved in the described circuits.
It is assumed hereinafter that the character to be recognised has been obtained in the manner indicated in the above-mentioned French Patent.
In this case, the character to be recognised is stored in a memory organised into 16 lines of 16 points. The information stored for each element of this memory is 1 or 0, depending on whether or not the corresponding point belongs to the character. The address of an element of the memory is defined by (x, y). In this way a Boolean function M(xy) were 0 ≦ x ≦ 15, 0 ≦ y ≦ 15 is defined, which characterises the character, itself constituted by a system of adjacent black or white squares, as shown in FIG. 1. To facilitate comprehension, the corresponding memory point is also called M(xy).
The system is shown diagrammatically in FIG. 2.
At 21, the segment separation operation is performed. The memory points M(xy) are compared with one another in such a way as to determine whether a point m(X,Y), the apex of a mesh (1 ≦ X ≦ 15; 1 ≦ Y ≦ 15) defined by the squares forming the character (cf FIG. 1) belongs to a horizontal segment (H), vertical segment (V), positively inclined diagonal segment (D) or negatively inclined diagonal segment (G). To facilitate comprehension, these segments are designated by H, V, D, G hereinafter.
The various previously recognised segments are located at 22, leading to the determination of 21 binary variables θ1 to θ21 corresponding generally to the zones indicated in FIGS. 3a, 3b, 3c, 3d respectively for segments D, G, V, H. The delimitation of these zones will be explained hereinafter, it being understood that the number of zones selected depends on the number of characters which it is possible to recognise and on their graphic differentiation. A segment located in one zone can be positioned anywhere within it. The slopes of the diagonal segments can differ and only their general orientation is in fact considered.
Finally, the code conversion or decoding of these variables by a combinatory logic is performed at 23, and each character is characterized by the simultaneous presence of certain of these variables and the absence of certain others.
According to a preferred embodiment illustrated by FIG. 4:
the separation operation of V, H, G and D comprises an acquisition stage (21a) of the memory points M(x,y) located around a mesh apex m(X,Y), a calculation stage (21b) during which are calculated the integrals of the memory points located on the verticals, horizontals or diagonals relative to apex m(X,Y) and a comparison stage (22c) of the said integrals resulting in the assignment of apices m(X,Y) to different memories with mα (with α = V, H, G, D) in accordance with the segment to which this apex belongs;
the segment location operation comprises an acquisition stage (22a) of all the points M(x,y), a calculation stage (22b) for the parameters defining the various zones among which the various segments are distributed and a stage (22c) for comparing the coordinates of the apices m(X,Y) stored in memories mα with those defining the zones.
The operations of stages 22a and 22b can be performed before, during or after stages 21a, 21b and 21c.
FIG. 5 is a block diagram of a pattern recognition machine comprising according to the present invention.
In this diagram, the acquisition system, which does not form an object of the present invention, is generally denoted by reference numeral 51. The processing device comprises:
a memory M in which are stored the binary signals representing a character;
an address generator 52 for memory M;
an extraction circuit 53, for the vertical, horizontal, positively inclined diagonals and negatively inclined diagonals;
four memories with mα with α = H, V, D, G for the segments extracted at 53, these memories being are addressed by address generator m, 54, itself controlled by address generator M52, the relationship between the addresses (X,Y) of one apex of the mesh and the addresses (x,y) of the points M being apparent on FIG. 1.
Circuit 53 and memories mα perform the operations of stages 21a to 21c, whereas a zone calculating circuit 55 performs the operations of stages 22a and 22b and a test circuit 56 carries out the characterization of the character (stage 22c). This circuit determines in which zones, defined by circuit 55, are located the segments stored in m and thus defines the 21 variables θi. The processor further comprises a decoder 57 (stage 23), and the output of this decoder is connected to utilization devices U, e.g. a display system such as nixie tubes.
Obviously, separate address generators and memories can be used if necessary for acquisition and recognition purposes.
The acquisition and recognition circuits are advantageously automatically synchronized by a single control logic L which transmits operating commands to the various circuits, these commands being both programmed in the internal logic of L and controlled by signals from the various circuits, as indicated by the various arrows.
These commands define the operating phases of the various circuits. The processor operates in ten phases, Φ0 to Φ9, explained hereinafter.
For reasons of clarity, the drawing shows by:
single continuous lines the functional connections effecting the transfer of data from one circuit to another;
double lines, the connections effecting the transfer of addressing information from the memories (these connections carry multiple signals, whose number is equal to that of the address bits);
broken lines, the connection used for transferring commands. The various signals carried by the various connections will be explained in greater detail hereinafter, in connection with the description of the preferred embodiments with reference to the drawings.
FIG. 6 is a block diagram of an embodiment of the circuit for the extraction of segments V, H, D and G.
To determine whether a mesh apex m(X,Y), belongs to a V, H, G or D segment, four integrals IV, IH, ID, IG are calculated, these being the discreet sums of memory points M(x,y) on either side of the apex in question, along vertical orientation segments for IV, horizontal segments IH, positively inclined diagonal segments for ID and negatively inclined diagonal segments for IG.
The addresses of the following eight point M(x,y) are used in the calculation of the integrals:
______________________________________x = X + n ; Y = Y + px = X + n ; y = Y - (1 + p)x = X - (1 + n) ; y = Y + px = X - (1 + n) ; y = Y - (1 < p)x = X + p ; y = Y + nx = X + p ; y = Y - (1 + n)x = X - (1 + p) ; y = Y + nx = X - (1 + p) ; y = Y - (1 = n)______________________________________
These integrals are written ##EQU1## in which nmax and pmax are equal to the smallest values of k defined by the inequations x - (1 + k) ≧ 0, x + k ≦ 15, y - (1 + k) ≧ 0, y + k ≦ 15 and where p'max is the largest of the values defined by these inequations.
The memory points taken into consideration for the calculation of
Iv : correspond to points located on the verticals adjacent to the apex of mesh m(X,Y);
Ih : correspond to points located on the horizontals adjacent to m(X,Y);
Id : correspond to points located on the diagonals passing through m(X,Y), sloping to the right;
Ig : correspond to points located on diagonals passing through m(X,Y), sloping to the left.
The orientation segments in question have a width of the order of twice that of an elementary acquisition surface.
Thus, these integrals are measures of whether the mesh apex respectively belongs to a horizontal, vertical, positively inclined diagonal or negatively inclined diagonal segment. The decision to assign an apex to one of these different segments is taken as a function of the relative value of these integrals.
The circuit diagram of FIG. 6 substantially comprises:
counters 6V, 6H, 6G and 6D counting the said integrals;
a logic 60 which assigns the apices in accordance with the relative values of the integrals; this logic assigns the points in accordance with the algorithm shown in FIG. 7, to be explained hereinafter;
systems of ancillary circuits E1 and E2, whose function is substantially:
for circuit E1 : to supply the elementary calculation values to the counters;
for circuit E2 : to effect the entry in memories mV, mH, mG, mD of the values retained on the one hand during the calculation and on the other after segmentation, i.e. after eliminating parasitic points, whose possible existence will be explained hereinafter.
In the drawing, the numbers in brackets on the double connecting line indicate the number of simultaneously carried pieces of information.
The circuits E1 have been designed in such a way as to operate automatically whatever the values of x and y. They have calculation validation means, depending on whether the corresponding values of the coordinates do or do not come from the memory.
The circuits E1 comprise:
a series-parallel register 61;
a memory point validation logic 62;
a semaphore processing circuit 63;
a group of memories 64;
a calculation validation logic 65;
a counter input control logic 66.
The circuits E2 comprise a logic 67 for printing in memories mα and a logic 68 for confirming the points printed in memories m.
A signal input of series-parallel register 61 is connected to the output of memory M (cf FIG. 6). This register also has a control input, connected to the output of point validation logic 62 and a synchronization input connected to the general logic L. The register comprises eight parallel outputs on which are available the values (0 or 1) of the eight points which are used in the calculation of the integrals.
An ancillary circuit 62, called the "memory point validation logic" assigns the value zero to its outputs as soon as the address of one point locates the same outside the memory. This logic compares the addresses X = n, X = (1 + n), X + pX - (1 + p) on the one hand, Y + p, Y - (1 + p), Y + n, Y - (1 + n) on the other hand with the minimum values (0) and maximum values (15) which can be assumed by the addresses of the memory points M. Moreover, as it should not be taken account of the points which do not belong to the segment of point M(xy) the circuit 63 processes semaphores which are applied to the control logic of the counters and by the same eliminate the contribution of these points to the calculation of the integrals (this case being illustrated for example in FIG. 8, where, for an upwardly directed vertical segment corresponding to point m(X,Y), a semaphore is placed. This semaphore is placed when the memory points of addresses X-(1+p), Y-(1+n) and X-(1+n), Y+p are 1 for p=0 and when one of them is zero for p=1 (cross e0, g0, e1 g1 in FIG. 8). In this case account must not be taken of the subsequent points (p = 2, 3 . . . ), even if they are equal to 1 for the calculation of IV. To process these semophores the circuit 63 must have values at the register outputs which correspond to a pair of values n,p and preceeding values supplied thereto by memory 64, whose access is also synchronized by logic L (FIG. 5).
The counter control logic 66 authorises the output signals from register 61 to enter a counter Iα(α = V, H, G, D) if:
this signal corresponds to one of the terms of the integral calculated by the counter in question, and if
there is no semaphore for the integral in question.
When the entire memory has been scanned for a given pair of values XY, counters 6V, 6H, 6G, 6D contain the values of the integrals.
FIG. 7 shows a preferred algorithm used by logic 60 for assigning points m(X,Y) to one of the memories mV, mH, mG, mD.
The symbols used are as follows. Each hexagon shown represents a query asked in the given direction, e.g. the upper hexagon corresponds to the question: "is IH greater than 21V ?". If the answer is "yes," the operation indicated at output "+" of the hexagon is performed. In the opposite case, the operation indicated at the output "-" is performed.
Thus, if IH is greater than 21V, the point is assigned to a horizontal segment, i.e. "1" is printed out in memory mH at address X, Y.
The indicated algorithm has been used for its simplicity. It is not symmetrical, giving initial preference to the horizontal lines. Whilst retaining the same operating diagram, it would obviously be possible to invert IV and IH on one hand, and IG and ID on the other. A symmetrical algorithm would then be obtained, but this would lead to a more complicated circuit without any practical interest.
When an apex m(XY) has been assigned to one of the memories m, the operation is restarted with a new apex, provided that this new apex belongs to one segment of the character. This is acknowledged by the fact that in the four elementary surfaces whose apex m(X,Y) is the common apex, there are at least three "1" or two "1" positions symmetrically arranged relative to this apex. It is the function of the calculation validation logic 65 to establish whether this is the case. If this is the case or not, logic 65 transmits validation signals to the assignment logic. Logic 65 also transmits an information signal to the general logic L for the sequence of operations of the system.
This assigment operation is performed for all the apices of the character. At the end of the operation the apices m(X,Y) are distributed over memories mV, mH, mG, mD which respectively contain the apices place on the horizontal, vertical, negatively inclined diagonal and positively inclined diagonal segments. During this operation there has been no reduction of the actual information but merely a transformation of the points M(xy) into m(X, Y).
The input into memories m is performed under the control of circuits E2 which comprise a print-out logic 67 and a confirmation logic 68.
The confirmation logic compares the signals stored in the memory m in accordance with the following criteria:
a point located in the memory mV is confirmed if there is at least one adjacent point on the same vertical line, i.e. at the same address X;
a point located in memory mH is confirmed if there is at least one adjacent point on the same horizontal line, i.e. at the same address Y;
a point located in a memory mD or mG is confirmed if there is at least one adjacent point on the diagonal at 45� of the same orientation passing through this point, i.e. at one of the addresses (X + 1, Y - 1) or (X - 1, Y + 1) for memory mD and one of the addresses (X - 1, Y - 1) or (X + 1, Y + 1) for the memory mG.
The print-out logic 67 of the said memories permits the branching of the correct information to the print input of the memories m, i.e. depending on the operating phase reached; this logic performs the print-out operation from the assignment logic 60, or the print-out operation (point confirmed) or the erasure (point not confirmed) from the confirmation logic 68. The various operating phases are synchronized by general logic L.
The flow of information from memory M (FIG. 5) to the counters is illustrated by the flow charts of FIGS. 9, 10a, 10b, 11a and 11b and is programmed in accordance with the flow charts by control logic L.
In accordance with the flow chart of FIG. 10, the scanning of memory M(x,y) around apex m(XY) shown in FIG. 1, in order to extract therefrom the points necessary for the calculation of the integrals, is performed in the manner shown in FIG. 12. Extraction firstly takes place of the points of the central cross A of centre m, then those of zones B, then those of zones C, etc. corresponding to:
______________________________________zone A : n = 0 p = 0, 1, 2 . . . p'maxzone B : n = 1 p = 1, 2, . . .zone C : n = 2 p = 2, . . .______________________________________
In this drawing, hatching has been used with the sole aim of making the zone stand out better. Phases O0, O1 and O2 are assigned repsectively to:
the generation of addresses x, y of memory M (in the drawings Adi represents all the address bits x,y);
the generation of addresses X, Y necessary for confirming the points in memories mV and mH ;
the generation of addresses X, Y necessary for confirming the points in memories mG and mD.
In the drawings, Xdi and Ydi represent all the address bits X and Y respectively.
The programme is as follows: Initially : X = Y = 1 n = p = 0 IG = ID = IH = IV = 0 no semaphore is placed (Fi = 0 whatever the value of i) and register 61 is not loaded, which is expressed by Qi = 0.
The circuits are programed for random values of n and p. With n and p fixed, the different addresses x, x+n, x - (1 + n), y, y + p, etc. are compared at their limits 0 and 15.
The initial conditions are given at 9.1 of the top of FIG. 9.
The subprogramme shown in FIGS. 10a and 10b (which together form FIG. 10) is performed for each value of n.
The symbols used for these flow charts are identical to those used in FIG. 7.
It is pointed out that the value X + n, X + p, X -(1 + N)etc. and Y + n, Y + p, etc. represent address values x,y.
The following designations are used:
Depx+, Depy+ = overflow by excess (x > 15 or y > 15)
Depx+, Depy- = overflow by fault (x > 0 or y > 0). The signal Dep is "1" if x or y exceed limits 0 or 15.
T0 = 1 for n = 0.
T1 = 1 if there is an overflow everywhere
T2 = 1 if there is at least one overflow on an address x and an address y.
T3 = 1 for p = n
T4 = 1 for p = 0.
The signals QA . . . QH are the values available for the integrals. They indicated the existence or absence of an apex at the considered address x, y, defined in FIG. 10a.
The portion 10a of flow chart 10 shows the logic acquisition operations of values QA . . . QH.
The generation of the addresses x, y necessary for their performance is described hereinafter with reference to FIG. 26.
The portion 10b of this flow chart represents the calculation validation operation performed in logic 65 (FIG. 6); whereby signals VG, VD express, when they are 1, that there is a validation of the calculations for a point located on a negatively inclined diagonal and a positively inclined diagonal respectively, signal V = 1 indicating that there are at least three points M belonging to a character around the previously considered apex, m and the signal VA = 1 indicating that at least one of these signals has the value "1".
The signals F.sub.βγ(βγ = VB, VH, etc... are semaphores generated by the circuit 63. When F.sub.βγ = 1 the points located beyond the latter in the direction indicated by βγ are not taken into consideration. The putting down of F.sub.βγ corresponds to cases similar illustrated in FIG. 8.
The abbreviations αβ used indicate:
Vb on the vertical line of the point and downwards;
Vh on the vertical line and upwards;
Hg on the horizontal line to the left;
Hd on the horizontal line to the right;
Gh on the negatively inclined diagonal upwards;
Gb on the negatively inclined diagonal downwards;
Dh on the positively inclined diagonal upwards;
Dg on the positively inclined diagonal downwards.
The subprogramme of FIGS. 10 - 10b is performed for as many times as is necessary to scan all the H, V, G, D passing through apex m(1,1). When completed, this subprogramme recommences automatically for the next apex to the right on the same line and if the line is at an end for the abscissa apex 1 on the following line.
It starts with n = p = 0 (initial condition).
When it is at an end it recommences for n = 0, p = 1 then p = 2, etc., up to overflow (Depy+ = 1).
Then it recommences at n = 1, p = 1, then p = 2, etc.
On the flow chart, this is expressed by p+1 = p, i.e. the new value of p is equal to the previous one, increased by 1.
The designations n + 1 = n and X + 1 = X have the same meaning for n and x respectively.
The designations Qi → Qio indicate that Qi becomes the initial value Qio.
Qi represents QA, QB . . . and the integrals IV, IG, IH, ID are expressed by ##EQU2##
The flow chart of FIG. 9 shows the calculations performed in accordance with the flow chart of FIG. 10 to the calculation of the integrals, as indicated at 92 and 93.
On reaching 99, all the apices have been processed (because Y = 15 and X = 15). We then pass to the following phases Φ1 then Φ2, starting off again from the conditions X = Y = 1, n = p = 0 for the confirmation of the apices assigned to the memories mα.
The apex confirmation operations are performed in accordance with the flow chart of FIG. 11a for the apices of memories mV and mH and FIG. 11b for those of mG and mD.
These operations essentially consist of checking the presence of an adjacent apex on the segment retained.
Whilst referring to FIG. 1 for the meaning of X and Y, it can be seen that the addresses indicated in the portions to the left of rectangles 11a1 and 11b1, 11b2 correspond to points located relative to address points X, Y in the direction designated by the abbreviations H,D (horizontal, right; etc.), whereby the symbol m.sub.αβ indicates a point in the memory mβ located in the direction β relative to point m(X,Y) with β = D to the right, β = H upwards, etc and for the diagonals β = HD downwards and to the right, β = BG downwards and to the left, etc.
In memory M the character is characterized by a system of points M(xy). The character is also characterized by a substantially equal number of apices m(X,Y) distributed in the memories m in accordance with the orientation of the character at the apex in question.
Thus, a memory mα contains all the points of the character belonging to segments with the same orientation. Thus, a memory mα also contains a system of segments with the same orientation of different addresses m(X,Y), the segments of a memory mα being characterized by the same number of addresses as there are apices m(X,Y) in which the character has the same orientation.
The number of the said data is then reduced by locating the segment of given type, but no longer by its address m(X,Y), but by its address belonging to a given zone, all the segments of the same orientation located in the same zone representing a single piece of information, as is shown schematically in FIGS. 3a to 3d. A segment shown in this drawing corresponds to one or several segments of the same orientation, located anywhere in the same zone, all the segments of the same orientation located in the same zone give rise to a single binary information θi, in accordance with a basic principle of the invention.
The zonewise location of the segments necessitates the comparison of the addresses m(X,Y) of the points of the memory mα with the addresses of the limits of the various zones. The circuit 55 of FIG. 5 serves to calculate these addresses and comprises the following stages:
(i) definition of the form, i.e. the rectangle in which the character is printed. This is obtained by projecting all the points constituting the character in the axes corresponding to the two addresses. This can be done from points M(x,y) or m(X,Y).
The zone definition circuit shown in FIG. 15 operates on point m(X,Y) available in the memories mα.
A projection of the form (cf FIG. 13) determines:
the quantities 10, L0 defining the position of the character in the acquisition window, i.e. the minimum addresses X and Y at which there is at least one memory point 1 in at least one of the memories mα;
the quantities 11 + L1 and 10 + L0 which are the maximum addresses X and Y at which there is at least one memory point 1 in at least one of the memories mα.
(ii) definition of the zones within the form. In the case of the horizontal lines, it is considered that they are located at the top, in the centre or at the bottom, depending on whether their projections are located respectively in the spaces
______________________________________[Lo Lo + 2[[L. + 2 Lo + L1 - 2[]Lo + L1 - 2 Lo + L1 ]______________________________________
These spaces define the three zones Za, Zb, Zc, (shown at a in FIG. 14) defining three parameters 17, 18, 19 (cf FIG. 3d) characterizing the horizontal ordinate segments Y, respectively defined by
The diagonals are distributed along the X coordinates into two equal right-hand and left-hand zones ZD and ZG, depending on whether their addresses X are equal to or below XG or greater than XD, XG and XD being defined by
XG = E [210 + l] / 2
XD = E [210 + l] /2 + 1
in which E designates "whole portion of."
Along the Y coordinates, the diagonals are distributed into three zones ZH, ZB, ZC, corresponding to the Y addresses such that: for ZH : Y ≦ YH; for ZB : Y ≦ YB; for ZC : ZH ≦ Y ≦ YB ##EQU3##
In the case of characters with a limited height (L1 < 10) only two equal zones are defined, giving ##EQU4##
The heights of the three zones defined for the diagonals when L1 ≧ 10 differ from those defined for the horizontal lines, as the central area of the diagonals is smaller.
In the general case (L1 > 10), there are therefore six zones characterizing the diagonals, intersection of the zones ZH, ZB, ZC with the zones ZG, ZD defining the six parameters θ1, θ6 and θ7, θ12 in accordance with FIGS. 3a and 3b.
In the case of the vertical lines, it is considered that these are located to the left, to the centre or to the right, depending on whether the projections are located respectively in the spaces
______________________________________[lo lo + 2 [[lo + 2 lo + l1 - 2[]lo + l1 - 2 lo + l1 ]______________________________________
defining the three zones Zg, Zc1, Zd of FIG. 14 (b).
In the case of the vertical lines located in the zone Zg, i.e. whose address X is l0≧X≧10 + 2, a distinction is made between the following zones: high ZgH, intersection of Zg and ZH, low ZfB, intersection of ZgB and ZB and centre, i.e. outside ZH and ZB, intersection of Zg and ZH�ZB. The parameters θ15, θ16 and θ21 respectively characterize the vertical lines of these zones.
The vertical lines located in the right-hand zone Zd are distributed only two groups, bottom and top, depending on whether or not they are located in ZH or ZB. The vertical lines which would be located to the right between ZH and ZB are not retained, because the parameter which would result from them is not necessary for determining the 64 alphanumerical characters, which are the only ones being considered here.
To simplify matters, hereinafter the zones are referred to by the following abbreviations, which are also used for the output signals of the calculating circuit for the zones. The abbreviations used have been selected on account of the logic combinations used for abbreviating the zone characterization signals.
Horizontal lines:
H: zone Zh
C: zone Zc
B: zone Zb
Bg: intersection of zones ZB and ZG
Bd: intersection of zones ZB and ZD
Hg: intersection of zones ZH and ZG
Hd: intersection of zones ZH and ZD
Cg: intersection of zones ZC and ZG
Cd: intersection of zones ZC and ZD
Vertical lines:
G: zone Zg
D: zone Zd
Dg: zone Zc2
G�hg: zone ZgH
G�bg: zone ZgB
D�hd: zone ZdH
D�bd: zone ZdB
A circuit for calculating the zones, whose flow chart is shown in FIGS. 17, 18 and 19 substantially comprises, as shown in FIG. 15;
a circuit 15a for projecting all the addresses of points "1" of memories m on axes X and Y resepectively, whereby this circuit supplies signals S1 and S2;
a circuit 15b which, from S1 and S2, processes signals XG, YG, YB, YH, representative of the coordinates carrying the same reference, indicated in FIG. 13, and defining the characterization zones of the diagonals;
a logic 15c, which processes, from XG, YG, YB, YH, the signals CG, BG, HG, CD, BD, HD, defining the zones of the same references respectively;
calculation circuits 15d and 15e processing from signals S1 and S2 respectively, signals B, D and H, C, B;
the circuit also has two further circuits, 15f and 15g, for projecting horizontal lines on OY and vertical lines on OX, which processes the signals S4 and S3 respectively, to be used for the characterization of the horizontal and vertical lines.
According to a third embodiment of the invention shown in FIG. 16, the circuit for determining the form, whose flow chart is shown in FIG. 17, comprises two registers 15a1 and 15a2 respectively for X and Y with parallel accesses on which the 15 informations corresponding to the 15 values of X and Y are branched via a demultiplexer 15a3 addressed by Xi or Yi, depending on whether the projection is performed on OX or OY by means of a two-channel multiplexer 15a4 and by the memories via a four-channel multiplexer 15a5. This circuit also comprises a logic 15a6 for zero resetting at the end of the line and column.
The registers are synchronized by control logic L. The form is known and materialised in the registers after two memory read-outs, performed during phases Φ3 and Φ4 under the control of logic L.
Similarly, circuits 15f and 15g, whose flow chart is shown in FIG. 18, comprise parallel-parallel registers coupled respectively to memories mH and mV via demultiplexer 15a3 and synchronized by phase validation signals Φ4 and Φ5 respectively from logic L. The flow chart of circuit 15b is shown in FIG. 19 with the same signals as used hereinbefore. C10, C11, etc., indicate the count values of the counters of l0, l1, etc. Circuit 15b has four counters 15b1 and 15b2 for 10 and 11 respectively and 15b3 and 15b4 for L0 and L1 respectively, one logic 15b5 for controlling the counters, three adders, 15b6, 15b7, 15b8 and three comparators 15b9, 15b10 and 15b11. Besides adding, the adders carry out multiplications by 2 and divisions by 2. These operations are performed by shifting operations in the binary circuits, whereby the circuits are formed by simple adders.
The operation of the control logic 15b5 is determined during the phase signal Φ7. This logic:
on the one hand selectively authorises the incrementation of the counters of l0 and l11 (15b, 15b2) depending on whether or not there is a memory point 1 at the address X in question and the incrementation of the counters of L0 and L1 (15b3, 15b4) depending on the absence or presence of a point 1 at the address Y -- to this end, logic 15b5 receives signals S2 and S3;
on the other hand, controls in synchronism the initial values of counter 15b4 and adder 15b8.
YB and YH can, in fact, be written in the form
YH = E 1/2 [2L0 + L1 - ε6]
yb = e 1/2 [2l0 + l1 - ε6 + ε12] + 1
with ε = 0 if L1 < 10, and ε = 1 if L1 ≧ 10.
As the adder 17b7 is connected to the outputs of the counter of L0 (15b3) and of counter 15b4, logic 15b5 initially displays 0 or -6 in the latter depending on the value of ε.
Adder 15b8 summates an internal display value with the output of adder 16b7.
Logic 15b5 displays 0 at 15b8 when ε = 0 and +12 if ε = 1.
Comparators 15b9, 15b10, and 15b11, which respectively receive the signal (210 + l1/2), (2L0 + L1 - ε6/2), (2L0 + L1 + ε6/2) from 15b7, 15b8 and 15b9, supply the whole useful sections represented by signals XG, XD, YB, YH. Logic 15c for processing the assignment zones of the diagonals supply signals
Cg = xg� yb� yh
cd = xd� yb� yh
hg = xg� yb
bd = xd, yb
hg = xg� yh
hd = xd� yh
circuits 15d, 15e, for processing signals H, C, B, G and D, function more simply from the projections of forms, which are advanced or delayed by two clock units of time. Each of the circuits 15d1, 15e1 comprises a double flip-flop and a NAND circuit 15d2, 15e2, in order to directly supply signals D, G, H, C, B, which are more practical than the direct signals for producing the character characterization circuit, of which a preferred embodiment is illustrated.
The character characterization principle is simple, and substantially consists of testing the existence of various segments in the previously defined zones, e.g.: ##EQU5## shows that there is at least one positive diagonal at the bottom left of the character.
Thus, 21 tests are defined, whose positive response (θi = 1, where i = 1 to 21) denotes the existence of segments in accordance with the diagrams of FIGS. 3a to 3d.
FIG. 20 shows the diagram of the character characterization circuit which can be most generally used, no matter what the number of zones defined. In FIG. 20, 15 designates the zone calculation circuit and Zi the signals characterizing the various zones, whereby Zij of one zone is single (a single address or coordinate) or double depending on whether it is one of the zones such as H, B, C or one of the zones such as BG, BD, etc. in the case of zone HG the signal Zij comprises signals YH and XG.
The following abbreviations have been used in the drawing:
Ziv for the assignment zones for the vertical lines and more generally i ≦ number of assignment zones for the vertical lines;
ZjH the assignment zones for the horizontal lines;
Zkd the assignment zones for the positively inclined diagonals;
Zld the assignment zones for the negatively inclined diagonals.
In the case of alphanumerical characters:
Zkd = Zld with k = 1 ≦ 6; and i = 6 and j = 3.
The addresses of points 1 of the memories are compared respectively at 20A, 20B, 20C, 20D with signals ZiV, ZiH, Zkg and Zld, whereby each comparison determines the corresponding variables, i.e. θjH for the horizontal lines, θiV for the vertical lines, etc. with θ1d = θ1 to θ6, θkg = θ7 to θ12, θjH = θ17 to θ19 and θiV = θ13 to θ16 and θ20, θ21, in the example considered hereinbefore.
FIG. 21 is a preferred embodiment of the characterization circuit according to the invention and FIG. 22 is the assignment flow chart relative to the circuit of FIG. 21. In this case, zones Zkg and Zld are identical and the horizontal lines are characterized solely by their address Y and the characterization signals of the zones are signals available at the outputs of the circuit of FIG. 16, i.e. CG, CD, BG, BD, HG, HD, H, C, B, D and G, and where S3 and S4 are projections of the vertical lines on OX and the horizontal lines on OY.
The circuit of FIG. 21 is produced in negative logic form, the technology of these circuits being simpler than that of the direct logic circuit. To make the operation of these circuits more readily comprehensible, it is pointed out that the parameters a, b, c represent random variables, a + b + c = a b c, the sums and products obviously being logic products and sums.
In these conditions, the various logic circuits effectively express the intersections of the addresses of memory points m α 1 with those of the zones in question.
A zone signal with a line over the top indicates that reference is being made to points of memory m α, whose addresses are outside those of the limits of the zones in question.
The output signals of the logic comparison circuits 20 to 20V load 5 parallel-parallel registers 31 to 35, serving as the memory, whose outputs are synchronized by control logic L.
Parameters θ1 to θ12 (positively inclined and negatively inclined diagonals) are directly determined by logic circuits 20a to 20l.
Parameters θ17, θ18 and θ19 (horizontal lines) as well as parameters θ21 (vertical line in the centre) are also directly determined by the logic circuits 20t, 20u, 20v and 20q.
For determining the parameters θ13 to θ16, six intermediate parameters γ1 to γ6 are processed in NOR circuits 20s, 20r, 20m, 20n, 20o and 20p with the following relationships:
γ1 = S3.D
γ2 = s3.g
γ3 = mv.BG
γ4 = mv.BD
γ5 = mv.HG
γ6 = mv.HD
Four AND gates are connected to the outputs of registers 34 and 35 to which are transferred parameters γ1 to γ6 in such a way as to supply the parameters:
θ13 = γ4. γ1 = mv D.BD
θ14 = γ6. γ1 = mv D.HD
θ15 = γ3. γ2 = mv G.BG
θ16 = γ5. γ2 = mv G.HG
(in the above relationships, S3 has been eliminated because the address X of the vertical lines is included in the system of addresses X, Y thereof).
At the end of the phase Φ8, the 21 variables θi are determined and the control logic transmits the decoding circuit validation signal Φ9, representing the final stage of the recognition process.
This final stage, i.e. the actual recognition constituted by the decoding of variables θi, will vary in complexity depending on the nature and number of characters liable to be recognised, in other words depending on the number of combinations of variables θi necessary for the identification of a character, taking account of the numerous possible variants of the system of points M(xy) of one and the same character, due in particular to phase effects during sampling, i.e. parasitic quantification actions.
The circuit of FIG. 23 is a mainly negative logic form of the decoding circuit of the 10 digits 0 to 9.
At its 21 inputs, the decoder receives the 21 binary variables θ1 to θ21 and supplies at 10 outputs, 10 mutually exclusive binary variables, called 0, 1, 2 . . . 9. These variables can be applied to any system using binary input, for example they can be used to energise a decimal display device comprising nixie tubes.
This decoding principle is applicable to the decoding of all the alphanumeric characters. It constitutes a hierarchical decoding based on the physical significance of the variables.
In the case of digits 5, 6, 8, 9, 0, it is proved advantageous to process six intermediate variables a1, a2, a3, a4 and α1, α2, whose value 1 denotes the existence of shape and position curves as shown in FIGS. 24a and 24b with the same references, curves a1 to a4 being relatively closed curves and curves α1, α2 being very open curves. Digits 1, 2, 3, 4 and 7 are substantially decoded from variables θi, variables a1 to a4, α1, α2 only being involved in exclusive form. The logic combinations characterizing digits 0 to 9 and used in the circuit of FIG. 23 are shown in the table of FIG. 25.
The respective recognition of the various digits is determined by the presence or absence of the segments and curves indicated hereinafter by the reference of the corresponding parameter.
Digit 0:
presence of α1 and α2
absence of θ1, θ4, θ8, θ9, θ19
absence of the combination determining the digit 8
absence of at least one of θ5 and θ6
Digit 1:
presence of θ13 and θ14
absence of a4, θ7, θ15, θ16
absence of the combinations corresponding to digits 5, 6, 8 and 9
Digit 2:
presence of θ18
presence of at least one of θ4, θ5, θ6
absence of θ12, θ13, θ14
absence of combinations defining digits 5, 6, 8 and 9
Digit 3:
presence of a4
presence of at least one of a3, θ4, θ17 and/or θ9, θ10 together
absence of a1, a2, θ15, θ16, θ19
Digit 4:
presence of θ5
presence of at least one of θ13 and θ20
presence of at least one of θ11, θ12, θ19
absence of θ14, θ15, θ17
absence of the combinations corresponding to digits 5, 6, 8 and 9
Digit 5:
presence of a4
presence of at least one of a1 and θ16
absence of a3, θ5, θ8, θ14, θ15
Digit 6:
presence of a2
presence of at least one of θ21 and θ15
absence of θ6, θ10, θ14, a1, a3
Digit 7:
presence of θ17
presence of at least one of θ4, θ5, θ6
absence of a4, θ12, θ13, θ11, θ18, θ19 and the combinations defining digits 5, 6, 8 and 9
Digit 8:
presence of α1, a2, a4
Digit 9:
presence of a1 and/or θ11, θ16 together
presence of a3 and/or θ1, θ6 together
absence of a2 and a4.
Arcs a1, a2, a3, a4, α1 and α2 are characterized respectively by:
a1: simultaneous presence of at least one of the groups θ3 and θ11- θ3, θ16 and θ19 - θ11, θ16 and θ17 - θ16, θ17 and θ19
a2: simultaneous presence of the parameters of at least one of the groups: θ5 and θ7 - θ5, θ15, θ18 -θ7, θ15 and θ19 - θ15, θ18 and θ19
a3: simultaneous presence of at least one of the groups θ14, θ17, θ19 - θ10, θ14, θ19 - θ14, θ17, θ6 and θ6, θ10
a4: simultaneous presence of the parameters of at least one of the groups θ2, θ12 - θ13, θ18 and θ19 - θ2, θ13 and θ19 - θ12, θ13 and θ18
α1: simultaneous presence of the parameters of at least one of the groups θ3, θ10 - θ17, θ3 and θ14 - θ17, θ14 and θ16 - θ17, θ16 and θ10
α2: simultaneous presence of the parameters of at least one of the groups θ2, θ7 - θ18, θ15 and θ2 - θ18, θ15 and θ13 - θ18, θ13 amd θ7.
The segment separation and assignment circuits, the pattern zone characterization circuits, the segment location circuits and the decoding circuits described hereinbefore, form the essential parts of the apparatus. Their operation involves the use of auxiliary circuits shown as 52, 54 and L in FIG. 5, i.e. address generators for memories M and mα and a general control logic whose function is to ensure the automatic operation of the system, whilst synchronizing the various operations in such a way that they are distributed in time with a time lag which is sufficient to ensure that the switching of a circuit does not introduce unwanted signals into another circuit leading to false information, but still as short as permitted by the characteristics of the components used.
The address generators and control logic are entirely defined by their functions and can be constructed in per se known manner.
FIGS. 26 and 27 are synoptic diagrams of preferred embodiments of these generators, particularly suitable for the flow charts of FIGS. 9 and 10 on the one hand and FIG. 11 on the other, FIG. 8 is the basic diagram of a preferred control logic.
The functions of address generator M shown in FIG. 26 are:
performing the addressing of memory M for putting into effect the segment extraction circuits:
to transmit an external address during the loading of the said memory.
Thus, this generator must process eight pairs of addresses x = Y + n; y = Y + p x = X + n; y = Y - (1 + p), etc. defined hereinbefore, for the calculation of integrals IV, IH, IG, ID.
The quantities x, y, n and p are available respectively at the output of counters 201, 210, 206 and 208, whose incrementation and resetting to the initial value (zero for the counter of n, 208, and n for the counter of p, 206) are governed by logic L, according to the results of overflow tests carried out on the addresses by a test processing logic 207 which compares the last values of x and y obtained with the limit values 0 and 16. Logic 207 receives the values n and p from counters 206 and 208 and the carry over indications c4, c'4 from adders 202, 211. It processes the signals Depx+, Depy+, Depx-, Depy- and the signals T0, T1, T2, T3 and T4 defined on flow chart 9.
In FIG. 26, EX, EY, Zp, En designate the respective incrementation signals of the counters and Ra indicates the resetting to the initial value of the indicated variable.
The new addresses x and y are processed at all times from the preceeding values of X and Y by adding or subtracting in 202 and 211 and multiplexing of n and p in 204 and 211, depending on the orders received from logic L, in accordance with the flow chart of FIG. 10.
A final multiplexing, respectively in 203 and 212, makes it possible to address the memory either by output quantities from circuits 202 and 211 or by addresses Aiw from the acquisition system, whereby Adi represents a random address x, y from memory M.
The address generator m must supply the address (X, Y) from the point m(X,Y) (FIG. 1) for storing the point and addresses X + 1, Y; X - 1, Y; X, Y - 1; X, Y + 1, for confirming the points in stores mH and mV, and the addresses: X + 1, Y + 1; X - 1, Y - 1; X + 1, Y - 1; X - 1, Y + 1, for confirming the points in memories mG and mD.
These addresses are processed from X and Y supplied by counters 201 and 210 (common to address generators m and M) by adding and subtracting 1 or 0 by circuits 302 and 303. The operations are synchronized by control logics 305 and 306, themselves governed by a counter 301 which has 5 states, in accordance with the flow chart of FIG. 11. This counter is inoperative at state 4 for which the output addresses Xdi and Ydi are equal to X and Y.
A memory point validation logic 304 assigns the value 0 to the points whose address locates them outside memory m.
The control logic L ensures the successive performance of the operations described hereinbefore in accordance with the ten phases Φ0 to Φ9 per memory:
three phases Φ0, Φ1, Φ2 for separating the segments;
five phases Φ3 to Φ7 for calculating the zones;
one phase Φ8 for characterizing the character;
one phase Φ9 for decoding.
It is entirely defined by functions which are the generation of various control signals from the various processors described, namely:
address incrementation orders for processing
addresses in address generator M (FIG. 26): orders EX, EY, Ep, En;
control orders am, bm, cm of the circuits of address generator M;
orders for resetting to the initial value of the addresses: RaX, RaY, Ran (the order Rap being identical to En because p ≧ n);
print-out orders of memory registers 63, 64 of the segment separation processor (FIG. 6): hro, fF, hV and their resetting to zero RaOH; RaoQi:
print-out orders of memories M: WM;
print-out orders of memories m;
print-out orders of the projection memories of the zone calculation processor (FIG. 16): PE1 - PE2 - PE3 - PE4;
print-out orders of the test memories of the character characterization processor (FIG. 21): PET1, PET2;
validation signals of the various operating phases, these signals being designated by the same references Φ0 . . . Φ9 as the phases which they define.
Logic L also has initialisation circuits which cooperate in the processing of print-out orders WM of memory M and the zero resetting of all the counters and memories, as a function of data received from the acquisition system.
All the orders are processed in accordance with the flow charts of FIGS. 7, 9 to 11, 17 to 19 and 22. FIGS. 29 to 33 show as a function of time, the main signals processed and FIG. 28 is a simplified synoptic diagram of a control logic L.
It substantially comprises:
a master clock H supplying the timing signal h;
a counter ADM with 12 states, a phase counter Φ and combinatory logic circuits LC processing the various control orders hf, fro, hi, am, bm, cm, W, in accordance with the various flow charts based on the state of the counters on the one hand and on the value of the variables characterised on the tests performed by the processes (DepX, DepY, T1, T2, T3, T4);
a device R receiving data supplied by the acquisition system, whereby the end of print-out signal FE coincides with the drop of A7W, the last of the 8 print-out bits A07 to A7W.
As soon as FE appears, this device, in syncronism with h transmits a control signal Cde which brings about the transmission of data from the acquisition system memory, together with the recognition system memory. Transmission is at an end when the print-out address bit A7W (2nd bit A7W in the drawing, the first corresponding to the print-out in the acquisition system) returns to the zero state.
The diagram also shows:
signals Q2 and Q3, defined from FE and AiW serving for the processing of the control signals;
signal W (FIG. 26) which branches to the input of memory M either the addresses AiW from the acquisition system or those generated by the address processor of the recognition system;
the print-out signal WM of memory M which appears at the end of the first timing pulse in accordance with the control signal and terminates with the end of the final printo-out bit in M, A7W ;
the general zero resetting signal RAZ which coincides with the end of WM and lasts for one timing pulse.
The states of counter ADM are shown on the diagram on FIG. 30 which shows the various control signals of the address generator M of FIG. 26 and the values of the corresponding addresses:
the signals Am and bm, or operator control for y and x which determine whether the operation is +n or +p on the one hand or -(n +1) or -(p+1) on the other;
signal cm, or the operand control of address x, y; signal hr which synchronizes the loading of the registers.
This diagram also shows at Δ1, the installation of semaphores if n ≠ 0, or the storage of the storage of the validations if n = 0;
in Δ2 the incrementation of the integral counters TV, 6H, 6G, 6D ;
in Δ3 the incrementation of the counters of p (Ep = +1), and the storing of Qi;
in Δ4 the incrementation of the counter of n and the zero resetting of Qi as well as the zero resetting of semaphores Fi;
in Δ7 the assignment phase of a point to a memory mV ;
in Δ8 the incrementation of X or Y and the zero resetting of counters 6V, 6G, 6H, 6D.
The states of the five state counter 301, the 4 state address generator M and its three bits QA, QB, QC synchronized by h are shown in FIG. 31 which represents the various control signals of address generator m of FIG. 27 and the values of the corresponding addresses:
signals πX and π'X of the control logic for calculating the address X (FIG. 27), respectively the operand control and operator control of address X;
signals πY and π'Y, respectively having the same functions for address Y.
The zone calculation processor control signals are shown in FIGS. 32 and 33, with different scales to make these diagrams clearer.
The operating speed of the device according to the invention is essentially limited by the access time to the memories, the propogation time relative to the logic only being involved to a lesser extent. The circuits used are preferably constructed in accordance with TTl-type technology. In a device according to the invention, constructed with the equipment described hereinafter, the timing frequency is of the order of 5 Mc/s, permitting the recognition of an alphanumerical character in a maximum of 5.3ms, whereof about 4.5ms are used for extracting the segments. This time can be reduced but then more equipment would have to be used and the memory M would have to be replaced by several sub-memories which would be simultaneously scanned.
The following are examples of the type of equipment used in a circuit constructed according to the invention:
all the logic circuits are produced according to the mainly negative Schottky TTL technology;
memories M and m Intersil MM5523 and Texas Instruments equipment;
8 bit series-parallel registers (61, FIG. 6, 213, FIG. 26); SN 74 164 (Texas Instruments);
quadruple flip-flop D with zero resetting (63 and 64, FIG. 6): SN 74-175;
entirely synchronous 4 bit counters (6V, 6H, 6G, 6D, FIG. 6-206, 108, FIG. 26 - 301, FIG. 27 - and ADM, FIG. 28): SN 74.163;
cascadable 4 bit comparators (60, FIG. 6; 15b9, 10, 11, FIG. 6; 202, FIG. 26): SN 74-85;
2 channel quadruple multiplexers (15a4, FIG. 16 and 203, 204, 209, 212, FIG. 26) : SN 74-157;
1- 16 channel demultiplexers (15a3, FIG. 15): SN 76-154;
2 channel double multiplexers (15a6, FIG. 15): SN 74-153;
4 bit synchronous counters with loading (15b1, 2 3, 4, FIG. 16 - 201 and 210, FIG. 26 - 0, FIG. 28): SN 74-161;
parallel input and output 5 bit registers (15a1, 15a2, 15f, 15q): SN 74-96;
4 bit adders (15b6, 7, 8, FIG. 1; 202, 205, 211, FIG. 26-302, 303, FIG. 27): SN 7483;
double flip-flop D (15b5, 15d, 15e, FIG. 16 and 3 halves of these flip-flops in R, FIG. 28): SN 74-74.
The invention is not limited to the embodiments and uses described hereinbefore, which have only been illustrative purposes. In general manner, the pattern recognition process according to the invention can be applied whatever the acquisition process thereof, provided that at the outset there is a system of binary data corresponding to elementary surfaces defining the character. Although this process has been described relative to its application in the case of characters acquired by scanning along Cartesian coordinates., it can be used no matter what the coordinate system chosen, and the special circuits described as examples can still be used provided that coordinate transformers are associated therewith. It would also be possible to use other circuits designed to operate directly from the coordinates used for scanning.
The process of the invention which substantially consists in the characterization of the character by its orientation in a limited number of zones has been explained in the case where only four types of orientation are differentiated. These are along a horizontal line, along a vertical line, along a positive diagonal and along a negative diagonal, without the slope of these diagonals being differentiated. As has been previously stated for the recognition of the 64 standard alphanumerical characters no useful purpose is served by the differentiation of diagonals with the same general orientation. However, the process according to the invention can be employed with a distinction being made between the slopes of the diagonals, more particularly in the case where it is used for recognising more complex characters. The principle of the circuits described is still completely applicable, and the number of intermediate memories m is obviously equal to the number of types of different segments.
It is finally pointed out that the horizontal and vertical directions has been retained solely for their ease of determination, these directions corresponding both to the preferred directions of a large number of standard characters and to the conventional scanning directions. However, a priori, it is possible to select different directions without passing beyond the scope of the invention.
The invention is not limited to the embodiments described and represented hereinbefore and various modifications can be made thereto without passing beyond the scope of the invention.
|Cited Patent
|Filing date
|Publication date
|23 Aug 1966
|4 Aug 1970
|Nippon Electric Co
|Automatic character recognition apparatus
|26 Oct 1967
|17 Nov 1970
|Tokyo Shibaura Electric Co
|Apparatus for recognising a pattern
|8 Nov 1968
|12 Oct 1971
|Scan Data Corp
|Character recognition system utilizing feature extraction
|4 Jan 1971
|27 Mar 1973
|Scan Optics Inc
|Optical character recognition system
|27 Mar 1974
|3 Feb 1976
|Hitachi, Ltd.
|Pattern recognition system
|Citing Patent
|Filing date
|Publication date
|19 Apr 2011
|Compal Electronics, Inc.
|Method for recognizing characters
|27 Jun 2007
|12 Jun 2008
|Compal Electronics, Inc.
|Method for recognizing characters
|23 Oct 1987
|4 May 1988
|Pitney Bowes, Inc.
|Optical character recognition by forming and detecting matrices of geographical features
|26 Feb 1991
|4 Sep 1991
|Fujitsu Limited
|A data processing device
|U.S. Classification
|382/216, 382/197
|International Classification
|Cooperative Classification
|European Classification


text:
Fans in attendance at the Missouri Grand Prix swimming event over the weekend got a special treat following the men's 100-meter backstroke event. Two-time Olympic gold medal winner Matt Grevers' heart was racing as he needed to find himself atop the podium for his plan to work. He did just that.
Enlisting his brother, a swimming coach at the University of Missouri who was hosting the meet, the Grevers arranged for Matt's girlfriend, fellow swimmer Annie Chandler, to award the medals to the victors. After presenting her boyfriend with his gold he had something for her, an engagement ring.
Chandler was shocked, to say the least, as this video and still show all too well.
Initially Grevers was hoping to propose to Annie with her atop the podium but she finished fifth in her event and so he had to go with Plan B.
"I've just been searching for a unique way to pop the question," Grevers told reporters. "My whole family is here and I figured it would be a perfect opportunity and a unique situation."

subset: commoncrawl


text:
Do not use IMPLANON if you
Are pregnant or think you may be pregnant
Have, or have had serious blood clots, such as blood clots in your legs (deep venous
thrombosis), lungs (pulmonary embolism), eyes (total or partial blindness), heart (heart
attack), or brain (stroke)
Have liver disease or a liver tumor
Have unexplained vaginal bleeding
Have breast cancer or any other cancer that is sensitive to progestin (a female
hormone), now or in the past
Are allergic to anything in IMPLANON
Tell your health care provider if you have or have had any of the conditions listed above. Your health care provider can suggest a different method of birth control.
In addition, talk to your health care provider about using IMPLANON if you:
Have diabetes
Have high cholesterol or triglycerides
Have headaches
Have gallbladder or kidney problems
Have a history of depressed mood
Have high blood pressure
Have an allergy to numbing medicines (anesthetics) or medicines used to clean your skin (antiseptics). These medicines will be used when the implant is placed into or removed from your arm.
Changes in Menstrual Bleeding Patterns (menstrual periods)
The most common side effect of IMPLANON® (etonogestrel implant) is a change in your normal menstrual bleeding pattern. In studies, about 1 out of 10 women stopped using the implant because of an unfavorable change in their bleeding pattern. You may experience longer or shorter bleeding during your periods or have no bleeding at all. The time between periods may vary, and in between periods you may also have spotting.
Talk with your health care provider right away if:
You think you may be pregnant
Your menstrual bleeding is heavy and prolonged
Besides changes in menstrual bleeding patterns, other frequent side effects that caused women to stop using the implant include:
Mood swings
Weight gain
Depressed mood
Other common side effects include:
Vaginitis (inflammation of the vagina)
Weight gain
Breast pain
Viral infections such as sore throats or flu-like symptoms
Stomach pain
Painful periods
Mood swings, nervousness, or depressed mood
Back pain
Pain at the site of insertion
In rare cases, implants have been reported to be found in a blood vessel including a blood vessel in the lung.
This is not a complete list of possible side effects. For more information, ask your health care provider for advice about any side effects that concern you.
Problems with Insertion and Removal
The implant may not be placed in your arm at all due to a failed insertion or if the implant has fallen out of the needle. If this happens, you may become pregnant. Immediately after insertion, and with help from your health care provider, you should be able to feel the implant under your skin. If you can't feel the implant, tell your health care provider.
Location and removal of the implant may be difficult or impossible because the implant is not where it should be. Special procedures, including surgery in the hospital, may be needed to remove the implant. If the implant is not removed, then the effects of IMPLANON will continue for a longer period of time.
In rare cases, implants have been found in the pulmonary artery (a blood vessel in the lung). If the implant cannot be found in the arm, your healthcare professional may use imaging methods on the chest. If the implant is located in the chest, surgery may be needed.
Other problems related to insertion and removal are:
Pain, irritation, swelling, or bruising at the insertion site
Scarring, including a thick scar called a keloid around the insertion site
Scar tissue may form around the implant making it difficult to remove
The implant may come out by itself. You may become pregnant if the implant comes out by itself. Use a back up birth control method and call your health care provider right away if the implant comes out.
The need for surgery in the hospital to remove the implant
Injury to nerves or blood vessels in your arm
The implant breaks making removal difficult
Ectopic Pregnancy
If you become pregnant while using IMPLANON, you have a slightly higher chance that the pregnancy will be ectopic (occurring outside the womb) than do women who do not use birth control. Unusual vaginal bleeding or lower stomach (abdominal) pain may be a sign of ectopic pregnancy. Ectopic pregnancy is a medical emergency that often requires surgery. Ectopic pregnancies can cause serious internal bleeding, infertility, and even death. Call your health care provider right away if you think you are pregnant or have unexplained lower stomach (abdominal) pain.
Ovarian Cysts
Cysts may develop on the ovaries and usually go away without treatment but sometimes surgery is needed to remove them.
Breast Cancer
It is not known whether IMPLANON® (etonogestrel implant) use changes a woman's risk for breast cancer. If you have breast cancer now, or have had it in the past, do not use IMPLANON because some breast cancers are sensitive to hormones.
Serious Blood Clots
IMPLANON may increase your chance of serious blood clots, especially if you have other risk factors such as smoking. It is possible to die from a problem caused by a blood clot, such as a heart attack or a stroke.
Some examples of serious blood clots are blood clots in the:
The risk of serious blood clots is increased in women who smoke. If you smoke and want to use IMPLANON, you should quit. Your health care provider may be able to help.
Tell your health care provider at least 4 weeks before if you are going to have surgery or will need to be on bed rest. You have an increased chance of getting blood clots during surgery or bed rest.
Other Risks
A few women who use birth control that contains hormones may get:
Broken or Bent Implant
If you feel that the implant may have broken or bent while in your arm, contact your healthcare provider.


text:
2 May 2013 4:28 AM #1
How to see own theme in Architect?
I try Sencha Complete at the moment also I try to use the Architect. Now I have a question: How can I see my own theme when using the Architect?
I found an article but I think it is too old.
Thank you in advance for your answeres
2 May 2013 9:11 AM #2
- Join Date
- May 2010
- Location
- Guatemala, Central America
- Posts
- 1,503
- Vote Rating
- 307
Put the theme resources and css in the project's folder, for example:
And in the "Resources" node in SA add a css file pointing to "./resources/css/my-theme.css".
Regards.UI: Sencha Architect 3.x / ExtJS 4 & 5
Server side: JEE / EJB 3.x / CDI / JPA 2.x/ JAX-RS / JasperReports
Application Server: Glassfish / WildFly
Databases: Oracle / DB2 / MySQL / Firebird
If you like my answer please vote!
2 May 2013 11:43 PM #3
Hello and thank you for your response.
I thought it would be more complicated.


text:
- 531Promote
Stationery Cards
Claw Machineby Teo Zirinis
Set of folded stationery cards printed on bright white, smooth card stock to bring your personal artistic style to everyday correspondence. Each card is blank on the inside and includes a soft white, European fold envelope for mailing.
Super smart idé 👍
Very cool stuff. I like the style.
Thanks ! :)
Ash Ketchum is going to run out of Pokédollar in no time! Awesome work!
This would be even harder than in the games!
Love the clean look and desaturated colors (:
Love the clean look and desaturated colors (:
The clawwwwww! Haha Very cool!
lol hes gonna catch em all!
Great piece!
I gotta be the very best...
great - i remember those !
良い ✯ ✯ ✯ ✯ ✯ 👍
Such a unique idea.
Also, nice approach to the iPhone case.
Also, nice approach to the iPhone case.
Super sweet!
Love it!!
Nice !!
Love this!!
Very clever. :)
Thanks everyone! :D
Your works are wonderful
Brilluant work!
I love the subtle South Park feel to this
Love this!!! Great stuff.
Haha! So clever and fun ^_^
See More Comments


text:
Police release name of convenience store burglaries suspect | News
LITTLE ROCK, Ark. (KTHV) - Little Rock police said they have arrested a person in connection with four armed robberies at convenience stores on Saturday.
According to Sgt. Cassandra Davis, police took John Wesley Tillman into custody at the Exxon at the corner of John Barron Road and Colonel Glenn Road. She said he will be charged with seven counts of robbery, six counts of theft of property, three additional misdemeanor charges of theft and one count of possession of a controlled substance.
According to the police report, a man wearing blue, zippered jacket and black jeans walked into the Mapco at 2715 65th Street around 5 a.m. Saturday. He then threatened the cashier with a knife and demanded money. He took the cash from the register, but walked away after the cashier tried unsuccessfully to open the safe.
Less than an hour later, police said Tillman allegedly came into the Shell station at 4111 University. According to the police report, he said "Hello" before brandishing his knife and grabbing the cashier by the jacket and made him open the register. The report indicated that Tillman then got into an unknown car and drove off.
A separate report stated a clerk at a Valero gas station located at 6421 S. University was robbed about 12:30 p.m. The victim said Tillman had a handgun and knife with him. That night around 8:30 p.m., a similar incident happened at the Super Stop on the 6800 block of Colonel Glenn. The clerk told police that a man walked in, threatened the victim with a knife, then dragged him near the door and escaped.
Tillman made off with an undisclosed amount of cash. Witnesses say they saw him enter the store, but he did not act suspicious.
The investigation is ongoing.
Related Link:


text:
Assessment Committee
External Resources
Association of College and Research Libraries (ACRL)
The core purpose of the Association of College & Research Libraries is to lead academic and research librarians and libraries in advancing learning and scholarship.
Association of Research Libraries (ARL)
ARL is a not-for-profit membership organization comprising the leading research libraries in North America. Its mission is to shape and influence forces affecting the future of research libraries in the process of scholarly communication. ARL programs and services promote equitable access to and effective use of recorded knowledge in support of teaching, research, scholarship, and community service.
Library Research Service of the Colorado State Library: Library User Surveys on the Web
The Library Research Service generates library statistics and research for library and education professionals, public officials, and the media. LRS reports and analyzes statistics on school , public , and academic libraries, and conducts studies on major library issues that are reported in the Fast Facts and Closer Look series.
Office of Planning, Budget, and Analysis (University of Colorado at Boulder)
The goal of the PBA is to help the campus community, leadership, and constituents make informed decisions affecting the future of the University. Many CU datasets are available at Institutional Research and Analysis.
The use of online information resources is growing exponentially. It is widely agreed by producers and purchasers of information that the use of these resources should be measured in a more consistent way. Librarians want to understand better how the information they buy from a variety of sources is being used; publishers want to know how the information products they disseminate are being accessed. An essential requirement to meet these objectives is an agreed international Code of Practice governing the recording and exchange of online usage data. COUNTER has developed just such a Code of Practice.


text:
If you are thinking about going duck or goose hunting, be prepared for an experience of a lifetime. As MSUM student Roger Sirek puts it: "I love hunting for the thrill and excitement it brings me. I go for the simplicity, the quiet and the nature."
MSUM students have many chances to find locations around the area with public land to hunt. While waterfowl hunting definitely takes time, energy and money, it's all worth it if you enjoy the thrill of the hunt.
Many students at MSUM love to hunt. "Duck and goose hunting is really fun," Becki DeGeest said. "I always get a big adrenaline rush whenever the birds fly over."
The seasons for duck and goose vary year to year. This year's duck hunting season opened Sept. 24 and ends Nov. 22. The goose hunting season opened Sept. 24 and runs through Dec. 17.
First, find a local area where it's legal to hunt. Northern Minnesota has countless public waterfowl lakes that can be hunted. The easiest way to find a good lake or pond to hunt is to use a plat book (a map drawn to scale) to look up public land around the location. Another way is to use a Wildlife Management Area map to find a location to hunt. Information can be found on the Department of Natural Resource's website at www.dnr.state.mn.us.
Look for a few things when scouting a lake. One is the surrounding cover. Good camouflage includes cattails around the lake's edge. Another thing to look for is any type of vegetation, such as wetland rice. The vegetation helps as a natural waterfowl attracter.
Some good hunting areas near Moorhead include Barnesville, Ottertail and Hawley.
Equipment to buy
Once you have found a place to hunt, you are now able to gather your equipment. One main type of gear you need is camouflage. Most hunters prefer warm base layer clothing under waders. Waders are made of neoprene, a waterproofing material, and cover your feet up to your chest. You also want to have a warm camouflage jacket, gloves and hat.
Now that you are covered head to toe in camouflage, you need a weapon and ammunition. Most importantly before handling a gun, you need to get a gun safety license and waterfowl stamps, which make it legal for you to hunt. The licenses add up to about $45.
Almost every type of bird hunting requires a shotgun. Rather than rifles producing one single bullet, shotguns produce a spread shot of BBs. The most common types of shotguns to use are a 12 gauge and a 20 gauge, which refers to the size of ammunition it can shoot.
MSUM does not offer a gun storage area like Bemidji (Minn.)State University. However, student hunters often store their guns with friends or family who live close to campus.
Shotgun ammunition varies. For ducks you will want to use anything from 2 to 4 shot, which is the size of the BBs. For geese, you will need either BBB, BB or 2 shot.
You will also need a camouflaged boat or canoe and don't forget the paddles. Lastly, you need waterfowl decoys. Most hunters prefer a variety of different kinds of ducks and geese. It all depends on what you want to hunt. Hunters usually use about 20 duck decoys and 10 geese decoys.
You are now ready to venture out to your hunting location. Shooting usually starts at about sunrise so make sure you have enough time to set up beforehand. The first thing you need to do is set up your decoys about 20 yards away from your blind (camouflaged boat or cover). There are multiple techniques on how to display your decoys. One crucial thing is to put the ducks on one side and geese on the other.
Once you have your decoy spread the way you want it, you are able to pull your boat onto the bog and slide your boat parallel to the shore. Make sure cattails or other natural covering surround you so the birds aren't able to see you.
Patience is a virtue
Now for the waiting. It may take a while before ducks and geese start flying, but be patient.
Some hunters like to use duck and goose calls to attract birds. The downside is that it takes a lot of practice. You may also want to use moving decoys to attract ducks. You can use mojos, which have rotating wings that makes the duck look like it is landing.
Soon, you will have ducks and geese flying into your decoy spread. Wait until they are at a good distance around your decoys and take the shot. Once the bird is in the water, you can retrieve it. Some hunters use a dog to help retrieve their birds. If you don't have a dog, then just row out and get it.
Lastly, make sure you follow the regulations. You can only shoot a certain amount of ducks and geese. You can find all the regulations on the DNR's website. Once you have your limit, you are ready to pack up, head back and enjoy your meal.
For more information, visit the Department of Natural Resource's website at www.dnr.state.mn.us.


text:
Introducing Webpage In-Browser MonitoringFebruary 1st, 2016
Posted in WebSitePulse News
We are delighted to announce the launching of our newest service - webpage in-browser monitoring.
Check out the features and see if it's right for you:
- Performs within a real browser (WebKit engine)
- Provides a real browser experience from a user perspective
- Verifies keywords
- Verifies DOM components against CSS selectors
- Supports JavaScript and CSS
- Uses multiple simultaneous connections
- Provides screenshots on the last check and on every error
- Provides detailed report with graphs
Webpage In-Browser vs. In-Browser Transaction Monitoring
Similarly to the in-browser transaction monitoring, the webpage in-browser provides a real browser experience from a user perspective. Clients can actually 'experience' the availability and performance of their webpage's web applications the same way their website' visitors do, i.e. via a real browser engine.
While the in-browser transaction is based on the Firefox engine (GECKO) and our clients need to fill in a set of actions that we perform afterwards, the webpage in-browser is based on the WebKit engine identical to the Google Chrome's one, and clients provide only an URL which we then have to load.
Webpage In-Browser vs. Full-Page Website Monitoring
In contrast, full-page website monitoring will perform every network request separately. However, it is suitable when you need to check whether all components on the page load properly.
For more detailed comparison between the two services, see the table below.
|Full Page
|Performs in Browser
|Browser Page Load
|Screenshot on Every Check
|Execute JS
|Execute CSS
|Multiple Simultaneous Connections
|Monitoring Interval
|Maximum References to Check
|Soft Timeout
|Keep Detailed Logs
|Traceroute on Error
|Forced Monitoring
|XML Requests
|Request Timeout
|Page Load Timeout
|Exclude URLs
|Include Additional URLs
|Alert If Keywords Not Found
|Alert If Keywords Found
|Custom Headers
|Force TLS/SSL Version
|Bandwidth Limit
Clients who have been using full-page monitoring, may continue to do so unless they decide to upgrade to webpage in-browser.
Curious how webpage in-browser may further fulfill your monitoring needs?
We are now offering up to 2 targets for a period of one month free of charge.
Monitoring Outlook Web App (Case Study)October 13th, 2015
Posted in Monitoring
What is Outlook Web App (OWA)?
Outlook Web App (OWA), first released as "Exchange Web Connect" and then renamed to "Outlook Web Access", is a webmail interface for Microsoft Exchange Server.
OWA was created in 1995 by MS Program Manager Thom McCann from the Exchange Server team. The first customer version was provided as part of the Exchange Server 5.0 release two years later.
Microsoft released the OWA customer version as a component of Exchange Server to allow users to use their email accounts via a web browser without installing Microsoft Outlook. OWA provides features for managing contacts, documents, calendars, tasks and other mail-related content.
Outlook Web App has had two user interfaces available since its release back in 2000 - one with all features included ("Premium") and one with а limited functionality ("Light" a.k.a. "Lite"). Prior to the 2010 release, OWA required full functionality only from the Internet Explorer, but today it supports most of the commonly used browsers.
Advantages of OWA
The Outlook Web App:
- Provides quick and easy way to do your email, calendar and contacts from any device (PC, mobile phone, tablet, etc.)
- Allows access to the user account from any computer outside the local/office network
- Runs on most Internet-enabled devices
- Offers light version for users with bad Internet connection
- Supports S/MIME
- Has anti-phishing and anti-spam technology
- Provides instant messaging
Many of the OWA users are companies with lots of personnel who use OWA as a fast and easy way to access their email accounts from virtually everywhere and from any device.
How Can WebSitePulse Monitor OWA
WebSitePulse can offer the following monitoring solutions for Exchange Serverand particularly Outlook Web App:
- It's easy to setup
- It checks the incoming and outgoing email flow
- It does not check the OWA web interface
- Front Page OWA Monitoring - monitor the OWA front/login page to see if it is working properly with ourPerformance and Full-page monitoring levels.
- It's relatively cheap
- It supports lower monitoring frequencies (1/3/5 minutes)
- It does not verify the proper functionality of the customer's email system
- OWA Login - monitor the OWA to see if it is processing the logins properly andshowing the mailbox home page with our Transaction monitoring tool
- It verifies if the OWA is actually accessible to the users
- It does not check if the OWA is able to send or receive emails
- Full OWA Functionality Test - with our Custom Transaction Monitoring, we are able to test the full OWAfunctionality. This includes the proper login processing, the ability to sendand receive emails, the functionality of the other major OWA features (search, Calendar, Contacts, Tasks, etc.).
Case Study
Here is an example of a monitoring solution we have developed for one of ourcustomers. We use our Custom Transaction Monitoring to test the client'sOWA capabilities of sending and receiving mails.
The test process starts by sending a unique email to a customer's test emailaccount. Then, our monitoring system logins into the OWA and searches for thatemail. If the email is present, it is being deleted and then a new uniqueemail is being sent through the web interface to a mailbox outside thecustomer's network (in this case - a WebSitePulse mailbox). On the finalstep, our system checks if the second email has arrived.
This custom monitoring solution verifies if the client's email system (inbound/outbound email flow) and OWA are working properly.
Apart from the functionality test, we also measure the OWA interfaceperformance.
The customer will be notified in any of the following cases:
- The OWA is not loading at all or is performing slowly
- Our system cannot login with the provided user credentials
- The incoming test emails are missing
- Our system cannot send emails through the OWA web interface
- The outgoing test emails have not been delivered
- Issues with secured OWA zone appear
This monitoring solution has been developed with a 9-step custom scripttransaction. The deployment time for such monitoring is usually 24 hours andthere are no setup fees.
I Didn't Get My WebSitePulse Alert! Why?October 5th, 2015
Posted in Monitoring
One of the main reasons you may start looking for monitoring tools is the need to get notified when your website is not performing properly.
Of course, you need to be aware of the problem before your customers do so you could take actions to avoid customer and revenue loss. After all, if your website has been down for a while without your knowledge, you are likely to experience serious business downfalls. To avoid critical situations like that, you should simply ensure you have set the alerting of your monitoring targets properly.
How Does WSP Alerting Work?
There are three main sections in the target configuration responsible for the proper alerting.
Target Status
A single click on the target label will lead you to the target status – a place where you could check your current target status and a focal point to all of the target's features. Once you reach the target status, you could check if the alerts of the target are active or suspended. It's that little speaker icon on the right-hand side on the top of the screen. If the target alerts for the respective target are active, you could proceed to the target settings.
Alerts Configuration
This is where you set the existing notification contact to receive alerts for the target. WebSitePulse splits the errors into three main categories, which is why the alerts are combined in three groups – connection-related alerts, content-related alerts and timeout warnings. Depending on your needs, you could use one, two or all three options at the same time. Note that if you leave the timeout checkbox for a specific notification contact unchecked, the same notification contact won't be alerted with a timeout warning if an issue occurs.
There are several more columns in the alerts configuration table. One of them is failures before sending. The default value here is 1, meaning you will be alerted on the first detected failure. You could change that value as per your needs, but keep in mind that if you set it to 2, once we detect a failure, we will wait for the next check and will send alert to the notification contact only if the problem is detected again on the next (second consecutive) check. This feature is commonly used as a false-positive prevention system for targets with short monitoring intervals (1,2,3 minutes) and it's not recommended for targets with monitoring intervals higher than 5 minutes.
Monitoring locations
Here you select the location from which your target will be monitored. If the alert settings' option is set to "don't send", we won't send you an alert even if the monitoring location detects an issue.
While you are in the monitoring location section, you could also check the error confirmation feature. When this feature is activated, we run a secondary check from a different location to confirm the error before sending you an alert (when a problem is detected). There are cases when the email report shows you a failure for which you haven't receive an alert. An unconfirmed error could be one of the reasons.
Now, take a look at the location-correlated notification level feature. Again, this is our false-positive prevention system, working only when your target is monitored from more than one monitoring location. If your target is monitored from three monitoring locations, this feature could be set to alert you only if at least half of the monitoring locations (in that case - at least 2 of them) detect the same error. In certain cases, you could increase the correlation level between the monitoring locations and set them to alert you only if all of them detect the same error.
Other reasons which could prevent our system of sending you an alert are:
- An active dependency rule for the target
- An active contact availability rule for the notification contact
These are exceptional cases for which we assume you are aware of since you have manually set them up.
If all features and settings described above are set properly and you still have not received your alert, contact our Support team.
How to Customize Contact TypesSeptember 30th, 2015
Posted in Monitoring
Monitoring your website's availability and performance has proven to be a crucial part of the responsibilities of web-business owners. Knowing about a problem with your website or application on time helps you avoid possible downtimes and clientsand revenue loss. That is why we make sure to alert you in all possible ways. In this article we will introduce you to the Contact types we support, how to set them up and how to use them.
Contact Types
- iOS & Android device
- Voice call
- Instant messanger
- Pager
The email contact is one of the most used and preferred in the IT world. It is reliable and easy to set up. Here's how:
- Fill in the new contact's name and the email address itself.
- Specify the contact's availability (this is optional – do not change those settings in case you want the contact to be active 24/7).
- Configure the alert content that you want to receive. Note that there is a default alert message for each target and alert type. You can choose to modify the content of the alerts using the tags from the list provided.
- Configure the alerts for the respective contact. You can choose between connection and content related alerts, timeout warnings and recovery messages. The "failures before sending an alert" option allows you to define how many times the target in question has to be reported down, before an alert is sent. The "Maximum alerts per cycle" value defines the maximum alerts that will be sent to your contact after the first consecutive failure is detected. The "Alerts cycle" itself is the value, which specifies the time frame after which our system will restart the escalation schedule of the target.
- Configure the reports that your contact will receive by email. You should click the "Add new report" to create a new report or select an existing contact and copy the reports from it.
- Last, review and confirm the new contact's configuration.
The SMS contact's configuration is almost the same as the email's, except for the first step. Here you have to provide your name and number and select your preferred SMS Gateway – currently you can chose between four options. We always want to make sure that our clients have the best configuration and that is why we recommend testing the delivery first, before choosing the SMS Gateway.
iOS and Android Device
As with the SMS contact, only the first step differs from the Email contact's configuration.
- Choose a friendly name for the contact, then add your device from the drop down menu
Voice Call
Simply provide your name and phone number and chose one of the two available Voice call gateways:
Instant messenger
Enter your name, your screen name and choose the messenger type from the drop down menu. You can select between the following options:
- Yahoo
- Jabber
- Skype
- Gtalk
The Timezone of all Contact types by default is set according to your account's Time zone, but you can change it as per your likings (e.g. in case you have a contact in another country).
If you are still a fan of this old-school device, we are here for you. You can set your pager's contact by simply providing a name, the pager's number and the mobile operator (the last one is optional). Keep in mind that as of now, we support pages to US, Canada and UK phone numbers.
In case of an error, the URL contact will open a specific page. You can use this service to reboot your server or perform any other action that can be triggered by opening a specific web page. Our monitoring agents support both HTTP and HTTPS protocols. The URL can be requested using either GET or POST request methods. And here is how this alert method works:
The alert details are sent as a single GET or POST parameter. The parameters are appended to your URL so that you can record them in your database or process them within your web application. In order to easily process the information sent by our monitoring agent, we recommend you to modify the contact's alert contents.
Provide the contact's name and the SNMP server. Using Trap OID is optional. Here's how this contact alerting works:
A SNMP trap will be sent to the configured server. Keep in mind that this contact type cannot receive reports by email. You can download the WebSitePulse.com MIB file (that defines the traps sent by our monitoring agent) either from the contact's configuration page or from the following URL:
Note that no additional fees are added for receiving SNMP traps.
Now that we have covered all Contact types that we currently support, feel free to create the one that best meets your technical and budget needs. In case you have questions, need additional information or assistance – we are here for you 24/7.
How to Customize Alert ContentsSeptember 15th, 2015
Posted in Monitoring
There are many reasons to set up customized alerts from WebSitePulse, such as:
- You are parsing the content of the alerts with another notification and/or monitoring tool.
- You need specific data in the alerts (last resolved IP, the first 100 bytes of the response we received from your server, etc.).
- You only want to receive 1 SMS notification (usually up to 160 characters per message) when we detect a failure.
How to Customize Alerts
Customizing alerts contents is an easy and straight forward process that you can do in less than 5 minutes. Here's how:
Go to Contacts and then click "alert contents".
Once there, you need to choose the notification contact for which you want to customize the alerts, the target type and alert type.
If the alert contents for a specific contact are already modified, you will see a modified link on the right hand side of the contact in question. Clicking it will show you exactly which contents were modified and for which target types the alerts are going to be different than the default ones.
To get the default alerts for a modified contact, click on the "reset" link next to the specific target and message type. Тo modify the contents for a specific contact but for all target and alert types, select the contact and choose to modify all target and alert types.
By clicking "modify" you will proceed with the customization. Кeep in mind that there are going to be 76 different alert contents which you have to modify if you decide to do that for all types of targets and alerts.
The best option here is to modify only the contents for the specific levels of monitoring you use. If you have performance targets, for example, and you do not have any other types of targets, there is no point in customizing the alert contents for the other target types simply because you will never receive such alerts. If you follow that advice, you will save a lot of time and you will not be frustrated with the customization process.
Here is the actual customization section for the alert contents.
At the very top of the page, you will see a list of the contacts for which you want to make the changes. You can select a single contact or multiple contacts and edit the contents simultaneously.
Under the list of the contacts, you will see the target and alert types for which you will be making the changes.
You can use tags in the subject and body of the notification messages. I will soon publish a detailed post on the possible tags and the information they will include in the alerts if you decide to add them.
You can also set maximum alert size (the number of characters in the alert message) and a reply to a mail address.
For the performance target type, there are nine possible notifications and by clicking "save" and "next step" you will be able to customize each and every one of these notifications. You can stop the process at any time and just save the changes you have made so far by clicking the "save" and "finish" button. By clicking "cancel" the changes will not be saved and you will be taken back to the alert contents section of your account.