Is my child autistic? Autism is a topic that rarely, if ever, comes up in conversations and there is a severe lack of awareness about the topic. Approximately 25% of children who have autism go undiagnosed (Preidt, D, 2020). In an age where technology should innovate accessible healthcare, DetectAS is the first step before risking a large medical bill. There is a questionnaire that runs through the M-CHAT™ Modified Checklist for Autism in Toddlers (Diana L. Robins, ph. D), which is largely used by specialists. It employs facial recognition through the use of Convolutional Neural Networks which are trained to identify possible autistic traits on children from 2 to 8 years old, such as lack of eye contact or emotion. And if they do strongly suspect their kid has autism, then DetectAS provides a map of local specialists who can provide more information. We aim to ease fears and give parents the tools necessary to effectively assess whether or not their child has autism.
What it does
DetectAS provides two primary methods of indicating whether or not a child has autism:
Facial Recognition: The parent can either open their phone camera or attach a picture from their computer. The app then scans the child's face to look for common visual indicators of autism. We used Tensorflow to implement a Convolutional Neural Network. There are 3 2D convolutional layers with 32,32 and 64 neurons with 3x3 kernels. This is followed by two fully connected dense layers. We used binary cross entropy loss and an rmsprop optimizer. We then trained our model on the 2536 train images in this dataset and were able to achieve 87.6% accuracy on the 400 test images.
Questionnaire: The parent is then directed to a questionnaire that asks about common behaviors among autistic children. There are approximately 20 questions the parent runs through, and they all require a simple yes or no answer. We included the M-Chat-R, which is a popular questionnaire that is geared towards detecting signs of autism in children and is used by field experts. We only considered simple boolean questions and did not extend further into the depths of the questionnaire. If the answer for questions 1,2,5 and 12 is yes, then the child shows signs of autism. For the other questions, the answer ‘no’ indicates signs of autism. Using this questionnaire, we calculated a probability that the child being autistic.
Resources: Once the parent has navigated through the two detection phases of DetectAS, they are then directed to the resources page. On this page, their location is pinged and the app shows a map of local autism specialists. The parent can click on any given marker to learn more information about that specialist and find contact information.
How we built it
We used Flutter to build our app UI. In terms of our algorithms, we used Tensorflow to implement a convolutional neural network, and managed the data with binary cross entropy loss and an rmsprop optimizer. The CNN enables the facial recognition, and checks for any visual cues of autism. We also used the Google Maps API to provide the parent a list of local autism specialists.
Challenges we ran into
Our primary challenge was the wildly different time zones each team member was in which made collaborating much more difficult than usual. We have two team members in India, one in Mexico, and one in the US. In the long run, it may have helped the project go more smoothly then one would think, because once one teammate would start to wind down for the night, another one would wake up. We also had difficulty implementing each aspect of the project into the app once they were fully functioning in their own standing. This was mostly time consuming and an extensive process, and time is something that we do not have a lot of. Luckily, we divided the work fairly well and were able to keep up a good pace for the extent of the hackathon. Additionally, we don’t have a theoretical basis of how to combine the questionnaire and the facial detection due to our lack of expertise in the area. We considered the quantities separately to avoid any inaccuracies. If we get a positive response from either test, then we recommend consultation with a specialist. If both the responses are negative, then we predict the child shows no signs of autism. We aim to decrease the chance of false negatives from our application by combining the test results.
Accomplishments that we're proud of
We are extremely proud of the sheer amount of work that we were able to produce in such a short amount of time. We thought our initial plans for the app were a bit ambitious, and we not only breezed through those tasks but also added more elements we thought would be useful. DetectAS is something that we think could be really useful to those who are entering the autistic community, and gives a more encompassing range of resources than the apps that are currently available. There are definitely more elements we would have like to add given the time, and the app itself could flow more, but we are proud of what we accomplished in a short amount of time!
What we learned
Nobody on the team had experience with Flutter prior to the event, so we all enjoyed stepping out of our comfort zones. We learned a lot about how to incorporate different technologies into the Flutter app and it felt amazing once it all came together. TreeHacks provided a lot of great workshops and mentorship that we will be able to take into the future and are very grateful for!
What's next for DetectAS
Our hope is that this app sets the tone for medical apps in the future as it provides a good range of functionalities that pertain to its focus. Given more time, we might add more functionality to the questionnaire to look at the users' answers more in depth and give more accurate results. We also would work more on improving the accuracy on our facial recognition, because there is some room for improvement to ensure DetectAS is providing accurate results. Additionally, a better database of resources and more in-depth advice as to initial steps one can take to start building a healthy environment for an autistic child would be beneficial for DetectAS.