Search within Lanny's blog:

Leave me comments so I know people are actually reading my blogs! Thanks!

Saturday, March 21, 2009

Machine Learning and Chicken Fighting

When chickens attack, we have AI
(photo credit: Olena Istomina/iStockphoto)
Does machine learning have anything to do with chicken fighting? Turned out they could certainly be related according to this article I ran across at IEEE Spectrum.

A casual lunch conversation between robotics engineer Stephen Roberts and animal welfare specialist Marian Dawkins sparked an idea of using pattern-recognition technology to help identify misbehaving hens.

Chicken fighting is a difficult and costly problem for poultry farmers. Deprived of space to forage and peck (birds have the instinct to peck the ground in search of food), chickens are likely to peck at other things, like one another, and sometimes to death. A couple of tense chickens might evolve into an all out fight. But if a farmer can identify these stressed-out chickens early, the problem can be reduced. However, trained experts cannot watch the flocks constantly.

Stephen has been researching on human crowd movement using using a machine-vision system based on optical flow -- a technique that measures how the pixels "flow" from one frame to another frame in a video in order to identify object movements. When this technology is applied to chicken monitoring, especially on observing how they walk, it worked great -- after processing footage of more than 300000 commercial free-range chickens, the machine predicted troublemakers matched the flocks that had the most feather damage.

Here's an example video of the optical flow technique.

In order for machine learning algorithms to work with such a problem, the designer must first select features to track. A feature could be the average value of a group of pixels, or a moving pattern. Depending on the machine learning algorithm used, the number of features can span a large range (because some algorithms are smart enough to pick the "better" features to use). Chicken exports then label each data record (one footage of a chick walking) in the training set (say a few hundred records) identifying whether it was a stressed-out chick or not. The machine learning algorithm is then ran against the training set, maybe evaluate its own performance and try to improve against a held out set. The learning result is like a dividing surface in a multi-dimensional space (for example, a line divides a plane or a plane divides a 3D space), and points landing on one side of the dividing surface indicate troublesome chickens while points on the other side of the dividing surface show well-behaved chickens. Stephen had used Hidden Markov Chains (HMC) in his machine learning algorithm according to the IEEE article.

The biggest benefit of this approach is that a computer can take on the laborious constant monitoring work in place of human and only warn farmers when suspecting chickens are identified. Even if there is a good amount of false-positives, the human workload can still be dramatically reduced.

I am very glad to see another real application of AI techniques. Just one more thought: would the chickens behave better if we played ambient music to them all the time?

Video of the Day:

The biggest water balloon fight recorded in human history (4000+ people) right here at BYU in July 2010 during the shooting of Kyle Andrews' official music video "You Always Make Me Smile."