
Acredito fortemente em aprender pela prática, criando algo novo. E para criar algo, você precisa tornar seu trabalho agradável.
Vou começar minha história sobre meu novo projeto revelando os motivos pelos quais decidi tentar criar uma câmera de armadilha baseada no Raspberry Pi.
Eu moro em Londres e meu jardim é frequentado pela vida selvagem local. Isso acontece com tanta frequência que eu, um jardineiro ávido, aos poucos comecei a ficar chateado. Vasos quebrados, plantas arrancadas da terra, frutas e vegetais comidos ...
Eu vi no meu jardim pequenas raposas (são simplesmente lindas), raposas grandes, gatos (não meus), pássaros. E uma vez fui até visitado por um gavião.

Quem mais se arrastará para o meu jardim ao abrigo da noite?

Ver o animal nesta imagem não é fácil.
Que outros motivos eu preciso para criar uma câmera de armadilha baseada em Raspberry Pi, Python, TensorFlow e outros? E minha câmera deve ser muito boa.
Alguém pode dizer que você não precisa fazer você mesmo essa câmera, que você pode comprar uma pronta que vai perfeitamente lidar com a tarefa de observar animais selvagens.
É uma boa ideia, mas não será tão interessante.
Módulos de câmera para Raspberry Pi
Comecei pesquisando quais tipos de câmeras podem ser conectadas a um computador de placa única Raspberry Pi.
As câmeras semelhantes mais populares são aquelas que se conectam diretamente ao Raspberry Pi usando o conector MIPI. A vantagem desse tipo de câmera é que os dados são transferidos muito rapidamente entre a câmera e a placa. Também existe uma API fácil de usar para trabalhar com a câmera.
Experimentei essa API e descobri que ela tem muitas funções úteis que permitem gravar vídeos e tirar fotos durante a gravação. Isso me permite detectar movimento e gravar vídeo simultaneamente usando ferramentas simples e diretas.
Existem três tipos de módulo de câmera para Raspberry Pi... Abaixo está uma versão abreviada da tabela com as características de tais módulos.
| Módulo de câmera v1 | Módulo de câmera v2 | Câmera Hq | |
| Preço líquido | $ 25 | $ 25 | $ 50 |
| O tamanho | Cerca de 25 × 24 × 9 mm | 38 x 38 x 18,4 mm (excluindo ótica) | |
| O peso | 3 g | 3 g | |
| Resolução de imagem | 5 mi | 8 mi | 12,3 mi |
| Modos de vídeo | 1080p30, 720p60 e 640x480p60 / 90 | 1080p30, 720p60 e 640x480p60 / 90 | 1080p30, 720p60 e 640x480p60 / 90 |
| Integração Linux | Driver V4L2 | Driver V4L2 | Driver V4L2 |
| C-API | OpenMAX IL e outros | OpenMAX IL e outros | |
| Sensor | OmniVision OV5647 | Sony IMX219 | Sony IMX477 |
| Resolução do sensor | 2592 × 1944 pixels | 3280 × 2464 pixels | 4056 x 3040 pixels |
| Tamanho da área de trabalho do sensor | 3,76 x 2,74 mm | 3,68 x 2,76 mm (4,6 mm na diagonal) | 6,287 x 4,712 mm (7,9 mm na diagonal) |
Esta tabela lista os módulos de câmera oficiais, mas você pode encontrar câmeras de terceiros que funcionarão com o Raspberry Pi. Os módulos da câmera são usados para processar dados do sensor Raspberry Pi da GPU.
Uma vez que, ao usar o módulo da câmera, o próprio Raspberry Pi está envolvido no processamento de imagem, verifica-se que a escolha dos sensores da câmera é muito limitada. Cada sensor tem sua própria API, portanto, oferecer suporte a diferentes tipos de sensores não é uma tarefa fácil.
Gravação de vídeo em condições de pouca luz
Vou criar uma câmera de armadilha para observar animais selvagens. Portanto, seus recursos devem ser suficientes para o trabalho diurno e noturno. Ou seja, deve ter um sensor capaz de gravar vídeo em condições de pouca luz. É altamente desejável que reproduza a cor real dos objetos sendo filmados. Em más condições de iluminação, o Módulo de Câmera v1 e v2 não funcionam muito bem. Para que eles possam remover algo em tais condições, você precisa usar a iluminação IV e remover o filtro IV deles. O procedimento de preparação da câmera para fotografar em condições de pouca luz depende do modelo específico da câmera. Mas aqui há outro problema: as imagens resultantes têm uma tonalidade rosa. Ao usar essas câmeras, você precisa de um mecanismo queque ativa o filtro IR ao fotografar durante o dia e remove esse filtro ao fotografar à noite.

Imagem de uma câmera Raspberry Pi tirada durante o dia em más condições de iluminação. Mas
há uma nova câmera para o Raspberry Pi, que na tabela é designada como Câmera HQ. No entanto, não tenho certeza sobre suas capacidades "noturnas". Ele é baseado no sensor Sony IMX477, que em condições de pouca iluminação pode produzir uma imagem melhor do que as gerações anteriores de câmeras. Se este sensor pode produzir a imagem com a cor correta no escuro, ainda vou descobrir. Mas minha pesquisa preliminar das câmeras em relação às especificações sugere que é improvável que seja capaz disso.
Sony Starvis é um ótimo sensor de câmera
A Sony possui uma família especial de sensores de câmera usados principalmente para vigilância por vídeo. Esta é a Sony Starvis. Esses sensores são dispositivos altamente avançados, capazes de fornecer imagens coloridas de alta qualidade em condições de pouca luz, com apenas 0,001 lux. Lux (lx) é uma unidade para medir a iluminação.
Para tornar isso mais claro, darei alguns exemplos. A escuridão quase completa é de 0,0001 lux. A saber: não há luz solar, nem luz da lua e das estrelas, o céu está nublado, não há fontes artificiais de iluminação. Não tenho conhecimento de nenhum sensor de câmera capaz de filmar na escuridão completa.
Mas se o céu estiver claro, as estrelas fornecem uma iluminação de 0,002 lux. Embora ainda esteja muito escuro nessas condições, o sensor Sony Starvis é capaz de fotografar com metade dessa luz. Para mim, é simplesmente incrível.
Aqui está uma página da Wikipedia onde mais exemplos podem ser encontrados.
Espero ter conseguido transmitir a vocês a ideia de que o Sony Starvis é o sensor perfeito para uma câmera de armadilha.
A principal desvantagem deste sensor é que não há câmeras para o Raspberry Pi em que é usado. Mas se eu encontrasse uma câmera USB ou IP com esse tipo de sensor, eu inventaria algo e conectaria ao Raspberry Pi.
Na verdade, encontrei essa câmera.
Eu não queria investir muito neste projeto, então comprei uma câmera IP adequada da Sony Starvis no Aliexpress. Esta compra me custou, se bem me lembro, £ 20.
Comparar uma câmera do Raspberry Pi e esta câmera é como comparar o dia e a noite. E eu não estou exagerando nada. Procure você mesmo.

Câmera com sensor Sony Starvis IMX307, filmando em um quarto escuro

Câmera Raspberry Pi v2 - a mesma sala, mas um ponto de vista diferente
Para a câmera trap e a câmera CCTV, é muito importante ser capaz de fazer gravações de alta qualidade em condições de pouca iluminação.
Alguns podem argumentar que a gravação de vídeo colorido em condições de pouca iluminação não é tão importante que você possa sobreviver com uma simples câmera infravermelha. Mas não posso usar a iluminação infravermelha porque vou colocar a câmera em um ambiente interno e apontá-la para o jardim através da janela. E se você direcionar a fonte de infravermelho para o vidro, o vidro se comportará como um espelho e a câmera ficará cega.
Se falamos de câmeras para o Raspberry Pi, então elas são adequadas para alguns projetos simples ou para aprender algo novo. Mas se você está envolvido em algum projeto pelo menos meio sério, então você só precisa usar câmeras de melhor qualidade.
Usar uma câmera USB (ou mesmo uma câmera IP) abre possibilidades completamente novas. Além disso, se você também tiver uma câmera normal para o Raspberry Pi, poderá usá-la para alguns experimentos de inteligência artificial.
Instalando e configurando uma câmera para Raspberry Pi
Vamos cuidar de conectar o Módulo de Câmera v2 à placa. Na verdade, é muito simples.

Módulo de câmera v2
A câmera possui um cabo azul e branco. Ele precisa ser conectado ao conector CSI da placa. O lado azul da fita deve estar voltado para a parte de trás da placa.
Usei um corpo de câmera impresso em 3D. Encontrei os arquivos correspondentes no Thingiverse. Mas um estojo adequado, bastante barato, pode ser encontrado, por exemplo, na Amazon.

Caixa da câmera
Agora é hora de ligar a câmera.
Depois de ligar o Raspberry Pi, você precisa abrir uma janela de terminal.

Terminal
Em seguida, você precisa executar o seguinte comando:
$ sudo apt update
E então - este:
$ sudo apt full upgrade
Isso é para garantir que a placa esteja usando a versão Raspbian mais recente e os patches e atualizações mais recentes.
Depois disso, você precisa executar o seguinte comando no terminal:
sudo raspi-config

Trabalhando com raspi-config
Aqui estamos interessados na seção
Interfacing Options>P1 Camera. Então você precisa selecionar um comandoFinishe reiniciar o Raspberry Pi.
Tirando fotos com raspistill
A câmera agora deve estar pronta para uso. Vamos verificar com
raspistill. Abra o terminal novamente e digite o seguinte comando lá:
raspistill -v -o test.jpg
Esta é uma foto maravilhosa que minha câmera tirou.

Instantâneo da câmera para Raspberry Pi
Gravação de vídeo com raspivid
As fotos são boas, mas a gravação de vídeo é muito melhor. Aqui virá em nosso auxílio
raspivid:
raspivid -o vid.h264
Este comando permite gravar um vídeo com duração de 5 segundos.
Se você precisar gravar um vídeo mais longo, este comando precisará passar um parâmetro
-tespecificando a duração do vídeo em milissegundos. Por exemplo, o comando a seguir permite gravar um vídeo de 30 segundos:
raspivid -o vid.h264 -t 30000
Configurando o streaming
Agora vem a parte divertida. Para ver o que a câmera "vê", você pode usar o seguinte comando:
raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264
Ele cria um fluxo RTSP ao qual você pode se conectar a partir da rede local.
Resultado
Agora que descobri as câmeras do Raspberry Pi, posso desenvolver ainda mais o projeto, ou seja, instalar o TensorFlow, Open CV e Python no Raspberry Pi 4 e começar a escrever o código. Pretendo falar sobre isso em meus próximos materiais. Para os interessados, meu canal no YouTube, onde podem encontrar vídeos relacionados a este projeto.
Você já trabalhou com câmeras para o Raspberry Pi?
