hAiR
Marc Breisinger
Matthias Schicker
Raphael Wimmer
The Mirror
hAiR is a virtual mirror that augments a haircut directly on the users head. The new hairstyle can be live-previewed this way before the irrevocable real cut. Go here for a more extensive description:
http://poroba.com/komaxx/hair.php
Virtual hairstyles - Brainstorming
In front of the user a journal with pictures of different haircuts is placed. It is tracked by an extra camera and the pages have markers on it. So the machine knows which cut is currently examined and augments it on the users head. Their will also be a page with a bold head and the user will be able to create a custom hairstyle.
hAiR examines the users haircolor and colors the vitual hairstyle according to that.
When the user touches the head with the designated brush and turns it, a strand comes out of the head and he can pull it longer till he releases. Another option would be to let it grow to a definite or random length.
Brushes
- Brushes are used as general controllers. The user can choose from a couple of them, each controlling different attributes, like color, form and strands.
- To have something like a mouseclick, a rotation of the brush in one direction will do the job and turning it into the other direction is like releasing. The rotation is only seen as a click to start a strand, if the brush is near the head and only seen as a strand release, if a strand is opened and a little way from the head.
Current Screenshots:
--
MatthiasSchicker - 06 Jul 2005
Technical Implementation
- two cameras: see example twoView from ARToolkit. Change the video sources to /dev/video0 and /dev/video1, resolution to 640x480. update: Since two cameras are not supported by the ARToolikt-Libraries on the Windows-platform (the main development-platform), the two-camera-feature is left out for the moment - at least until the linux-portation is done.
--
MatthiasSchicker - 08 Jul 2005
- the application should be working with one camera, too. Then you will have to hold up the specific marker from the journals current page to show the machine the chosen haircut.
--
RaphaelWimmer - 15 Jun 2005
- The brushes are similar to those of the kind you can curl your hair with and suggest the user the gesture of turning it. They have of course markers stuck around it and are tracked as a multimarker. Realization: 5-6 markers form a multimarker that goes round the brush and is used for the modification of the specific value. Another single marker is placed over every one of the multimarker patterns for identification of the specific brush. This way we need one marker per brush plus 5-6 markers for the rotation, but they are the same for every brush.
- A flexible device (some kind of cap) is placed thight on the head. Eight (hard) markers are placed along the edge and two along the middle line over the head. This is used to track the position and calculate the size of the head and so the scaling of the virtual haircut.
Realization: First the machine expects a default multimarker and then tries to correct the position values till the recognition is best. Then it can calculate and correct the size of the haircut. (Though: For a start we will implement this with a standart size without recalibration).
- The journal has a designated marker on the outside. When this marker is found the haircut will be reset.
- First draft of the spatial relations between virtual and real objects (scene graph):
--
MatthiasSchicker - 21 Jun 2005
--
MarcBreisinger - 24 Jun 2005
Competences (at the moment):
- Marc: Transition to the use of ARToolkitPlus-Marker (Software & Devices)
- Matthias: Improvement robustness of marker-recognition and interaction; new drawing-methods for strands
- Raphael: Portation to Linux; Creation of new 3D-haircut-model
Fundamental
- Choose haircut
- Change Color
- Add strands. Strands grow out in a standard animation / Strands are "painted" with a brush.
- standard head size
- reset of all strands by specific marker on outside of journal
- Overblending between different (escalation-)states of a particular haircut (e.g. small to large)
--
MatthiasSchicker - 08 Jul 2005
Optional
- Settings GUI
- Two-(or multi-)camera-setup
- Automatic camera selection
- headsize computed dynamically
- specific removal of particular strands, maybe with a right-turn near the head
- idea for "no haircut" at startup or reset. Hide multimarker, hide head, show brain, ...
Notes
- VirtualHead must always be painted before the other stuff, as it is transparent.
- The main manager classes "Head" and "BrushManager" assign their own patterns and know what they have to look for.
- BrushManager has seperated methods for update and paint.
Deadlines
Deadlines for June 30th
- System design finalizing -- [done]
- Features prioritized -- [done]
- Implementation: Overall structure implemented (main loop etc.)
- Marker design finished, markers constructed, -- [done] -- RaphaelWimmer - 29 Jun 2005
- All code checked into SVN
- Calibration steps well documented -- [no calibration needed]
Deadlines for July 7th
- System design well documented
- Implementation of core functionality done
- All code checked into SVN
Deadlines for July 14th
- Application finished and tested
- All code checked into SVN
- Final presentation prepared
- Screenshots, Manuals and design docs online
- The switch to ARToolkitPlus has worked out fine (thanks to the Coffee-Shop for standing my annoying questions). The new markers seem to improve the performance. The following markers will be used:
NOTE:
These markers are just scaled to the size we use! They are
not mirrored! So, if you want to use hAiR in a mirror-like style, you have to mirror these markers before!
Brushes
ID: 000 - 006, 020 - 026, 030 - 036, Size:4x4 cm, xx0 is always on top
Color:
Exitation:
Strands:
Journal
ID: 099 - 109, Size:6x6 cm

"Reset"

"Haircut 1"

"Haircut 2"

"Haircut 3"

"Haircut 4"
...
Head-Marker
ID: 010 - 014, Size:4x4 cm
- As the use of a "organic" Multimarker is hard to calibrate we have produced a tool that can measure the relations between markers. It can be downloaded here. For support ask me. Documentation will follow.
--
MarcBreisinger - 08 Jul 2005
Video
Finally we have a small video (12.7 MB) of the system. Enjoy!
--
MarcBreisinger - 02 Nov 2005