Anda di halaman 1dari 59

Saint--Denis

Universits Paris 8, Vincennes Saint


Master M2 Handi Nouvelles Technologies et Handicap

Rapport de Stage
Analyse Multicapteur pour la Reconnaissance dActivits Humaines
Application au projet GERHOME :
Maintien domicile des personnes ges

Institut National de Recherche en Informatique et en Automatique


INRIA (Sophia(Sophia-Antipolis)
quipe ORION
Prsent par : Nadia Zouba

Responsable du Master Handi :

Responsables du stage :

Jaime Krah Lopez

Franois Brmond
Monique Thonnat

Mars 2006 - Septembre 2006

Remerciements
Je tiens tout d'abord remercier Monique Thonnat, chercheur lInstitut National de
Recherche en Informatique et en Automatique (INRIA) Sophia Antipolis, et
responsable de lquipe ORION pour m'avoir accueilli au sein de son quipe et pour
son soutien pendant le stage. Je la remercie tout particulirement, pour mavoir permis
de raliser cette mission, aussi bien pour son aide tout au long de celle-ci, que pour sa
disponibilit et ses nombreux conseils judicieux.
Un grand merci Franois Bremond, chercheur lInstitut National de Recherche en
Informatique et en Automatique (INRIA) Sophia Antipolis, qui m'a encadr tout au
long de mon stage et qui ma aid dans lexcution de cette mission. Je le remercie
pour sa disponibilit, pour son soutien et pour ses prcieux conseils.
Un grand merci galement tout les doctorants et ingnieurs qui travaillent au sein de
lquipe ORION (Gabrielle Davini, Thinh Vu Van, Etienne Corve, Valery Valentin,
Bernard Boulay, Marcos Zuniga, Vincent Martin et Mohammed Bcha Kaniche)
pour leur disponibilit et la qualit de leurs explications et conseils tout au long de
mon stage.
Merci aussi Catherine Martin, l'assistante du projet ORION pour son aide prcieuse
au niveau administratif.
Plus gnralement, je remercie le reste de l'quipe pour leurs divers conseils, leur
disponibilit et leur soutien amical. Sans l'aide de toute l'quipe, ce travail n'aurait pas
pu saccomplir.
Un grand merci M. Alain Anfonsso responsable du projet Gerhome et ainsi qu M.
Eric Pascual qui mont permis de faire des acquisitions vido et autres capteurs dans
Gerhome.
Je tiens remercier aussi M. Jaime Lopez Krah responsable du Master Handi,
Nouvelles Technologies et Handicap, de lUniversit Paris Vincennes-Saint-Denis
Paris 8 pour ses conseils et la pertinence de ses remarques tout au long de ma
formation.
Je tiens ensuite adresser mes remerciements toutes les personnes qui ont contribu
de prs ou de loin la ralisation de ce stage.
Enfin, un remerciement tout particulier ma famille, mes parents, mes frres et surs,
qui mapportent leur soutien moral et leur force chaque moment de ma vie.
Je souhaite une bonne continuation tous.
Encore merci !

Sommaire
Introduction....................................................................................................................1
1. Prsentation du stage..............................................................................................2
1.1.
Prsentation du laboratoire daccueil.............................................................2
1.1.1.
Prsentation de lINRIA ........................................................................2
1.1.2.
Prsentation de lINRIA Sophia Antipolis ............................................2
1.2.
Prsentation de lquipe Orion.......................................................................2
1.3.
Description de la mission...............................................................................3
1.3.1.
Objectifs et motivation...........................................................................3
1.3.2.
Prsentation du projet Gerhome.............................................................3
1.4.
Description de la plateforme VSIP d'interprtation vido : ...........................5
1.5.
Planning du travail .........................................................................................6
2. Ltat de lArt........................................................................................................7
2.1.
Tlsurveillance mdicale domicile ............................................................7
2.2.
Interprtation automatique dactivits humaines par la vido .....................10
2.3.
Analyse multicapteurs..................................................................................11
2.4.
Fusion de donnes........................................................................................12
2.5.
Les capteurs et leurs utilisations ..................................................................13
2.5.1.
Capteurs de donnes physiologiques ...................................................13
2.5.2.
Capteurs dactivits..............................................................................13
2.5.3.
Capteurs environnementaux.................................................................14
2.5.4.
Exemples de systmes de capteurs ......................................................14
3. Premire vue de lapproche propose ..................................................................17
4. Evnement vido..................................................................................................18
4.1.
Dtection et suivi de personne .....................................................................18
4.2.
Reprsentation des vnements ...................................................................19
4.3. Evnements vido reconnus ............................................................20
5. vnement de contact dtect ..............................................................................21
6. vnements composs multimodaux reconnus ...................................................22
7. Rsultats et valuation .........................................................................................25
7.1.
Concept de fonctionnement .........................................................................25
7.2.
Prsentation du laboratoire dexprimentation ............................................26
Implantation des capteurs dans Gerhome (Figure 9) ...........................................27
7.3.
Rsultats de reconnaissance des vnements multimodaux ........................28
8. Conclusion ...........................................................................................................29
9. Travaux futurs ......................................................................................................29
Bibliographie................................................................................................................30
Annexes........................................................................................................................34

Abstract
In this work, we present a multimodal (video and contact sensors) monitoring system
for the automatic monitoring of elderly everyday activities. The specificity of our
approach consists in the integration of video analysis with other information resulting
from contact sensors installed in the habitat in order to improve the recognition of
observed activities.
Our main goal is to improve the techniques of automatic data interpretation using
complementary sensors installed in the apartment such as cameras, contact sensors
installed on the doors, on the windows, in the kitchen cabinets and the pressure
sensors installed on the chairs. Our system is composed of a vision module, a contact
event module and a scenario recognition module. The system takes three types of
inputs: (1) a video stream acquired by camera(s), (2) a data resulting from contact
sensors installed in the habitat, and (3) a priori knowledge concerning scenario models
predefined by medical experts and the 3D geometric and semantic information of the
observed environment. The output of the system is the set of recognized scenarios at
each instant.
Keywords: event recognition, scene understanding, multimodal behaviour analysis.

Introduction
Les personnes ges ou handicapes sont le plus souvent dsireuses de garder leur
indpendance, quels que soient les efforts qu'il leur faut fournir pour se dbrouiller
seules la maison. Malheureusement, faute de pouvoir garantir un niveau de confort
et de scurit suffisant, le placement dans des institutions spcialises se rvle
souvent tre la seule possibilit.
La mise en place de services de maintien domicile permet aux personnes de vivre
chez elles le plus longtemps et le plus indpendamment possible, dans un
environnement de confort et de scurit. Les admissions en hpital, maison de retraite
ou centres spcialiss sen trouvent rduites. Ces services concernent particulirement
les personnes ges, mais plus gnralement les personnes prsentant des risques
daffection motrice (chute, etc.) ou cognitive (dpression, dmence snile, etc.) ou
ncessitant des soins ou une attention particulire (diabtiques, asthmatiques, etc.).
Il est donc important de concevoir de nouveaux services pour dtecter, voire prvenir
loccurrence de situations inquitantes ou critiques par la gnration dun ensemble de
messages et dalarmes sur la situation de la personne.
Le system de monitorage propos, tel que dcrit sur la figure 3 dans la section 3,
prend 3 entres : (1) un flux vido issu de cameras, (2) les donnes issues des capteurs
de contact installs dans lhabitat, et (3) les connaissances priori qui concerne les
modles dvnements et les informations gomtrique et smantiques de
lenvironnement observ. La sortie du systme est la reconnaissance des vnements
chaque instant.
Pour atteindre notre but, nous avons utilis la plateforme VSIP dinterprtation vido
dcrite dans [1] et prsente plus loin dans le rapport, et nous avons inclut un
algorithme de reconnaissance dvnements qui est dcrit dans [2]. Pour
1

lexprimentation de nos travaux, nous avons utilis le laboratoire Gerhome install


Sophia Antipolis que nous allons prsent dans le chapitre suivant. Aprs la
description du stage, nous allons prsenter un tat de lart (en section 2), puis
lapproche propose (section 3). Ensuite nous dcrivons les vnements vido dans la
section 4, les vnements des capteurs de contact dans la section 5 et les vnements
multimodaux (vido + contact) dans la section 6. En final, nous concluons par la
prsentation des rsultats prliminaire obtenus dans le laboratoire Gerhome.

1. Prsentation du stage
1.1.

Prsentation du laboratoire daccueil

Mon stage se droule au sein de l'quipe ORION, une des quipes de l'unit de
recherche de l'INRIA (Institut National de Recherche en Informatique et en
Automatique) Sophia-Antipolis.
1.1.1. Prsentation de lINRIA
Cre en 1967 Rocquencourt en rgion parisienne, l'INRIA est un tablissement
public caractre scientifique et technologique plac sous la double tutelle du
ministre de la recherche et de l'industrie. L'INRIA est implante dans cinq rgions en
France:
- En les de France, une unit de recherche Rocquencourt.
- En Bretagne, une unit de recherche Rennes (cre en 1980).
- En Provence-Alpes-Cte-dAzur, une unit de recherche Sophia-Antipolis
(cre en 1982).
- En Lorraine, une unit de recherche Nancy (cre en 1984).
- En Rhne-Alpes, une unit de recherche Grenoble (cre en 1992).
1.1.2. Prsentation de lINRIA Sophia Antipolis
Cre au coeur du technople Sophia-Antipolis en 1983, l'unit de recherche regroupe
une trentaine d'quipes de recherche en partenariat avec le CNRS, plusieurs
universits et grandes coles. Leurs travaux portent sur la conception et la
programmation de systmes informatiques performants, la reprsentation et la
manipulation d'informations complexes, la cration, la modlisation et la simulation
d'expriences complexes. Ils permettent l'avance des connaissances dans quatre
grands domaines :
(1) rseaux et systmes, (2) gnie logiciel et calcul symbolique, (3) interaction homme
machine, (4) images, donnes, connaissances, simulation et optimisation des systmes
complexes.
1.2.

Prsentation de lquipe Orion

L'quipe ORION (INRIA Sophia-Antipolis) est une quipe multidisciplinaire dont les
comptences se situent la frontire de l'intelligence artificielle, du gnie logiciel et
de la vision artificielle. Une large part de ses activits est consacre l'interprtation
automatique d'images fixes et de squences vido.
Ce stage sinscrit dans le cadre des travaux du projet ORION sur l'interprtation
automatique de squences vido pour la reconnaissance de comportements humains.

L'quipe ORION a conu une plateforme d'interprtation vido permettant la


dtection d'objets mobiles, le suivi de leur trajectoire et la reconnaissance de certains
comportements prdfinis par des experts humains dans une base de scnarios. Cette
plateforme a t notamment teste sur des applications de vido surveillance dans les
mtros et les agences bancaires.
1.3.

Description de la mission

1.3.1. Objectifs et motivation


Dans le cadre du sujet propos, on sintresse particulirement aux techniques
dinterprtation automatique des donnes issues de capteurs complmentaires installs
dans lhabitat tels que des camras, des capteurs de contact pour portes, pour fentres
et pour les quipements de cuisine, des capteurs de pression placs sous les pieds de
chaises, du lit, ainsi que des capteurs de donnes physiologiques tels que des bracelets
ou des pendentifs ports par la personne, etc.
Lobjectif de notre travail est dobtenir une modlisation du comportement de la
personne au cours du temps qui permette ensuite de dtecter les situations inquitantes
ou critiques. Lobservation des habitudes de vie dune personne est un bon indicateur
de lvolution de sa situation mdicale. Une dgradation de ltat de sant a en effet
souvent des rpercussions immdiates sur le comportement dans les activits
quotidiennes, par exemple: lenteur effectuer certaines activits, suppression ou
diminution du temps des repas ou diminution globale dactivit par exemple.
La construction dun modle de comportement dans une situation habituelle de la
personne permet de dtecter ensuite les carts ce profil reprsentatifs de
loccurrence dune situation inhabituelle et donc potentiellement inquitante.

1.3.2. Prsentation du projet Gerhome


Gerhome (Figure 1) est un laboratoire exprimental simulant le lieu de vie dune
personne ge dans une institution (maison de retraite, hpital, etc.) qui a t mis en
place sur le site du Centre Scientifique et Technique du Btiment (CSTB) Sophia
Antipolis.
Lobjectif du projet Gerhome (Gerontology at Home) est de concevoir des solutions
techniques et des services daide au maintien des personnes ges dans leur domicile,
en utilisant des technologies domotiques pour assurer lautonomie, le confort de vie et
la scurit. Ce projet a t labellis en janvier 2006 par le ple de comptitivit SCS
(Solutions Communicantes Scurises).

Figure 1 : Lappartement GERHOME


Gerhome runit le projet ORION de lINRIA Sophia Antipolis qui est spcialis dans
le domaine de la reconnaissance de comportements humains partir de vidos, le
CSTB (Centre Scientifique et Technique du Btiment, Sophia Antipolis) qui
coordonne le projet et apporte son savoir faire dans la conception intelligente du
btiment, le CHU de NICE dont lquipe du Docteur Balas spcialise en
grontologie ainsi que des industriels tels que Philips qui tudie de nouveaux capteurs
physiologiques ports par la personne, France-Tlcom, Alcatel et Cyrlink qui est le
fournisseur des capteurs environnementaux.
Cet habitat est quip de dispositifs technologiques permettant dassurer distance le
suivi de la personne. Des capteurs de prsence (camras), destins renseigner sur la
localisation de la personne dans chaque pice, des capteurs environnementaux
(capteurs de contact pour portes, fentres, quipements de cuisine, etc.) pour nous
renseigner par exemple sur les activits de la personne dans la cuisine (dplacements,
prparation des repas, manger, etc.).
Pour atteindre notre but, nous avons utilis la plateforme VSIP dinterprtation
automatique de squences vidos dveloppe par lquipe ORION.

1.4.

Description de la plateforme VSIP d'interprtation vido :

Lquipe de recherche ORION de l'INRIA Sophia-Antipolis, a propose une


