The Problem
The training data for the proposed system is as follows.
- A Boolean matrix representing the surface adjacency of a solid geometric design
- Also represented in the matrix is differentiation between interior and exterior angles of edges
- Labels (described below)
Convex and concave are not the correct terms to describe surface gradient discontinuities. An interior edge, such as made by an end mill, is not actually a concave surface. Surface gradient discontinuity, from the point of view of the idealized solid model, has a zero radius. An exterior edge is not a convex portion of a surface for the same reason.
The intended output of the trained system proposed is a Boolean array indicating the presence of specific solid geometric design features.
- One or more slot
- One or more boss
- One or more holes
- One or more pockets
- One or more steps
This array of Boolean values is also used as labels for training.
Possible Caveats in Approach
There are mapping incongruities in this approach. They fall roughly into one of four categories.
- Ambiguity created by mapping the topology in the CAD model to the matrix — solid geometries that have primary not captured in the matrix encoding proposed
- CAD models for which no matrix exists — cases where edges change from inner to outer angles or emerge from curvature
- Ambiguity in the identification of features from the matrix — overlap between features that could identify the pattern in the matrix
- Matrices describing features that are not among the five — this could become a data loss issue downstream in development
These are just a few examples of topology issues that may be common in some mechanical design domains and obfuscate the data mapping.
- A hole has the same matrix as a box frame with internal radii.
- External radii may lead to oversimplification in the matrix.
- Holes that intersect with edges may be indistinguishable from other topology in matrix form.
- Two or more intersecting through holes may present adjacency ambiguities.
- Flanges and ribs supporting round bosses with center holes may be indistinguishable.
- A ball and a torus have the same matrix.
- A disk and band with a hexagonal cross with a 180 degree twist have the same matrix.
These possible caveats may or may not be of concern for the project defined in the question.
Setting a face size balances efficiency with reliability but limits usability. There may be approaches that leverage one of the variants of RNNs, which may permit coverage of arbitrary model sizes without compromising efficiency for simple geometries. Such an approach may involve splaying the matrix out as a sequence for each example, applying a well conceived normalization strategy to each matrix. Padding may be effective if there are no tight constraints on training efficiency and a practical maximum for number of faces exists.
Considering Count and Certainty as Output
To handle some of these ambiguities, a certainty $\in [0.0, 1.0]$ could be the range of the activation functions of the output cells without changing the labeling of the training data.
The possibility of using a non-negative integer output, as an unsigned binary representation created by aggregating multiple binary output cells, instead of a single Boolean per feature should be at least considered as well. Downstream, the capability to count features may become important.
This leads to five realistic permutations to consider, that could be produced by the trained network for each feature of each solid geometry model.
- Boolean indicating existence
- Non-negative integer indicating instance count
- Boolean and real certainty of one or more instance
- Non-negative integer representing most likely instance count and real certainty of one or more instances
- Non-negative real mean and standard deviation
Pattern Recognition or What?
In the current culture, applying an artificial network to this problem is not normally described as pattern recognition in the sense of computer vision or audio processing. It is thought of as learning a complex functional mapping via convergence in the rough direction of an idea mapping, given proximity, accuracy, and reliability criteria. The parameters of the function $f$, given inputs $\mathcal{X}$, are driven toward the associated labels $\mathcal{Y}$ during training.
$$f(\mathcal{X}) \implies \mathcal{Y}$$
If the concept class being functionally approximated by the network is sufficiently represented in the sample used for training and the sample of training examples is drawn in the same way as the target application will later draw, the approximation is likely to be sufficient.
In the world of information theory, there is a blurring of the distinction between pattern recognition and functional approximation, as there should be in that higher level AI conceptual abstraction.
Feasibility
Would the network learn to map matrices to [the array of] Boolean [indicators] of design features?
If the above listed caveats are acceptable to the project stakeholders, the examples are well labeled and provided in sufficient number, and the data normalization, loss function, hyper-parameters, and layer arrangements are set up well, it is likely convergence will occur during training and a reasonable automated feature identification system. Again, its usability hinges on new solid geometries being drawn from the concept class like the training examples were. System reliability relies on training being representative of later use cases.