JoakimSoderberg / catcierge

Image recognition (to keep cat prey out) and RFID chip reader system for automated DIY cat door.
GNU General Public License v2.0
62 stars 13 forks source link

Frontal images #6

Open ghost opened 8 years ago

ghost commented 8 years ago

Unfortunately you have a gmail address, and I can't reply to gmail addresses. Google does not think that my IP address is "authorized" - whatever that means - even though my email address is registered with my Google account.

The profile images with high contrast are good, and what I've tried to do so far is to extract the profile from the images by locating edge maxima horizontally and diagonally. This converts the image into a simpler 1D profile which can then be fed into the neural net. The profile is normalised so as to remove translational effects. I thought this would be the simplest and fastest initial strategy.

I havn't got very far with testing it yet, since I havn't had much time and there have been other priorities. Currently there are still bugs which need to be fixed, but I think this should be a tractable learning problem.

If the simple profile extraction doesn't work well then I could try convolutional deep learning (convnets) on the full image. I expect that frontal images would also work, especially if you want to do cat facial recognition.

As for raspberry pi, That probably won't be powerful enough for training, but you can do the training on a laptop and then transfer the results to the pi. libdeep can export the trained neural net as a standalone command line program which can then run on very low power systems such as an arduino.

JoakimSoderberg commented 8 years ago

Oh ok, annoying with the Gmail thing :(

ok thanks for the insights, it'll be interesting to see what you come up with. I'd be interested to incorporate it in this project if it works good eventually.

Yea I do all development on other machines, I just meant I run the detection part on the raspberry pi. When I've been reading about deep learning in general, all the performance issues mentiond has been about the training. But if a trained network can run on something like an Arduino I understand why, it just isn't an issue :)

The convolutional method sounds like a better match for frontal facing images, since there won't be a high contrast clear edges kind of scenario. The classifier that mostly interests me is not simply recognising if it's a cat face and finding that. But rather if it's a cat face with prey involved. Right now with my haar cascade detector, I only use that to find the cats face. Then I use a second, hand crafted step where I figure out if there is some prey there.

That last part is obviously the most finicky part of it all, so if one could train a neural net to do all of it, using front facing images is a lot more viable. But this requires a lot of data, so I'll need to going with my plans of more cameras to gather it all :)