Detecção de rosto em Hipstamatic – Sam isoffes
Postado em
Desde que entrei nas fileiras da Hipstamatic há alguns meses, tenho trabalhado em muitas coisas diferentes (incluindo algumas coisas novas realmente emocionantes que poderei exibir em poucas semanas).
HipStaprocessor
Meu primeiro grande projeto aqui foi refatorar todo o nosso processamento de imagens de Hipstamatic, Incredibooth e algumas coisas futuras em uma biblioteca que podemos reutilizar chamada HipStaprocessor.
Este tem sido um ótimo projeto. O HipStaprocessor funciona no iOS e Mac (do qual eu estava muito orgulhoso). Isso nos dá a capacidade de testar os efeitos rapidamente à medida que os construímos, em vez do tedioso processo de mudança dos efeitos, colocando uma construção no dispositivo e testando com as imagens no dispositivo.
Além disso, ter todo o nosso código de processamento de imagens em um só lugar contribui para muitas reutilização de código sólido testado, em vez de recriar a roda toda vez que precisamos processar uma imagem em um aplicativo (que é o nosso tipo).
Detecção de rosto
Apple adicionou CIDetector No iOS 5, o que é realmente fantástico. Ele permite que você encontre rostos nas imagens. Aqui está um exemplo realmente básico:
// Use high quality detection
NSDictionary *detectorOptions = (NSDictionary dictionaryWithObjectsAndKeys:
CIDetectorAccuracyHigh, CIDetectorAccuracy,
nil);
// Create the detector
CIDetector *detector = (CIDetector detectorOfType:CIDetectorTypeFace context:ciContext options:detectorOptions);
// Loop through all of the faces it found
for (CIFeature *feature in (detector featuresInImage:ciImage)) {
// Simply draw a solid color in the face's rect
// Obviously you could do something much more interesting
CGContextFillRect(context, feature.bounds);
}
Na verdade, é muito mais fácil do que eu pensava. Funciona encontrando dois olhos e outros recursos de rosto. Para pessoas com cabelo que cobre um olho, isso não os verá. Também faz um trabalho muito ruim em encontrar pessoas com pele mais escura, especialmente com pouca luz.
Como já tínhamos o HipStaprocessor em Incredibooth, era fácil simplesmente adicionar detecção de rosto ao HipStaprocessor e depois colocá -lo em Incredibooth instantaneamente. Coisas ótimas.
House O ‘Haunt
No Incredibooth 1.3 (que será lançado em 21 de outubro) Adicionamos um novo estande chamado Haus O ‘Haunt que apresenta detecção de rosto (entre outros novos efeitos divertidos). Este é o nosso estande de Halloween e enlouquecemos fazendo alguns efeitos assustadores. Foi um momento muito divertido, e acho que os efeitos ficaram realmente ótimos!
A primeira configuração no estande, chamada Markup, encontra aleatoriamente alguns dos rostos e escolhe um marcador aleatório para colocar o rosto. É muito divertido assistir em ação!
Então, check -out Incredibooth para ver Haus O ‘Haunt e todos os outros novos efeitos divertidos!
O futuro
É muito louco como isso é fácil agora. Lembro -me de pensar que a detecção de rosto é para sempre e super difícil de fazer, a menos que você tenha toneladas de engenheiros. É incrível que a Apple tenha aberto isso para todos. Estou realmente empolgado com as coisas por vir!
A propósito, estamos contratando a Hipstamatic. Envie -me um e -mail se quiser fazer um pouco de IOS ou Rails Awesomeness: sam@synth.tc
