irea metodelor pentru a recunoa ș te posturile ș i interac ț iunea dintre persoane în scenele 3D. Szente Teodor-Alexandru [630129]

UNIVERSITATEA POLITEHNICA BUCURE
Ș
TI

FACULTATEA DE AUTOMATIC
Ă

Ș
I CAL CULATOARE

DEPARTAMENTUL CALCULATOARE

PROIECT DE DIPLOM
Ă

Îmbun
ă
t
ă
ț
irea metodelor pentru a recunoa
ș
te posturile
ș
i

interac
ț
iunea

dintre persoane în scenele 3D.

Szente Teodor-Alexandru

Coordonator
ș
tiin
ț
ific:

Conf. dr. ing. Andrei Olaru

BUCURE
Ș
TI

2020

CUPRINS

Sinopsis
2

Abstract
2

Mul
ț
umiri
3

1
Introducere
4

1.1
Context
4

1.2
Problema
4

3
Abord
ă
ri existente
6

3.1
MubyNet

3.2
OpenPose

3.

1.1 Introducere

3.1.2 Re
ț
ea neu ronal
ă

3.1.2 H
ă
r
ț
i term ografice
ș
i P.A.F

4
Solu
ț
ia propus
ă
8

4.1
Prezentare Re
ț
ea Neuronal
ă
– ResNet50

4.2
Antrenarea re
ț
elei

5
Detalii de implementare
9

6
Evaluarea rezultatelor
11

7
Concluzii
13

8
Bibliografie
14

9
Anexe
16

1

S

INOPSIS

O
parte
considerat
ă
indispensabil
ă
a
inteligen
ț
ei
artificiale
este
capacitatea
de
a
întelege
ș
i

analiza
mediul
înconjur
ă
tor.
Din
categoria
problemelor
de
recunoa
ș
tere
a
elementelor
din

scen
ă
una
dintre
cele
mai
grele
probleme
este
recunoa
ș
tere
ș
i
în
ț
elegerea
corpului
uman.

Aceast
ă
lucrare
î
ș
i
propu ne
s
ă
analizeze
modelele
robuste
de
ultima
ora
din
literatura
de

specialitate
pentru
recunoa
ș
terea
scheletului
uman
în
135
de
puncte
cheie
ș
i
s
ă
propun
ă
un

creze model cu un cost computa
ț
ional mult mai mic.

S

INOPSIS

E

NGLEZ
Ă

An
indispensable
part
of
artificial
intelligence
is
the
ability
to
understand
and
analyze
the

environment.
From
the
category
of
perception
problems,
one
of
the
biggest
problems
is
the

recognition
and
understanding
of
the
human
body.
This
paper
aims
to
analyze
the
latest

robust
models
in
the
literature
for
the
recognition
of
the
human
skeleton
in
135
points
and

to propose a model with a much lower computational cost

2

A

BSTRACT

În
urm
ă
toarea
lucrare
vom
arat
ă
cum
este
posibil
s
ă
ob
ț
inem
ș
i
s
ă
proces
ă
m
schelete

umane
din
imagini
pe
ma
ș
ini
cu
resurse
limitate
(laptop-uri
personale,
telefoane,
etc).
Vom

distila
modele
robuste
precum
OpenPose
în
135
de
puncte
cheie,
unde
doar
ponderile

pentru
preantenare
m
ă
soar
ă
aproximativ
1.5
gigabytes
ș
i
vom
ob
ț
ine
modele
mai
pu
ț
in

robuste
care
p
ă
streaz
ă
o
parte
semnificativ
ă
din
acurate
ț
e
dar
în
acela
ș
i
timp
pot
fi
folosite

în
aplica
ț
ii
uzuale
f
ă
r
ă
s
ă
necesite
resurse
computa
ț
ionale
semnificative.
Vom
ar
ă
ta
cum
se

interpreteaz
ă
reprezent
ă
rile
nonparametrice
ale
OpenPose
(Corpuri
de
afinitate
ale
p
ă
r
ț
ilor)

