Aprendizado profundo para determinar o estilo e o gênero das pinturas

Olá Habr!


Hoje eu quero falar sobre a segunda parte do projeto de serviço para a identificação e classificação de obras de arte. Deixe-me lembrá-lo de que resolvemos duas tarefas principais:


  1. procure uma foto no banco de dados a partir de uma fotografia tirada por um telefone celular;
  2. determinação do estilo e gênero de uma imagem que não está no banco de dados.

Hoje vamos considerar o uso de uma rede neural convolucional para classificar imagens por estilo e gênero.



Ajuda o Dasha a entender a arte contemporânea?


Determinando o estilo das pinturas


Das quase 250.000 pinturas no banco de dados da Arthive, menos de 20% é atribuído a um gênero, estilo ou técnica, geralmente as classes exibidas no banco de dados não correspondem aos valores reais, muitas classes contendo poucas imagens. Parece que existem até classes contendo unidades de imagens. Aparentemente, alguns autores consideram necessário criar um nome para seu próprio estilo.

No total, cerca de 75 estilos foram alocados no banco de dados; no entanto, para o nosso trabalho, o cliente selecionou 27 estilos obrigatórios (aos quais outro foi posteriormente adicionado), que o sistema deve reconhecer.

Para eles, a distribuição do recheio acabou sendo muito desigual.


EstiloqtdeEstiloqtde
Realismo19594Primitivismo1234
Impressionismo15864Art Déco1092
Romantismo8963Renascença do Norte921
Barroco7726Cubismo902
Moderno4882Academicism707
Surrealismo4793Gótico608
Renascimento4709Modernismo539
Expressionismo4329Realismo socialista481
Simbolismo4321Arte pop475
Pós-impressionismo3951Pontilhismo275
Arte abstrata3664Fauvismo217
Ukiyo-e3136Vanguard174
Classicismo1730Hiperrealismo13
Rococó1600Fantasia8
Total96908

Todos os estilos
EstiloqtdeEstiloqtdeEstiloqtde
Realismo19594Arte pop475Decorativeism66.
Impressionismo15864Biedermeier471Minimalismo66.
Romantismo8963Realismo fantástico386Sentimentalismo66.
Barroco7726Expressionismo abstrato358Cloisonismo60
Moderno4882Nabis339Pintura metafísica56.
Surrealismo4793Pontilhismo275Machiaioli52
Renascimento4709Suprematismo273Orphism51
Expressionismo4329Pré-rafaelitas252Dada50.
Simbolismo4321Realismo mágico248Neo-impressionismo49.
Pós-impressionismo3951Renascença232Luminismo41.
Arte abstrata3664Neo-expressionismo230Proto-renascimento39.
A Era de Ouro da Holanda3292Fauvismo217Plantanismo37.
Ukiyo-e3136Pós-modernismo192Tenebrizm35
Classicismo1730Vanguard174Impressionismo abstrato34
Rococó1600Arte contemporânea149Conceitualismo29
Primitivismo1234Precisão138Japanism24
Art Déco1092Cubofuturismo108Pós-moderno24
Renascença do Norte921Construtivismo104Luchism24
Cubismo902Tonalismo103Bizantino20
Academicism707Orphism94Realismo romântico19
Gótico608Regionalismo93Hiperrealismo13
Neoclassicismo601Realismo analítico89Verism11
Maneirismo544Naturalismo73Neo-primitivismo10
Modernismo539Neo-modernismo70Fantasia8
Realismo socialista481Futurismo67Metarealismo7
Total106284


Somos confrontados com a tarefa de classificar imagens, mas não podemos selecionar nenhum recurso simples manualmente. Portanto, usaremos o profundo aprendizado de máquina, no qual esses recursos complexos são identificados automaticamente no processo de aprendizado.



Transferência de aprendizado


Considere a rede v3 inicial.



Arquitetura geral com saídas intermediárias

Em sua arquitetura (e em qualquer outra rede profunda), dois componentes principais podem ser distinguidos condicionalmente - Feature Extractor e Predictor.

O Extrator de recursos mapeia a imagem colorida de entrada em um espaço de recursos multidimensional (mapa de recursos multicanais). O mapa de recursos armazena informações espaciais - ou seja, é um tensor tridimensional com dimensões em largura, altura e número de canais de recursos; o pool final ainda não foi aplicado aqui, o que elimina completamente as informações sobre a posição relativa dos recursos na imagem original. A rede Extractor de recursos v3 da Iniciação recebe 299 imagens de entrada  vezes299  vezes3, e na saída forma um mapa de sinais de tamanho 17  vezes17  vezes2048. O tamanho da entrada pode variar, o que levará a alterações no tamanho do mapa de recursos e pode ser útil para reduzir os custos computacionais ao trabalhar com a rede.