plateforme d'interprtation automatique de squences vidos VSIP (Visual
Surveillance Intelligent Platform) [1], [Brmond, 1997; Thonnat et Rota, 1999] [2]
dveloppe lors des projets europens PASSWORD et ADVISOR (pour la
surveillance des stations de mtro), le projet franais CASSIOPEE (pour la
surveillance dagences bancaires), le projet europen SAMSIT (pour la dtection des
comportements anormaux dans les trains) et le projet europen AVITRACK (pour la
surveillance daprons).
Le systme d'interprtation automatique de squences vidos de cette plateforme est
un systme base de connaissances qui se compose : (1) dune base de connaissances
contenant l'information gomtrique 3D et la smantique de l'environnement observ
et la connaissance priori des scnarios reconnatre et (2) de trois modules
principaux pour : (a) la dtection des objets mobiles par des mthodes de traitement
d'images, (b) le suivi des objets mobiles dtects et (c) la reconnaissance des scnarios
relatifs aux activits des objets mobiles voluant dans la scne. Larchitecture de la
plateforme d'interprtation automatique de squences vido est reprsente dans la
Figure 2.

Camera (s)

Dtection et
suivi des objets
mobiles

Reconnaissance
dtats
et vnements

Contexte

tats - vnements

Reconnaissance
de scnarios

Scnarios

Base de Connaissance

Alertes

Figure 2 : Architecture de la plateforme VSIP

1.5.

Planning du travail

Le planning de travail suivi pour la ralisation de la mission a t le suivant :


Priode
06/03/06 au 07/04/06

tapes du projet
-

10/04/06 au 12/05/06

15/05/06 au 16/06/06

Recherche Bibliographique
tude de la plateforme VSIP
Premire acquisition de vidos Gerhome (le 13/03 /06)
Recherche dans le commerce de capteurs physiologiques utiliser dans
Gerhome (exemple : systme TRIDENT dvelopp au LETI Grenoble)
Envoie de commandes des capteurs choisis
Runion DANTE (projet franco-italien pour le maintien domicile des
personnes ges) Nice (le 27/03/06)
tat de lart sur la reconnaissance automatique dactivits humaines
tat de lart sur la tlsurveillance mdicale domicile
Acquisition de vidos GERHOME (le 10/04/06)
Traitement des vidos dans VSIP
Prise de contact avec monsieur Marcel WAJNBERG prsident
lassociation Seniors Handicaps Europens (SHE) Nice
12/04/06) pour simuler des scnarios dans gerhome.
Visite des laboratoires du LIRMM et du PROPARA (centre
Rducation et de Radaptation Spcialis pour Paraplgiques
Ttraplgiques) Montpellier (le 20/04/06)

de
(le
de
et

Premier rsultats du suivi de personnes par la vido en utilisant la


plateforme VSIP
Dfinition par des experts de la liste de scnarios reconnatre dans
Gerhome
Runions Gerhome au niveau du CSTB (le 23/05/06 et le 06/06/06)
Rdaction de ltat de lart

19/06/06 au 21/07/06

Amlioration du suivi de la personne par la vido : suivi long terme


Reconnaissance de scnarios par la vido : vnements primitifs
Installation du systme Cyrlink (rseaux de capteurs environnementaux)
dans Gerhome (exemple : capteurs de contacts pour portes et
quipements de cuisine, capteurs de pression sous les pieds des chaises et
du lit)

24/07/06 au 11/08/06

Acquisitions vido avec enregistrement des donnes des capteurs


environnementaux (capteurs de contacts des quipements de cuisine)
dans Gerhome
Implmentation des vnements des diffrents capteurs de contacts dans
VSIP
Analyse des problmes rencontrs
Amlioration ventuelle des rsultats de la reconnaissance des
vnements multimodaux (vido contact)
Finalisation et validation des rsultats obtenus
Rdaction du rapport final
Rdaction dun article publier dans la confrence SETIT 2007,
TUNISIE
Prparation de la soutenance (diapos)
Pr soutenance du stage au niveau de lINRIA (vers le 24/09/06)
Soutenance du stage luniversit Paris 8 (le 29/09/06)

14/08/06 au 15/09/06

18/09/06 au 29/09/06

2. Ltat de lArt
Prambule : Ce chapitre prsente un tat de lart sur les diffrents dispositifs de
tlsurveillance existants, sur linterprtation automatique dactivits humaines et
enfin sur les diffrents projets utilisant diffrents capteurs pour la reconnaissance du
comportement humain. Dans cet tat de lart, les diffrents principes sont issus de
dveloppements de laboratoires franais et trangers ou de dveloppements
industriels rfrencs.
2.1.

Tlsurveillance mdicale domicile

La tlsurveillance mdicale (suivi mdical distance, tl monitorage mdical,


Homecare) est une branche de la tlmdecine qui vise redonner une vie autonome,
dans leur domicile, des personnes souffrant de diverses pathologies et handicaps qui
devraient normalement les contraindre une hospitalisation ou un placement en
institution spcialise : patients souffrants de certaines maladies chroniques,
handicaps, mais aussi personnes ges dpendantes.
La mise en place des systmes de tlsurveillance mdicale domicile permet aux
personnes de vivre chez elles le plus longtemps et le plus indpendamment possible,
dans un environnement de confort et de scurit. Leurs objectifs est de dtecter, voire
de prvenir loccurrence de situations inquitantes ou critiques par la gnration dun
ensemble de messages et dalarmes sur la situation de la personne. Les techniques de
dtection reposent sur lanalyse de donnes issues dun ensemble de capteurs installs
dans lhabitat.
De nombreux projets sont mens dans le monde sur le thme de la tlsurveillance
mdicale domicile. Ils visent exprimenter un systme de tlsurveillance sur une
catgorie spcifique de patients (insuffisants cardiaques et pulmonaires, asthmatiques,
diabtiques, patients souffrant de la maladie dAlzheimer, etc.), ou encore concevoir
des appartements domotiques, des capteurs implmenter dans un habitat ou ports
par la personne, des systmes dalarmes adapts aux exigences de la tlsurveillance
mdicale.
Nous citons par exemple :
Rodriguez et al. [4], en Espagne qui ont dvelopp une architecture gnrique
dun systme de tlsurveillance mdicale dans le cadre du projet EPIC (European
Prototype for Integrated Care) de lUnion Europenne,
En France, Thomesse et al. [5] ont dvelopp le projet TISSAD ayant pour
objectif principal la dfinition dune architecture gnrique, modulaire et ouverte
pour les systmes de tlsurveillance,
Le projet HAT [6] dvelopp aux Etats-Unis pour des asthmatiques, le projet
sudois de Lindet et al. [7] pour des diabtiques, ou encore le projet PROSAFE
[8] en France expriment sur des patients souffrant de la maladie dAlzheimer.
Le projet ACTIDOM (ACtimtrie DOMicile) rassemble les partenaires suivant :
le CEA-LETI (mise disposition dune centrale dattitude munie de trois
acclromtres et trois magntomtres ainsi que le prtraitement des donnes), le
LI2G-GPSP UJF (mise en place du protocole exprimental et validation clinique),
le TEAMLOG (dveloppement dun logiciel de gestion et supervision des
donnes acquises) et le TIMC (analyse des signaux et laboration dalgorithmes
de traitement en vue dobtenir des donnes utilisables par les mdecins).

Lobjectif dACTIDOM est de mesurer lactivit des personnes ges fragiles


dans leur vie quotidienne afin de dterminer une volution de leur tat de
dpendance.
Le systme Biotel 92 (SAMU de Garches, hpital Raymond Poincar) est un
service de tlassistance qui permet aux personnes ges, handicapes ou malades
d'alerter une centrale d'coute, au moindre problme, par simple pression sur le
bouton d'un mdaillon trs lger port autour du cou et reli cette centrale. Les
appels peuvent tre mis partir du domicile ou d'un primtre extrieur
l'habitation. Ds rception d'un appel, le systme en analyse la nature, son degr
d'urgence et fait intervenir toute personne susceptible de venir en aide.
Depuis quelques annes se dveloppe le concept gnral d"habitat intelligent" dans
lequel il sagit de concevoir des lieux dhabitation ou de travail (habitat priv,
chambre hospitalire, bureau dtude, ...) dots de capteurs divers (dtecteurs de
prsence, capteurs de son, capteurs physiologiques, camras, etc.) grs par un
systme informatique.
Togawa [9] fut lun des premiers monitorer les activits journalires dune
personne (heures de coucher, de toilettes, de prise de repas) en mme temps que
certains paramtres physiologiques. Les donnes collectes sont transmises au
personnel en charge. Aucune alarme nest dclenche.
Inada et al [10] ajoutent la possibilit de mettre en contact la personne avec
lquipe de secours. En plus des variables physiologiques et des activits
physiques, le systme enregistre des informations plus subjectives.
Noury [11] sappuie sur les nouvelles technologies de linformation et de la
communication (le Minitel et la technologie des serveurs Videotex) pour collecter
laide du "Biomaster" les variables physiologiques en mme temps que des
informations textuelles concernant le patient.
Richardson [12] cre, dans l"Adaptable Smart Home" (ASH), un rseau commun
pour contrler et monitorer des dispositifs lintrieur du logement comme depuis
lextrieur. Il rend ainsi les dispositifs plus faciles utiliser.
Celler et al. [13] mesurent le comportement et ltat de sant de la personne
partir de 18 capteurs : des dtecteurs de prsence pour estimer la mobilit dans le
logement, des capteurs de conditions ambiantes, et dautres capteurs qui
monitorent lutilisation des ressources (rfrigrateur, eau chaude). Tous ces
capteurs sont interconnects sur un rseau Echelon Lonworks et les donnes sont
automatiquement transmises par modem vers un centre de tlsurveillance pour y
tre traites en diffr.
Chan, Campo et Steenkeste [14] au CHU de Toulouse, divisent la surface de leur
chambre hospitalire en plusieurs zones fonctionnelles, laide de capteurs
volumtriques. Ils peuvent ainsi monitorer prcisment lenvironnement du
patient et, par un apprentissage par rseau de neurones, ils parviennent dtecter
de manire automatique certains vnements tels que des sorties de lits et
galement des fuites du patient.
Roth et al [15] dcrivent lexprience "Shahal" en Isral, de tlsurveillance de 30
malades cardiaques domicile. Un enregistreur au domicile permet la
transmission dun lectrocardiogramme (ECG) 12 drivations pour une analyse
en temps rel distance. La pression artrielle et les rsultats de tests respiratoires
sont galement transmis. La porte dentre peut tre dverrouille distance en
cas durgence.

Leikas et al [16] dcrit un systme pour le monitorage des personnes dmentes


domicile en utilisant de simples contacts de portes.
Mozer [17] utilise dans la "Neural Netwok House" des rseaux de neurones pour
apprendre les rglages environnementaux prfrs des occupants et les utilise pour
optimiser le systme de gestion dnergie tout en satisfaisant les exigences de
lutilisateur. Il ne prend pas en compte les paramtres physiologiques.
Williams et Doughty [18] ont dvelopp, dans le cadre du projet "Carernet", une
architecture gnrique de systme dinformation qui a t implmente dans le
projet "Midas" [19]. Une analyse du comportement du sujet permet de dclencher
des alarmes en cas de sortie dun profil type. Limplmentation met galement en
oeuvre des systmes de "reminders" utilisant la synthse artificielle de parole.
Elger [20] met laccent sur lassistance technique aux personnes mobilit
rduite, ou ayant des dficiences visuelles, auditives ou cognitives. Le
dmonstrateur "SmartBo" a t install dans un appartement ordinaire pour en
dmontrer la simplicit.
Bonner [21] a dvelopp un autre dmonstrateur, le projet "Assistive Interactive
Dwelling (AID) House", et a commenc sintresser aux problmes dthique
concernant la surveillance continuelle de la personne.
Van Berlo [22] prend en compte les 71 recommandations du label "Dutch Senior
Citizen Label" pour concevoir la "Smart Model House for Senior Citizen" en
insistant sur la scurit dune part et sur le confort et les conomies dnergie
dautre part.
Sixsmith [23] dcrit un systme qui btit un profil moyen dactivit partir duquel
il peut dtecter les carts au modle et fabriquer automatiquement des messages
dalertes. Ce systme, valu sur 22 appartements, fut bien accept par les
personnes ges.
Noury et Rialle [24] [25] ont construit au sein de la Facult de Mdecine de
Grenoble un appartement appel "Habitat Intelligent pour la Sant" (HIS). Dans
cet appartement circule un rseau domotique sur lequel sont connects divers
capteurs et actionneurs qui cooprent entre eux et avec un systme dinformation
reposant sur les technologies WEB et JAVA. Larchitecture mise en place permet
de mettre en rseau plusieurs "Habitats Intelligents pour la Sant (HIS)", recueillir
les variables physiologiques et dactivit de la personne, dtecter des scnarios de
situations anormales ou de crises laide dun systme distribu base dagents
intelligents, et agir sur lenvironnement du domicile.
Au Canada, Pigot et al. [26] dveloppent par exemple un projet dassistance
cognitive aux personnes dans la ralisation des activits de la vie quotidienne. Les
interventions du systme sont personnalises en fonction des capacits de la
personne, de son tat de sant, de ses habitudes de vies et prfrences.
Le systme GARDIEN [27] : Grontologie Assiste par la Recherche et le
Diagnostic des Incidents et des Errances Nocturnes qui assure le Tlsuivi de
patients Alzheimer dans leur chambre. Ce systme fonctionne partir dun rseau
de capteurs infrarouge passifs, fixs au plafond de la chambre du patient, qui
dtectent les mouvements de la personne. Chacun des capteurs surveille une zone
stratgique de la chambre (la porte, le lit, les toilettes, etc.).
Le projet AILISA [28] : Dispositif de TIMC "Appartements adapts une
longvit effective". Ce projet vise mettre en place, dans des environnements
contrls, des plates-formes pour lvaluation mdicale, technique et thique, de
technologies pour le maintien domicile de certaines personnes ges en situation
de dpendance.
9

Plus rcemment, les grands laboratoires de recherche et les industriels de dimensions


internationales se sont intresss ce domaine et proposent leurs propres projets : le
Georgia Tech Institute (Aware House [29]), le MIT ("MITs House of the future"
[30]), lUniversit de Whashington ("Assistive Cognition" [31]), la compagnie
Honeywell ("Independent LifeStyle Assistant (ILSA)"), lUniversit de RochesterNY, au sein du projet "Center for future Health" met en rseau des camras vido et
des PDA dans toutes les pices du logement pour interagir de manire ubiquitaire
avec les occupants.
Mais parmi tous ces projets, bien peu ont effectivement t valus chez les personnes
ges [12], [15], [22], [28], et encore moins sont arrivs au stade commercial
(VIGIL2, Sincere Kourien).

2.2.

Interprtation automatique dactivits humaines par la vido

L'objectif de l'interprtation automatique de squences vido est de comprendre les


comportements des objets mobiles voluant dans la scne observe.
Un systme d'interprtation automatique de squences vidos est un systme
autonome qui prend en entre un flux vido et produit en sortie l'interprtation des
activits se droulant dans ces vidos. Un tel systme se compose de deux modules
principaux : le premier contient les tches vision et le second contient les tches de
reconnaissance de scnarios temporels. Le module vision prend des vidos brutes en
entre (acquises directement par les camras) et excute un certain nombre
d'algorithmes de vision pour dtecter et suivre tous les objets mobiles voluant dans la
scne observe. Le module de reconnaissance de scnarios prend en entre les objets
mobiles suivis par le module vision et essaye de reconnatre tous les comportements
humains spcifis par les experts du domaine.
L'interprtation automatique de squences vido peut sappliquer un nombre vari
dapplications, parmi ces applications on peut citer par exemple, la surveillance
dagences bancaires, la surveillance de stations du mtro, la surveillance du trafic
routier, le maintien domicile des personnes ges, etc.
De nombreux travaux ont t raliss dans la communaut vision par ordinateur afin
de reconnatre des activits humaines normales et anormales [32]. Le but est de
dtecter les comportements anormaux des individus voluant dans ces zones et de
prvenir les comportements dangereux Ces comportements correspondent des actes
de vandalisme, de vol, dagression, etc. Ce type dapplication est en plein essor et de
nombreux systmes de surveillance sont ltude dans le monde industriel et
acadmique. Par exemple le projet europen Esprit PASSWORDS vise des
applications de surveillance de mtros, de parkings et de supermarchs laide dune
seule camra [33].
Les projets PRISMATICA [34] et ADVISOR [35] reconnaissent des scnarios
anormaux (violence, vandalisme, fraude, graffiti) dans le mtro, SAMSIT [36][Vu et
al. 2006] reconnat des scnarios similaires en embarqu dans des trains, et
AVITRACK [37] surveille les oprations de maintenance dans les aires de
stationnement des avions.
Bien que ces systmes donnent de bons rsultats sur les squences vido et/ou audio
traites, leurs performances se dgradent rapidement ds que les conditions

10

dutilisation voluent. Par exemple, il nexiste pas lheure actuelle de systme vido
capable de dtecter automatiquement des individus dans des environnements bruits
(e.g. brusque changement dillumination, forte pluies, pnombre) ou trs encombrs
(eg. lieux confins, prsence de foule).
2.3.

Analyse multicapteurs

La dtection de situation critiques lors de la tlsurveillance mdicale domicile par


la seule vision prsente des inconvnients et lacunes vidents. Comme tout systme
de vision, cette dtection est altre la nuit ou lorsque lclairage ne permet pas
d'obtenir des images exploitables.
Pour combler toutes ces lacunes, il est important dintgrer dautres capteurs pour
amliorer la dtection. Nous nous sommes aligns sur les approches utilisant des
capteurs htrognes (capteur denvironnement, dactivits et physiologiques)
installs dans l'habitat ou ports par la personne afin d'assurer une acquisition et une
capture de donnes plus prcise. L'utilisation de multiples capteurs dans un systme
de vision peut de manire significative rduire les erreurs de dtection et amliorer
lidentification des objets.
Rcemment, Duchne et al. [38] ont propos des outils permettant lextraction de
motifs, dans des squences temporelles multidimensionnelles et htrognes de
manire non supervise. Ceux-ci ont t valids sur diffrents types de donnes telles
que : les dplacements, les postures et la frquence cardiaque.
Glascok [39] utilise de nombreux capteurs disposs sur les appareils mnagers (porte
de rfrigrateur, tiroirs de cuisine, ...). Cette approche utilise une multitude de
capteurs ce qui implique indirectement un cot lev dinstallation et de maintenance.
Takahashi et al. [40] ont propos une technique de fusion de donnes issues de
capteur audio (microphone) et vido (camra), cette technique consiste produire un
signal de slection en utilisant les donnes issues des capteurs vido et les signaux
issus des capteurs audio, ce systme fait appel la vido et au son mais seulement en
vue dtablir une communication entre le patient et le personnel soignant.
J. Besnard et al [41] dans le cadre du projet Transport Espace et Socit, G. Davini
et al [36] dans le cadre du projet SAMSIT Surveillance dans les trains , ont
propos une fusion entre des donnes audio et vido pour la surveillance denceinte de
transport afin de dtecter des situation critiques (par exemple : une agression) dans les
bus, les gares ferroviaires, les stations de mtro, etc.
Parmi tous les projets dj prsents, notre connaissance aucun projet na utilis la
combinaison de donnes vido et de donnes issues de capteurs de contacts (sur des
quipements de cuisine) pour monitorer les activits dune personne ge.
Loriginalit du travail propos, par rapport tous les travaux dj cits, est la fusion
de linformation visuelle (vido) avec dautres informations issues de capteurs
complmentaires installs dans lhabitat , afin damliorer le suivi de la personne et
lidentification de ses activits quotidiennes.

11

2.4.

Fusion de donnes

La fusion de donnes, peut tre dfinie comme "un processus permettant de combiner
au mieux un ensemble de donnes multi-sources, ventuellement htrognes, pour
une meilleure qualit de linformation rsultante" [42]. La fusion de donnes (brutes
ou ventuellement prtraites) permet de grer une multitude dinformations,
complmentaires, redondantes et incompltes, issues de sources htrognes, afin
dobtenir la "meilleure" connaissance possible de lenvironnement de dcision tudi.
Un processus de fusion doit passer par quatre phases principales :
1. Reprsentation homogne et recalage des informations pertinentes : les donnes
fusionner sont souvent htrognes, il est impossible de les combiner sous leur forme
initiale. On est alors amen rechercher un espace de reprsentation commun dans
lequel les diffrentes informations pertinentes disponibles renseignent sur une mme
entit. Un premier traitement consiste donc transformer certaines de ces
informations initiales, en informations quivalentes dans un espace commun, dans
lequel seffectuera la fusion,
2. Modlisation des connaissances : une donne propre chaque source nest pas
forcment exploitable en tant que tel, notamment si linformation fournie est trs
imparfaite, et ne donne quun aspect de la ralit. Cependant, mme imparfaite, toute
information peut apporter une connaissance sur ltat du systme. Donc, une tape
essentielle du processus de fusion consiste modliser et valuer la connaissance
apporte par chaque source.
3. Fusion : cest ce niveau du processus que lopration de fusion proprement dite
est ralise. Les informations recales et modlises sont combines selon une rgle
de combinaison propre au cadre thorique choisi.
4. Dcision par choix dune stratgie : la fusion doit permettre de choisir
linformation la plus vraisemblable, au sens dun certain critre, parmi toutes les
hypothses possibles. Le critre de dcision dpend du cadre thorique dans lequel le
processus de fusion a t dvelopp, et de lobjectif atteindre.
La principale difficult de la fusion de donnes est de pouvoir modliser et valuer la
connaissance apporte par chaque source afin de tirer le meilleur parti des
informations disponibles. Cette opration consiste exprimer limperfection de
chaque information en fonction de la source dont elle est issue.
Il existe trois principales thories utilises dans la fusion de donnes : probabiliste,
videntielle et possibiliste.