ș
i
cum
se
pot
reface
leg
ă
turile
dintre
punctele
corpului
uman
prin
evaluarea
integralelor
de

linie
peste
corpuri
de
afinitate
ale
p
ă
r
ț
ilor.
Vom
ar
ă
ta
cum
se
pot
grupa
aceste
leg
ă
turi

pentru a identifica multiple persoane în imagini.

A

BSTRACT

E

NGLEZ
Ă

In
the
next
paper
we
will
show
how
it
is
possible
to
obtain
and
process
human
skeletons

from
images
on
machines
with
limited
resources
(personal
laptops,
phones,
etc.).
We
will

distill
rugged
models
like
OpenPose
in
135
points,
where
only
pre-trained
weights
measure

about
1.5
gigabytes
and
we
get
smaller
models
that
retain
a
significant
amount
of
accuracy

but
at
the
same
time
can
be
used
in
common
applications
without
requiring
significant

computational
resources.
We
will
show
how
to
interpret
the
nonparametric
representations

of
OpenPose
(Part
Affinity
Fields)
and
how
the
connections
between
the
points
of
the

human
body
can
be
restored
by
evaluating
the
line
integrals
over
the
part
affinity
fields.
We

will show how these links can be grouped to identify multiple people in images.

3

M

UL
Ț
UMIRI

TBD

4

1
I

NTRODUCERE

Estimarea
posturii
este
partea
din
percep
ț
ie
computa
ț
ional
ă
care
se
ocup
ă
de
identificarea

punctelor
ale
scheletului
uman
ș
i
g
ă
sirea
de
conexiunilor
între
ele,
cu
scopul
final
de
a

recrea
schele
ț
i
umani
pe
baza
unor
poze
statice.
Aceasta
reprezint
ă
un
element
principal

pentru
a
permite
inteligen
ț
ei
artificial
ă
s
ă
înteleaga
mediul
înconjurator.
Cele
mai
cunoscute

solu
ț
ii
din
literatura
de
pentru
estimarea
posturii
se
bazeaz
ă
pe
re
ț
ele
neuronale
adânci,

re
ț
ele
antrenate
superv izat
pentru
a
g
ă
si
punctul
cel
mai
probabil
s
ă
reprezinte
o

încheietur
ă
din
scheletul
uman
ș
i
diverse
informa
ț
ii
despre
acesta
(velocitate,
vectori
pentru

direc
ț
ie,
etc).
Scopul
unui
astfel
de
model
este
s
ă
poate
reproduce
un
model
3D
a

persoanelor din scen
ă
, a
ș
a cum este ar
ă
tat în

Zanfir al. 2018

[1]
:

Figura 1 Exemplu de detectare a scheletului uman în ​
Zanfir al. 2018

[1]

Diverse
modele
au
fost
propuse
în
literatur
ă
,
precizând
direct
puncte
cheie
în
3
dimensiuni

sau
doar
2D
care
ulterior
vor
fi
trecute
printr-o
re
ț
ea
specializat
ă
pentru
a
efectua
maparea

punctelor în spa
ț
iul tridim ensional.

5

Pentru
modelarea
corpului
uman
se
utilizeaz
ă
un
model
ierarhic
prestabilit.
Acesta
este

reprezentat
sub
forma
unui
arbore
în
care
exist
ă
o
leg
ă
tur
ă
p
ă
rinte-copil
reprezint
ă
faptul

c
ă
exist
ă
acele puncte sunt conectate din punct de vedere anatomic).

Figura 2 Reprezentare ierarhic
ă
a structuri anatomice umane

De regul
ă
arborele ierarhic este reprezentat ca o mul
ț
ime de adiacen
ț
ă

0
,
}
K

