All entries for October 2006
October 31, 2006
I’ve started coding a mock up of the algorithm using Java (simply because it’s so easy using Java!) and have implemented the portion where the target colour is chosen. The idea is that during the robots startup phase, the person stands centrally to the robot wearing a plain T-Shirt that doesn’t have the same colours as the background. This initial colour is the colour the robot will use as part of its blob recognition to track the person.
Currently the code will take in a picture of someone standing central in the image. Using our models: Chris, Anthony and me, and my wonderous phone camera skills, the program analyses each pixel in the image systematically and turns the pixel white if there’s a hit, and black if it’s a miss. This is done with some basic statistical comparisons but not before every colour is normalised so that is completely discards any information regarding the intensity of the colours. This means that even if the lighting is very very dark, it is still able to know what colour it is. An averaging filter is then applied on the binary image to calculate the position of the person. This will discard any isolated pixels in the resultant image, therefore eliminating noise. Below are three of the pictures I’ve used and the binary image produced after applying the program. The intersection of the green lines indicate the centroid of the main blob, indicating the calculated position of the person.
October 30, 2006
The SMART paper wasn’t exactly easy reading first time round, but I’ve found the paper that contains the blob recognition algorithm that the first part of the SMART paper is based upon.
A Mobile Robot That Recognizes People
[ http://www.traclabs.com/~korten/publications/tools95.pdf ]
The paper details a method for finding a person in a dynamic environment using colour distinction when that person is wearing a given uni-coloured T-Shirt. The paper then goes into approaching that person, finding their face and performing face recognition. Considering we only really have 2 or 3 weeks to do this we don’t need to go anywhere near into that kind of depth, so for now we’ve been advised by Nasir to simply concentrate on person recognition.
We visited Nasir to gain a bit more information, on what we are expected to achieve and to try to get the CD of robot classes.
We now have the CD that contains all of the robot classes for movement and capture.
Hoi is investigating these as we speak.
The other information we ascertained from Nasir is that due to the presentations starting in a couple of weeks we really need to get a move on.
The first goal of this project is to take input from a webcam using the classes on the CD to grab images and use an algorithm to track a person in a stream of these images, highlighting them with a box to mark there changing location.Tasks ToDo:
- Have a look for papers and find an algorithm to implement
- Implement the algorithm using C++
- Link the algorithm to the input from the webcam
We really only have a week to get these 3 tasks done so we need to get a move on!
Once these tasks are done we can start to worry about tracking and moving the robot.
If everyone would like to meet after robotics in the IBM lab for a meeting
Meeting 31st Oct, 2pm IBM lab
I’m happy to stay for the rest of the evening after the meeting working away if anyone feels like getting cracking.
October 26, 2006
After our first meeting today we had a little peek at the robot we’re going to be programming for. Hopefully we’ll be able to get card access to the technicians lab so we can play about with it once we’ve got some code going.
The robot itself is about 4-5 feet tall and is driven by two motorised wheels. Surrounding the base of the robot are mechanical switches which cut the power to the wheels when a collision occurs. Sensors mounted on it include a web camera and several ultrasonic detectors (one of them high def).
The key points we found out about the robot, at least in its current state, it runs off a normal PC using an ITX motherboard, currently running Windows XP. We’ve been advised that C++ is the preferred language to use as it’s the easiest to interface with the current API’s and interfaces attached to the computer but it does currently support .NET and Java. A CD which includes these libraries exists so we need to get a copy of that.
Tom is going to email Nassir with some questions regarding what direction we should be heading in the initial stages.
October 24, 2006
This blog is intended for communications between all group members regarding the coursework for CS313 Mobile Robotics. Our coursework is a programming based project on the subject of: -
“Person tracking software for the DCS MobRob
Write a program that continuously grabs input images from a camera containing people and tracks a person as they move within the range of the camera. The ultimate objective of this exercise is to incorporate the tracking software in the DCS Mobile Robot which would then follow the person wherever they go.”
We’re due to do some presentations during weeks 7 and 8 and the final deadline for the coursework in Monday 27th November.
On the module website there are loads of papers listed, but two are specifically named: -
It would be handy if all group members can read at least one of these by our group meeting that we’ve planned on Thursday 11am Week 4.