Como usar o Noise Modeler do Morgenman
(Available in: English, Português)
Obrigado ao Enzo pela tradução para português!
Se tiver algum problema com este guia ou com o programa, entre no grupo de suporte (grupo em inglês).
Observação: nas gcam em português, vocês irão achar Noise models como "modeladores de ruído". Eu usarei o termo Noise model em inglês nessa tradução para facilitar, já que o programa utilizado é em inglês.
Por que fazer um noise model?
O objetivo principal de um Noise model é reduzir o ruído das fotos. Há três tipos de ruído produzidos pelas câmeras, mas focarem os em dois: luma e Chroma (ruído luminoso e cromático).
Como você pode ver acima, o ruído Chroma são partículas de cor aleatórias espalhadas pela imagem. Luma, por outro lado surge de acordo com a luz ou sombra por pixel. Ruído cromático normalmente é mais fácil de se identificar, e é o que os noise models visam remover primariamente. Uma vez que você tenha um Noise model funcionando corretamente, se você ainda estiver tendo problemas com o ruído luminoso, eu recomendo que você tente resolver usando o lib/rampatcher
Sem um Noise model na gcam 8.x+ é utilizado um perfil de sistema, ou um Noise model padrão incluído na gcam. Esses perfis normalmente não são bons para seu dispositivo e podem manchar sua imagem ou causar banding (surgimento de faixas).
Pode-se notar na imagem acima que há uma certa quantidade de detalhes perdidos, especialmente na camisa e na barba. No pescoço é possível se notar banding (faixas) quando não se usa um Noise model. Agora vamos ver o que ocorre quando se carrega o perfil incorreto:
Isto se chama vazamento de cor. Veja como o azul da parte de baixo escapou quando se utiliza um Noise model que não foi feito para o seu sensor (especificamente de uma resolução diferente) pode causar isso.
Eu preciso fazer um noise model?
Clique aqui para saber se o seu dispositivo já tem noise models feitos para ele. Os arquivos devem ser nomeados apropriadamente, mas as vezes não estão. Isto é comum já que é um arquivo que os usuários são responsáveis por upar, eu tentarei organizar se tiver tempo. Se houver um Noise model para o seu sensor, mas não para o seu dispositivo, eu recomendo experimentar e checar se ele te dá uma boa performance.
Como fazer um noise model?
Primeiro, baixe a última versão do programa aqui: https://www.celsoazevedo.com/files/android/morgenman/noise-modeller/
Assim que extrair, você verá os seguintes arquivos:
A primeira coisa que você deve fazer é ler o arquivo README.
Ele irá te familiarizar com as com muitas das instruções neste guia, e será específico do noise modeler que você baixou. Este guia foi feito para a versão 4.3, e pode não ser atualizado a cada novo lançamento.
Em seguida, você deve ativar a depuração usb.
Quando estiver pronto, conecte seu telefone por USB e execute o exe.
Quando executar o exe, a primeira coisa que você deve ver é um dispositivo conectado no topo. No meu pai exemplo RFCN90MYDFX é o meu dispositivo. Pressione qualquer tecla para continuar.
A próxima tela deverá ser assim:
A primeira coisa a se fazer neste ponto é reunir informações sobre o seu dispositivo. Você irá buscar duas informacoea: IDs (o número correspondente a cada lente) e o sensor utilizado. Por exemplo, minha câmera principal no S20 FE 5G é ID 0, e o nome do sensor é IMX 555.
Encontrando os IDs da câmera
Em muitos dispositivos há IDs duplicados. Normalmente apenas um funcionará na GCam. Em certos aparelhos, especificamente da Samsung, diferentes IDs trarão diferentes recursos. Por exemplo, ID 1 pode se referir a câmera frontal com crop. ID 3 pode se referir a mesma câmera frontal mas sem crop, mais ampla.
Se você já tem uma gcam com todas as lentes disponíveis e sabe os IDs do seu aparelho, pule para a próxima sessão.
Para tentar encontrar os IDs, eu recomendo instalar o CameraHW do menu principal (5ª opção).
Não se preocupe se ver a seguinte mensagem: Failure [DELETE_FAILED_INTERNAL_ERROR]. Isto significa apenas que o app nunca foi instalado antes.
Quando você abrir o CameraHW no seu telefone, verá a tela acima. Seria ideal que você a notasse todas as lentes listadas nos IDs. Quando você navegar pelo lista, verá que cada ID irá especificar se o sensor é frontal ou traseiro, assim como outras informações. Você poderá checar o ângulo de visão para descobrir qual é a ultra wide, a principal é a telefoto. (as minhas são respectivamente 73, 80 e 32).
Você também poderá notar que alguns IDs são um combo de IDs diferentes:
(logical)BACK ID[20] = ID[0+2+52]
Aqui, o ID 0 é minha lente principal, 2 minha ultrawide e 52 minha telefoto.
Tipicamente essas lentes mencionadas no combo são as corretas para seu dispositivo.
A única forma real de testar é achando uma gcam que permita inserir manualmente os IDs e testá-los.
Neste ponto, você deve saber todos os IDs das lentes que você pretende fazer Noise models.
Descobrindo o nome dos sensores
É recomendado checar com outros membros da comunidade se está Informação já existe. Algum outro membro já pode ter identificado os sensores.
Cuidado, variantes de regiões diferentes, podem usar hardware diferenres. No meu dispositivo, as versões Snapdragon e Exynos possuem sensores principais diferentes. Sendo necessário que cada um tenha seu Noise model.
Adicionalmente, eu aconselho não utilizar websites para esta informação. Alguns possuem informações erradas e não distinguem o hardware entre as variantes.
Eu inseri uma ferramenta que pode ser instalada pelo menu principal para ajudar a identificar os nomes dos sensores. Ele pode ser instalado pelo menu principal usando a opção 6.
Não se preocupe se ver a seguinte mensagem: Failure [DELETE_FAILED_INTERNAL_ERROR]. Isto significa apenas que o app nunca foi instalado antes.
Abra o aplicativo e veja se há uma opção "suportados" embaixo da opção "Camera".
Nota: este app pode não funcionar em todos os dispositivos. Se você não vê a seção "suportado", por favor contate nosso chat de suporte. Há um método alternativo pra identificar as lentes nos aparelhos Samsung.
Se o seu app se parece com o que você vê no Screenshot, toque no nome dos seus sensores. Estes são os seus sensores. Você pode utilizar a resolução para identificar os IDs. Se você não tem certeza de qual é qual, contate nosso chat de suporte. Nós não queremos modelos sendo upados com informações erradas. Você deve notar que algumas lentes podem não ser exibidas. Novamente, contate o chat de suporte.
Neste ponto, você já deve saber o ID e o nome da lente que você pretende criar o Noise model.
Instalando o CTS Verifier
Para fazer um noise model, você precisará instalar o CTS Verifier no seu celular. Se você já fez noise models, provavelmente você já o instalou.
Caso contrário, escolha uma opção entre 2-4 para seu dispositivo. Se você tem um aparelho Samsung, use o CTS com o nome Samsung. Se tiver um oneplus, use o CTS snapcam. Caso contrário, use o CTS normal.
Se você já instalou alguma das variantes, instalar uma nova provavelmente não será possível. Desinstale o CTS Verifier antes de instalar um novo.
Não se preocupe se ver a seguinte mensagem: Failure [DELETE_FAILED_INTERNAL_ERROR]. Isto significa apenas que o app nunca foi instalado antes.
Uma vez instalado, você não precisa executar o app. Ele será executado pelo .exe no plano de fundo.
Criando um modelo
Para fazer um noise model, você deve fazer um tipo de instalação utilizando seu telefone, uma luz e um difusor.
Há dois tipos principais de modelos: Liso e degradê. O liso é mais fácil de fazer, e para a maioria dos usuários, é o bastante. Alguns membros da comunidade, no entanto, recomendam fazer o degradê. Pelos seguintes motivos:
- Para cada valor de ISO que sua câmera possui, seu dispositivo irá capturar uma imagem. As imagens precisam estar em uma exposição específica para reunir as informações corretas. As fotos precisam estar fora de foco com um histograma amplo, como um degradê. Nós precisamos de áreas superexpostas e subexpostas, mas particularmente das áreas cinzas que ficam no meio. Estas áreas contém a informação que procuramos para criar um noise model apropriado.
- Um degradê pode ser criado usando uma imagem, a que está incluída na pasta do noise modeller, ou você pode criar uma desenhando manualmente. Você pode fazer isso facilmente um marca-texto de ponta fina e um lápis. Comece por um lado com o marca-texto, deixando este lado completamente preto. Então inicia a próxima linha com um lápis preto, continue com tons mais leve, o lado oposto deve ficar completamente branco, intocado.
-SixArmedPriest
Há uma variedade de métodos para se usar. Qualquer um deve funcionar, mas você pode obter uma performance melhor em um ou outro.
Nota: Por favor, não use uma lâmpada fluorescente, ela usa um espectro de frequência mais estreito para exibir a luz branca.
Tipos de montagens para noise models:
1. Simples
O método mais fácil de fazer um noise model é escolher um material simples que permita a passagem de alguma (mas não totalmente) luz por ele, coloque seu celular apontando para o teto, de modo que o teto branco é a única coisa no campo de visão, e então execute o modeller.
Você pode usar variados materiais para como camada de difusão, desde um saco de plástico, uma folha de papel, embalagem da taco bell, até um pedaço de papel higiênico. O único limite é a sua imaginação;
A documentação original do script do Noise model recomenda simplesmente uma fita adesiva sobre a lente.
A parte importante é que você minimize os pontos brilhantes da fonte de luz. Isto é um problema principalmente quando você tem uma luz no teto. Veja o exemplo abaixo:
2. Light Box (caixa de luz)
Fazer uma caixa de luz é difícil e requer tempo e recursos, mas pode ser útil se você precisa fazer noise models para diferentes telefones.
Você pode ver alguns exemplos na seção “exóticos”
3. Exóticos
Esta seção é para os métodos exóticos de se capturar um noise model.
Executando o script
Para fazer um modelo para sua lente, escolha a opção 1 no menu principal, insira o ID da lente, escolha o CTS Verifier que você instalou do menu principal e espere pelo feedback.
Levando em consideração que nenhum erro tenha ocorrido (veja a resolução de problemas abaixo), você provavelmente irá ver uma mensagem dizendo que está muito claro ou muito escuro. Logo após a mensagem ser exibida, uma imagem aparecerá com a captura. Na imagem acima a câmera captou apenas uma imagem escura, já que a câmera estava virada para mesa. A imagem ideal deve ser lisa ou um degradê.
Assim que você tiver o nível de luz ideal, você verá a seguinte imagem:
Se a imagem parecer boa, continue o processo. Você irá ver uma barra de progresso. Se ocorrer algum erro durante o processo, tente novamente antes de buscar ajuda.
Não se preocupe com os gráficos da pasta de resultados. Embora seja possível notar o quanto seu aparelho precisa de um Noise model, não há uma maneira clara de identificar o quão bom é um Noise model sem testa-lo. Só porque um modelo tem um grande variação em um certo iso, não significa que ele é ruim, pode significar apenas que seu sensor produz muito ruído naquele iso.
Alguns usuários (Stefano Lanci) escolheu fazer vários Noise models e fazer uma avaliação dos resultados. Ele testou com dois degradêa da direita pra esquerda, dois degradês da esquerda para direita, e um liso. Embora não seja necessário fazer isso, se você não estiver feliz com os resultados, é interessante avaliar.
Assim que estiver terminado, você pode ir para a pasta de resultados que corresponde a lente para a qual você fez os modelos. Elas são organizadas por ID. Eu recomendo renomear a pasta com o nome da lente.
O arquivo que contém os resultados é o "noise_model.c".
Por favor renomeie este arquivo de acordo com este exemplo:
Nomedocelular_Nomedosensor_ID_noise.c
Se você não sabe o nome do sensor, renomeie como: NomedoCelular_ID_noise.c
Por favor, use o nome comum do telefone. Por exemplo: OppoFindX2Pro em vez de fx2p.
Se o seu telefone possuiu uma variante diferente com sensores diferentes (como versões com exynos), escreva a Variante no fim do nome.
Exemplo: escreva "S20UExynos" ao invés de "S20U"
Se você está upando um novo Noise model que já foi upado anteriormente, por favor adiciona _new ou _fix no modelo do telefone.
Ex: S20FE_Fix_IMX555_0_noise.c
O formulário está aqui:
https://forms.gle/pnrFbwKK2jFF2P8x6
Se você tiver alguma dúvida, me contate aqui.
Resolução de problemas
Abaixo você verá alguns erros comum e como resolvê-los:
- O seu dispositivo usa "," ao invés de "." para números. Troque o idioma e tente novamente.
- Seu computador foi desconectado do dispositivo. Tente novamente e não funcionar, troque a porta USB
- Erro ao se comunicar com o CTS Verifier. Pode haver a possibilidade do seu telefone ter encerrado o app para poupar bateria, pode ser que você tenha instalado o CTS Verifier errado, ou que você não tenha instalado CTS algum. Normalmente se resolve tentando novamente.
- O script não encontra o CTS Verifier. Este problema foi identificado em telefones com Miui recentemente. O adb pode estar restringindo o início de alguns apps, ou o CTS pode não ter sido instalado.