In the dental industry, there was a recent surge in utilizing 3D-printed dental casts (impressions) to identify and detect dental problems. As compared to a plaster cast, a 3D-printed cast is a more sturdy, stable, and precise option for a dental technician since 3D-printed casts can endure multiple inspections without losing details. As compared to a milled cast, a 3D-printed cast has a more complex structure with a higher level of detail[1]. Most importantly, a 3D-printed cast is a nonpareil timesaver since the dentist can transfer its digital copy to the dental technician after performing an intra-oral scanning on the patient in seconds. Besides providing the patient a more comfortable experience, a digital workflow ending with a 3D-printed cast often ensues a more accurate scanning result, obviating potential mistakes and inaccuracies.
Although 3D printing is relatively new to the dental industry, 3D-printed dental casts exhort countless benefits and opportunities when creating dental products. However, after perusing recent articles on 3D printing applications in the dental industry, I noticed that there are not many promising tools or methods to inspect the 3D-printed cast accuracy and efficiency for dental technicians. Therefore, I decided to build a user-friendly and accessible device employing an object detection model to classify 3D-printed casts in the hope of assisting dental technicians in detecting cast accuracy and malfunctions.
To extrapolate and interpret dental cast categories (classes) accurately, I needed to collect data from actual 3D-printed dental casts in order to train my object detection model with notable validity. Therefore, I purchased numerous dental cast STL files identified with different tags (labels) and printed them with my SLA (HALOT-ONE) and FDM (CR-200B) 3D printers:
Big Central Teeth
Antagonist Teeth
Orthodontic Superior
Prognathous
Strange Teeth Inferior
Strange Teeth Superior
Failed
Implant
Since Sony Spresense is a high-performance development board intended for edge computing in sensor analysis, machine learning, image processing, and data filtering, I decided to utilize Sony Spresense in this project. To capture images and store them on an SD card to train my object detection model, I connected the Spresense extension board and the Spresense camera board to the Spresense main board (CXD5602). Then, I utilized a TFT LCD touch screen (ILI9341) to display the video stream and captured images. Also, I added a tiny thermal printer to the device so as to print the detection result after running my object detection model on Sony Spresense.
After completing my data set by taking pictures of 3D-printed dental casts, I built my object detection model with Edge Impulse to make predictions on dental cast accuracy categories (classes). I utilized Edge Impulse FOMO (Faster Objects, More Objects) algorithm to train my model, which is a novel machine learning algorithm that brings object detection to highly constrained devices. Since Edge Impulse is nearly compatible with all microcontrollers and development boards, I had not encountered any issues while uploading and running my model on Sony Spresense. As labels, I appended three main categories (classes) to the file names while capturing and storing pictures:
Cast
Failed
Implant
After training and testing my object detection (FOMO) model, I deployed and uploaded the model on Sony Spresense. Therefore, the device is capable of detecting dental cast accuracy categories (classes) by running the model independently without any additional procedures.
Lastly, to make the device as robust, sturdy, and compact as possible while experimenting with 3D-printed dental casts, I designed a dental-themed case with a sliding side cover (3D printable).
So, this is my project in a nutshell 😃