12

2.5.

Les capteurs et leurs utilisations

Prambule : Dans ce qui suit, nous allons prsenter quelques capteurs, destins au
maintien domicile.
2.5.1. Capteurs de donnes physiologiques
Les signes vitaux essentiels sont bien identifis depuis longtemps par les mdecins et
la liste des signaux accessibles depuis le domicile nest pas limite.
Le poids est la variable qui se prte le plus aisment une "auto mesure", les psepersonnes du commerce sont dune utilisation bien connue. Si le patient souffre de
certaines formes dhandicaps mentaux ou physiques, on peut envisager
lautomatisation de la prise de cette information, par exemple en pesant la personne
dans son lit [43] ou dans les toilettes [44].
Les valeurs extrmes de la tension artrielle (pressions systolique et diastolique), sont
accessibles avec des dispositifs bandeaux (sphygmomanomtres) qui se gonflent
automatiquement. Ils ncessitent de respecter certaines conditions lors de la mesure
(position de repos, compensation de la diffrence de hauteur entre le coeur et le site de
mesure).
La saturation en oxygne du sang (Oxymtrie) permet dvaluer la qualit de la
ventilation de manire non invasive. Le procd optique de la mesure value lopacit
du sang aux extrmits des doigts, des orteils ou du lobe de loreille. Si cette valeur en
instantan ne prsente pas rellement de sens mdical, son monitorage en continu, en
particulier pendant le sommeil, peut permettre de dtecter et de quantifier des
anomalies telles que les variations excessives de frquence ou les apnes obstructives
du sommeil qui engendrent une fatigue de lappareil respiratoire et cardiaque.
Le pouls, ou frquence cardiaque, sobtient de plusieurs manires. A partir du signal
lectrique cardiaque ("Electrocardiogramme") prlev depuis 3 12 lectrodes poses
sur la peau, en des endroits relativement prcis, on peut dterminer lintervalle de
temps sparant 2 signaux typiques (complexes "QRS"). La priode entre 2 battements
cardiaques est plus simplement mesurable sur le signal acoustique amplifi par un
stthoscope. Enfin, comme la fonction du coeur est de pousser priodiquement le sang
charg doxygne dans le systme vasculaire priphrique, on peut remonter la
frquence cardiaque soit en valuant la distance entre les instants successifs des
pressions artrielles systoliques et diastoliques (tensiomtre), soit entre les extremums
du taux doxygnation du sang (oxymtre).
Bien dautres capteurs, galement disponibles dans le commerce, permettent
daccder dautres paramtres plus spcifiques de certaines pathologies tels que le
taux de glycmie chez les diabtiques (Glucomtre) et la capacit respiratoire chez les
asthmatiques (PeakFlow meter).
2.5.2. Capteurs dactivits
Il sagit soit de dtecter les positions et les dplacements du sujet dans son
environnement, soit de dtecter ses postures et des vnements tels que la chute.
Le sujet peut tre repr par des dtecteurs volumtriques qui mesurent le
rayonnement Infrarouge mis par la surface du corps ou bien qui dtectent les ondes
ultrasonores rflchies. Dans le premier cas, seules des variations sont perues, donc
un sujet immobile nest plus dtect, ce qui nest pas le cas des ondes ultrasonores.

13

Il est noter que la prsence dans une zone peut tre confirme par labsence dans les
autres zones. Enfin, de simples dtecteurs de passages aux portes (contacts)
permettent aussi de localiser le sujet. Linstallation de capteurs au sol permet de situer
le sujet avec plus de prcision ("sols actimtriques") et de distinguer la prsence dun
animal de compagnie.
Les postures corporelles (debout, pench ou allong) peuvent tre dtermines
simplement avec un inclinomtre bille (lusage du mercure est maintenant prohib),
mais linformation dlivre par un acclromtre un ou plusieurs axes permet une
plus grande prcision sur linclinaison du corps, sa vitesse et son acclration et
permet mme de dtecter la chute de la personne.
2.5.3. Capteurs environnementaux
Il est enfin ncessaire de monitorer les grandeurs environnementales du domicile dans
la mesure o ces dernires ont dune part une influence sur dautres mesures (la
temprature extrieure peut modifier la temprature corporelle du patient) et nous
renseignent, dautre part, quant au mode de vie du sujet : la temprature dans les
pices (thermomtre), la pression atmosphrique (baromtre), lhumidit relative
(Hygromtre), la luminosit (luxmtre), le niveau de bruits (sonomtre).

2.5.4. Exemples de systmes de capteurs


Une importante gamme de systmes de capteurs fixs sur diffrentes parties du corps
ou installs dans lhabitat a vue le jour. Parmi eux, on peut citer ceux-ci :
Vtements "intelligents"
Il sagit de vtements sur lesquels diffrents capteurs ont t insrs afin de mesurer
des grandeurs physiologiques en ambulatoire.
Le gilet Visuresp, conu par lquipe PRETA (Gila Benchtrit du laboratoire
TIMC) et commercialis par la socit RBI, Meylan, est un systme et un
logiciel denregistrement non invasif de signaux ventilatoires, et de visualisation
de ces signaux et des donnes physiologiques qui en sont extraites. Visuresp
repose sur le principe de la plthysmographie respiratoire par inductance qui
permet laide dune spirale mtallique cousue sur une bande plaque autour de la
poitrine, de mesurer les variations de sa section quand la personne respire. A
laide de deux spires, lune place au niveau de labdomen et lautre au niveau du
thorax, on obtient deux signaux, dont une combinaison donne une bonne
indication du volume dair prsent chaque instant dans les poumons.
Le vtement intelligent VTAMN [45] "Vtement de Tl Assistance Mdicale
Nomade" est un projet conu par un consortium de chercheurs et dindustriels. Il
sagit dun vtement de tlassistance mdicale assez complet, constitu de fibres
synthtiques spciales intgrant une srie de capteurs lectrodes sches, un
dtecteur de chute, un actimtre, etc. Quelques prototypes de ce vtement, ont t
raliss et valus aux plans technologique et ergonomique sur quelques
personnes.

14