{
1
N

x

N

J
j

cu proprietatea c
ă

dac
ă
nodurile

ș
i
sunt elemente pe nivele terminale care
(
i
,
j
)

1
K

=

i
j

formeaz
ă
o muchie în arbore.

1.1
Context

În
ultimi
ani
cre
ș
terea
rapid
ă
a
popularit
ă
ț
ii
dispozitivelor
mob ile
a
adus
o
nou
ă
problem
ă

pentru
dezvoltarea
algoritmilor
de
inteligent
ă
artificial
ă
,
anume
puterea
de
procesare

grafic
ă
redus
ă
existent
ă
pe
majoritatea
dispozitivelor
mobile
folosite
uzual.
De
la
filtrele
de

modificare
ale
tr
ă
s
ă
turilor
faciale
de
pe
Facebook
sau
Instagram
pân
ă
la
modelele
de

navigare
asistat
ă
de
realitate
augmentat
ă
create
de
Google,
nevoia
de
a
rula
modele

robuste de înv
ă
ț
are auto mat
ă
pentru percep
ț
ie pe dispozitive mobile devine acut
ă
.

În
acest
context
conceptul
de
distilare
a
fost
propus
prima
dat
ă
în

Hinton
et
al.
2015

[2].

Distilarea
reprezint
ă
un
metod
ă
prin
care
o
ie
ș
irea
unei
re
ț
ele
adânci
(profesor)
este

înv
ă
ț
at
ă
de
o
re
ț
ea
mai
pu
ț
in
adânc
ă
(student),
cea
din
urm
ă
putând
dup
ă
find
rulata
în

produc
ț
ie pe dispozitive c u resurse limitate.

În

Lugaresi
et
al.
2019

[3]
Google
lanseaz
ă
propria
platform
ă
pentru
integrarea
algoritmilor

de
înv
ă
ț
are
automat
ă
în
aplica
ț
iile
mobile.
Aceasta
ofer
ă
suport
complet
pentru
modele
de

TensorFlow Little dar problema limit
ă
rilor computa
ț
ionale r
ă
mâne deschis
ă
.

6

1.2
Problema

În
condi
ț
iile
descrise
mai
sus
g
ă
sirea
unui
model
mai
pu
ț
in
robust
pentru
detectarea

scheletului
uman
devine
tot
mai
important
ă
.
Un
astfel
de
model
ar
trebui
s
ă
fie
compatibil

cu
Tensorflow
Lite,
u
ș
or
de
folosit
cu
platforma
media
pipe.
S
ă
foloseasc
ă
o
arhitectur
ă
mai

pu
ț
in
fa
ț
ă
de
modele
cunoscute
precum
MubyNet
(

Zanfir
et
al.
2018

[1])
sau
OpenPose

(

Lugaresi
et
al.
2018

[3])
f
ă
r
ă
un
impact
major
asupra
acurate
ț
ei.
Astfel
problema
se
poate

defini în mod formal:

Dată fiind o imagine RGB
să se găsească un program polinomial
a.î
I
=
R
h
×
w
×
3
M

unde P reprezintă setul de persoane vizibile în imaginea I:
(
I
)

P
M
=

{
X

|

x

(
j

,
j
,
l

)
,
j
R
,
j
R
,
P
=

=

p

2
d

p

3
d

p

p

2
d

2
N

×

1
j

p

3
d

3
N

×

1
j

{
(
i
,
j
)

|

K
(
i
,
j
)

1
,
i
,
j

N
,
1

i
,
j

|
j
|

}
}
l
p
=

=

p

unde
reprezintă punctele cheie ale scheletului (joint) în spațiul 2D al persoanei,
j

p

2
d

reprezintă punctele cheie ale scheletului (joint) în spațiul 3D.
j

p

3
d

Astfel încât
, unde
și
(
M
(
i
)
)

t
(
O
p
e
n
p
o
s
e
(
I
)
)

ș
i

m
(
M
(
i
)
)

m
(
O
p
e
n
p
o
s
e
(
I
)
)

t

t
m
reprezintă resursele temporale și spațiale necesare unui program.

2
A

BORD
Ă
RI


EXISTENTE

2.1
MubyNet

Model
introdus
în

Zanfir
et
al.
2018

[1]
recunoa
ș
te
puncte
cheie
în
scene
cu
persoane

multiple
ș
i
le
transform
ă
în
puncte
tridimensionale.
Se
folose
ș
te
de
caracteristici
2D
cât
ș
i
de

caracteristici 3D.

Zanfir et al. 2018

[1]

propun următoarea problemă formală:

Dată fiind o imagine RGB
să se găsească un set de persoane
vizibile în
I
=
R
h
×
w
×
3
P

imagine a.î:

{
x

|

x

(
j

,

,
Θ

,
β

,
t

)
,
j
R
,
j
R
P
=

=

p

2
d
j
p

3
d

p

p

p

p

2
d

2
N

×

1
j

p

3
d

3
N

×

1
j

Θ

,
β
)
R
,
t

R
,
1

P
|

}
(
p

p

8
1

×

1

3

×

1


p

|

unde
reprezintă scheletul în spațiul 2D al persoanei,
reprezintă scheletul în
j

p

2
d

j

p

2
d

spațiul 3D al persoanei,
reprezintă modelul SMPL[2] a formei corpului iar
Θ

,
β
)
(
p

p
t

reprezintă translația persoanei pe scenă.

Se definesc ​
J mul
ț
imea p unctelor cheie (joints), L mul
ț
imea conexiunilor posibile (limbs).

7

Figura 2 Pipeline-ul modelului MubyNet

Pentru scopul acestei teze ne vom axa pe module Deep Feature Extractor​
, Limb Scoring
ș
i

Skeleton Grouping.

2.1.1
Deep Feature Extractor

Arhitectura modelului începe cu un extractor adânc de ​
caracteristici, acesta se bazeaz
ă
pe

tehnici de transfer learning pentru e prelua caracteristicele cu cele mai mare ponderi dintr-o

reteua VGG-16, modul . Aceste caracteristici se concateneaza împreun
ă
cu ie
ș
irea modului

de Deep Volume Encoding (
,
) în
care este trimis mai
M

2
d
M

3
d

M

M

M
V
I
=

I
2
d
3
d

departe modulului de Limb Scoring.

reprezint
ă
activ
ă
riile re
ț
elei pentru puncte în doua dimensiuni iar
analog pentru
M
2
d
M

3
d

punctele în 3 dimensiuni.

2.1.2
Limb Scoring

Volumul
este apoi introdus ca intrare în modulul Limb Scoring. Acesta identific
ă
V
I

punctele cheie pentru persoanele din scen
ă

ș
i le conecteaz
ă
pe cele compatibile (sunt

parinte-copil într-o reprezentare a arborelui cinematic). Pentru fiecare dintre perechiile de

puncte cheie compatibile calculeaza un scoruri care reprezint
ă
cât de probabil este c
ă
acea

conexiune s
ă
fac
ă
parte din scheletul unui persoane date în scen
ă
.

În pasul ini
ț
ial modul extr age un set posibil de conexinuni (joint-uri) din
folosind
M
2
d

algoritmul de suprimare non-maximal
ă
:

8

Figura 2 Pseudocod suprimare non-maximal
ă

Algoritmul de suprimare non-maximal
ă
va folosi
drept hart
ă
de confiden
ț
ă
. Pentru
M
2
d

fiecare element ini
ț
ial va compara confiden
ț
ă
cu toate celelalte elemente din matrice
ș
i va

renun
ț
a la fiecare elemen t care are confiden
ț
ă
mai mic
ă
decât elementul ales ini
ț
ial.

Astfel se calculeaz
ă
mul
ț
imea
ș
i
reprezint
ă
tipul de joint
i

|

1

}
J
=
{

i

N
,
t
(
i
)
t
:
J

N

al punctului cheie (ex: genunchi picior stâng, um
ă
r drept, etc).

Lista tuturor conexiunilor posibile din puncte de vedere cinematic este:

{
(
i
,
j
)

|

K
(
i
,
j
)

1
,
i
,
j

N
,
1

i
,
j

|
J
|

}
L
=

=

Nivele adi
ț
ionale de tip C onv+Relu sunt create în re
ț
ea explicit cu scopul de a atribui un scor

pentru fiecare element din L. Ie
ș
irea ultimului nivel este
.
se
M
c

R
w
×
h
×
1
2
8
i
n

M
D
c

e
ș
antioneaz
ă
un num
ă
r fix de puncte pentru fiecare element din L formând matricea

= num
ă
rul de e
ș
antioane.
este trimis unei re
ț
ea multi-nivel
,
N
M
a


R
N
×
N
×
1
2
8
|
L
|
s

s
M
a

dens
ă
urmat
ă
de un nivel soft-max non-liniar pentru produce
.
0
,
]
c

[
1
N
×
1
|
L
|

2.1.3
Skeleton Grouping Binary Integer Programming

Problema
grup
ă
ri
scheletelor
se
poate
define
formal
ca
g
ă
sirea
unei
mul
ț
imi
de
muchii

optime
astfel
încât
graful
are
urm
ă
toarele
propriet
ă
ț
i,
unde
J
este
E

L

J
,
)
G
=
(
E

mul
ț
imea punctelor cheie (joint) iar L este mul
ț
imea conexiunilor posibile (limbs):

A.
:
ș
i
se afl
ă
pe aceea
ș
i persoan
ă
.

(
j
j
)


1
,

2

E
j
1
j
2

B.
cu
dac
ă
:

(
i
,
i
)
,
(
j
j
)


1

2

1
,

2

E
(
i
)

t
(
i
)

ș
i

t
(
j
)

t
(
j
)

t
1
=

2
1
=

2

a.
atunci

j
j
1
=

2

=
i
1
/
i
2

b.
atunci

i
i
1
=

2

=
j
1
/
j
2

9

C.
este maximal (selecteaz
ă
cât mai multe componente posibil)
E
|
|

Ultima
constrângere
asigur
ă
c
ă
dou
ă
puncte
cheie
de
acela
ș
i
tip
nu
sunt
folosite
în
conexiuni

diferite.

Zanfir
et
al.
2018

[1]
arat
ă
cum
aceste
constrângeri
se
pot
modela
printr-o
problema

programare întreag
ă
binar
ă
:

Calcul
E
este
echivalent
cu
g
ă
sirea
unui
indicator
binar
în
setul
L
care

x

0
,
1
}


{

|
L
|
×
1

codific
ă
constrângerile
din
(B)
iterând
peste
ș
i
g
ă
sind
toate
care
se

p



L

L
q

conecteaz
ă
la
acela
ș
i
tip
de
punct
cheie
precum
ș
i
au
punctul
terminal
al
conexiuni

p

comun.
O
solu
ț
ie
corect
ă
va
alege
pentru
fiecare
astfel
de
un
singur
,
mul
ț
imea
tuturor

p

q

posibilit
ă
ț
ilor
se
poate
modela
ca
o
matrice
sparse
a.
î
unde
b
este

0
,
1
}
A
=
{

|
L
|
×
|
L
|

A
x


b

vectorul unar
.
1
|
L
|

Constrângerile
din
(A)
pot
fi
modelate
cu
ajutorul
vectorului
de
limb
score.
Pentru
oricare

o
m
ă
sur
ă
aproximativ
ă
a
cât
de
probabil
este
ca
l
s
ă
fie
o
conexiune
a
unei
l

c
(
l
)



L
:

persoane cu tipuri specifice de puncte cheie.

Problema g
ă
siri lui E se reduce la o problem
ă
de programare întreag
ă
binar
ă
:

(
c
)

a
r
g

m
a
x

c
x
,
A
x

,
x

0
,
1
}

x
*
=

c
T


b


{

N
L
X
1
)
(

2.2
Open Pose

Open pose detecteaz
ă
doar caracteristici 3d

3
S

OLU
Ț
IA


PROPUS
Ă

4
D

ETALII


DE


IMPLEMENTARE

.

5
C

ONCLUZII

6
B

IBLIOGRAFIE

[1]

Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. 2015. “Distilling the Knowledge in a Neural

Network.”

arXiv [stat.ML]

. arXiv.

http://arxiv.org/abs/1503.02531

.

figura 2

https://www.cs.toronto.edu/~urtasun/courses/ETH10/lecture2.pdf

nms

https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c

10

[3] –

https://www.coursera.org/learn/convolutional-neural-networks

11

Similar Posts