This week I have made some big progress in the application; I have finally been able to detect whether a face is in the picture. On top of being able to find the face I've been able to determine the distance between the eyes (in pixels) as well as the center point of the face and the confidence level if it's a face or not. All of this data per face is being stored in my FaceNamePair which holds all of this information. The plan from here is to use the midpoint of the face along with the eye positions to find a ratio for a distance between the eyes other than pixels. This is because depending on how close or far away the person is to the camera when the picture is taken, the distance will vary even with the same person. However, if we use a ratio, this distance will be a lot more consistent. I will then be creating a dynamic ArrayList of FaceNamePairs which will hold every face/name pair that was created for each picture taken by the app. Then whenever a new picture is taken, it will find the picture and name with the closest ratio and ask whether this is the person in the new picture. The issue that is currently holding me back is saving this list of FaceNamePairs to a file and being able to read them again. This is used for keeping data per session, otherwise currently all data is wiped as soon as the user exits the app; which obviously makes the app useless.
I am currently working on getting "accounts" set up so there is a way of matching a name with a face. Here is what I have thus far... Here is the "My Files" folder on the phone. This file stores all of the external files that are created by apps. As you can see, when I have the app startup it checks to see if there is a file here named "FaceRecognition" if there isn't (first time starting up) it creates this file. The DCIM folder is the default folder where pictures that are taken from the camera app are stored. By default pictures that are taken in my app are stored int eh DCIM folder. I also have all of the photos being saved in the phones internal memory storage which is not accessible to the users except through my app. The question that I have currently is whether I should make the photos accessible to the user outside of my app. In other words, users could go into the FaceRecognition folder and edit or delete photos and files such as accounts. Should the photos just be stored in the photo gallery? Or should all files be stored internally and accounts and photos can only be edited in the app itself? This week I took a trip to Hawaii with my band, which has delayed major progress on my project. However, Dr. Pankratz has supplied me with an android phone to test my application on. This has greatly improved testing times rather than running the emulator on my computer which is supplied by android studio. Since I am developing on a mac I had to download Android File Transfer in order for Android Studio to recognize that the android device was connected to my computer. I also had to go into the phone settings and enable Developer Mode in order for the phone to be used for testing and debugging. I have been able to save a photo to the phone that was taken from my app, however it is currently being saved to the photo gallery, which, as explained before, is an undesired result. I will continue to look up how to create a file system that is private for my app.
|
garrett moodyThis is my blog about my capstone project. Archives
May 2015
Categories |