Hello everyone My name is Krunoslav Vinicki and I am studying veterinary medicine at the University of Zagreb, Croatia. I started making an open source medical image database - the first of its kind in veterinary medicine that I am aware of. I already took over 2000 pictures of cat reticulocytes and i got about 96% accuracy with fastai library.
The problem is that I started coding literally 4 months ago and I never started an open source project before. I can make database with some fellow students and professors, but we will definitely need some help with open sourcing it and making a better model (For example I cropped the image and used just a regular CNN from lesson 1, but for usable application we probably need a single shot multi box detector.
Let me first explain what reticulocytes are and why this is an important problem:
Reticulocytes are immature erythrocytes and it is perfectly normal to find them in blood. After they are released from bone marrow, they are staying in blood for about 24h (in humans) after which they mature in erythrocytes (red blood cells). So, why are they so important then? Well, If we have an anemic cat, we want to know is this cat producing new erythrocytes. If we find a lot of reticulocytes then we know that the answer is yes. But, If we are not finding any reticulocytes we have a big problem - this cat’s bone marrow is not producing any new red blood cells.
In other words, “Identification of reticulocytes allows assessment of whether bone marrow is responding to an anemia (given sufficient time) by increasing red blood cell (RBC) production.”
As i already said, in humans reticulocytes stay in blood for 24h after which they turn into erythrocytes. But in cats, it is a little more complicated: they have two types of reticulocytes: aggregate and punctate. Aggregate reticulocytes stay in blood for 12-24h and then they turn into punctuate which can stay for up to a week until they are turned into mature red blood cells. For that reason, we are counting only aggregate reticulocytes so humans (and machine) needs to differentiate between these two reticulocytes. And here comes the main problem: This can be very subjective and human error can in some cases go up to 30% - a huge problem. And that’s why 96% accuracy is really good.
Sometimes the difference is not so clear
I think that machine learning can be a game changer in veterinary medicine. First of all, unlike in human medicine we have more then one species - veterinarians can’t know everything about every animal. Lets take for example White Blood Cells (WBC) count. In human medicine it is quite easy - it is done by laser flow cytometry. But this automated method can only be used on mammals. But what about birds and reptiles? For them only the manual way is possible but it is not done in practice because veterinarians, again, can’t differentiate WBC of every species.
Also, veterinary medicine is in some regard very similar to human medicine in third world countries: lot of pet owners (at least in Croatia) are not prepared to give a lot of money for even the most basic laboratory tests (and the same laboratory tests are usually more expensive then in human medicine).
i still haven’t uploaded the database. I suppose it is best to upload it on the my faculty web page. But, I can send it through the email if anyone wants to play with it.