Le Bracelet Aphycare
La socit AphyCare Technologies base Lannion, a dveloppe un "braceletscurit". Il sagit dun systme danalyse ambulatoire multicapteurs port au poignet,
qui acquiert et traite la fois des paramtres dactimtrie, des paramtres
physiologiques (frquence respiratoire, frquence cardiaque, temprature cutane), et
dtecte les chutes. Les donnes sont transmises par liaison radio scurise un
tltransmetteur branch sur une prise tlphonique au domicile. Les alertes sont
rceptionnes par un centre de tlassistance.
Vivago
Le bracelet Vivago (Finlandais) est un bouton-tlalarme, muni dun dtecteur de port
(si la personne lte, on sen aperoit), qui mesure la temprature cutane et des
paramtres dactivit. Lvolution dactivit quotidienne et les priodes de repos sont
suivies sur cran et transmise vers un centre, vers les familles, etc. Lorsquil dtecte
une immobilit prolonge il transmet une alarme.
Analyse de la voix
Lquipe GEOD du laboratoire CLIPS (Communication Langagire et Interactions
Personnes Systme), travaille sur le traitement des signaux acoustiques enregistrs par
plusieurs microphones disposs dans un appartement, afin den extraire le maximum
dinformation. Suite la dtection dun vnement sonore, le systme [47] lindexe
soit comme un bruit soit comme un signal de parole. Lorsquil sagit dun bruit, une
classification entre diffrentes classes prtablies indique sil sagit dun bruit normal
ou dun appels de dtresse ("au secours", " laide", ...).
La cravate Mobilthon
Mobilthon est un partenariat entre lA.F.M. (Association Franaise contre les
Myopathies) et France Tlcom R&D. Le Mobilthon se prsente sous la forme dun
foulard dot dun microphone, dun haut-parleur et de divers capteurs. Il a pour but la
gestion de la simplification des communications et de la scurit par des services
accessibles en mode volontaire soit vocalement, soit tactilement, soit en mode
automatique via les capteurs. Mobilthon permet de tlphoner quelles que soient les
limitations physiques de la personne ge quelle soit consciente ou non. Cette simple
possibilit a un effet rassurant et donc bnfique pour lutilisateur qui ne craint plus
de rester seul chez lui, ou de sortir seul.
LOCADYN 3D : Capture du mouvement
Le systme Locadyn3D est dvelopp par le CEA-LETI de Grenoble, il utilise des
mesures acclromtriques pour la capture de mouvement. Larchitecture utilise est
base sur un principe de conversion directe du phnomne physique en donnes
numriques de type Sigma Delta.
Le systme TRIDENT
Trident est un systme dvelopp par le CEA-LETI de Grenoble, il sagit dun
dispositif ambulatoire dacquisition et de mesure de mouvements en 3D, celui-ci est
compos de trois micro-centrales dattitude, combinant chacune six capteurs de type
MEMS : trois acclromtres et trois magntomtres. Ce dispositif permet de
rpondre des besoins divers tels que la mesure de lactivit des personnes ges
fragiles dans leur vie quotidienne afin de suivre lvolution de leur tat de
15

dpendance, et aussi la caractrisation des crises dpilepsie par analyse du


mouvement (projet CAPAMETRIM).
VIGIL PLATFORM
VIGIL PLATFORM est un une solution technologique pour la surveillance des
personnes ges domicile, ce systme est dvelopp par une socit amricaine, il
comprend diffrent type de capteurs :
Des dtecteurs de mouvement, placs dans la chambre coucher et la salle de bain,
dtectent la prsence du patient dans la pice, son taux agitation ou son apathie, ces
dtecteurs permettent la Vigil Platform de vrifier que le temps pass dans les
toilettes ou au lit nest pas suprieur au temps de rfrence. Dans ce cas, le systme
dclenche une alerte, deux capteurs placs dans le lit dclent tout cas dincontinence
et absence du lit. Les messages dalerte sont alors transmis laidant appropri via des
pagers (radio messager) vitant ainsi les sonneries et les alarmes gnant les patients.
NOC-watch
Le systme NOC-watch est un dispositif sans fil, il se prsente sous forme de patch
port sur la cuisse de la personne, ce systme permet de rduire les chutes des
personnes ges domicile.
La figure 3 illustre la gamme de technologies de capteurs qui sont utiliss pour la
surveillance d'activits humaines. L'ancienne classe incluent les dtecteurs de
mouvement qui permettent de localiser la personne, les capteurs de contact sur les
portes, sur les quipements de cuisine, sur la porte du rfrigrateur qui indiquent s'ils
ont t ouverts, les capteurs de pression qui indiquent si une personne s'assied dans un
lit ou sur une chaise, et les thermomtres qui indiquent si un fourneau a t allum.
Des capteurs physiologiques (biosensors) sont gnralement ports par une personne
pour mesurer les signes essentiels tels que la frquence cardiaque et la temprature de
corps. Cette gamme de capteurs peut tre employe pour dterminer o une personne
est et quels objets elle a employ, aussi bien que pour obtenir un sens gnral de son
niveau d'activit. Cette information peut tre employe pour impliquer des activits
quotidiennes et alternativement, que la connaissance, peut-tre combin avec
l'information biomtrique, mne une valuation gnrale de sant et du bien-tre.

Figure 3 : Sensors for activity monitoring

16

3. Premire vue de lapproche propose


Notre approche consiste combiner des donnes vido avec des donnes issues de
capteurs de contact pour reconnatre les activits quotidiennes dune personne ge.
Cette approche se compose de 3 principales tches:
La premire tche consiste dtecter et suivre la personne par la vido et
reconnatre les vnements vido prdfinis. Comme par exemple reconnatre
quand une personne est assise sur une chaise.
La deuxime tche consiste enregistrer des donnes issues des capteurs de
contact installs sur les lments de cuisine, filtrer ces donnes et ensuite
reconnatre des vnements prdfinis par des experts du domaine (e.g.
grontologues) et qui illustrent les activits journalires dune personne ge
domicile.
Et enfin, la dernire tche consiste combiner les vnements vido et les
vnements contacts reconnus dans les prcdentes tches.
La figure 4 montre larchitecture de lapproche propose.
Connaissance
a priori

Composants vision
Vido 1
Vido 2

Dtection et suivi
des objets mobiles

Reconnaissance
dvnements vido

Vido m
Capteur 1
Capteur 2

Capteur 1 filtr
Capteur 2 filtr

Composants capteur

Reconnaissance
des vnements
multimodaux

Fichier
log

Reconnaissance
dvnements
contacts
Capteur n

Capteur n filtr

Figure 4 : Larchitecture du systme de monitorage base sur la reconnaissance


dvnements vido et contact

17

4. Evnement vido
4.1.

Dtection et suivi de personne

Cette tche consiste dtecter et suivre les objets mobiles. Pour la dtection des
objets mobiles, nous avons utilis lapproche par comparaison une image de
rfrence (Figure 5). Pour utiliser cette approche il est ncessaire de possder une
image de rfrence qui correspond limage du fond de la scne sans objet mobile.
Cette mthode consiste faire la diffrence entre limage courante et limage de
rfrence afin dobtenir les pixels en mouvement qui seront regroups en objet
mobile. On extrait de l'image courante les objets mobiles dans la scne observe qui
seront ensuite classifis en diffrentes catgories de classes correspondant leur taille
3D et leur forme, tels que la classe PERSON.
Un objet mobile est dcrit par ses paramtres 3D : le centre de gravit, la position, la
taille et la largeur.
Ltape de suivi associe un identificateur chaque objet mobile dtect et maintien
globalement son suivi dans la scne. La figure 6 illustre la dtection, la classification
et le suivi dune personne dans le laboratoire Gerhome.

Figure 5 : Images de rfrence (sans objets mobiles)

18

(a) Image originale

(c) Rsultats de la classification

(b) Rsultat de la dtection

(d) Rsultats du suivi

Figure 6: Dtection, classification et suivi dune personne. La figure (a) reprsente l image
originale de la scne, sur la figure (b), les pixels en mouvement sont accentus en blanc et
regroups dans un carr orange (tape de segmentation). Sur la figure (c), lobjet mobile est
classifi en personne et un paralllpipde 3D qui entoure la personne permet dindiquer sa
position et son orientation. La figure (d) montre lidentificateur associ la personne suivie.

4.2.

Reprsentation des vnements

Le but de la reprsentation des vnements est de formaliser la connaissance a priori


de la scne observe. Ces connaissances correspondent au contexte 3D de la scne
vide de lenvironnement observ et les modles des vnements dintrt prdfinis
par des experts mdicaux.
Le contexte 3D de la scne observe dcrit la gomtrie et la smantique associe la
scne vide. Ceux-ci incluent :
Les informations gomtriques (par exemple position, surface ou volume) des
zones d'intrt (par exemple la cuisine, la salle de bain, etc.) et des objets
statiques de la scne vide (par exemple portes, quipements de cuisine, etc.).
Les proprits smantiques associes aux objets contextuels (par exemple
porte ouverte ou ferme).
19

Un vnement est compose par 5 lments :

Physical objects qui inclut les objets mobiles (e.g. individus), les quipements
ou les zones dintrts, etc.
Components correspond aux sous vnements qui composent lvnement.
Forbidden components qui correspondent aux vnements qui noccurrent pas
durant lvnement principal.
Constraints sont les conditions entre les objets physiques et / ou les composants
(les contraintes peuvent tres temporelle, spatiales ou logiques).
Action dcrit les actions prendre quand lvnement est reconnu.

Il y a quatre types dvnement : les tats primitifs (primitive states), les vnements
primitifs (primitive events) et enfin les vnements composs (composite events). Un
tat primitif dcrit une situation stable dans le temps qui caractrise un ou plusieurs
objets physiques. Un vnement est lactivit qui contient la liste des changements
des valeurs dtat entre deux instants successifs (e.g. la personne entre dans une zone
dintrt (la cuisine), elle est en dehors de la zone et ensuite de nouveau dans la zone).
Lvnement primitif correspond au changement des valeurs des tats primitifs et les
vnements composs sont la combinaison entre les tats et / ou les vnements. Un
exemple dun tat primitif est prsent dans la dfinition 1.
Pour dcrire les activits relatives au comportement dune personne ge, les modles
des vnements dintrt sont dfinis par des experts du domaine (par exemple des
experts mdicaux). Pour amliorer la dfinition des vnements dintrts, nous avons
utilis un langage dclaratif bas sur une librairie dvnements gnriques et sur une
ontologie dtaille dans [2],
PrimitiveState (Inside_zone,
PhysicalObjects ((p : Person), (z : Zone))
Constraints ((p in z))
Action (Priority Normal
Store_in_logfile))
Dfinition 1 : Exemple de ltat primitif Inside_zone
4.3.

Evnements vido reconnus

Lalgorithme de reconnaissance dvnement vido permet de reconnatre quels


vnements occurrent dans le flux de donnes. Pour reconnatre un tat primitif,
lalgorithme excute deux oprations : (1) la slection de lensemble des objets
physiques et (2) la vrification de la conformit de toutes les contraintes temporelles
qui correspondent aux combinaisons des objets physiques. Une fois que lensemble
des objets physiques satisfont toutes les contraintes temporelles, alors ltat primitif
est reconnu. Lalgorithme de reconnaissance dvnement vido est dtaill dans [2].
Nous illustrons sur la figure 6 la reconnaissance de ltat primitif Inside_zone dans
le laboratoire Gerhome.
Dans cette exprimentation, nous avons dfinis 2 tats et vnements primitifs qui
sont : Inside_zone, Changes_zone.

20

Figure 7 : Reconnaissance de ltat primitif Inside_zonedans le laboratoire


Gerhome. Le texte (person is in the Livingroom) apparat sur lcran quand
lvnement est reconnu.

5. vnement de contact dtect


Dans cette section nous prsentons les vnements de contact que nous avons dfinis
dans le but de reconnatre les activits dune personne ge, spcifies par des experts
mdicaux. Un ensemble de capteurs de contacts installs dans la cuisine (14 capteurs
au total : 12 capteurs pour les tiroirs de cuisine, un capteur pour la porte du microonde et un autre capteur pour la porte du frigidaire) sont placs dans le laboratoire
Gerhome pour monitorer les activits journalires dune personne ge.
Les capteurs de contact fournissent un ensemble de 4 attributs : the timestamp (date et
heure de dbut), lidentificateur du capteur, ltat du capteur (event) "O" pour Open
(ouvert) et "C" pour Close (ferm) et enfin la dure de louverture des quipements de
cuisine. Les capteurs installs dans la cuisine sont des capteurs tout ou rien qui
refltent le statut du tiroir ou de la porte associe. Ces capteurs sont regroups par
quatre units dans le mme module de transmission, par exemple le capteur dont
lidentificateur est 106-0 et le capteur dont lidentificateur est 106-1, sont tout deux
connects sur le mme transmetteur dont ladresse est 106.
Dans un premier temps, lapplication rpertorie tous les vnements survenus dans
Gerhome, les heures et les dates de leur apparition et les enregistre dans un fichier
XML afin de pouvoir retraiter les donnes ultrieurement.
Par exemple, nous avons dfinis lvnement qui dcrit les deux tats qui
correspondent louverture et la fermeture des tiroirs de cuisine.

21

Nous prsentons dans cet exemple, le modle des 2 tats primitifs qui relatent le statut
des tiroirs de cuisine (Dfinition 2). UpperCupboard est le tiroir de vaisselle et
LowerCupboard est le tiroir de la nourriture :
PrimitiveState (UpperCupboard_closed,
PhysicalObjects ((c: Equipment))
Constraints ((IsUpperCupboardClosed(c))) )
PrimitiveState (UpperCupboard_open,
PhysicalObjects ((c : Equipment))
Constraints((IsUpperCupboardOpen(c))) )
PrimitiveState (LowerCupboard_closed,
PhysicalObjects ((c: Equipment))
Constraints ((IsLowerCupboardClosed(c))) )
PrimitiveState (LowerCupboard_open,
PhysicalObjects ((c : Equipment))
Constraints((IsLowerCupboardOpen(c))) )
Dfinition 2 : Modle des deux tats primitifs, tiroir ferm et tiroir ouvert
Dans cette exprimentation, nous avons dfinis 10 tats et vnements primitifs :
Refrigerator_Open,
Refrigerator_Closed,
UpperCupboard_Closed,
UpperCupboard_Open,
LowerCupboard_Closed,
LowerCupboard_Open,
PersonClose_UpperCupboard,
PersonOpen_UpperCupboard,
PersonClose_LowerCupboard,
PersonOpen_LowerCupboard,

6. vnements composs multimodaux reconnus


Lutilisation de capteurs multiples dans un systme de vision permet de rduire les
erreurs de dtection et amliore le suivi de la personne. La reconnaissance
dvnements vido et contact consiste reconnatre des vnements temporels
complexes combinant des vnements vido et contact.

22

