Eu tenho um grande número de imagens que preciso classificar para o treinamento de um algoritmo de cluster e gostaria de fazê-lo offline (os dados são proprietários). Basicamente, gostaria de criar uma ferramenta de pesquisa de desktop que me permita colocar rapidamente cada imagem em uma ou duas categorias. Idealmente, a ferramenta:
- Pesquise em uma pasta da área de trabalho pré-especificada uma imagem;
- Exiba a imagem e uma lista estática de categorias, permitindo que eu clique em uma;
- Ao clicar, registre a categoria associada à imagem;
- Armazene o nome do arquivo da imagem e a categoria associada em um conjunto de dados em algum lugar;
- Exiba a próxima imagem não marcada na pasta e repita o processo.
Existe uma maneira fácil de criar esse tipo de ferramenta em Python ou algum outro utilitário pré-criado que eu possa usar gratuitamente offline?
Respostas:
Eu criei um código que cumpre os 5 requisitos que você possui; ele está disponível no GitHub como image-sorter2 . Comparado com os outros scripts sugeridos aqui, o image-sorter2 é 100% gratuito e você não precisa gastar tempo desenhando caixas delimitadoras - o script simplesmente abre uma GUI para você, você clica em um dos vários botões e corresponde a cada imagem é classificado na pasta de classe desejada, por exemplo, "gatos", "cães", "caminhões" aso
fonte
Eu recomendaria a criação de seu próprio aplicativo Web suportado por banco de dados, pois você possui dados proprietários e poucas (apenas duas?) Classes. Eu criaria tabelas para as imagens, usuários e rótulos.
usuário: (id, nome)
imagem: (id, url)
rótulo: (user.id, image.id, hora, classe)
A classe label pode ser uma enumeração. Se você não quiser permitir que os usuários classifiquem a mesma imagem várias vezes, solte a coluna de hora e defina as duas primeiras colunas de ID como a chave primária composta.
Se você nunca lidou com aplicativos da Web e bancos de dados, isso parecerá complicado, mas será fácil quando você entender o que está acontecendo. Aqui está um tutorial. O benefício dessa abordagem é a persistência; você pode desligar o computador e começar de onde parou graças ao banco de dados.
Uma alternativa mais simples é coletar todos os seus dados em uma sessão usando componentes da GUI, como ipywidgets for jupyter , e gravando os rótulos em um arquivo. Com essa abordagem, você não obtém persistência.
fonte
Um ótimo serviço online é o Dataturks . UX super simplificado e fácil de usar. Também suporta seus dados privados em nossa nuvem interna.
Também suporta polígonos, segmentação etc.
Aqui está uma demonstração que você pode experimentar (sem necessidade de inscrição):
Classificação da imagem de demonstração
PS: Como os navegadores não têm permissão para acessar arquivos diretamente no disco local, talvez seja necessário executar um servidor da Web fictício para obter URLs locais para os arquivos.
fonte