A tarefa MediaPipe Face Stylizer permite aplicar estilizações de rostos a rostos em uma imagem. Use essa tarefa para criar avatares virtuais em vários estilos.
O exemplo de código descrito nestas instruções está disponível em GitHub. Para mais informações sobre recursos, modelos e opções de configuração, desta tarefa, consulte a Visão geral.
Exemplo de código
O código de exemplo do MediaPipe Tasks é uma implementação básica de um Estilizador de rostos. para Android. O exemplo aplica a estilização de rostos às imagens fornecidas ao app.
Você pode usar o app como ponto de partida para seu próprio app Android ou consultá-lo ao modificar um aplicativo existente. O código de exemplo do Estilizador de rostos está hospedado em GitHub.
Fazer o download do código
As instruções a seguir mostram como criar uma cópia local do exemplo. usando a ferramenta de linha de comando git.
Para fazer o download do código de exemplo:
- Clone o repositório git usando o seguinte comando:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Opcionalmente, configure sua instância git para usar a finalização esparsa. Assim, você terá
somente os arquivos do app de exemplo do Estilizador de rostos:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
Depois de criar uma versão local do código de exemplo, você pode importar o projeto no Android Studio e executar o app. Para obter instruções, consulte o Guia de configuração do Android.
Principais componentes
Os arquivos a seguir contêm o código essencial para este exemplo de estilização de rostos aplicativo:
- FaceStylizationHelper.kt (link em inglês): Inicializa o estilizador de rostos e gerencia o modelo e a seleção do delegado.
- MainActivity.kt (link em inglês): Fornece resultados e saídas e processa todos os erros.
Configuração
Esta seção descreve as principais etapas para configurar seu ambiente de desenvolvimento e projetos de código especificamente para usar o Estilizador de rostos. Para informações gerais a configuração do seu ambiente de desenvolvimento para usar tarefas do MediaPipe, incluindo requisitos de versão da plataforma, consulte o Guia de configuração do Android.
Dependências
A tarefa "Estilizador de rostos" usa a biblioteca com.google.mediapipe:tasks-vision
. Adicionar
esta dependência para o arquivo build.gradle
do seu app Android:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
Modelo
A tarefa MediaPipe Face Stylizer exige um pacote de modelo treinado que seja compatível com para essa tarefa. Para mais informações sobre os modelos treinados disponíveis para o Estilizador de rostos, consulte a seção Modelos na visão geral da tarefa.
Selecione e faça o download do modelo e armazene-o no diretório do projeto:
<dev-project-root>/src/main/assets
Especifique o caminho do modelo no parâmetro ModelAssetPath
.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
Criar a tarefa
A tarefa MediaPipe Face Stylizer usa a função createFromOptions()
para configurar o
tarefa. A função createFromOptions()
aceita valores para a configuração.
. Para mais informações sobre as opções de configuração, consulte Configuração
.
val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()
val optionsBuilder =
FaceStylizer.FaceStylizerOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
val options = optionsBuilder.build()
FaceStylizer =
FaceStylizer.createFromOptions(context, options)
Opções de configuração
Esta tarefa tem as seguintes opções de configuração para apps Android:
Nome da opção | Descrição | Intervalo de valor | Valor padrão |
---|---|---|---|
errorListener |
Define um listener de erro opcional. | N/A |
Not set |
Preparar dados
O Estilizador de rostos funciona com imagens estáticas. A tarefa lida com a entrada de dados pré-processamento, incluindo redimensionamento, rotação e normalização de valores. A o código a seguir demonstra como transferir dados para processamento.
import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage
// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()
Executar a tarefa
Use o método FaceStylizer.stylize()
na imagem de entrada para executar o estilizador:
val result = FaceStylizer.stylize(mpImage)
Gerenciar e exibir resultados
O Estilizador de rostos retorna um objeto FaceStylizerResult
, que contém uma
Objeto MPImage
com uma estilização do rosto mais proeminente na entrada
imagem.
Confira abaixo um exemplo dos dados de saída desta tarefa:
O resultado acima foi criado com a aplicação do modelo Color sketch para a seguinte imagem de entrada: