Hacker News new | comments | show | ask | jobs | submitlogin
Dog Breed Identifier: from Keras program to Android app (habr.com)
103 points by atomlib 8 days ago | hide | past | web | 47 comments | favorite





I have only ever written one blog post on medium. I don't know why, but it still gets hits: https://medium.com/@thepulkitagarwal/deploying-a-keras-model...

The reason I bring this up is because this page uses code directly from my blog post (the function print_graph_nodes). I was surprised to see that on this page, although there is no reference to my post here.

I remember wasting time on writing this function to ensure that the formatting (ie the '=======================INPUT===================') looked good :P This had actually helped me find a bug in my own code.

Happy to know I helped in some way :)


My mom stumbled upon showing her dog at dog shows (she has a Norwegian Elkhound whose linage has won Westminster). It’s a strange subculture with all the drama you’d imagine. One big source of drama is over the judging and I told my mom one should now be able to make an AI tool that can judge the a dog better than a human. You’d need to train not just on breed but on top of breed (there are all sorts of ‘specs’ for show dogs). This would cause an INSANE stir in the dog show community. If anyone wants to give it a try, let me know and Ill help!

The movie "Best in show" certainly plays on that drama in a hilarious way.

Netflix's episode on dog shows for their "7 days out" documentary series was strangly familiar after having recently watched Best in Show again. There were eery similarities. I prefer Guest's rendition but you could watch them side by side..

https://www.tvinsider.com/740004/netflix-7-days-out-westmins...


Something like this would be tremendously useful at the Olympics, but taking the politics out will defeat the purpose for a lot of people.

It would only move the drama from the real time judging to the determination of the training data set.

I see it playing out in a different way. The AI judge would never be officially acknowledged. Instead, it would be this dark judge that people turn to when their favorite dog is misjudged. “See, the computer said he was the winner!”. It would be a while before this group has the sophistication to blame the data set.

Maybe having 3 human judge and one AI judge would be something acceptable from the public. That is an interesting discussion anyway.

That's not necessarily a bad thing. It could lead to more people learning and understanding machine learning models, and improvements from the constructive criticism.

That’s a great point. The politics of judging, and arguing about it, is probably half of the “fun”.

> It’s a strange subculture with all the drama you’d imagine.

Anyone who's seen the great Christopher Guest documentary on the subject would agree. ;)


This is a lovely tutorial. There aren't enough cross disciplinary tutorials like this that take you through what's necessary to finish a job. Very nice. Thank you.

There's a codelab for folks looking for 15 min training on local cpu after simply replacing folders of flowers with whatever & simply running all commands mentioned here on an Android/iOS app in realtime https://codelabs.developers.google.com/codelabs/tensorflow-f...

    catch (Exception e)
    {
        e.printStackTrace();
    }
This looks like an inadvisable move. Do android apps recover the data written to stderr anywhere or does this trace just go into the bit bucket? Why not let the unwind continue and if the application crashes, android can do its automagic bug reporting for you?

If Java requires you to catch the exception or declare a throw, then it seems like it should throw until you get to an outermost stack frame that's sane enough to handle it (open an error dialog box, retry, log the error, etc).

Sorry, the app and the idea are super cool, and keep up the good work. This is intended as constructive criticism.


That catch block is often generated automatically by android studio when you create a try block. Not addressing your comment about the general inadvisability of merely logging the error, one can, as an alternative to standard error printing, replace

e.printStackTrace()

with something like

Log.e(TAG, "Caught and ignored an exception", e)


I believe Google Lens is the best example of this technology used practically.

I've used it to identify plants and insects when on walks. Really fun to use.

https://lens.google.com/

Feels very Star Trek.


I also use Google Lens all the time on my Pixel 2 phone to identify dog breeds, when I'm at dog parks with my pup. You just snap any photo, then click the "Google Lens" icon in the camera, and it identifies what you're looking for. Given a dog, it shows several potential dog bread matches, along with links to learn more about them.

> Given a dog, it shows several potential dog bread matches

I'm more interested in the wine pairings.


