Розпізнавання обличчя за допомогою OpenCV в Processing

Одна з найпрекрасніших можливостей OpenCV це розпізнавання осіб У цьому прикладі ми подивимося, як можна реалізувати її в невеликому обсязі коду

Як це робиться

Так само, як і в попередніх прикладах з OpenCV ми почнемо з імпорту бібліотеки OpenCV Також вам потрібно імпортувати клас javaawtRectangle, так як функція розпізнавання осіб повертає обєкти-прямокутники Вам доведеться набрати цей рядок самостійно, так як вона не доступна з меню У функції setup () ми настрм OpenCV і застосуємо метод cascade () для налаштування роботи відстеження особи

import hypermediavideo* import javaawtRectangle

OpenCV opencv void setup()

{

size( 640, 480 )

opencv = new OpenCV( this ) opencvcapture( 320, 240 )

opencvcascade( OpenCVCASCADE_FRONTALFACE_ALT )

}

У функції draw () ми вважаємо з вебкамери новий кадр, перевернемо його, перетворимо в чорно-білий і відобразимо на екрані Метод detect () детектирует особи на зображенні У місці виявлення особи я намалював чорний прямокутник

void draw()

{

background( 0 ) opencvread()

opencvflip( OpenCVFLIP_HORIZONTAL ) opencvconvert( GRAY )

scale( 2 )

image( opencvimage(), 0, 0 ) Rectangle[] faces = opencvdetect()

noStroke() fill( 0 )

for ( int i = 0 i &lt faceslength i++ ) {

rect( faces[i]x, faces[i]y, faces[i]width, faces[i]height

)

}

}

Коли ви запустите скетч, ви побачите щось на зразок цього:

Як це працює

Перше, що потрібно зробити – вибрати спосіб розпізнавання в OpenCV і ввести в метод cascade () Я вибрав OpenCVCASCADE_FRONTALFACE_ALT По суті, це файл XML з описами для OpenCV, з налаштуваннями для розпізнавання осіб

opencvcascade( OpenCVCASCADE_FRONTALFACE_ALT )

Якщо CASCADE_FRONTALFACE_ALT вам не підходить, є й інші настройки Ви можете використовувати OpenCV і для розпізнавання профілю обличчя або тіла людини Ось повний список варіантів:

f   OpenCVCASCADE_FRONTALFACE_ALT_TREE

f   OpenCVCASCADE_FRONTALFACE_ALT

f   OpenCVCASCADE_FRONTALFACE_ALT2

f   OpenCVCASCADE_FRONTALFACE_DEFAULT

f    OpenCVCASCADE_PROFILEFACE

f    OpenCVCASCADE_FULLBODY f    OpenCVCASCADE_LOWERBODY f    OpenCVCASCADE_UPPERBODY

Розпізнавання осіб найкраще працює на невеликих, чорно-білих зображеннях Обмние зображення тільки сповільнять ваш скетч Тому я встановив розмір вебкамери 320 x 240 пікселів і застосував scale (2) для відображення всього на екрані

Метод detect () сканує поточне зображення OpenCV на наявність осіб Він повертає масив обєктів-прямокутників Вони можуть застосовуватися для малювання чогось на екрані в місці розташування особи

Rectangle[] faces = opencvdetect()

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*