Le
traitement
des
donnes
recueillies
doit
ainsi
permettre
de :
mesurer plusieurs paramtres comportementaux avec des capteurs installs
dans lhabitat
et
identifier les modes de vie des personnes par apprentissage de leurs habitudes
relatives aux activits physiques ou environnementales en fonction du temps.
L'algorithme d'identification des vnements multimodaux (contact et vido)
reconnat quels vnements se produisent en utilisant des vnements visuels primitifs
dtects par le module de vision [section 4] et des vnements de contact dtects par
le module de dtection dvnements de contact [section 5].
Pour modliser les activits dintrts spcifis par les experts mdicaux, nous avons
dfinis 3 vnements composs qui sont : Using_food, Using_dishes et Prepare_meal.
Par exemple considrons la prparation dun repas Prepare_meal . La prparation
dun repas ncessite des mouvements dans la cuisine et lutilisation des tiroirs ou se
trouve les ingrdients, les plats et / ou les ustensiles de cuisine et quelque fois
lutilisation dappareils lectriques (micro-onde, frigidaire, etc.).
Nous avons dfini lalgorithme de lvnement Prparer un repas comme suit :
Si la personne est dans la cuisine ET ((la personne accde au tiroirs dingrdients
ET la personne accde aux plats et / ou aux tiroirs dustensiles) OU la personne
utilise le four) ALORS le repas se prpare
IF the resident is in the kitchen AND ((resident accesses meal ingredient cabinet
AND resident accesses plates or utensils cabinet) OR resident uses an appliance)
THEN a meal is prepared
La prsence dans la cuisine est indiqu par un mouvement (camra) dans la cuisine
qui persiste un certain temps, lutilisation des ingrdients est indiqu par lutilisation
des tiroirs ou ils sont stocks ou lutilisation du frigidaire (capteur de contact).
Nous dfinissons dabord quatre vnements primitifs :
personOpen_UpperCupboard,
personClose_UpperCupboard,
personOpen_LowerCupboard,
PersonClose_LowerCupboard

23