Kind of curious what it would make of the current foster puppy, where our best guess is “black” and possibly terrier cross, which is what the vet puts down when it’s not obviously a large dog.

This is like "Hot Dog" / "Not a Hot Dog". But the technology has advanced somewhat in the past 2 years. Very impressive.

I came here to post this. :)

Good. Better if there was an iphone version. It export pb format. Not sure the 2nd part workable on iOS side.

I know this is HN and not Reddit, but I'm surprised by the lack of `Not Hotdog` references.

I tried the app and it didn't successfully identify either of my dogs.

Welcome to the reality of today's "AI".

They (AI) promised us flying cars, instead we got Dog Breed apps.

Shame most people are so obsessed with what breed their dog is. Would lead to less dogs (and cats) in shelters and having to be euthanized if they weren't.

This is a common opinion (which I don't agree with) that is worth addressing directly, and it has consequences for how we understand and use the sorting capabilities of AI.

The binary outcome consequences of misidentifying a dog breed in an app are not really important, but the ability for the breed to be a factor in informing some other aspect of a model is useful to businesses that optimize cash flows.

For example, I love stafforshires, and I also recognize that a machine learning scheme that added them as a factor in a credit risk evaluation might disadvantage a number of people, but be more profitable than a model that did not include it. If this is offensive, consider that breed specific legislation already allows you to be denied home insurance (and consequently, mortgages and equity loans) based on having one of these dogs today.

The code in this project could be used to mine social media images for breeds correlated with credit risk factors, and offer interest rates for the owners accordingly, and a credit instrument portfolio that incorporated this factor could outperform one that did not. In regions with breed specific legislation, someone with an banned dog has already demonstrated a deviation in their risk behaviour.

Shelters are not full of failed show dogs. In fact the majority of them are mixes, particularly mixes preferred by people who were guided by sentiment over more sound reasoning factors when they got the dog in the first place - hence why the dog is in the shelter, and why they probably can't get credit on favourable terms.

Is this just or ethical? No, it's predatory, but that's the social media bargain, and projects like this are worth keeping track of if you like dogs, and access to credit.


> breed specific legislation already allows you to be denied home insurance (and consequently, mortgages and equity loans) based on having one of these dogs today.

!


the number of dogs in shelters has very little if no correlation to their obsession with particular breeds but instead their lack of understanding what pet ownership is about. Far too many expect animals to adapt fully to their needs and scheduled without regard for the animal's needs.

Many also pick up pets because of child pressure or simply fads. 101 Dalmatians was a shit show because of the number which ended up abandoned as people didn't realize that a large dog was an impact.

Rescue groups are full of dogs that are abandoned because they are too old, required expensive medication, developed eye issues, or worse. As in, far too many people are not mature enough to own pets. Sadly the same could be said for many having children as well.


And the "Air Bud" movies. And all those Puppies-that-talk cartoon movies. And puppy yoga. And all the "surprise puppy" youtube vids. Pretty much every media event involving puppies has encouraged people to buy dogs who shouldn't own them. Puppies are only puppies for a day or two before they aren't puppies anymore.

If I were king of Disney or Youtube I would ban all cute puppy footage.

I'd also discourage anyone who has never owned a dog from purchasing a particular breed. If you have no experience with dogs, get a mutt. If you want a larger dog, get a lab-Shepard cross. If smaller, any of the bichon-havanese crosses.


Disney should have bought this one: https://en.wikipedia.org/wiki/A_Dog%27s_Purpose_(film)

(spoilers, of course)


A horrible movie based on an old hollywood trope: The traditional purpose of a dog in a movie is to suffer and die. They are the vehicle for teaching kids about death, a metaphor for human suffering, or to enforce class distinctions as the dog heroically dies defending its betters. This movie just rolls that all together into a series of horrible dog deaths.

We see this flipped in pg-13 movies these days where writers, who grew up watching dogs suffer under the old rule, wouldn't dare kill off a dog (independence day, 1 and 2). So the presence of a dog in a scene now reassures the audience that all will be well. But in an R-rated movie... if I see a dog on screen I'm tempted to walk out of the theater because I know it won't end well.


So many Corgis and, lately, Samoyeds (big fluffy white dogs) are being bred now, it's upsetting. And the huge popularity of French Bulldogs is depressing to me because they have to be born by c-section.

People do want specific traits in dogs though, whether for hunting, for companionship, or agility etc. I just wish breeding dogs had better oversight and certification along with better custodianship of the breed's viability. (i.e. none of this more and more extreme visual traits that many "breed experts" judge against)

Especially when you understand just how sentient these beings are. Euthanizing them shouldn't be so widespread.

We have serious responsibilities to another species that we are not maintaining, we should be doing better for our dogs.


What's wrong with Samoyeds? I understand corgis (dwarfism) and bulldogs (breathing problems) and american german shepherds (hip problems). A quick internet search didn't bring anything up regarding samoyeds and even says they have 12 - 14 life span and breed has been around for a long time.

Increased demand leads to backyard breeders who may not have any goal except for churning out puppies. Hip dysplasia and various pancreatic/liver/kidney issues should be proactively monitored for and susceptible dogs should not be bred.

We should be doing better for all other animals, there's nothing special about dogs.

Breed specific health issues could indeed be linked to wanting pure breeds instead of a mixed breed.

In the UK we have so many staffordshire bull terriers in kennels, or abandoned, they get 24 hours when caught, and then euthanised if not claimed by owners or a rescue, in my opinion it is a product of both irresponsible breeders and irresponsible owners.

We are currently fostering a staffie, he is the sweetest thing, a little snugglemonster, but he is one of the lucky ones, most don't survive the 24 hours.


>> Breed specific health issues could indeed be linked to wanting pure breeds instead of a mixed breed.

Demand definitely has something to do with it.

I would also argue that quality of supply has something to do with it too. There are good breeders and bad breeders.

I tend to think that the good breeders make every effort to avoid allowing health issues to get bred to the next generation. My breeders would take a dog with health issues out of their breeding program the moment they found out. It also helps that a large number of the people who got their dogs from my breeder have gotten to know each other on social media, so if there's an issue, we're much more likely to hear about it.

I have a suspicion that bad breeders likely outnumber good breeders, and produce much more of the supply of purebreds, which increases the incidence of purebreds with health issues.


The USA also has a 'pit bull' problem, everyone wants to breed them in their backyard for some reason. They think they can sell them for a ouple hundred dollars each, end up giving most of them away and turning the rest loose on shelters. And most people who buy one can't take care of it so they put it up for donation. And nobody wants to spay or neuter their damn dogs.

The French Bulldog seems to be the biggest trend on social media right now. Those things are not cheap. $3,000 for a pup is not unheard of.

Not only is $3,000 not unheard of, it's common. $10K for a french bulldog or small pomeranian or chihuahua is not unheard of.

So what happens to all the cats and dogs that are bred that no one buys? Some selfish person says "I want a xxx because they look cute! (And of course I'll get their nasty claws ripped out duh)" And so the breeder produces a whole litter just to supply demand for a single dog or cat. Where do the others go? Best case scenario, a shelter and then a loving home. Let's not talk about worst case scenario.

That depends on how ethical the breeder is.

My breeder has a waiting list, and you are not guaranteed to be accepted as a potential adopter (i.e., there's a detailed questionnaire to fill, and you have to pass their "smell test" when they meet you). They have a fixed number of litters per year (litter size can vary though, so you can wait a long time to get a dog), and they never increase that number no matter how much demand there is.

They never have a problem finding a home for their pups, because they have a reputation for being good breeders and for their dogs not having health issues.


Maybe if people acted responsibly in the first place there would be less dogs in shelters.

That’s such a silly thought when you consider every breed has a different temperament, size, life expectancy, intelligence, etc. it’s important to identify what kind of breed you want before getting a dog and IMO the lack of due diligence before hand is the reason so many dogs are given back.

why is it an android app instead of a web page? makes no sense ...



Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: