Bone age is a common indicator of children’s growth. However, traditional bone age assessment methods usually take a long time and are jeopardized by human error. To address the aforementioned problem, we propose an automatic bone age assessment system based on the convolutional neural network (CNN) framework. Generally, bone age assessment is utilized amongst 0–18-year-old children. In order to reduce its variation in terms of regression model building, our system consists of two steps. First, we build a maturity stage classifier to identify the maturity stage, and then build regression models for each maturity stage. In this way, assessing bone age through the use of several independent regression models will reduce the variation and make the assessment of bone age more accurate. Some bone sections are particularly useful for distinguishing certain maturity stages, but may not be effective for other stages, and thus we first perform a rough classification to generally distinguish the maturity stage, and then undertake fine classification. Because the skeleton is constantly growing during bone development, it is not easy to obtain a clear decision boundary between the various stages of maturation. Therefore, we propose a cross-stage class strategy for this problem. In addition, because fewer children undergo X-rays in the early and late stages, this causes an imbalance in the data. Under the cross-stage class strategy, this problem can also be alleviated. In our proposed framework, we utilize an MSCS-CNN (Multi-Step and Cross-Stage CNN). We experiment on our dataset, and the accuracy of the MSCS-CNN in identifying both female and male maturity stages is above 0.96. After determining maturity stage during bone age assessment, we obtain a 0.532 and 0.56 MAE (mean absolute error) for females and males, respectively.