Crie recursos de última geração com modelos de IA usando o Unity Sentis

Criamos o Unity Sentis para dar aos desenvolvedores a capacidade de trazer modelos de IA para jogos e aplicativos. Agora em versão beta aberta de pré-lançamento, o Sentis permite recursos complexos, como identificação de objetos, reconhecimento de voz e NPCs inteligentes em todos os tipos de projetos.
Uma vez importados por meio do padrão de arquivo ONNX, esses modelos de IA podem ser executados diretamente em todas as plataformas suportadas pela Unity. Isso significa que é possível executar a maioria dos modelos de IA diretamente no Unity Runtime no dispositivo de um usuário, sem a necessidade de infraestrutura em nuvem.
A documentação do pacote Unity Sentis está disponível aqui e pode ser baixada por meio do Package Manager. Depois que o pacote é instalado em seu projeto e você tem o modelo de IA que deseja usar, a integração é simples.
Em última análise, o modelo que você escolhe para usar em seu projeto depende totalmente de você. Cada modelo depende da tarefa que você está tentando resolver. Você pode começar pesquisando alguns modelos interessantes em mercados como Hugging Face, Keras ou PyTorch. Você também pode treinar seu próprio modelo se tiver experiência em aprendizado de máquina ou usar os ML-Agents da Unity para necessidades de aprendizado por reforço. O principal requisito é que o modelo seja convertido para o formato de arquivo ONNX. Você pode usar um conversor ONNX como o TF2ONNX, se necessário.
Consulte Importar um modelo na documentação do Sentis para obter um exemplo de código.
Carregar um modelo no Unity requer o mesmo processo que você seguiria com qualquer ativo. Basta arrastá-lo e soltá-lo na pasta Assets (Ativos) da janela Project (Projeto) no Editor. O Sentis otimizará automaticamente o modelo importado. Em seguida, crie um objeto Model em tempo de execução.
Consulte Carregar um modelo na documentação do Sentis para obter um exemplo de código.
A criação de uma entrada é bastante simples, basta verificar a forma e o tamanho da entrada do modelo necessário nas Configurações de importação do modelo ONNX. Em seguida, você pode criar um tensor a partir de sua fonte de dados. Se forem necessárias várias entradas, armazene-as em um dicionário.
Consulte Criar entrada para um modelo na documentação do Sentis para obter um exemplo de código.
Quando estiver pronto para executar o modelo, será necessário criar um worker que divida o modelo em tarefas que possam ser executadas no dispositivo do usuário (CPU ou GPU). A criação de um trabalhador pode ser feita com este exemplo de código.
Depois que seu funcionário estiver configurado, é hora de executar seu modelo de IA. Aqui, você está conectando as entradas e saídas do modelo ao código do jogo e, em seguida, usando o criador de perfil para ver se está dentro do orçamento. Se o orçamento for muito alto, você pode "dividir" o modelo em vários quadros ou explorar outras opções de ajuste de desempenho no Sentis.
Consulte Executar um modelo na documentação do Sentis para obter mais informações sobre como executar seu modelo, obter resultados e otimizar o resultado.
A etapa final é testar e implantar o jogo. Faça isso como faria normalmente em qualquer plataforma Unity Runtime. Você tem algumas opções para enviar seu modelo dentro do binário do jogo: Ele pode ser incorporado na compilação ou você pode executá-lo como um ativo de streaming para que seja baixado somente quando necessário. Você também pode considerar a criptografia de seu modelo por motivos de segurança.
Consulte Criptografar um modelo na documentação do Sentis para obter um exemplo de código.
Este exemplo para iniciantes mostra como usar os conceitos básicos do Sentis com redes neurais, executando um modelo de detecção de objetos para destrancar portas em uma sala trancada. Ele executa um modelo de IA de detecção de dígitos (números) escritos à mão chamado MNIST, que pode ler números escritos e identificar o número mais provável sorteado.
Este exemplo usa o Sentis para criar um bot adversário para um jogo de tabuleiro chamado Othello, em que o jogo tem dificuldade configurável. Ele executa uma rede neural treinada nas regras do jogo e determina as probabilidades de vitória do jogo após cada jogada e, em seguida, prevê as jogadas futuras com maior probabilidade de vitória. É uma solução mais simples do que uma abordagem tradicional que usa heurísticas complexas e passagem por árvores.
Este exemplo mostra como integrar o Sentis em uma experiência de realidade aumentada (AR). Ele usa uma rede neural de estimativa de profundidade para permitir que objetos do mundo real ocluam objetos na cena do jogo. A profundidade é determinada pelo processamento de quadros de vídeo da câmera, portanto, é uma solução mais dimensionável do que a abordagem tradicional de usar um sensor lidar, que é limitado a telefones caros.
Isso funciona em dispositivos móveis com uma câmera e não requer um sensor lidar.
Os modelos de IA podem ajudá-lo a criar recursos atraentes que podem ser impossíveis ou muito demorados de desenvolver com o código tradicional. Os casos de uso abrangem todas as categorias de modelos de IA, e a aplicação depende dos modelos que você escolher implementar. No entanto, aqui estão alguns exemplos de casos em que o Sentis pode ajudar no processo de desenvolvimento.
Um grande motivo pelo qual os desenvolvedores escolhem a Unity é a capacidade de publicar mais facilmente em várias plataformas, mas a otimização ainda pode ser um desafio. O uso de um modelo de upscaling, como o Super Resolution do TensorFlow, permite aprimorar imagens ou texturas de baixa resolução em seu jogo para obter qualidade de produção ou ajudar a otimizar ativos somente quando necessário, em diferentes dispositivos.
A interação do jogador é fundamental para os jogos on-line conectados quando se trata de interagir com NPCs e outros jogadores. Com um modelo de fala para texto, como o Whisper da OpenAI, você pode converter a fala ao vivo em texto no jogo. Você também pode trazer um modelo de IA para automatizar o diálogo e criar interações significativas entre jogadores e NPCs sem as limitações do script manual.
Embora grande parte do foco da IA esteja na criação de novos recursos, também estamos vendo ótimas aplicações quando se trata de melhorar o desempenho dos jogos. Um exemplo disso é o uso de um modelo de IA para aprimorar o traçado de raios em dispositivos móveis, usando um modelo de IA GAN de aumento de escala para alucinar quadros pré-renderizados de uma cena de jogo. Com um aplicativo como esse, é possível implementar recursos de rastreamento de caminhos, como refração de luz e luzes de área cáustica em projetos menores, sem afetar o desempenho no dispositivo do usuário.
A realidade aumentada e a realidade virtual (VR) também são um grande caso de uso em potencial para usar modelos de IA com o Sentis. Por exemplo, é possível usar o modelo YOLO do Ultralytics em VR para detectar objetos em uma cena de jogo ou em AR para detectar objetos do mundo real a partir do feed da câmera do dispositivo. Isso pode oferecer ao usuário um sentido de super visão que só é possível com a IA.
O Unity Sentis agora está disponível gratuitamente em versão beta aberta para todos os desenvolvedores do Unity que operam no Unity 2021.3 ou superior por meio do Package Manager.