O Predictor é uma rede que gera saída com base em um mapa de recursos gerado pelo Feature Extractor. Como regra, para a tarefa de classificação, o Predictor é uma camada de neurônios totalmente conectada, cujo número de saídas coincide com o número de classes do problema.

O aprendizado de transferência clássica pressupõe que tomamos uma rede treinada, separamos o Extrator de recursos e o complementamos com um novo preditor com o número de classes de que precisamos. A rede resultante é treinada em baixa velocidade com pesos parcialmente ou completamente congelados das camadas do Feature Extractor.


Aplicamos o aprendizado de transferência para classificar estilos. Pegue a rede Inception-v3 treinada em um conjunto de dados imagenet e substitua a camada de saída de neurônios nela, que classifica as imagens de entrada no número de estilos selecionados. Treinamos a rede em imagens de diferentes estilos, congelando o treinamento de todas as camadas, exceto a última.


Para análise dos dados, exibimos a distribuição da validação definida por classe.



Cada linha corresponde a uma classe do conjunto de validação. O brilho dos quadrados na linha é proporcional ao número de imagens que caem na classe correspondente à coluna.

Para melhor clareza, excluímos a diagonal principal e normalizamos novamente os valores de cada linha.



Além disso, tentaremos mapear a distribuição de estilos para o espaço bidimensional usando o TSNE.


Pode-se observar que muitos erros são observados, por exemplo, na classificação de pinturas no estilo fauvismo - uma parte significativa delas se refere ao expressionismo pela rede. O Renascimento do Norte e o Gótico são freqüentemente chamados de reavivamento. Muitas imagens do estilo rococó e do classicismo estão relacionadas ao realismo. Modernismo e modernidade geralmente se enquadram em muitos estilos.


Depois de lançar um script simples que analisou o banco de dados de treinamento em pastas de acordo com o estilo definido pela rede, realizamos uma análise rápida dos erros. Descobriu-se que a marcação do banco de dados pelo menos levanta questões.

Muitas imagens no estilo do modernismo (que, embora tenham sido marcadas pelo cliente como obrigatórias, mas em geral não são um estilo, e sim uma tendência na arte como um todo) foram na verdade duplicadas em outros estilos, especialmente no modernismo (mas isso já é um estilo).


No estilo do realismo socialista, imagens abstratas estavam presentes, por exemplo, nas obras de Lissitzky. Provavelmente, eles chegaram lá graças ao trabalho de Lissitzky no pôster soviético, que tem uma relação muito indireta com o realismo socialista.


De muitas maneiras, esses são realmente erros, mas às vezes a razão é a debatibilidade da questão de destacar alguns estilos, especialmente modernos. Vale a pena considerar que o banco de dados é preenchido com vários usuários e, entre eles, às vezes não há consenso.

Erros nos dados levam a erros correspondentes na classificação de imagens pela rede. No processo de limpeza da base, tanto por nós quanto pelo especialista em arte, por parte do cliente, a marcação para a amostra de treinamento foi significativamente aprimorada.


No entanto, a maior parte dos erros de classificação da rede (no total) refere-se a estilos mais ou menos bem estabelecidos, como rococó, classicismo, realismo. A atribuição de obras a esses estilos, em regra, ocorre com base em uma época ou autoria e, ao que parece, não causa dúvidas e disputas. Por que a rede não consegue distinguir seu estilo? O principal motivo está no uso de uma rede pré-treinada para extrair características.


O fato é que essa rede foi treinada para classificar objetos, determinar exatamente o que é representado, enquanto descarta informações que não são essenciais para a tarefa sobre como é representada. Por exemplo, do ponto de vista da rede, em todas as imagens no início do artigo, em geral, uma pessoa é retratada.


Para resolver esse problema, criamos uma rede com saídas intermediárias - acredita-se que os sinais se tornam mais difíceis à medida que se movem ao longo da rede, e informações não essenciais desaparecem gradualmente. Vamos tentar extrair das camadas intermediárias o que não era essencial para a classificação da imagenet.



Arquitetura geral com saídas intermediárias

Há outro problema - gráficos, impressões, esboços. Na imagenet, na qual a rede inicial foi pré-treinada, simplesmente não há nada como isso, respectivamente, e os recursos destacados pela rede não são adequados para classificar essas imagens.







Realismo, impressionismo.

Camille Carot, Hagar e o anjo

Barroco
Rembrandt Harmenszoon Van Rijn, Hagar e o Anjo


Por outro lado, pinturas no estilo de Ukiyo-e , uma espécie de gravura que se espalhou pelo Japão desde o século XVII, foram lindamente penduradas em uma nuvem separada. Embora inicialmente eles não estivessem em nossa lista obrigatória, nós os adicionamos lá.



Campos de Arroz de Asakusa e Torinomachi Festival


Após trabalhar com os dados, foi alcançada uma melhor distribuição entre as classes.


Lidamos com gêneros


Do número total de gêneros, 13 foram selecionados (destacados em negrito)


Géneroqtde
Cena alegórica2500
Retrato2308
Paisagem2213
Fantasia2191
Cena literária2096
Paisagem da cidade2048
Nude1981
Ainda vida1932
Cena de gênero1736
Animalism1587
Cena religiosa1417
Cena mitológica1368
Marina1210
Arquitetura958
O interior635
Cena histórica534
Cena de batalha201
Zakli180
Veduta124
Paisagem urbana16
Total27235

Basicamente, a redução no número de gêneros foi alcançada reduzindo os gêneros de várias cenas - "religiosa", "mitológica", "alegórica", "literária" e combinando-as sob o nome geral de "cena de gênero". Chegamos à conclusão de que a separação desses gêneros dificilmente pode ser realizada com precisão suficiente sem análise cultural significativa.

Por exemplo, para uma cena alegórica, por definição, supõe-se que exista um significado oculto na imagem, o uso de significados figurativos nos objetos representados. Também há uma dificuldade com a "cena religiosa": é muito provável que uma rede treinada para emitir tal classe também as chame de imagens de caricatura (por exemplo, parodiando a Última Ceia de Da Vinci), e isso pode ofender alguém .


A marcação de dados por gênero inicialmente parece boa, exceto por vários gêneros para os quais existem poucas imagens no banco de dados. Ao pesquisar na Internet, conseguimos expandir um pouco o número de imagens em gêneros (principalmente a cena da batalha, garças e vedutas).
Depois de combinar gêneros difíceis em uma “cena de gênero” comum, tentamos imediatamente treinar a rede “na testa” usando o início das redes de aprendizado por transferência.


Gêneros, resultado 1


Pode-se ver que os pontos correspondentes a imagens de diferentes gêneros são misturados. Para essas imagens, a rede fornece altos valores das probabilidades de pertencer a vários gêneros ao mesmo tempo, e o gênero com maior probabilidade é determinado quase por acidente. Aparentemente, a razão é que os gêneros, diferentemente dos estilos, têm uma hierarquia mais pronunciada. Tentamos entender essas conexões, temos um mapa de gêneros:



Hierarquia de gêneros


Os gêneros de hierarquia subsidiária e parental geralmente têm características comuns do ponto de vista da rede (e também do nosso ponto de vista). Por exemplo, a cena da batalha em terra como um todo tem as mesmas características da paisagem usual - a imagem de uma grande área aberta ou cidade, e a cena da batalha no mar é mais parecida com o gênero da marina. Portanto, dividimos o gênero da cena da batalha em dois - em terra e no mar. Outro exemplo: retratos, uma cena de gênero e imagens de nus do ponto de vista de uma rede pré-treinada têm um sinal comum - a presença de pessoas.


No banco de dados, imagens com conteúdo semelhante geralmente se referem ao filho ou ao gênero pai, dependendo de onde foi determinado pelo especialista que trouxe as fotos para o banco de dados. Nesse sentido, foi realizada uma limpeza e repartição em larga escala da base, levando em consideração a possível hierarquia de gêneros, o que exigiu muito esforço (conseguimos automatizá-la, mas não muito).


A fim de transferir a hierarquia de gêneros para a rede, abandonamos o envio em um só lugar e configuramos a unidade para imagens não apenas em um gênero, mas também em seu pai, se houver, e também substituímos a função de destino do processo de aprendizado e a função de ativar a camada de saída . Assim, a tarefa passou a ser a classificação Multilabel (a imagem de entrada pode pertencer a várias classes).



Parece-nos que outro gênero está faltando aqui - abstração. A rigor, esse não é um gênero. Pelo menos especialistas insistiram que não havia esse gênero. Para impedir a rede de dar respostas aleatórias a imagens abstratas, mais uma foi adicionada à divisão geral de gêneros sob o nome "não foi possível determinar", incluindo imagens abstratas e controversas.


Em vez de uma conclusão


Em geral, foi possível obter uma precisão satisfatória na classificação de estilos e gêneros de imagens, mas há muito a melhorar.


Infelizmente, a classificação de estilos e técnicas não foi finalizada - o suporte não foi implementado no serviço.

Source: https://habr.com/ru/post/pt422357/


All Articles