Android Computer Vision JavaCV OpenCV Compairação FastCV

Estou trabalhando no projeto da escola e pairte disso deve ser sobre a situação atual sobre bibliotecas de visão por computador paira o Android. Eu fui com ele com grande entusiasmo, porque a visão por computador pairece ser um assunto fascinante, mas busquei mais de uma semana e não findi muito. Gostairia de poder fornecer informações sobre as próprias bibliotecas e sobre a compairação entre elas.

Vou compairtilhair o que findi até agora.

  • Tempo limite de connection Http no Android não está funcionando
  • Ligação de Dados do Android: Lista Observável do Adaptador do RecyclerView
  • Posso obter alguma eficiência declairando membros apropriados "statics" na atividade do Android
  • Conviewtendo YUV-> RGB (image processing) -> YUV durante onPreviewFrame no Android?
  • Pode um APK ser reembalado após uma edição de text menor?
  • Cairregamento da image Base64 VS Cairregamento de imagens binárias?
  • OpenCV

    • pairece ser o mais avançado e o mais populair.

    • fornecer o maior número de funções

    • tinha problema com compatibilidade com viewsões anteriores

    • é rápido (pelo less, então eu ouvi, mas eu tenho zero informações sobre isso)

    • tem maior quantidade de livros sobre isso (pelo less paira a viewsão C ++)

    JavaCV

    • é um invólucro paira algumas outras bibliotecas, incluindo opencv

    FastCv

    • novo com Qualcomm por trás disso.

    Wikitude

    • Isso é mais paira a realidade aumentada, mas no seu núcleo ainda é visão computacional.

    Como você pode view, tenho poucas informações sobre isso e fazer meus próprios testes paira cada biblioteca está muito além das minhas habilidades atuais de visão por computador.

    Atenciosamente, Peter.

  • Como posso obter o context do aplicativo de um service Android?
  • Problemas com o driview ao usair o Samsung Galaxy SIII via USB paira desenvolvimento
  • gen já existe, mas não é uma pasta de origem
  • O Android 4.2 quebrou o código criptografair / descriptografair e as soluções fornecidas não funcionam
  • Enviando imagens da galeria paira o Serviço da Web usando SOAP
  • Android Activity lifecycle e dispositivo de bloqueio / desbloqueio
  • 6 Solutions collect form web for “Android Computer Vision JavaCV OpenCV Compairação FastCV”

    Basicamente, existem duas opções: OpenCV e FastCV

    O OpenCV é uma biblioteca mais madura com muito mais funcionalidade do que o FastCV. Paira muitas tairefas de visão por computador, você pode encontrair apenas a funcionalidade mais básica no FastCV, enquanto você pode ter quase todas as alternativas populaires disponíveis no OpenCV. Verifique os detectores de resources disponíveis, por exemplo. OpenCV tem Hairris, SURF, SIFT, FAST, etc. FastCV, por outro lado, tem apenas Hairris e FAST. OpenCV contém otimizações de hairdwaire paira diferentes HW, incluindo computadores de table e dispositivos de computação móvel. A capacidade de usair o OpenCV na área de trabalho oferece uma opção de desenvolvimento mais flexível, pois você pode ajustair e testair o código em um computador de table rápido antes de começair a trabalhair o desenvolvimento do celulair. O OpenCV também é considerado como pairte de uma proposta de grupo Khronos Computer Vision . Então, se isso for aprovado, o OpenCV pode se tornair a API padrão paira visão por computador. Tanto quanto posso view, o FastCV oferece otimizações superiores paira CPUs Snapdragon. Isso pode desempenhair um papel importante na decisão no curto prazo, mas tenho certeza que o OpenCV irá fechair o espaço muito rápido, se houview.

    Se você escolher o path OpenCV, então há dois subpaths: OpenCV com Android NDK vs. JavaCV com Android SDK. O JavaCV é um wrapper em torno do OpenCV baseado no JavaCpp. O JavaCV envolve principalmente a API C, embora o OpenCV também forneça uma API orientada a objects C ++. A API C ++ lida com a liberação automática de memory não utilizada, por exemplo. No entanto, a API C (portanto, JavaCV) requer que você lide com a liberação de imagens não utilizadas manualmente. Além disso, quando você enfrenta um problema no JavaCV, é difícil resolview o problema, porque há muitas indireções paira viewificair. Os problemas são mais fáceis de localizair quando você usa o OpenCV diretamente. No entanto, no caso do Android, a dificuldade adicional da NDK não deve ser esquecida.

    Se a funcionalidade OpenCV disponível for necessária paira o aplicativo específico, e não é necessário um código de processamento de nível de pixel personalizado, o JavaCV é o path a seguir. No entanto, se uma quantidade considerável de código de image processing personalizado for necessário, o código Java irá diminuir a velocidade, e você precisairá mudair paira o NDK, mesmo assim. No último caso, o OpenCV é a alternativa a escolher.

    Eu usairia o OpenCV, pois é a melhor biblioteca de visão por computador no momento. Você programairá suas funções em C ++ e, em seguida, você compilairá a aplicação Android usando a biblioteca JNI. Você tem informações sobre como fazer isso na documentation oficial .

    Eu trabalhei com esta configuration e o performance do OpenCV no android é realmente bom. Você notairá benefícios se você fizer algumas funções em airitmética de ponto fixo. Boa sorte

    Paira um projeto baseado em Android, é fácil começair com o JavaCV. Ele contém quase todas as funções que estão disponíveis no OpenCV.

    Mas não há documentation rica em JavaCV, mas OpenCV tem. Então, você pode encontrair os methods relevantes da documentation do OpenCV e usá-los em JavaCV (mesmo nome de método).

    Há um documento completo aqui . Isso é discutir sobre como configurair o JavaCV no eclipse – ambiente Android.

    vizier respondeu muito bem, mas tenho a printing de que sua análise tenha um erro. Eu acho que ele não está ciente de que Opencv tem uma viewsão paira Android chamada OpenCV4Android. São wrappers Java paira a funcionalidade c ++, o que significa que você pode evitair o uso do NDK Android e programair tudo em Java. Isso tornairia a biblioteca JavaCV "não oficial" redundante, exceto pelo fato de que esta, além de envolview o opencv, também envolve muitas outras bibliotecas de CV agradáveis.

    Editair:

    Isso não altera as conclusões do vizir sobre a recomendação do OpenCV, ele realmente adiciona mais pontos paira a escolha dele.

    Existe uma nova opção paira CV no Android, a API do Google Mobile Vision . A API é exposta através de com.google.android.gms.vision e permite detectair vários types de objects (rostos, códigos de bairras e resources faciais), dado um bitmap de image airbitrária.

    Comece com o OpenCV e, em seguida, cairregue funções importantes, como rastreamento de resources, convoluções, dilatação / erosão, e talvez SVM. No caso de compilation paira o Android, envolva as chamadas com #ifdef __ANDROID__, então basta chamair o equivalente FastCV. A abstração é sua amiga.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.