PrimitiveEvent(personClose_UpperCupboard,
PhysicalObjects((p: Person), (c : Equipment))
Components(
(uc_close: PrimitiveState UpperCupboard_closed(c)))
(p_far: PrimitiveState far_from(p, c))
Constraints((uc_close before_meet p_far) )

PrimitiveEvent(personOpen_UpperCupboard,
PhysicalObjects((p: Person), (c : Equipment))
Components(
(p_close: PrimitiveState Close_to(p, c))
(uc_open: PrimitiveState UpperCupboard_open(c)))
Constraints((p_close before_meet uc_open) )

PrimitiveEvent(personOpen_LowerCupboard,
PhysicalObjects((p: Person), (c : Equipment))
Components(
(p_close: PrimitiveState Close_to(p, c))
(lc_open: PrimitiveState LowerCupboard_open(c)))
Constraints((p_close before_meet lc_open) )

PrimitiveEvent(personClose_LowerCupboard,
PhysicalObjects((p: Person), (c : Equipment))
Components(
(lc_close: PrimitiveState LowerCupboard_closed(c)))
(p_far: PrimitiveState far_from(p, c))
Constraints((lc_close before_meet p_far) )

Dans ce qui suit nous prsentons le modle des vnements composs : Using_food,
Using_dishes et Prepare meal.

CompositeEvent(Using_dishes,
PhysicalObjects( (p: Person), (UpperCupboard: Equipment),
(Kitchen: Zone))
Components((p_inz: PrimitiveState inside_zone (p, Kitchen))
(p_open_uc: PrimitiveEvent personOpen_UpperCupboard(p,
UpperCupboard))
(p_close_uc: PrimitiveEvent personClose_UpperCupboard(p,
UpperCupboard)) )
Constraints((p_inz before_meet p_open_uc)
(p_open_uc Duration > 10)
(p_open_uc before_meet p_close_uc) ))

24

CompositeEvent(Using_food,
PhysicalObjects( (p: Person), (LowerCupboard: Equipment), (Kitchen: Zone))
Components((p_inz: PrimitiveState inside_zone (p, Kitchen))
(p_open_lc: PrimitiveEvent personOpen_LowerCupboard(p, LowerCupboard))
(p_close_lc: PrimitiveEvent personClose_LowerCupboard(p, LowerCupboard)) )
Constraints((p_inz before_meet p_open_lc)
(p_open_lc Duration > 10)
(p_open_lc before_meet p_close_lc) ))

CompositeEvent (Prepare_meal,
PhysicalObjects ((p: Person), (eq: Equipment))
Components(
(p_food: CompositeEvent Using_food (p, eq))
(p_dishes: PrimitiveEvent CompositeEvent Using_food (p, eq)))
Constraints ((p_food; p_dishes))
Action (Priority Normal, Text "the person prepares a meal))

7. Rsultats et valuation
Pour valider notre travail, nous avons simul un ensemble dvnements dans le
laboratoire dexprimentation Gerhome. Cette section dcrit les rsultats
exprimentaux obtenus. En premier lieu, nous dcrivons le laboratoire ou nous avons
simuls les scnarios. En second lieu, nous prsenterons les rsultats obtenus.
7.1.

Concept de fonctionnement

Le principe gnral sapplique lutilisation de tout capteur susceptible de


caractriser un lment important du mode de vie de la personne, pour notre
application nous avons utilis en plus des camras, dautres capteurs tels que:

Des capteurs de contacts pour portes, fentres et tiroirs,

Des capteurs de pression pour chaise, fauteuil, lit, table,

Ces capteurs (essentiellement "Tout Ou Rien") sont judicieusement placs dans


lhabitat de manire permettre un accs la localisation permanente de la personne
et nous renseigner sur ses activits.

25

Ltape dexprimentation passe par 3 phases :


Phase 1 : Dans le laboratoire Gerhome avec des personnes qui simulent les
comportements des personnes ges.
Phase 2 : Dans Gerhome, accueillir des personnes ges pour une demijourne qui viennent raliser des scnarios.
Phase 3 : Dans des institutions (maison de retraite) et dans lhabitat de la
personne ge.
Pour le moment, nous sommes en phase 1 de notre exprimentation. Nous avons
prvu daccueillir des personnes ges dans le laboratoire Gerhome pour simuler des
scnarios, mais pour le moment ce nest pas encore fait.

7.2.

Prsentation du laboratoire dexprimentation

Le laboratoire Gerhome a t quip par un ensemble de capteurs environnementaux


dvelopps par lindustriel Cyrlink (Figure 8).

Figure 8 : Capteurs Cyrlink

26

Implantation des capteurs dans Gerhome (Figure 9)


Lhabitat que nous avons utilis pour lexprimentation est un appartement de 40m2
qui est compos dune chambre coucher, dune salle de bain avec toilette et dun
salon incluant une cuisine (Figure 8). Les capteurs vido (i.e. cameras) sont installs
dans chaque pice de lappartement dans le but de localiser et de suivre la personne
chaque instant. Un ensemble de capteurs de contact sont installs dans lhabitat,
permettant de donner des informations sur les activits de la personne observe,
comme par exemple prparer un repas . Ces capteurs communiquent par radio
frquence (RF) avec le systme.
La liste des capteurs complmentaires installs dans Gerhome est :
Des capteurs de contacts pour portes (porte de la chambre, porte de la salle de
bain et la porte dentre) pour nous renseigner sur louverture et la fermeture
des portes et la prsence de la personne dans chacune des pices.
- Des capteurs de contacts pour fentres (fentres du salon, de la cuisine et de la
chambre) pour nous renseigner sur louverture et la fermeture des fentres.
- Des capteurs de pression installs sous les pieds des chaises et du fauteuil pour
nous renseigner si la personne est assise ou non, et sous les pieds du lit pour
nous renseigner si la personne est couche ou pas.
- Des capteurs de contacts pour les quipements de cuisine (tiroirs, placards de
cuisine) pour nous renseigner sur lutilisation des ustensiles de cuisine, et sur
lventuelle prparation du repas, etc.

Figure 9 : Schma dimplantation des capteurs dans Gerhome

27

7.3.

Rsultats de reconnaissance des vnements multimodaux

Dans cette section, nous prsentons les rsultats obtenus de la reconnaissance des
vnements multimodaux (vido et contact).
Quand le systme a correctement dtect une activit qui s'est produite, il a marqu un
vrai positif (TP); une dtection incorrecte dune activit a marqu un faux positif (FP).
Si une activit sest produite et que le systme ne la dtecte pas, il a marqu un faux
ngatif (FN). Les rsultats pour chaque identification des activits prdfinies dune
personne ge seront prsents sur le tableau 1. Nous avons alors employ deux
mtriques standard : la prcision (1) et la sensitivit (2).
- La prcision est le rapport entre le nombre de vrais positifs (reconnaissance
correcte) et la somme des nombres de vrais positifs et des faux positifs
dtects.
- La sensitivit est le rapport entre les vrais positifs dtects et la somme des
faux ngatifs et des vrais positifs dtects.
TP
TP + FP

Pr ecision =
Sensitivity =

vnement
Inside zone

(1)

TP
FN + TP

TP
(%)
100

(2)

FP FN Prcision Sensitivit
(%) (%)
0
0
1
1

Open cupboard

98

0,98

Close cupboard

98

0,98

Using food

94

0,959

0,979

Using dishes

94

0,959

0,979

Table 1: video-contact recognition results

Ltat primitif (Inside zone) est bien reconnu par les capteurs vido et les vnements
primitifs (Open /close cupboard) sont reconnu 98% par les capteurs de contact. Ces
vnements primitifs dfinissent deux vnements composs Using_food et
Using dishes , qui leur tour dfinissent le modle de lvnement Prepare
meal . La dfinition de ce modle utilise seulement les capteurs de contacts pour le
moment car les autres capteurs installs dans Gerhome (comme par exemple le
capteur install sur louverture du micro-onde, le capteur install sur la porte du
frigidaire, etc.) ne sont pas encore activs. Ces rsultats prliminaires nous encourage

28

utiliser lanalyse multicapteurs pour la reconnaissance dautres vnements


complexes dans les application de maintien des personnes ges domicile.

8. Conclusion
Ce stage a t loccasion pour moi de travailler sur un projet concret qui ma permis
de comprendre les concepts fondamentaux du traitement automatique de squences
vido et de tester lintgration de nouvelles donnes issues dautres capteurs (capteurs
de contact) pour amliorer la dtection et la reconnaissance dactivits humaines.
Ce travail a permis une premire analyse de lapprentissage des habitudes de vie
dune personne domicile partir de la fusion de donnes enregistres par un
ensemble de capteurs (vido et contact). Tout cart par rapport ce profil
comportemental est susceptible de correspondre une situation inquitante ou
critique. La dmarche propose comprend (i) la dfinition du contexte et des objectifs
de la problmatique, (ii) la dfinition de la liste dvnements a reconnatre (iii) la
modlisation des vnements vido et contact reconnus et enfin (iiii) la modlisation
des squences de donnes multidimensionnelles et htrognes (vido et contact)
permettant didentifier les comportements rcurrents dune personne domicile dans
ses activits de la vie quotidienne.
Nous avons prsent un systme de monitorage des activits dune personne
domicile en utilisant des capteurs vido et des capteurs de contact. Lanalyse de la
qualit de la mthode et des rsultats a mis en vidence la fois les potentialits et la
complexit de mise en pratique de la combinaison dinformations issues de cameras et
des capteurs de contact. Le manque de donnes exprimentales issues dun systme
rel ou des personnes ges simulent des scnarios qui relatent leur activits
quotidiennes domicile na cependant pas permis une validation complte des
rsultats obtenus.
Une autre haute priorit du travail venir est de dfinir des vnements pour dtecter
la chute des personnes, monitorer dautres lments de lenvironnement de la
personne (exemple : temprature).

9. Travaux futurs
Il est envisag de continuer la validation en situation semi exprimentale (hpital,
clinique) et plus grande chelle (rsidences pour personnes ge, domicile) en se
basant sur la fusion et le traitement de donnes multicapteurs. Ce systme doit tre
capable de renforcer la scurit au logement des personnes dpendantes et de
prolonger la surveillance et le suivi mis en uvre par les aidants familiaux et
professionnels. Il sera mis en place par des quipements domotiques permanents,
dautres faisant appel des quipements mobiles de manire largir les conditions
d'utilisation.

29

Bibliographie
[1]

[Avanzi et al. 2005]. A. Avanzi, F. Bremond, C. Tornieri and M. Thonnat,


"Design and Assessment of an Intelligent Activity Monitoring Platform", in
EURASIP Journal on Applied Signal Processing, special issue in "Advances in
Intelligent Vision Systems: Methods and Applications", 2005
[2] V.T. Vu, F. Bremond and M. Thonnat, "Automatic Video Interpretation: A
Novel Algorithm based for Temporal Scenario Recognition". The Eighteenth
International Joint Conference on Artificial Intelligence (IJCAI03),Acapulco,
Mexico, 9-15/08/2003.
[3] M. Thonnat,, N. Rota. "Image Understanding for Visual Surveillance
Applications", in : Third International Workshop on Cooperative Distributed
Vision, Kyoto, Japan, novembre, 1999. F. Brmond, M. Thonnat. "Issues of
representing context illustrated by video-surveillance applications",
International Journal of Human-Computer Studies, Special Issue on Context, 48,
1998, p. 375-391.
[4] M.J. Rodriguez, M.T. Arredondo, F. del Pozo, E.J. Gomez, A. Martinez, A.
Dopico, "A home telecare management system". J Telemed Telecare, vol. 1, pp.
8694, 1995.
[5] J.P. Thomesse, "TISSAD : Technologies de lInformation Intgres aux
Services des Soins Domicile". Tlmdecine et e-sant, R. Beuscart, P.
Zweigenbaum, A. Venot, et P. Degoulet (eds), SpringerVerlag, collection
Informatique et Sant, Paris, France, pp. 2734, 2002.
[6] J. Finkelstein, G. OConnor, R.H. Friedman, "Development and implementation
of the Home Asthma Telemonitoring (HAT) system to facilitate asthma selfcare", in Proc. of the 10th World Congress on Medical Informatics
(MEDINFO), London, UK, 2001, pp. 810814.
[7] L. Lind, E. Sundvall, H. Ahlfeldt, "Experiences from development of home
health care applications based on emerging Java technology", in Proc. of the
10th World Congress on Medical Informatics (MEDINFO), London, UK, 2001,
pp. 830834.
[8] M. Chan, H. Bocquet, E. Campo, T. Val, J. Pous, "Alarm communication
network to help carers of the elderly for safety purposes : a survey of a project".
Int J Rehabil Res, vol. 22, pp. 131-136, 1999.
[9] Ogawa, M. et Togawa, T. (2000). "Attempt at monitoring healt status in the
home". In Dittmar, A. et Beebe, D., diteurs : 1st EMBS Special Topic
Conference on Microtechnology in Medicine and Biology, pages 552 556,
Lyon, France. IEEE Computer Society Press.
[10] Inada, H., Horio, H., Sekita, Y., Isikawa, K. et Yoshida, K. (1992). "A study on
a home care support information system". In the Seventh World Congress on
Medical Informatics, pages 349353.
[11] Noury, N. et Pilichowski, P. (1992). "A telematic system tool for home health
care". In 14th Annual Intern. Conference of the IEEEEMBS, pages 11751177,
Paris, France.
[12] Richardson, S. J., Poulson, D. F. et Nicolle, C. (1993a). "Supporting
independent living through adaptable smart home (ash) technologies". In Human
Welfare and Technology : Papers from the Human Service Information
Technology Applications (HUSITA) 3 Conference on Information Technology
and the Quality of Life and Services, pages 8795.

30

[13] Celler, B. G., Earnshaw, W., Ilsar, E. D., Betbeder- Matibet, L., Harris, M. F.,
Clark, R., Hesketh, T. et Lovell, N. H. (1995). "Remote monitoring of health
status of the elderly at home". A multidisciplinary project on aging at the
University of New South Wales. Int J Biomed Comput, 40(2):14755.
[14] Chan, M., Hariton, C., Ringeard, P. et Campo, E. (1995). "Smart house
automation system for the elderly and the disabled". In IEEE International
conference on Systems, Man and Cybernetics, pages 15861589.
[15] Roth, A., Carthy, Z. et Benedek, M. (1997). "Telemedicine in emergency home
carethe Shahal experience". J Telemed Telecare, 3 Suppl 1:5860.
[16] Leikas, J., Salo, J. et Poramo, R. (1998). "Security alarm system supports
independent living of demented persons". Stud Health Technol Inform,
48:402-5.
[17] Mozer, M. (1998). "The neural network house : An environment that adapts to
its inhabitants". In AAAI Spring symposium on intelligent Environments, pages
110114.
[18] Williams, G., Doughty, K. et Bradley, D. A. (1998a). "A systems approach to
achieving CarerNetan integrated and intelligent telecare system". IEEE Trans
Inf Technol Biomed, 2(1):19.
[19] Doughty, K., Isak, R., King, P., Smith, P. et Williams, G. (1999). "Midasminiature intelligent domiciliary alarm system: A practical application of
telecare". In 1st Joint BMES/EMBS Conf. Serving Humanity, Advancing
Technology, volume 2, Atlanta.
[20] Elger, G. et Furugren, B. (1998). ""smartbo" - an ict and computer-based
demonstration home for disabled people". In 3rd TIDE Congress : Technology
for Inclusive Design and Equality Improving the Quality of Life for the
European Citizen, Helsinki, Finland.
[21] Bonner, S. G. (1998). "Assisted interactive dwelling house". In 3rd TIDE
Congress : Technology for Inclusive Design and Equality Improving the Quality
of Life for the European Citizen, Helsinki, Finland.
[22] Berlo, A. V. (1998). "A "smart" model house as research and demonstration
tool for telematics development". In 3rd TIDE Congress : Technology for
Inclusive Design and Equality Improving the Quality of Life for the European
Citizen, Helsinki, Finland.
[23] Sixsmith, A. J. (2000). "An evaluation of an intelligent home monitoring
system". J Telemed Telecare, 6(2):6372.
[24] Noury, N., Herv, T., Rialle, V. et Virone, G. (2000). "Monitoring behavior in
home using a smart fall sensor and position sensors". In IEEEEMBS
"Microtechnologies in Medicine & Biology, pages 607610, Lyon, France.
[25] Rialle, V., Noury, N. et Herv, T. (2001). "An experimental health smart home
and its distributed internet-based information and communication system : first
steps of a research project". Medinfo, 10(Pt 2).
[26] H. Pigot, B. Lefebvre, J.-G. Meunier, B. Kerherv, A. Mayers, S. Giroux. "The
role of intelligent habitats in upholding elders in residence", in Proc. of the 5th
International Conference on Simulations in Biomedicine, Slovenia, April 2003,
pp. 497506.
[27] Steenkeste, F., Bocquet, H. et M Chan, E. C. (2001). "La mise en place dune
technologie pour observer le comportement nocturne des personnes ges en
institution". ITBM-RBM, 22(1): 2530.

31

[28] Noury, N. (2005). "Ailisa: experimental platforms to evaluate remote care and
assistive technologies in gerontology". In Healthcom2005, pages 155 160,
Busan-Korea.
[29] Kerr, K., White, J., Barr, D. et Mollan, R. (1997). "Analysis of the sit-stand-sit
movement cycle in normal subjects". Clin Biomech (Bristol, Avon), 12(4):236
245.
[30] Intille, S. S., Kukla, C., Stigge, B. et Bonanni, L. (2001). "Merging the physical
and digital in ubiquitous computing environments". Rapport technique,
Massachusetts Institute of Technology, Cambridge, MA, MIT Dept. of
Architecture House_n Project.
[31] Kautz, H., Arnstein, L., Borriello, G., Etzioni, O. et Fox, D. (2002). "An
overview of the assisted cognition project". In AAAI-02 Worskhop on
Automation as Caregiver : The Role of Intelligent Technology in Elder Care,
pages 6065.
[32] Avanzi, F. Bremond, C. Tornieri and M. Thonnat. "Design and Assessement of
an Intelligent Activity Monitoring Platform". EURASIP Journal on Applied
Signal Processing, Special Issue on .Advances in Intelligent Vision Systems:
Methods and Applications., Vol. 2005:14, pp. 2359-2374, 11/08/2005.
[33] N. Chleq, F. Bremond, M. Thonnat. "Advanced Video-based Surveillance
Systems", C.S. Regazzoni, G. Fabri, and G. Vernazza, Kluwer A.P. , Hangham,
MA, USA, November, 1998, Image Understanding for Prevention of Vandalism
in Metro Stations, p. 108-118.
[34] [Khoudour et al. 2001]. L. Khoudour, J. Hindmarsh, D. Aubert, S. Velastin and
C. Heath (2001). "Enhancing security management in public transport using
automatic incident detection". In L. Sucharov and C. Brebbia, editors, Urban
Transport VII: Proceeding of the 7th International Conference on Urban
Transport and the Environment for the 21st Century, pages 619-628,
Southampton, United Kinkdom. WIT Press.
[35] [Cuppilard et al. 2004]. F. Cuppilard, A. Avanzi, F. Bremond and M. Thonnat
(2004). "Video understanding for metro surveillance". In Proceedings of the
IEEE International Conference on Networking, Sensing and Control, Special
Session on Intelligent Transportation Systems (IC-NSC04), Taipei, Taiwan.
[36] V.T. Vu, F. Bremond, G. Davini, M. Thonnat (2006). "Audio-Video Event
Recognition System for Public Transport Security", ICDP 2006.
[37] Borg M., Thirde D., Aguilera J., Fernandez G., Ferryman J., and Kampel M.,
"Robust People and Vehicle Tracking for Visual Surveillance", submitted to:
"European Conference on Computer Vision", Graz, Austria, May 7th - 13th,
2006.
[38] Duchne, F. (2004). "Fusion de donnes multicapteurs pour un systme de
tlsurveillance mdicale de personnes domicile", Thse de doctorat,
Universit Joseph Foruier de Grenoble.
[39] Glascock, A. et Kutzik, D. (2000). "Behavioral telemedicine : A new approach
to the continuous nonintrusive monitoring of activities of daily living".
Telemedicine journal, 6(1):3344.
[40] K. Takahashi, H. Yamasaki. ''Audio-Visual Sensor Fusion System for Intelligent
Sound Sensing''. Proceedings of the 1994 IEEE International Conference on
Multisensor Fusion and Integration for Intelligent Systems (MFI94) Las Vegas,
NV Oct. 2-5, 1994.

32

[41] J. Besnard, C. Lehalle, S. Ambellouis "Audio et vido surveillance intelligente",


Journe spcialise PEPSAT 22 mars 2005, Projet Transport Espace et
Socit .
[42] I. Bloch, "Fusion dinformations en traitement du signal et des images". Edit.
Herms Science, Paris, France, 318 p., janvier 2003.
[43] Neuman, E. (1998). "Weighing device for bedridden patients. European patent".
854 357 A1.
[44] Canecaude, E. D. (1985). "Device for weighing individuals on wc seat".
European patent 0 854 357 A1.
[45] Noury, N., Dittmar, A., Corroy, C., Baghai, R., Weber, J., Blanc, D., Klefstat,
F., Blinovska, A., Vaysse, S. et Comet, B. (2004). "wearable microsystems
embedded in a cloth for remote monitoring of physiological signs and activity of
a patient - the vtamn project". Radiomatics Journal on Communication
Engineering.

33

Annexes
Voici une partie du code source de notre application.

Gerhome.xml : Reprsente le fichier de contexte, ce fichier contient toutes les


informations sur les objets physiques prsents dans lenvironnement tudi.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<CONTEXT_DESCRIPTION
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:noNamespaceSchemaLocation="http://wwwsop.inria.fr/orion/personnel/Alberto.Avanzi/context_definition.xsd">
<!-<CAMERA cam_id = "1" camera_name = "OR1" img_width = "352" img_height =
"288">
<Calibration_matrix

/>

m00="-1.801073" m01="-0.712012" m02="-0.894094"


m03="1078.046584"
m10="-0.146685" m11="0.345081" m12="-2.002973"
m13="611.955960"
m20="-0.000280" m21="-0.004910" m22="-0.005004"
m23="1.000000"

<Location x = "30" y = "-582" z = "220" />


<Digit_box_list>
</Digit_box_list>
<Mask_list>
</Mask_list>
</CAMERA>
-->
<CAMERA cam_id="2" camera_name="OR2" img_width="352" img_height="288">
<Calibration_matrix
m00="-1.157392"
m01="-0.901498"
m02="-0.583996"
m03="258.897498"
m10="-0.105100"
m11="0.260747"
m12="-1.479638"
m13="428.199480"
m20="0.000510"
m21="-0.002407"
m22="-0.002343"
m23="1.000000" />
<Location x="22" y="45" z="215" />
<Digit_box_list />
<Mask_list />
</CAMERA>
<_3D_EMPTY_SCENE>
<Referential ref_num="1" ref_name="Ger_home" />
<Plane_list>
- <!-For 'orientation' field, 0 = HORIZONTAL and 1 = VERTICAL
-->
<Plane name="ground" orientation="0" eq_x="0" eq_y="0" eq_z="1" eq_w="0" />
</Plane_list>
34

<Zone_list>
<Zone ident="1" name="Kitchen" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="0" y="-577" z="0" />
<Point x="0" y="-310" z="0" />
<Point x="185" y="-310" z="0" />
<Point x="185" y="-577" z="0" />
</Outline_list>
</Zone>
<Zone ident="2" name="KitchenCupboards" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="Problem_zone" />
</Properties_list>
<Outline_list>
<Point x="125" y="-577" z="0" />
<Point x="125" y="-366" z="0" />
<Point x="185" y="-366" z="0" />
<Point x="185" y="-577" z="0" />
</Outline_list>
</Zone>
<Zone ident="3" name="Livingroom" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="0" y="-310" z="0" />
<Point x="0" y="0" z="0" />
<Point x="374" y="0" z="0" />
<Point x="374" y="-310" z="0" />
</Outline_list>
</Zone>
<Zone ident="4" name="tablechair" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="0" y="-366" z="0" />
<Point x="0" y="-180" z="0" />
<Point x="125" y="-180" z="0" />
<Point x="125" y="-366" z="0" />
</Outline_list>
</Zone>
<Zone ident="5" name="Hall" plane_name="ground">
35

<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="185" y="-577" z="0" />
<Point x="185" y="-310" z="0" />
<Point x="374" y="-310" z="0" />
<Point x="374" y="-577" z="0" />
</Outline_list>
</Zone>
<Zone ident="6" name="Bathroom" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="374" y="-577" z="0" />
<Point x="374" y="-310" z="0" />
<Point x="625" y="-310" z="0" />
<Point x="625" y="-577" z="0" />
</Outline_list>
</Zone>
<Zone ident="7" name="Bedroom" plane_name="ground">
<Ref_distance_list />
<Properties_list>
<Property name="In_out_zone:Strict" />
</Properties_list>
<Outline_list>
<Point x="374" y="-310" z="0" />
<Point x="374" y="0" z="0" />
<Point x="625" y="0" z="0" />
<Point x="625" y="-310" z="0" />
</Outline_list>
</Zone>
</Zone_list>
<Area_list>
<Area name="GERHOME">
<Area_zones_list>
<Area_zone zone_name="Kitchen" />
<Area_zone zone_name="KitchenCupboards" />
<Area_zone zone_name="Livingroom" />
<Area_zone zone_name="tablechair" />
<Area_zone zone_name="Hall" />
<Area_zone zone_name="Bathroom" />
<Area_zone zone_name="Bedroom" />
</Area_zones_list>
</Area>
</Area_list>
<Wall_list>
36

<Wall ident="1" name="mur_gauche" plane_name="ground" height="240">


<Properties_list />
<Start_point x="0" y="-500" z="200" />
<End_point x="0" y="0" z="200" />
</Wall>
<Wall ident="2" name="mur_haut" plane_name="ground" height="240">
<Properties_list />
<Start_point x="0" y="0" z="200" />
<End_point x="300" y="0" z="200" />
</Wall>
<Wall ident="3" name="mur_droite_1" plane_name="ground" height="240">
<Properties_list />
<Start_point x="300" y="0" z="200" />
<End_point x="300" y="-300" z="200" />
</Wall>
<Wall ident="4" name="mur_droite_2" plane_name="ground" height="240">
<Properties_list />
<Start_point x="300" y="-300" z="200" />
<End_point x="300" y="-500" z="200" />
</Wall>
<Wall ident="5" name="mur_bas_1" plane_name="ground" height="240">
<Properties_list />
<Start_point x="300" y="-500" z="200" />
<End_point x="100" y="-500" z="200" />
</Wall>
<Wall ident="7" name="mur_bas_2" plane_name="ground" height="240">
<Properties_list />
<Start_point x="100" y="-300" z="200" />
<End_point x="300" y="-300" z="200" />
</Wall>
<Wall ident="8" name="mur_bas_3" plane_name="ground" height="240">
<Properties_list />
<Start_point x="100" y="-500" z="200" />
<End_point x="0" y="-500" z="200" />
</Wall>
</Wall_list>
<Equipment_list>
<Equipment_obj ident="1" name="Table" plane_name="objects" height="70">
<Properties_list />
<Outline_list>
<Point x="20" y="-280" z="0" />
<Point x="20" y="-200" z="0" />
<Point x="80" y="-200" z="0" />
<Point x="80" y="-280" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="2" name="Armchair" plane_name="objects" height="50">
<Properties_list />
<Outline_list>
<Point x="170" y="-180" z="0" />
37

<Point x="170" y="-100" z="0" />


<Point x="240" y="-100" z="50" />
<Point x="240" y="-180" z="50" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="3" name="LivingroomWindow" plane_name="objects"
height="70">
<Properties_list />
<Outline_list>
<Point x="0" y="-100" z="70" />
<Point x="0" y="-200" z="70" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="4"
name="KitchenWindow"
plane_name="objects"
height="70">
<Properties_list />
<Outline_list>
<Point x="30" y="-577" z="110" />
<Point x="110" y="-577" z="110" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="5" name="Cupboard" plane_name="objects" height="91">
<Properties_list />
<Outline_list>
<Point x="125" y="-577" z="0" />
<Point x="125" y="-366" z="0" />
<Point x="185" y="-366" z="0" />
<Point x="185" y="-577" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="6" name="leftKitchenLowerCupboard" plane_name="objects"
height="40">
<Properties_list />
<Outline_list>
<Point x="125" y="-537" z="0" />
<Point x="125" y="-460" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="7"
name="RightKitchenLowerCupboard"
plane_name="objects" height="40">
<Properties_list />
<Outline_list>
<Point x="125" y="-577" z="0" />
<Point x="125" y="-537" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="8"
name="LeftKitchenUpperCupboard"
plane_name="objects" height="130">
<Properties_list />
<Outline_list>
38

<Point x="125" y="-400" z="180" />


<Point x="125" y="-366" z="180" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="9"
name="RightKitchenUpperCupboard"
plane_name="objects" height="130">
<Properties_list />
<Outline_list>
<Point x="125" y="-577" z="180" />
<Point x="125" y="-500" z="180" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="10"
name="BedroomDoor"
plane_name="objects"
height="200">
<Properties_list />
<Outline_list>
<Point x="374" y="-366" z="0" />
<Point x="374" y="-282" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="9" name="Bed" plane_name="objects" height="55">
<Properties_list />
<Outline_list>
<Point x="530" y="-366" z="0" />
<Point x="530" y="-178" z="0" />
<Point x="622" y="-178" z="0" />
<Point x="622" y="-366" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="10" name="Closet" plane_name="objects" height="175">
<Properties_list />
<Outline_list>
<Point x="378" y="-110" z="0" />
<Point x="378" y="-10" z="0" />
<Point x="428" y="-10" z="0" />
<Point x="428" y="-110" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="11"
name="BathroomDoor"
plane_name="objects"
height="84">
<Properties_list />
<Outline_list>
<Point x="125" y="-426" z="0" />
<Point x="125" y="-366" z="0" />
<Point x="165" y="-366" z="0" />
<Point x="165" y="-426" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="12" name="MainDoor" plane_name="objects" height="60">
<Properties_list />
39

<Outline_list>
<Point x="125" y="-426" z="0" />
<Point x="125" y="-366" z="0" />
<Point x="165" y="-366" z="0" />
<Point x="165" y="-426" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="13" name="Chair" plane_name="objects" height="50">
<Properties_list />
<Outline_list>
<Point x="30" y="-280" z="0" />
<Point x="30" y="-240" z="0" />
<Point x="70" y="-240" z="50" />
<Point x="70" y="-280" z="50" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="14" name="Refrigerator" plane_name="objects" height="85">
<Properties_list />
<Outline_list>
<Point x="125" y="-460" z="0" />
<Point x="125" y="-366" z="0" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="15" name="Toilet" plane_name="objects" height="50">
<Properties_list />
<Outline_list>
<Point x="170" y="-180" z="0" />
<Point x="170" y="-100" z="0" />
<Point x="240" y="-100" z="50" />
<Point x="240" y="-180" z="50" />
</Outline_list>
</Equipment_obj>
<Equipment_obj
ident="16"
name="Electric_plates"
plane_name="objects"
height="50">
<Properties_list />
<Outline_list>
<Point x="170" y="-180" z="0" />
<Point x="170" y="-100" z="0" />
<Point x="240" y="-100" z="50" />
<Point x="240" y="-180" z="50" />
</Outline_list>
</Equipment_obj>
<Equipment_obj ident="17" name="Tap" plane_name="objects" height="50">
<Properties_list />
<Outline_list>
<Point x="170" y="-180" z="0" />
<Point x="170" y="-100" z="0" />
<Point x="240" y="-100" z="50" />
<Point x="240" y="-180" z="50" />
</Outline_list>
40

</Equipment_obj>
<Equipment_obj
ident="18"
name="ContactSensor_1"
plane_name="objects"
height="50">
<Properties_list />
<Outline_list>
<Point x="125" y="-530" z="0" />
</Outline_list>
</Equipment_obj>
</Equipment_list>
</_3D_EMPTY_SCENE>
<EXPECTED_OBJECTS>
<Expected_obj
name="PERSON"
model="C3DReliabilityModel"
plane_name="ground">
<Found_in_list>
<Found_in name="GERHOME" />
</Found_in_list>
<Parameter name="width3D" type="function" value="CGaussianFunction">
<Parameter name="mean" type="numeric" value="60.0" />
<Parameter name="sigma" type="numeric" value="35.0" />
<Parameter name="min" type="numeric" value="35.0" />
<Parameter name="max" type="numeric" value="120.0" />
</Parameter>
<Parameter name="width3D.weight" type="numeric" value="1.0" />
<Parameter name="width3D.threshold" type="numeric" value="1.0" />
<Parameter name="height3D" type="function" value="CGaussianFunction">
<Parameter name="mean" type="numeric" value="165.0" />
<Parameter name="sigma" type="numeric" value="56.0" />
<Parameter name="min" type="numeric" value="118.0" />
<Parameter name="max" type="numeric" value="220.0" />
</Parameter>
<Parameter name="height3D.weight" type="numeric" value="1.0" />
<Parameter name="height3D.threshold" type="numeric" value="1.0" />
<Parameter name="depth3D" type="function" value="CGaussianFunction">
<Parameter name="mean" type="numeric" value="20.0" />
<Parameter name="sigma" type="numeric" value="20.0" />
<Parameter name="min" type="numeric" value="10.0" />
<Parameter name="max" type="numeric" value="30.0" />
</Parameter>
<Parameter name="depth3D.threshold" type="numeric" value="1.0" />
<Parameter name="depth3D.weight" type="numeric" value="1.0" />
</Expected_obj>
</EXPECTED_OBJECTS>
</CONTEXT_DESCRIPTION>

41

main_GERHOME .cpp :
application

Reprsente

le

programme

principal

de

notre

#include "CPythonInterface.h"
#include "CDisplayActionImplementations.h"
#include "ObjectRegistration.h"
//#include "CVsipBehavior.h"
#include "CParameterReader.h"
#include <sys/dir.h>
#include "CAction.h"
#include <time.h>
//#include "CXMLOutputInd.h"
#include "imagegrab.h"
#include "CDisplay3DAction.h"
#include "ContactSensorEvent.h"
class CoutAction : public CAction
{
public:
CoutAction() : m_nbFrames(0){}
bool execute(CPythonInterface *i_pApplication,
i_compositeModuleName)
{
std::cout << m_nbFrames << std::endl;

const

std::string&

const

std::string&

std::cout.flush();
m_nbFrames++;
return true;
}
private:
int m_nbFrames;
};
class StepAction : public CoutAction
{
public:
bool execute(CPythonInterface
i_compositeModuleName)
{

*i_pApplication,

42

CoutAction::execute(i_pApplication, i_compositeModuleName);
getchar();

};

return true;

class SaveImageAction : public CAction


{
public:
SaveImageAction() : m_index(0) {}
bool execute(CPythonInterface *i_pApplication, const std::string&
i_compositeModuleName)
{
image_t image = GrabImage(5, NULL, 0);
char buffer[512];
sprintf(buffer, "./video_gerhome/%06d.jpg", m_index++);
save_image(image, buffer);
return true;

};

}
private:
int m_index;

int main()
{
registerObjects(); //Register objects of the library
registerActions(); //Register display action to be used in the generic
application
//
CTObject::m_DisplayMessage = TTRUE;
//
//
//
//Here we get a reference to the application. We cannot allocate a new
CPythonInterface. The way to obtain
//an object of this type is to used the PythonInterface::instance static method.
Wherever you are in the code,
//you always have access to the application since PythonInterface is a class not
an object.
CPythonInterface& pythonInterface = PythonInterface::instance();
43

//Now that we have a reference to the application, we can play with it.
//First of all we have to add a composite module. A composite module is the
new way to create Analyse and
//Behaviour classes. Actually, Analyse is simply a composite module before
fusion and Behaviour is a composite
//module after fusion.
//Next line create adds a composite module with name "Camera1" and
associates the parameter file
//The false (or 0) parameter indicates that this composite module is a pre
fusion composite module.
//pythonInterface.insertCompositeModule("Camera1",
"../../../dataFiles/RELIABILITYCLASSIFICATION/Gerhome/param_gerhome_cam1.dat");
pythonInterface.insertCompositeModule("Camera1",
"../../../dataFiles/RELIABILITYCLASSIFICATION/Gerhome/param_gerhome_cam2.dat");
//pythonInterface.insertCompositeModule("Camera1",
"../../../dataFiles/RELIABILITYCLASSIFICATION/Gerhome/param_gerhome_cam3.dat");

false,
false,
false,

//Now that we have added a composite module to the application, we can add
some modules.
//Using the insertModule method, we can do the job.
//How does it work ?
//The first parameter specifies the name of the composite module to which
adding the module.
//The second parameter specifies the name of the module to add. The name of
the module is directly the name
//of the module class.
// Camera 1
pythonInterface.insertModule("Camera1", "ContextModule");
pythonInterface.insertModule("Camera1", "AcquisitionModule");
pythonInterface.insertModule("Camera1", "BackgroundInitialisationModule");
pythonInterface.insertModule("Camera1", "SegmentationModule");
pythonInterface.insertModule("Camera1", "ReliabilityClassificationModule");
pythonInterface.insertModule("Camera1", "MergeBlobModule");
pythonInterface.insertModule("Camera1", "AdaptChangesModule");
pythonInterface.insertModule("Camera1", "BlobSeparationModule");
pythonInterface.insertModule("Camera1", "BlobFilteringModule");
//pythonInterface.insertModule("Camera1", "BlobPosCorrectionModule");

44

//pythonInterface.insertModule("Camera1",
"BlobPositionCorrectionModule");
pythonInterface.insertModule("Camera1", "Blob2MobileConversionModule");
pythonInterface.insertModule("Camera1", "F2FTrackingModule");
pythonInterface.insertModule("Camera1", "PersonDetectionModule");
pythonInterface.insertModule("Camera1", "NoiseTrackingModule");
pythonInterface.insertModule("Camera1", "GhostRemoverModule");
pythonInterface.insertModule("Camera1", "DoorDetectionModule");
pythonInterface.insertModule("Camera1", "NoiseFeaturesModule");
//pythonInterface.insertModule("Camera1", "BackgroundUpdatingModule");
//Here we set the number of executions of the application --> 0 for infinity
pythonInterface.setNumberOfExecutions("Camera1", 0);
//All the modules are registered, we can now attach some display to the
application calling attachDisplayAction.
//The first parameter specifies the name of the composite module to which
attaching the display.
//The second parameter specifies when we want to display information.
//The third parameter specifies what we want to display. Here
CDisplayCurrentImage. The string we pass
//here is the name of one of the classes registered in the
CDisplayActionImplementation.cpp.
//pythonInterface.attachDisplayAction("Camera1",
"BackgroundInitialisationModule-end-execution", "DisplayBackground", false, 0, 0);
//pythonInterface.attachDisplayAction("Camera1",
"BackgroundUpdatingModule-end-execution", "DisplayBackground", false, 0, 0);
//pythonInterface.attachDisplayAction("Camera1",
"BackgroundUpdatingModule-end-execution", "DisplayCurrentImage", false, 0, 0);
pythonInterface.attachDisplayAction("Camera1", "SegmentationModule-endexecution", "DisplayForeground", false, 1, 0);
//pythonInterface.attachDisplayAction("Camera1",
"SegmentationModuleend-execution", "DisplaySegmentationRepair", false, 1, 0);
pythonInterface.attachDisplayAction("Camera1", "SegmentationModule-endexecution", "DisplayBlobsWithType", false, 1, 0);
pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "DisplayCurrentImage", false, 2, 0);
pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "DisplayBlobsWithType", false, 2,
0);
pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution",
"DisplayBlobsWith3DVersion",
false, 2, 0);

45

//pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "DisplayContextZones", false, 2,
0);
//pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "DisplayContextObjects", false, 2,
0);
//pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "DisplayFocalPoint", false, 2, 0);
//pythonInterface.attachDisplayAction("Camera1",
"ReliabilityClassificationModule-end-execution", "Display3DAxis", false, 2, 0);

pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayCurrentImage", false, 0, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayBlobsWithType", false, 0, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayBlobsWith3DVersion", false, 0, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayContextZones", false, 0, 1);
//pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayContextWalls", false, 0, 1);

"MergeBlobModule-end"MergeBlobModule-end"MergeBlobModule-end"MergeBlobModule-end"MergeBlobModule-end-

pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayCurrentImage", false, 2, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayBlobsWithType", false, 2, 1);

"BlobFilteringModul-end-

pythonInterface.attachDisplayAction("Camera1",
end-execution", "DisplayCurrentImage", false, 2, 1);
pythonInterface.attachDisplayAction("Camera1",
end-execution", "DisplayBlobs", false, 2, 1);

"BlobSeparationModule-

pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayCurrentImage", false, 1, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayBlobsWithType", false, 1, 1);
pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayMobiles", false, 1, 1);
//pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayLinks", false, 1, 1);
//pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayContextZones", false, 1, 1);
//pythonInterface.attachDisplayAction("Camera1",
execution", "DisplayContextObjects", false, 1, 1);

"BlobFilteringModul-end-

"BlobSeparationModule-

"F2FTrackingModule-end"F2FTrackingModule-end"F2FTrackingModule-end"F2FTrackingModule-end"F2FTrackingModule-end"F2FTrackingModule-end-

46

CoutAction action;
pythonInterface.attachPythonScript("Camera1", "BlobSeparationModule-endexecution", action);
//Insert composite module after fusion
pythonInterface.insertCompositeModule("Fusion",
"../../../dataFiles/RELIABILITYCLASSIFICATION/Gerhome/param_gerhome_fusion.dat");

true,

pythonInterface.insertModule("Fusion", "SynchronisationModule");
pythonInterface.insertModule("Fusion", "FusionTrackingModule");
//pythonInterface.insertModule("Fusion",
"XMLOutputFromInstancesModule");
pythonInterface.insertModule("Fusion", "IndividualAnalyseModule");
pythonInterface.insertModule("Fusion", "ScenarioRecognitionModule");
pythonInterface.attachDisplayAction("Fusion", "FusionTrackingModule-endexecution", "DisplayFusionImage", false, 1, 1);
pythonInterface.attachDisplayAction("Fusion", "FusionTrackingModule-endexecution", "DisplayIndividuals", false, 1, 1);
pythonInterface.attachDisplayAction("Fusion",
"IndividualAnalyseModuleend-execution", "DisplayFusionImage", false, 1, 2);
pythonInterface.attachDisplayAction("Fusion",
"IndividualAnalyseModuleend-execution", "DisplayIndividualAnalyse", false, 1, 2);
//
pythonInterface.attachDisplayAction("Fusion", "ScenarioRecognitionModuleend-execution", "DisplayFusionImage", false, 2, 2);
pythonInterface.attachDisplayAction("Fusion", "ScenarioRecognitionModuleend-execution", "DisplayIndividuals", false, 2, 2);
pythonInterface.attachDisplayAction("Fusion", "ScenarioRecognitionModuleend-execution", "DisplayScenario", false, 2, 2);
//
CDisplay3DAction display3DAction;
pythonInterface.attachPythonScript("Camera1",
initialisation", display3DAction);
SaveImageAction saveImage;
pythonInterface.attachPythonScript("Fusion",
end-execution", saveImage);

"ContextModule-end-

"ScenarioRecognitionModule-

//CXMLOutputInd outputInd;
//pythonInterface.attachPythonScript("Fusion", "FusionTrackingModule-endexecution", outputInd);

47

pythonInterface.setNumberOfExecutions("Fusion", 0);
//Start the application in threaded (true or 1) or not threaded mode (false or 0).
//If you pass true to this method, the application is launched automaticly.
pythonInterface.start(false);
//Call this method if you pass false to start
pythonInterface.runOnce();
time_t startTime = time(NULL);
//Call run method until it returns false.
while(pythonInterface.run())
{
// getchar();
}
time_t endTime = time(NULL);
std::cout << "Total time is " << (endTime-startTime) << " seconds" <<
std::endl;
}

return 0;

sr.stategerhome.model : Reprsente lensemble des tats primitifs dfinis en


utilisant le langage de description de scnario (SDL).
{============================================
File name:
sr.stategerhome.model
Written by: Nadia Zouba, ORION, INRIA, France
Date:
06/2006
Purpose:

modelisation of the states for recognition Gerhome

Language:
a description language, proposed by VU Van Thinh.
============================================}
List(SR_StateDefinitions,
include("../models/sr.function.model")
# State: a person is "inside" a zone
# PhysicalObjects; person p and zone z
PrimitiveState(inside_zone,
PhysicalObjects((p : Person), (z : Zone))
Constraints((p in z))
48

Alarm(AText(z's Name)
AType("NOTURGENT")
APos2D(p->Pos2D)
APos3D(p->Position))

# State: a person is "outside" a zone


# PhysicalObjects; person p and zone z
PrimitiveState(outside_zone,
PhysicalObjects((p : Person), (z : Zone))
Constraints((!(p in z)))
)
# State: a person is walking
# PhysicalObjects: person p
PrimitiveState(person_walking,
PhysicalObjects((p : Person))
Constraints((p->Posture = 0))
#Alarm(
AText("Person is walking")
#AType("NOTURGENT")
#APos2D(p->Pos2D)
#APos3D(p->Position))
)

# State: a person is seated


# PhysicalObjects: person p
PrimitiveState(person_seated,
PhysicalObjects((p : Person))
Constraints((p->Posture != 0))
#Alarm(
AText("Person is seated")
#
AType("NOTURGENT")
#
APos2D(p->Pos2D)
#
APos3D(p->Position))
)
# State: a person is standing up
# PhysicalObjects: person p
PrimitiveState(person_standing_up,
PhysicalObjects((p : Person))
Constraints((p->Posture = 0))
#Alarm(
AText("Person is standing up")
#
AType("NOTURGENT")
#
APos2D(p->Pos2D)
#
APos3D(p->Position))
)

49

# State: a door is closed


# PhysicalObjects: equipment d
PrimitiveState(door_closed,
PhysicalObjects((p : Person), (d : Equipment))
Constraints((IsDoorClosed(d)))
)
# State: a door is opened
# PhysicalObjects: equipment d
PrimitiveState(door_opened,
PhysicalObjects((p : Person), (d : Equipment))
Constraints((IsDoorOpened(d)))
)
# State: the UpperCupboard is "Close"
# PhysicalObjects: equipment c
PrimitiveState(UpperCupboard_closed,
PhysicalObjects((p: Person), (c : Equipment))
Constraints((IsUpperCupboardClosed(c)))
)
# State: the UpperCupboard is "Open"
# PhysicalObjects: equipment c
PrimitiveState(UpperCupboard_opened,
PhysicalObjects((p: Person), (c : Equipment))
Constraints((IsUpperCupboardClosed(c)))
)
# State: the refrigerator door's is "Open"
# PhysicalObjects: equipment r
PrimitiveState(refrigerator_opened,
PhysicalObjects((r : Equipment))
Constraints((r's State = Opened))
)
# State: the refrigerator door's is "Close"
# PhysicalObjects: equipment r
PrimitiveState(refrigerator_closed,
PhysicalObjects((r : Equipment))
Constraints((r's State = Closed))
)

50

# State: the Cupboard is "Open"


# PhysicalObjects: equipment c
PrimitiveState(Cupboard_opened,
PhysicalObjects((p: Person), (c : Equipment))
Constraints((IsCupboardOpened(c)))
)
# State: the LowerCupboard is "Close"
# PhysicalObjects: equipment c
PrimitiveState(LowerCupboard_closed,
PhysicalObjects((p: Person), (c : Equipment))
Constraints((c's State = Closed))
)
# State: the LowerCupboard is "Open"
# PhysicalObjects: equipment c
PrimitiveState(LowerCupboard_opened,
PhysicalObjects((p: Person), (c : Equipment))
Constraints((c's State = Opened))
)

sr.functio.model : Reprsente les diffrentes fonctions dfinies dans le langage


SDL.
{============================================
File name:
sr.function.model
Written by: VU Van Thinh, doctorant, ORION, INRIA, France
Date:
13/02/2003
Purpose:

modelisation of the functions.

Language:
a description language, proposed by VU Van Thinh.
============================================}
List(SR_FunctionDefinitions,
#
Define Function(InitMotor__()
#
(Debug(TRUE))
)
#
Define Function(InitMotor()
#(Debug(TRUE))
#(Print("Initiating the motor ", CurrentMotor()'s Name, "\n"))
#(Sqrt(4.0) = 2.0)
#(Print("Exp3(", 2, ") = ", Exp3(2), "\n"))
#(Debug(ON))
51

#(Print("Call Fac(", 4, ") = ", Fac(4), "\n"))


#(Debug(OFF))
#(Exp3(2) = 8)
#(Pause())
#(Print(Tolerance's Name, " = ", Tolerance, "\n"))
#(Print("\n===========================================\nThe
environment variables:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Env)) #
#(Print("\n===========================================\nThe
objects defined in the motor:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Models)) #
#(Print("\n===========================================\nThe
used models by the motor:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s UsedModels)) #
#(Print("\n===========================================\nThe
objects of the stock:\n------------\n"))
#(PrintListObjects(GetAllObjects())) # Print all objects in the stock of
the system
#(Print("\n===========================================\nThe
objects of the observed environment:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Context)) # Print all objects of the
observed environment
#(Print("\n===========================================\nThe
interested zones:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Zones)) #
#(Print("\n===========================================\nThe
interested walls:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Walls)) #
#(Print("\n===========================================\nThe
interested equipment:\n------------\n"))
#(PrintListObjects(CurrentMotor()'s Equipments)) #
#(Print("\nDone.\n"))
#
#
(Pause())
Vars(lSensors: Var)
(Holds(lSensors, New("List")))
(lSensors's Name <- "Sensors")
(lSensors add Find(CurrentMotor()'s Env, "Sensor1"))
(lSensors add Find(CurrentMotor()'s Env, "Sensor2"))
(lSensors add Find(CurrentMotor()'s Env, "Sensor3"))
52

#
#
)

(lSensors add Find(CurrentMotor()'s Env, "Sensor4"))


(CurrentMotor()'s Context insert Export(lSensors))
(PrintListObjects(Find(CurrentMotor()'s Context, "Sensors")))
(Pause())
(Debug(TRUE))

Define Function(CreateNewContactEvent(_Name, _StartFrame, _EndFrame,


_Sensor, _Type)
Vars(ce : ContactEvent)
(ce's Name <- _Name)
(ce's CEStartFrame <- _StartFrame)
(ce's CEEndFrame <- _EndFrame)
(ce's CESensor <- _Sensor)
(ce's CEType <- _Type)
(CurrentMotor()'s ContactEvents add Export(ce))
(TRUE)
)
#
Define Function(Find(_List, _Name)
Vars(pList : Var)
(Holds(pList, _List))
((!(_List) | !(_List's First)) ? NULL : FindNotNull(_List, _Name))
)
Define Function(CreateNewPoint3D(_Name, _X, _Y, _Z)
Vars(p : Point3D)
(p's Name <- _Name)
(SetValue(p, _X, _Y, _Z))
(CurrentMotor()'s Env add Export(p))
(TRUE)
)
Define Function(PrintContactEvent(_CE)
(Print("ContactEvent startFrame:", _CE's CEStartFrame, " endFrame:",
_CE's CEEndFrame, " type:", _CE's CEType, " micro:", _CE's CESensor, "\n"))
(TRUE)
)
#
Define Function(StartFrame_()
(Print("======================= Motor ", CurrentMotor()'s
Name, " starts frame ", Now, "====================\n"))
#
(PrintListObjectsPos(CurrentMotor()'s Persons)) # Print all persons
#
(Debug(TRUE))
#(IsDoorOpened(SafeGateWall_RGB_128_0_0))
#(Debug(FALSE))
)
#
53

Define Function(EndFrame_()
(Print("\n"))
(Print("======================= Motor ", CurrentMotor()'s
Name, " starts frame ", Now, "====================\n"))
(PrintListObjectsPos(CurrentMotor()'s Persons)) # Print all persons
# Display all alarms
Vars(lAlarms : Var)
((Holds(lAlarms, CurrentMotor()'s Alarms)) &
(While(lAlarms, ((Print("Alarm (", lAlarms's First's APos3D's x,
lAlarms's First's APos3D's y, ") : ",
lAlarms's First's ARef's Actors's First's Name, " <-> ",
lAlarms's First's AText, " (",
lAlarms's First's ARef's Model, ").\n")) &
(Holds(lAlarms, lAlarms's Tail))))) )
#
#Vars(Test : CTest2)
#(Test's A1 <- "Attribute 01")
#(Test's A2 <- "Attribute 02")
#(Test's i_ <- 100)
#(Print("Class = ", Test's Class, ", i_ = ", Test's i_, ", A1 = ", Test's A1,
", A2 = ", Test's A2, "\n"))
#
#(Pause())
)
#
Define Function(Exp3(i) (i*i*i) )
#
Define Function(Fac(n)
(Print("Fac(", n, ")-> "))
(Fac1(n)) )
#
Define Function(Fac1(n)
(Print("Fac1(", n, ")-> "))
((n < 2) ? 1 : (n * Fac1(n-1))) )
#
Define Function(Fac2(n)
(Print("Fac2(", n, ")-> "))
(((n < 2) & 1) | (n * Fac2(n-1))) )
#
Define Function(Fac3(n)
(Print("Fac3(", n, ")-> "))
Vars(res : Int, i : Int)
((n <= 1) ? 1 : ((i <- n) & (res <- 1) & While((i > 1), ((res <- res*i) & (i
<- i-1) & res))) ) )

54

#
Define Function(Dec(n)
(n-1) )
#
Define Function(Inc(n)
(n+1) )
# Print a list of objects
Define Function(PrintListObjects(l)
#
((l & (Print("(", l's First's Name, " : ", l's First's Class, ") = ", l's First,
"\n")) &
((l & l's First & (Print("(", l's First's Name, " : ", l's First's Class, ") \n"))
&
(PrintListObjects(l's Tail)) ) |
TRUE) )
Define Function(PrintListObjectsPos(l)
((l & (Print("(", l's First's Name, " : ", l's First's Class, ") = ", "(", l's
First's Position's x, ", ", l's First's Position's y, ")\n")) &
(PrintListObjectsPos(l's Tail)) ) |
TRUE) )
# Print a list of objects
Define Function(WhilePrintListObjects(l)
Vars(pList : Var) # Or Holder
( ((Holds(pList, l)) &
(While(pList, ((Print("(", pList's First's Name, " : ", pList's
First's Class, ") = ", pList's First, "\n")) &
(Holds(pList, pList's Tail))))) ) |
TRUE) )
# Generate an alarm for an opened door
Define Function(IsUpperCupboardOpened_(uc)
Vars(NewAlarm : alarm)
((uc's State = Opened) ?
((NewAlarm's AText <- Name of uc + " is opened") &
(SetValue(NewAlarm's APos2D, 100., 100.)) &
(CurrentMotor()'s Alarms add Export(NewAlarm)) ) :
TRUE) )
Define Function(IsLowerCupboardOpened(lc)
#
(Print("Sate of the cupboard is: ", lc->State, ". "))
#
((lc->State = Closed_Opened) ? (Print("Closed_Opened = TRUE.\n")) :
(Print("Closed_Opened = FALSE.\n"))) )
)

55

{
#
#
#
#
}

Define Function(EndFrame()
(Debug(TRUE))
(Print("Current recognized scenarios\n"))
(PrintArrayObjects(CurrentMotor()'s Scenarios))
(Print(CurrentMotor()'s Scenarios's Length))
(Debug(FALSE))
)

Define Function(PrintArrayObjects(_A)
Vars(index : Int)
( ((Holds(index, 0)) &
(While((index < (_A's Length)), ((Print("(", (_A @ index)'s Name,
")")) & (Holds(index, index+1)))))) |
TRUE
)
)
)

56

Anda mungkin juga menyukai