Claims
- 1. A method of pattern matching for recognition of objects within an image using a model defined by a set of one or more model primitives representative of large scale structures of an archetype, the method comprising steps of:
deriving at least one target primitive representative of a large scale structure of the image; and for each target primitive:
identifying any model primitives that at least partially match the target primitive; and for each identified model primitive, calculating a figure of merit indicative of a degree of correspondence between the target primitive and the model primitive.
- 2. A method as claimed in claim 1, wherein the step of deriving at least one target primitive comprises steps of:
detecting geometric features within the image; analyzing the detected geometric features to find large scale structures of the image; approximating each large scale structure with at least one respective primitive; deriving a basis from at least one of the primitives; and representing each of the primitives as invariants in the derived basis.
- 3. A method as claimed in claim 2, wherein the step of approximating each large scale structure comprises a step of mapping a respective primitive through at least a sub-set of the geometric features forming the large scale structure.
- 4. A method as claimed in claim 3, wherein each primitive comprises either one of: a straight line-segment and a curve segment.
- 5. A method as claimed in claim 4, wherein each curve segment primitive is defined by any one of: an elliptic function; a quadratic function; a cubic function; and a spline function.
- 6. A method as claimed in claim 3, wherein the step of mapping a primitive comprises a step of finding a largest primitive that can be mapped along the respective large scale structure, consistent with a predetermined maximum error tolerance between the primitive and the geometric features spanned by the primitive.
- 7. A method as claimed in claim 6, wherein the step of mapping a primitive further comprises a step of forcing end-points of each primitive to lie on respective ones of the geometric features spanned by the primitive.
- 8. A method as claimed in claim 6, wherein, when a single large scale structure of the image is approximated by a respective set of two or more primitives, the step of mapping a primitive further comprises a step of forcing adjacent ones of the set of primitives to intersect at respective adjoining end points.
- 9. A method as claimed in claim 2, wherein the step of deriving a basis comprises steps of:
calculating an origin of a respective local coordinate system; and calculating an orientation of the respective local coordinate system.
- 10. A method as claimed in claim 9, wherein the step of deriving a basis comprises steps of:
deriving a plurality of bases; and selecting at least one of the plurality of derived bases.
- 11. A method as claimed in claim 10, wherein the step of selecting at least one of the plurality of derived bases comprises any one or more of:
selecting bases derived using relatively large primitives; selecting at most two bases derived using any one primitive; selecting bases having respective origins distributed substantially evenly across the image; and selecting bases in respect of which the orientation of the respective coordinate system is parallel to at least one primitive used in the derivation of the respective basis.
- 12. A method as claimed in claim 9, wherein the step of calculating an origin comprises a step of calculating an intersection point of a pair of extrapolated primitives.
- 13. A method as claimed in claim 12, wherein the step of calculating an origin comprises a step of calculating a centroid of two or more intersection points.
- 14. A method as claimed in claim 13, wherein each intersection point is weighted by lengths of the respective primitives used to calculate the intersection point.
- 15. A method as claimed in claim 9, wherein the step of calculating the orientation of the respective local coordinate system comprises steps of:
selecting one of the primitives used to calculate the origin; and setting the orientation of the coordinate system based on an orientation of the selected primitive.
- 16. A method as claimed in claim 15, wherein the step of calculating the orientation of the respective local coordinate system comprises a step of calculating an average orientation of the primitives used to calculate the origin.
- 17. A method as claimed in claim 16, wherein the orientation of each primitive is weighted by a length of the respective primitive.
- 18. A method as claimed in claim 2, wherein the step of representing each of the primitives as invariants in the derived basis comprises a step of calculating parameters of each primitive relative to a respective local coordinate system of the derived basis.
- 19. A method as claimed in claim 1, wherein a hash table is used to store references to each of the model primitives, and wherein the step of identifying model primitives comprises steps of:
mapping the target primitive to the hash table; identifying any bins of the hash table crossed by the target primitive; and inspecting each of the identified bins to identify each model primitive referenced in any of the identified bins.
- 20. A method as claimed in claim 19, wherein the step of mapping the target primitive to the hash table comprises a step of mapping end-points of the target primitive to respective end-point bins of the hash table.
- 21. A method as claimed in claim 20, wherein the step of identifying bins crossed by the target primitive comprises a step of identifying any intermediate bins crossed by a line extending between the end-point bins and tracing a path of the target primitive projected onto the hash table.
- 22. A method as claimed in claim 1, wherein the step of calculating a figure of merit comprises a step of calculating an orthogonal projection of the target primitive onto the model primitive.
- 23. A method as claimed in claim 22, wherein the step of calculating an orthogonal projection comprises calculating a length of a portion of the model primitive in respect of which the target primitive lies within a predetermined error corridor about the model primitive.
- 24. A method as claimed in claim 23, wherein the predetermined error corridor is selected based on an expected error tolerance in the location of detected local features relative to the target primitive.
- 25. A method as claimed in claim 22, further comprising a step of accumulating orthogonal projection lengths calculated in respect of each model primitive.
- 26. A method as claimed in claim 25, wherein each model primitive is associated with a respective model basis, and wherein the step of accumulating orthogonal projection lengths comprises, for each model basis, a step of calculating a sum of the orthogonal projection lengths calculated in respect of model primitives associated with the model basis.
- 27. A method as claimed in claim 26, further comprising, for each model basis, steps of:
calculating a respective relative coverage indicative of a proportionality between the respective calculated sum of orthogonal projection lengths and a predetermined total length of the model primitives; and selecting, as a candidate basis, the model basis having the highest relative coverage.
- 28. A method of deriving a model use in a pattern matching method in accordance with claim 1, the method comprising steps of:
deriving at least one model primitive representative of large scale structures of an archetype; sampling each model primitive at two or more respective sample locations; mapping each sample location to a respective sample bin of a hash table; and inserting a reference to the respective model primitive in the sample bin.
- 29. A method as claimed in claim 28, wherein each model primitive is sampled with a granularity selected on the basis of desired recognition accuracy and speed.
- 30. A method as claimed in claim 28, further comprising steps of:
defining a respective error bar about each sample, the error bar reflecting an expected error tolerance in the location of detected geometric features relative to the primitive; mapping each error bar to corresponding error bar bins in the hash table; and inserting a reference to the respective model primitive in each of the error bar bins.
Priority Claims (1)
Number |
Date |
Country |
Kind |
2,354,301, |
Jul 2001 |
CA |
|
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based on, and claims priority of U.S. Provisional Patent Application No. 60/295,583 filed on Jun. 5, 2001, and Canadian Patent Application No. 2,354,301, filed on Jul. 27, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60295583 |
Jun 2001 |
US |